From 62e0df0a3d48403ad06238b65e4b03d3d9b50fca Mon Sep 17 00:00:00 2001 From: dmcbeing Date: Thu, 3 Nov 2022 15:03:13 +0200 Subject: [PATCH] Update documentation --- a00047.html | 108 + a01355.html | 260 + a01355.js | 25 + a01355_source.html | 213 + a01356.map | 16 + a01356.md5 | 1 + a01356.svg | 138 + a01357.map | 61 + a01357.md5 | 1 + a01357.svg | 543 ++ a01358.html | 1323 +++ a01358.js | 33 + ...6712b2a923d4bda1be98de189bc0f9_icgraph.map | 5 + ...6712b2a923d4bda1be98de189bc0f9_icgraph.md5 | 1 + ...6712b2a923d4bda1be98de189bc0f9_icgraph.svg | 41 + ...cfa2c90268c6e53ce376beb7cce153c_cgraph.map | 19 + ...cfa2c90268c6e53ce376beb7cce153c_cgraph.md5 | 1 + ...cfa2c90268c6e53ce376beb7cce153c_cgraph.svg | 165 + ...fa2c90268c6e53ce376beb7cce153c_icgraph.map | 41 + ...fa2c90268c6e53ce376beb7cce153c_icgraph.md5 | 1 + ...fa2c90268c6e53ce376beb7cce153c_icgraph.svg | 364 + ...c22ae41507232dc3efc725428cbfc7b_cgraph.map | 7 + ...c22ae41507232dc3efc725428cbfc7b_cgraph.md5 | 1 + ...c22ae41507232dc3efc725428cbfc7b_cgraph.svg | 57 + ...22ae41507232dc3efc725428cbfc7b_icgraph.map | 18 + ...22ae41507232dc3efc725428cbfc7b_icgraph.md5 | 1 + ...22ae41507232dc3efc725428cbfc7b_icgraph.svg | 157 + ...06bea23d2b9964f0f7c12947180e01_icgraph.map | 21 + ...06bea23d2b9964f0f7c12947180e01_icgraph.md5 | 1 + ...06bea23d2b9964f0f7c12947180e01_icgraph.svg | 185 + ...144f906658718ef853a8d18dda1e724_cgraph.map | 17 + ...144f906658718ef853a8d18dda1e724_cgraph.md5 | 1 + ...144f906658718ef853a8d18dda1e724_cgraph.svg | 147 + ...44f906658718ef853a8d18dda1e724_icgraph.map | 59 + ...44f906658718ef853a8d18dda1e724_icgraph.md5 | 1 + ...44f906658718ef853a8d18dda1e724_icgraph.svg | 528 ++ ...7a9203f163a9c8c78e22bde5fa4efbc_cgraph.map | 7 + ...7a9203f163a9c8c78e22bde5fa4efbc_cgraph.md5 | 1 + ...7a9203f163a9c8c78e22bde5fa4efbc_cgraph.svg | 57 + ...9aa16caa6dfcec85af956b42b33a0fa_cgraph.map | 5 + ...9aa16caa6dfcec85af956b42b33a0fa_cgraph.md5 | 1 + ...9aa16caa6dfcec85af956b42b33a0fa_cgraph.svg | 39 + ...dde947b05bc69599a6c7d92c38d088_icgraph.map | 23 + ...dde947b05bc69599a6c7d92c38d088_icgraph.md5 | 1 + ...dde947b05bc69599a6c7d92c38d088_icgraph.svg | 203 + ...cb53dd71cfaedb214bc5aef0e572cc2_cgraph.map | 15 + ...cb53dd71cfaedb214bc5aef0e572cc2_cgraph.md5 | 1 + ...cb53dd71cfaedb214bc5aef0e572cc2_cgraph.svg | 129 + ...9b763e71a5ae1e57f78c008e7c1135c_cgraph.map | 15 + ...9b763e71a5ae1e57f78c008e7c1135c_cgraph.md5 | 1 + ...9b763e71a5ae1e57f78c008e7c1135c_cgraph.svg | 129 + ...b763e71a5ae1e57f78c008e7c1135c_icgraph.map | 5 + ...b763e71a5ae1e57f78c008e7c1135c_icgraph.md5 | 1 + ...b763e71a5ae1e57f78c008e7c1135c_icgraph.svg | 39 + ...36751c1bdab169e4735143d3712a09_icgraph.map | 5 + ...36751c1bdab169e4735143d3712a09_icgraph.md5 | 1 + ...36751c1bdab169e4735143d3712a09_icgraph.svg | 39 + ...805b003097be6a6328a35c78bf558b_icgraph.map | 21 + ...805b003097be6a6328a35c78bf558b_icgraph.md5 | 1 + ...805b003097be6a6328a35c78bf558b_icgraph.svg | 185 + ...ff14a859f9b7a34676c2fcdb762386b_cgraph.map | 23 + ...ff14a859f9b7a34676c2fcdb762386b_cgraph.md5 | 1 + ...ff14a859f9b7a34676c2fcdb762386b_cgraph.svg | 203 + ...4ce6437cad359c8523f57fe50be020d_cgraph.map | 5 + ...4ce6437cad359c8523f57fe50be020d_cgraph.md5 | 1 + ...4ce6437cad359c8523f57fe50be020d_cgraph.svg | 39 + ...ce6437cad359c8523f57fe50be020d_icgraph.map | 23 + ...ce6437cad359c8523f57fe50be020d_icgraph.md5 | 1 + ...ce6437cad359c8523f57fe50be020d_icgraph.svg | 203 + ...0862a60d187bfed0cfa11bf27174551_cgraph.map | 27 + ...0862a60d187bfed0cfa11bf27174551_cgraph.md5 | 1 + ...0862a60d187bfed0cfa11bf27174551_cgraph.svg | 237 + ...4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.map | 19 + ...4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.md5 | 1 + ...4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.svg | 166 + ...461ab1d225a0f76f08d2f37a4a7e0e_icgraph.map | 11 + ...461ab1d225a0f76f08d2f37a4a7e0e_icgraph.md5 | 1 + ...461ab1d225a0f76f08d2f37a4a7e0e_icgraph.svg | 94 + ...5172b735dddd3f77fbb0265bbcdfc20_cgraph.map | 15 + ...5172b735dddd3f77fbb0265bbcdfc20_cgraph.md5 | 1 + ...5172b735dddd3f77fbb0265bbcdfc20_cgraph.svg | 130 + ...172b735dddd3f77fbb0265bbcdfc20_icgraph.map | 17 + ...172b735dddd3f77fbb0265bbcdfc20_icgraph.md5 | 1 + ...172b735dddd3f77fbb0265bbcdfc20_icgraph.svg | 148 + ...6293e9ec7776aa49ecf632fcc4f5e26_cgraph.map | 69 + ...6293e9ec7776aa49ecf632fcc4f5e26_cgraph.md5 | 1 + ...6293e9ec7776aa49ecf632fcc4f5e26_cgraph.svg | 615 ++ ...293e9ec7776aa49ecf632fcc4f5e26_icgraph.map | 21 + ...293e9ec7776aa49ecf632fcc4f5e26_icgraph.md5 | 1 + ...293e9ec7776aa49ecf632fcc4f5e26_icgraph.svg | 185 + ...6e4832b06bd5757be4502d2de7b3026_cgraph.map | 119 + ...6e4832b06bd5757be4502d2de7b3026_cgraph.md5 | 1 + ...6e4832b06bd5757be4502d2de7b3026_cgraph.svg | 1066 +++ ...2e1e32dc603394aecede365f454c8c4_cgraph.map | 9 + ...2e1e32dc603394aecede365f454c8c4_cgraph.md5 | 1 + ...2e1e32dc603394aecede365f454c8c4_cgraph.svg | 75 + ...d2ffbe2275e3b8c2fc97a003ee7380_icgraph.map | 7 + ...d2ffbe2275e3b8c2fc97a003ee7380_icgraph.md5 | 1 + ...d2ffbe2275e3b8c2fc97a003ee7380_icgraph.svg | 57 + a01358_source.html | 284 + a01359.map | 66 + a01359.md5 | 1 + a01359.svg | 588 ++ a01360.map | 21 + a01360.md5 | 1 + a01360.svg | 183 + a01361.html | 541 ++ a01361.js | 43 + a01361_source.html | 224 + a01362.map | 7 + a01362.md5 | 1 + a01362.svg | 57 + a01363.map | 73 + a01363.md5 | 1 + a01363.svg | 651 ++ a01364.html | 665 ++ a01364.js | 18 + ...69e798e54b8e0933d5c39960d6c2ad3_cgraph.map | 5 + ...69e798e54b8e0933d5c39960d6c2ad3_cgraph.md5 | 1 + ...69e798e54b8e0933d5c39960d6c2ad3_cgraph.svg | 39 + ...2b9155cb5133ef21023a1ff4653bf04_cgraph.map | 5 + ...2b9155cb5133ef21023a1ff4653bf04_cgraph.md5 | 1 + ...2b9155cb5133ef21023a1ff4653bf04_cgraph.svg | 40 + ...c628cf674eb8ffcf515df963220fb84_cgraph.map | 5 + ...c628cf674eb8ffcf515df963220fb84_cgraph.md5 | 1 + ...c628cf674eb8ffcf515df963220fb84_cgraph.svg | 39 + ...628cf674eb8ffcf515df963220fb84_icgraph.map | 23 + ...628cf674eb8ffcf515df963220fb84_icgraph.md5 | 1 + ...628cf674eb8ffcf515df963220fb84_icgraph.svg | 203 + ...a62fff2d911326edc6b805afccbfb6b_cgraph.map | 5 + ...a62fff2d911326edc6b805afccbfb6b_cgraph.md5 | 1 + ...a62fff2d911326edc6b805afccbfb6b_cgraph.svg | 40 + ...45f029b25098d24aca61b20beabe1bf_cgraph.map | 16 + ...45f029b25098d24aca61b20beabe1bf_cgraph.md5 | 1 + ...45f029b25098d24aca61b20beabe1bf_cgraph.svg | 138 + ...7a76d9da9e24d1dd4f8fc768b342b0_icgraph.map | 80 + ...7a76d9da9e24d1dd4f8fc768b342b0_icgraph.md5 | 1 + ...7a76d9da9e24d1dd4f8fc768b342b0_icgraph.svg | 719 ++ ...bfaa5e934f1853fc8fd536ea469ad9_icgraph.map | 23 + ...bfaa5e934f1853fc8fd536ea469ad9_icgraph.md5 | 1 + ...bfaa5e934f1853fc8fd536ea469ad9_icgraph.svg | 203 + ...86db7497e30f72feef2ebcbc75fb775_cgraph.map | 5 + ...86db7497e30f72feef2ebcbc75fb775_cgraph.md5 | 1 + ...86db7497e30f72feef2ebcbc75fb775_cgraph.svg | 39 + ...81034fc3fcc43abca5e10db42a7d81_icgraph.map | 7 + ...81034fc3fcc43abca5e10db42a7d81_icgraph.md5 | 1 + ...81034fc3fcc43abca5e10db42a7d81_icgraph.svg | 57 + a01364_source.html | 203 + a01365.map | 24 + a01365.md5 | 1 + a01365.svg | 210 + a01366.map | 7 + a01366.md5 | 1 + a01366.svg | 57 + a01367.html | 263 + a01367.js | 8 + ...86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.map | 23 + ...86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.md5 | 1 + ...86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.svg | 203 + ...805af1bb8178dbb114ff65d491f840_icgraph.map | 5 + ...805af1bb8178dbb114ff65d491f840_icgraph.md5 | 1 + ...805af1bb8178dbb114ff65d491f840_icgraph.svg | 40 + a01367_source.html | 152 + a01368.map | 15 + a01368.md5 | 1 + a01368.svg | 129 + a01369.map | 25 + a01369.md5 | 1 + a01369.svg | 219 + a01370.html | 285 + a01370.js | 7 + ...7854e7c23d8cf99d4f5044d5a6c54f2_cgraph.map | 114 + ...7854e7c23d8cf99d4f5044d5a6c54f2_cgraph.md5 | 1 + ...7854e7c23d8cf99d4f5044d5a6c54f2_cgraph.svg | 1020 +++ ...f4a6e64f2337b6493d4b4b45249290c_cgraph.map | 7 + ...f4a6e64f2337b6493d4b4b45249290c_cgraph.md5 | 1 + ...f4a6e64f2337b6493d4b4b45249290c_cgraph.svg | 57 + a01370_source.html | 127 + a01371.map | 5 + a01371.md5 | 1 + a01371.svg | 39 + a01372.map | 94 + a01372.md5 | 1 + a01372.svg | 840 ++ a01373.html | 185 + a01373.js | 4 + ...a99bcb12e2ee55d68a029bfca9b6d51_cgraph.map | 115 + ...a99bcb12e2ee55d68a029bfca9b6d51_cgraph.md5 | 1 + ...a99bcb12e2ee55d68a029bfca9b6d51_cgraph.svg | 1030 +++ a01373_source.html | 126 + a01374.map | 20 + a01374.md5 | 1 + a01374.svg | 174 + a01375.map | 5 + a01375.md5 | 1 + a01375.svg | 39 + a01376.html | 510 ++ a01376.js | 15 + ...06b62b1bc50d56e80ba7b7adb02f961_cgraph.map | 14 + ...06b62b1bc50d56e80ba7b7adb02f961_cgraph.md5 | 1 + ...06b62b1bc50d56e80ba7b7adb02f961_cgraph.svg | 120 + ...6b62b1bc50d56e80ba7b7adb02f961_icgraph.map | 5 + ...6b62b1bc50d56e80ba7b7adb02f961_icgraph.md5 | 1 + ...6b62b1bc50d56e80ba7b7adb02f961_icgraph.svg | 39 + ...99a24a46fb1be57ca21abf8bc61928_icgraph.map | 25 + ...99a24a46fb1be57ca21abf8bc61928_icgraph.md5 | 1 + ...99a24a46fb1be57ca21abf8bc61928_icgraph.svg | 221 + ...0e82902c3c17ef427f5876beb5a04e_icgraph.map | 5 + ...0e82902c3c17ef427f5876beb5a04e_icgraph.md5 | 1 + ...0e82902c3c17ef427f5876beb5a04e_icgraph.svg | 39 + ...bb16b03a95a60c4748c189dafa8a54_icgraph.map | 7 + ...bb16b03a95a60c4748c189dafa8a54_icgraph.md5 | 1 + ...bb16b03a95a60c4748c189dafa8a54_icgraph.svg | 57 + a01376_source.html | 169 + a01377.map | 13 + a01377.md5 | 1 + a01377.svg | 111 + a01378.map | 11 + a01378.md5 | 1 + a01378.svg | 93 + a01379.html | 149 + a01379.js | 5 + a01379_source.html | 125 + a01381.map | 102 + a01381.md5 | 1 + a01381.svg | 912 ++ a01382.html | 677 ++ a01382.js | 15 + ...7713c8e9b90065e23b0ec1a225f79ab_cgraph.map | 5 + ...7713c8e9b90065e23b0ec1a225f79ab_cgraph.md5 | 1 + ...7713c8e9b90065e23b0ec1a225f79ab_cgraph.svg | 39 + ...713c8e9b90065e23b0ec1a225f79ab_icgraph.map | 59 + ...713c8e9b90065e23b0ec1a225f79ab_icgraph.md5 | 1 + ...713c8e9b90065e23b0ec1a225f79ab_icgraph.svg | 527 ++ ...a28ba7c7791236d03b1fa9f81aa6a71_cgraph.map | 22 + ...a28ba7c7791236d03b1fa9f81aa6a71_cgraph.md5 | 1 + ...a28ba7c7791236d03b1fa9f81aa6a71_cgraph.svg | 192 + ...28ba7c7791236d03b1fa9f81aa6a71_icgraph.map | 33 + ...28ba7c7791236d03b1fa9f81aa6a71_icgraph.md5 | 1 + ...28ba7c7791236d03b1fa9f81aa6a71_icgraph.svg | 293 + ...e8deff7c038efae14d1cc98e4ab109f_cgraph.map | 20 + ...e8deff7c038efae14d1cc98e4ab109f_cgraph.md5 | 1 + ...e8deff7c038efae14d1cc98e4ab109f_cgraph.svg | 174 + ...8deff7c038efae14d1cc98e4ab109f_icgraph.map | 28 + ...8deff7c038efae14d1cc98e4ab109f_icgraph.md5 | 1 + ...8deff7c038efae14d1cc98e4ab109f_icgraph.svg | 248 + ...36fa8eefc3d744aa7248d6786cfee03_cgraph.map | 24 + ...36fa8eefc3d744aa7248d6786cfee03_cgraph.md5 | 1 + ...36fa8eefc3d744aa7248d6786cfee03_cgraph.svg | 210 + ...6fa8eefc3d744aa7248d6786cfee03_icgraph.map | 28 + ...6fa8eefc3d744aa7248d6786cfee03_icgraph.md5 | 1 + ...6fa8eefc3d744aa7248d6786cfee03_icgraph.svg | 248 + ...a525d89ade920512dc65409bc8e85d8_cgraph.map | 24 + ...a525d89ade920512dc65409bc8e85d8_cgraph.md5 | 1 + ...a525d89ade920512dc65409bc8e85d8_cgraph.svg | 210 + ...525d89ade920512dc65409bc8e85d8_icgraph.map | 21 + ...525d89ade920512dc65409bc8e85d8_icgraph.md5 | 1 + ...525d89ade920512dc65409bc8e85d8_icgraph.svg | 185 + ...f3886cdcb91a28bf13b07aae8b2285_icgraph.map | 33 + ...f3886cdcb91a28bf13b07aae8b2285_icgraph.md5 | 1 + ...f3886cdcb91a28bf13b07aae8b2285_icgraph.svg | 293 + ...7aa94ad075bf97a566f01f899fcd859_cgraph.map | 26 + ...7aa94ad075bf97a566f01f899fcd859_cgraph.md5 | 1 + ...7aa94ad075bf97a566f01f899fcd859_cgraph.svg | 228 + ...aa94ad075bf97a566f01f899fcd859_icgraph.map | 26 + ...aa94ad075bf97a566f01f899fcd859_icgraph.md5 | 1 + ...aa94ad075bf97a566f01f899fcd859_icgraph.svg | 230 + ...f9af0356940583dfe3045e693cc8a45_cgraph.map | 5 + ...f9af0356940583dfe3045e693cc8a45_cgraph.md5 | 1 + ...f9af0356940583dfe3045e693cc8a45_cgraph.svg | 39 + ...9af0356940583dfe3045e693cc8a45_icgraph.map | 33 + ...9af0356940583dfe3045e693cc8a45_icgraph.md5 | 1 + ...9af0356940583dfe3045e693cc8a45_icgraph.svg | 293 + a01382_source.html | 156 + a01383.map | 5 + a01383.md5 | 1 + a01383.svg | 39 + a01384.map | 9 + a01384.md5 | 1 + a01384.svg | 75 + a01385.html | 671 ++ a01385.js | 17 + ...0a9ced40b89f30fa314c4534bfb0922_cgraph.map | 5 + ...0a9ced40b89f30fa314c4534bfb0922_cgraph.md5 | 1 + ...0a9ced40b89f30fa314c4534bfb0922_cgraph.svg | 39 + ...85e5516222ab7e7fc354c614760ec5_icgraph.map | 110 + ...85e5516222ab7e7fc354c614760ec5_icgraph.md5 | 1 + ...85e5516222ab7e7fc354c614760ec5_icgraph.svg | 991 +++ ...cace11e17315f11b44dd9e3eabbf72a_cgraph.map | 5 + ...cace11e17315f11b44dd9e3eabbf72a_cgraph.md5 | 1 + ...cace11e17315f11b44dd9e3eabbf72a_cgraph.svg | 39 + ...ace11e17315f11b44dd9e3eabbf72a_icgraph.map | 5 + ...ace11e17315f11b44dd9e3eabbf72a_icgraph.md5 | 1 + ...ace11e17315f11b44dd9e3eabbf72a_icgraph.svg | 40 + ...f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.map | 102 + ...f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.md5 | 1 + ...f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.svg | 916 ++ ...c44e095ebfd8721de878c42abcbbdc_icgraph.map | 19 + ...c44e095ebfd8721de878c42abcbbdc_icgraph.md5 | 1 + ...c44e095ebfd8721de878c42abcbbdc_icgraph.svg | 166 + ...36e49d2e694b1da49504a689ed48e4a_cgraph.map | 5 + ...36e49d2e694b1da49504a689ed48e4a_cgraph.md5 | 1 + ...36e49d2e694b1da49504a689ed48e4a_cgraph.svg | 39 + ...6e49d2e694b1da49504a689ed48e4a_icgraph.map | 41 + ...6e49d2e694b1da49504a689ed48e4a_icgraph.md5 | 1 + ...6e49d2e694b1da49504a689ed48e4a_icgraph.svg | 365 + ...06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.map | 5 + ...06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.md5 | 1 + ...06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.svg | 39 + ...6a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.map | 125 + ...6a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.md5 | 1 + ...6a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.svg | 1125 +++ ...af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.map | 5 + ...af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.md5 | 1 + ...af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.svg | 40 + a01385_source.html | 175 + a01386.map | 7 + a01386.md5 | 1 + a01386.svg | 57 + a01387.map | 69 + a01387.md5 | 1 + a01387.svg | 615 ++ a01388.html | 408 + a01388.js | 12 + ...c353188156b1df4463a5fc7f7bc25e_icgraph.map | 11 + ...c353188156b1df4463a5fc7f7bc25e_icgraph.md5 | 1 + ...c353188156b1df4463a5fc7f7bc25e_icgraph.svg | 93 + ...84d59bded666fdcf1a8e949cb56a6a_icgraph.map | 21 + ...84d59bded666fdcf1a8e949cb56a6a_icgraph.md5 | 1 + ...84d59bded666fdcf1a8e949cb56a6a_icgraph.svg | 183 + ...ae55b169121c4851bb7c0adf4eac47_icgraph.map | 22 + ...ae55b169121c4851bb7c0adf4eac47_icgraph.md5 | 1 + ...ae55b169121c4851bb7c0adf4eac47_icgraph.svg | 193 + a01388_source.html | 160 + a01389.map | 16 + a01389.md5 | 1 + a01389.svg | 138 + a01390.map | 41 + a01390.md5 | 1 + a01390.svg | 363 + a01391.html | 270 + a01391.js | 7 + a01391_source.html | 149 + a01392.map | 9 + a01392.md5 | 1 + a01392.svg | 75 + a01393.map | 86 + a01393.md5 | 1 + a01393.svg | 768 ++ a01394.html | 476 ++ a01394.js | 12 + ...44807fe9679a9a5fbf1bfc9dd78dc6_icgraph.map | 35 + ...44807fe9679a9a5fbf1bfc9dd78dc6_icgraph.md5 | 1 + ...44807fe9679a9a5fbf1bfc9dd78dc6_icgraph.svg | 311 + ...86232272942235166bf349ef7aacf9d_cgraph.map | 5 + ...86232272942235166bf349ef7aacf9d_cgraph.md5 | 1 + ...86232272942235166bf349ef7aacf9d_cgraph.svg | 39 + ...6232272942235166bf349ef7aacf9d_icgraph.map | 5 + ...6232272942235166bf349ef7aacf9d_icgraph.md5 | 1 + ...6232272942235166bf349ef7aacf9d_icgraph.svg | 39 + ...809d11e47f180968c23903fed321ef_icgraph.map | 23 + ...809d11e47f180968c23903fed321ef_icgraph.md5 | 1 + ...809d11e47f180968c23903fed321ef_icgraph.svg | 203 + ...bd28e423e19877e5abcb1fe3d12c03_icgraph.map | 21 + ...bd28e423e19877e5abcb1fe3d12c03_icgraph.md5 | 1 + ...bd28e423e19877e5abcb1fe3d12c03_icgraph.svg | 185 + ...c3bfbf6daaf8172e131aa23dc7393c_icgraph.map | 58 + ...c3bfbf6daaf8172e131aa23dc7393c_icgraph.md5 | 1 + ...c3bfbf6daaf8172e131aa23dc7393c_icgraph.svg | 518 ++ ...e493d3889d6f207d1e122cf4bb1b8c_icgraph.map | 62 + ...e493d3889d6f207d1e122cf4bb1b8c_icgraph.md5 | 1 + ...e493d3889d6f207d1e122cf4bb1b8c_icgraph.svg | 554 ++ ...8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.map | 5 + ...8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.md5 | 1 + ...8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.svg | 39 + ...ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.map | 21 + ...ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.md5 | 1 + ...ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.svg | 185 + a01394_source.html | 151 + a01395.map | 7 + a01395.md5 | 1 + a01395.svg | 57 + a01396.map | 13 + a01396.md5 | 1 + a01396.svg | 111 + a01397.html | 570 ++ a01397.js | 16 + a01397_source.html | 160 + a01398.map | 20 + a01398.md5 | 1 + a01398.svg | 174 + a01399.map | 9 + a01399.md5 | 1 + a01399.svg | 75 + a01400.html | 879 ++ a01400.js | 22 + ...706a66a62ca8710342ac1c097b703ed_cgraph.map | 85 + ...706a66a62ca8710342ac1c097b703ed_cgraph.md5 | 1 + ...706a66a62ca8710342ac1c097b703ed_cgraph.svg | 761 ++ ...c89dce1734d8093f7a443d71a5ebb94_cgraph.map | 5 + ...c89dce1734d8093f7a443d71a5ebb94_cgraph.md5 | 1 + ...c89dce1734d8093f7a443d71a5ebb94_cgraph.svg | 39 + ...0082ae256676bd58f960128433237c1_cgraph.map | 5 + ...0082ae256676bd58f960128433237c1_cgraph.md5 | 1 + ...0082ae256676bd58f960128433237c1_cgraph.svg | 39 + ...15e79d6e82e45f24bcd1742c146a0da_cgraph.map | 17 + ...15e79d6e82e45f24bcd1742c146a0da_cgraph.md5 | 1 + ...15e79d6e82e45f24bcd1742c146a0da_cgraph.svg | 147 + ...03b6bc6d5be49fd8715f62c7174c28e_cgraph.map | 19 + ...03b6bc6d5be49fd8715f62c7174c28e_cgraph.md5 | 1 + ...03b6bc6d5be49fd8715f62c7174c28e_cgraph.svg | 165 + ...3b6bc6d5be49fd8715f62c7174c28e_icgraph.map | 5 + ...3b6bc6d5be49fd8715f62c7174c28e_icgraph.md5 | 1 + ...3b6bc6d5be49fd8715f62c7174c28e_icgraph.svg | 40 + ...c0d51ef869f0cebc943169142626b6_icgraph.map | 8 + ...c0d51ef869f0cebc943169142626b6_icgraph.md5 | 1 + ...c0d51ef869f0cebc943169142626b6_icgraph.svg | 66 + ...0ddc33d183998387064192c52d7ca5_icgraph.map | 5 + ...0ddc33d183998387064192c52d7ca5_icgraph.md5 | 1 + ...0ddc33d183998387064192c52d7ca5_icgraph.svg | 39 + ...443355ad3d09b08427e538d75cab254_cgraph.map | 17 + ...443355ad3d09b08427e538d75cab254_cgraph.md5 | 1 + ...443355ad3d09b08427e538d75cab254_cgraph.svg | 147 + ...164c99d44fec2d7296a76c8926eb585_cgraph.map | 13 + ...164c99d44fec2d7296a76c8926eb585_cgraph.md5 | 1 + ...164c99d44fec2d7296a76c8926eb585_cgraph.svg | 112 + ...3f384ca4812e46dedce753be42654df_cgraph.map | 25 + ...3f384ca4812e46dedce753be42654df_cgraph.md5 | 1 + ...3f384ca4812e46dedce753be42654df_cgraph.svg | 219 + ...f384ca4812e46dedce753be42654df_icgraph.map | 5 + ...f384ca4812e46dedce753be42654df_icgraph.md5 | 1 + ...f384ca4812e46dedce753be42654df_icgraph.svg | 39 + ...6afd8cc035237c811ce6a1b7727acc3_cgraph.map | 15 + ...6afd8cc035237c811ce6a1b7727acc3_cgraph.md5 | 1 + ...6afd8cc035237c811ce6a1b7727acc3_cgraph.svg | 129 + ...afd8cc035237c811ce6a1b7727acc3_icgraph.map | 22 + ...afd8cc035237c811ce6a1b7727acc3_icgraph.md5 | 1 + ...afd8cc035237c811ce6a1b7727acc3_icgraph.svg | 193 + ...864d2fab73a39a8c98356f7bca1304_icgraph.map | 19 + ...864d2fab73a39a8c98356f7bca1304_icgraph.md5 | 1 + ...864d2fab73a39a8c98356f7bca1304_icgraph.svg | 165 + ...0b933c02a24d69c1efa40179f60288f_cgraph.map | 35 + ...0b933c02a24d69c1efa40179f60288f_cgraph.md5 | 1 + ...0b933c02a24d69c1efa40179f60288f_cgraph.svg | 310 + ...b933c02a24d69c1efa40179f60288f_icgraph.map | 13 + ...b933c02a24d69c1efa40179f60288f_icgraph.md5 | 1 + ...b933c02a24d69c1efa40179f60288f_icgraph.svg | 111 + a01400_source.html | 226 + a01401.map | 50 + a01401.md5 | 1 + a01401.svg | 444 + a01402.map | 36 + a01402.md5 | 1 + a01402.svg | 318 + a01403.html | 233 + a01403.js | 6 + ...229452e0f07cdd4b0b06fbdc2a5d61_icgraph.map | 11 + ...229452e0f07cdd4b0b06fbdc2a5d61_icgraph.md5 | 1 + ...229452e0f07cdd4b0b06fbdc2a5d61_icgraph.svg | 93 + ...dc678cace81fa112fa6baad1c190539_cgraph.map | 5 + ...dc678cace81fa112fa6baad1c190539_cgraph.md5 | 1 + ...dc678cace81fa112fa6baad1c190539_cgraph.svg | 39 + a01403_source.html | 131 + a01404.map | 9 + a01404.md5 | 1 + a01404.svg | 75 + a01405.map | 63 + a01405.md5 | 1 + a01405.svg | 561 ++ a01406.html | 1041 +++ a01406.js | 29 + ...13a3c52b0c3b4f3b390921ee4c5022e_cgraph.map | 29 + ...13a3c52b0c3b4f3b390921ee4c5022e_cgraph.md5 | 1 + ...13a3c52b0c3b4f3b390921ee4c5022e_cgraph.svg | 255 + ...8d07d808917e0b971d46332e9e64da4_cgraph.map | 30 + ...8d07d808917e0b971d46332e9e64da4_cgraph.md5 | 1 + ...8d07d808917e0b971d46332e9e64da4_cgraph.svg | 264 + ...d07d808917e0b971d46332e9e64da4_icgraph.map | 20 + ...d07d808917e0b971d46332e9e64da4_icgraph.md5 | 1 + ...d07d808917e0b971d46332e9e64da4_icgraph.svg | 175 + ...dc669466d6f52d5be8af2d991512ac2_cgraph.map | 30 + ...dc669466d6f52d5be8af2d991512ac2_cgraph.md5 | 1 + ...dc669466d6f52d5be8af2d991512ac2_cgraph.svg | 264 + ...c669466d6f52d5be8af2d991512ac2_icgraph.map | 20 + ...c669466d6f52d5be8af2d991512ac2_icgraph.md5 | 1 + ...c669466d6f52d5be8af2d991512ac2_icgraph.svg | 175 + ...9e660e3e344bc697d98174059ead3c_icgraph.map | 19 + ...9e660e3e344bc697d98174059ead3c_icgraph.md5 | 1 + ...9e660e3e344bc697d98174059ead3c_icgraph.svg | 166 + ...26989df37e605824d846b7ba54b43ea_cgraph.map | 31 + ...26989df37e605824d846b7ba54b43ea_cgraph.md5 | 1 + ...26989df37e605824d846b7ba54b43ea_cgraph.svg | 273 + ...6989df37e605824d846b7ba54b43ea_icgraph.map | 7 + ...6989df37e605824d846b7ba54b43ea_icgraph.md5 | 1 + ...6989df37e605824d846b7ba54b43ea_icgraph.svg | 57 + ...96bc4319d0f6c6baa7d797a8df6b56f_cgraph.map | 110 + ...96bc4319d0f6c6baa7d797a8df6b56f_cgraph.md5 | 1 + ...96bc4319d0f6c6baa7d797a8df6b56f_cgraph.svg | 984 +++ ...6bc4319d0f6c6baa7d797a8df6b56f_icgraph.map | 5 + ...6bc4319d0f6c6baa7d797a8df6b56f_icgraph.md5 | 1 + ...6bc4319d0f6c6baa7d797a8df6b56f_icgraph.svg | 39 + ...c43ea323f2de1675b00e48330a12e2a_cgraph.map | 7 + ...c43ea323f2de1675b00e48330a12e2a_cgraph.md5 | 1 + ...c43ea323f2de1675b00e48330a12e2a_cgraph.svg | 57 + ...d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.map | 122 + ...d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.md5 | 1 + ...d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.svg | 1092 +++ ...995f71dba475975efc37756783cfce9_cgraph.map | 96 + ...995f71dba475975efc37756783cfce9_cgraph.md5 | 1 + ...995f71dba475975efc37756783cfce9_cgraph.svg | 858 ++ ...95f71dba475975efc37756783cfce9_icgraph.map | 5 + ...95f71dba475975efc37756783cfce9_icgraph.md5 | 1 + ...95f71dba475975efc37756783cfce9_icgraph.svg | 39 + ...6e0520e5569748ce1172bafca24fafe_cgraph.map | 23 + ...6e0520e5569748ce1172bafca24fafe_cgraph.md5 | 1 + ...6e0520e5569748ce1172bafca24fafe_cgraph.svg | 201 + ...a0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.map | 5 + ...a0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.md5 | 1 + ...a0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.svg | 39 + ...4f10e1a58d989e93ad8d6318f9d4162_cgraph.map | 5 + ...4f10e1a58d989e93ad8d6318f9d4162_cgraph.md5 | 1 + ...4f10e1a58d989e93ad8d6318f9d4162_cgraph.svg | 39 + ...efe449d4a278e9fc4b9c5f7e31000a1_cgraph.map | 33 + ...efe449d4a278e9fc4b9c5f7e31000a1_cgraph.md5 | 1 + ...efe449d4a278e9fc4b9c5f7e31000a1_cgraph.svg | 291 + ...fe449d4a278e9fc4b9c5f7e31000a1_icgraph.map | 5 + ...fe449d4a278e9fc4b9c5f7e31000a1_icgraph.md5 | 1 + ...fe449d4a278e9fc4b9c5f7e31000a1_icgraph.svg | 39 + a01406_source.html | 246 + a01407.map | 56 + a01407.md5 | 1 + a01407.svg | 498 ++ a01408.map | 14 + a01408.md5 | 1 + a01408.svg | 120 + a01409.html | 439 + a01409.js | 10 + ...74d47b5c2c866aa3a61bec0dde4e0d_icgraph.map | 9 + ...74d47b5c2c866aa3a61bec0dde4e0d_icgraph.md5 | 1 + ...74d47b5c2c866aa3a61bec0dde4e0d_icgraph.svg | 75 + ...b65f90a821aca384f0ca1cff7bd1846_cgraph.map | 27 + ...b65f90a821aca384f0ca1cff7bd1846_cgraph.md5 | 1 + ...b65f90a821aca384f0ca1cff7bd1846_cgraph.svg | 237 + ...65f90a821aca384f0ca1cff7bd1846_icgraph.map | 27 + ...65f90a821aca384f0ca1cff7bd1846_icgraph.md5 | 1 + ...65f90a821aca384f0ca1cff7bd1846_icgraph.svg | 238 + ...1f7fb20b3a23b388bea24f1b46a33a8_cgraph.map | 115 + ...1f7fb20b3a23b388bea24f1b46a33a8_cgraph.md5 | 1 + ...1f7fb20b3a23b388bea24f1b46a33a8_cgraph.svg | 1029 +++ ...8ede6fc8d207004035f45d945688d2c_cgraph.map | 110 + ...8ede6fc8d207004035f45d945688d2c_cgraph.md5 | 1 + ...8ede6fc8d207004035f45d945688d2c_cgraph.svg | 985 +++ ...eaab7d93372f0752d59c70d9c5940e7_cgraph.map | 114 + ...eaab7d93372f0752d59c70d9c5940e7_cgraph.md5 | 1 + ...eaab7d93372f0752d59c70d9c5940e7_cgraph.svg | 1020 +++ ...aab7d93372f0752d59c70d9c5940e7_icgraph.map | 5 + ...aab7d93372f0752d59c70d9c5940e7_icgraph.md5 | 1 + ...aab7d93372f0752d59c70d9c5940e7_icgraph.svg | 39 + a01409_source.html | 148 + a01410.map | 58 + a01410.md5 | 1 + a01410.svg | 516 ++ a01411.map | 5 + a01411.md5 | 1 + a01411.svg | 39 + a01412.html | 795 ++ a01412.js | 27 + ...a0b147b7fc892c291afe60cb0fa2c1c_cgraph.map | 21 + ...a0b147b7fc892c291afe60cb0fa2c1c_cgraph.md5 | 1 + ...a0b147b7fc892c291afe60cb0fa2c1c_cgraph.svg | 184 + ...0b147b7fc892c291afe60cb0fa2c1c_icgraph.map | 7 + ...0b147b7fc892c291afe60cb0fa2c1c_icgraph.md5 | 1 + ...0b147b7fc892c291afe60cb0fa2c1c_icgraph.svg | 59 + ...5682d9ee7b1c993dbf64d4f3de2d9f_icgraph.map | 7 + ...5682d9ee7b1c993dbf64d4f3de2d9f_icgraph.md5 | 1 + ...5682d9ee7b1c993dbf64d4f3de2d9f_icgraph.svg | 57 + ...02bbd6fa197c2c48d527325e5e2cf5b_cgraph.map | 29 + ...02bbd6fa197c2c48d527325e5e2cf5b_cgraph.md5 | 1 + ...02bbd6fa197c2c48d527325e5e2cf5b_cgraph.svg | 255 + ...2bbd6fa197c2c48d527325e5e2cf5b_icgraph.map | 39 + ...2bbd6fa197c2c48d527325e5e2cf5b_icgraph.md5 | 1 + ...2bbd6fa197c2c48d527325e5e2cf5b_icgraph.svg | 346 + ...8fd893484b6e2d67d8b372b508d14f_icgraph.map | 29 + ...8fd893484b6e2d67d8b372b508d14f_icgraph.md5 | 1 + ...8fd893484b6e2d67d8b372b508d14f_icgraph.svg | 256 + ...c73bee66b4cb5a64d949b6fbbd64498_cgraph.map | 5 + ...c73bee66b4cb5a64d949b6fbbd64498_cgraph.md5 | 1 + ...c73bee66b4cb5a64d949b6fbbd64498_cgraph.svg | 39 + ...6352ba91ba482c6688b7364d10bf956_cgraph.map | 7 + ...6352ba91ba482c6688b7364d10bf956_cgraph.md5 | 1 + ...6352ba91ba482c6688b7364d10bf956_cgraph.svg | 57 + ...352ba91ba482c6688b7364d10bf956_icgraph.map | 23 + ...352ba91ba482c6688b7364d10bf956_icgraph.md5 | 1 + ...352ba91ba482c6688b7364d10bf956_icgraph.svg | 203 + ...55b8011e6d7c9b28c7df40065efb28_icgraph.map | 48 + ...55b8011e6d7c9b28c7df40065efb28_icgraph.md5 | 1 + ...55b8011e6d7c9b28c7df40065efb28_icgraph.svg | 427 + ...50d1c54fe430c1294b9c8a9d3e1466_icgraph.map | 28 + ...50d1c54fe430c1294b9c8a9d3e1466_icgraph.md5 | 1 + ...50d1c54fe430c1294b9c8a9d3e1466_icgraph.svg | 247 + ...03d3cde2d1354544cd082482c3f185_icgraph.map | 28 + ...03d3cde2d1354544cd082482c3f185_icgraph.md5 | 1 + ...03d3cde2d1354544cd082482c3f185_icgraph.svg | 247 + ...e7e4a63c40fbcaae742b8de8693483f_cgraph.map | 21 + ...e7e4a63c40fbcaae742b8de8693483f_cgraph.md5 | 1 + ...e7e4a63c40fbcaae742b8de8693483f_cgraph.svg | 183 + ...7e4a63c40fbcaae742b8de8693483f_icgraph.map | 51 + ...7e4a63c40fbcaae742b8de8693483f_icgraph.md5 | 1 + ...7e4a63c40fbcaae742b8de8693483f_icgraph.svg | 454 + a01412_source.html | 216 + a01413.map | 18 + a01413.md5 | 1 + a01413.svg | 156 + a01414.map | 64 + a01414.md5 | 1 + a01414.svg | 570 ++ a01415.html | 356 + a01415.js | 8 + ...0352290ef80c644620afca91f719cfe_cgraph.map | 5 + ...0352290ef80c644620afca91f719cfe_cgraph.md5 | 1 + ...0352290ef80c644620afca91f719cfe_cgraph.svg | 39 + ...352290ef80c644620afca91f719cfe_icgraph.map | 5 + ...352290ef80c644620afca91f719cfe_icgraph.md5 | 1 + ...352290ef80c644620afca91f719cfe_icgraph.svg | 39 + ...6ac572ea8f5f613129192c47d598818_cgraph.map | 31 + ...6ac572ea8f5f613129192c47d598818_cgraph.md5 | 1 + ...6ac572ea8f5f613129192c47d598818_cgraph.svg | 273 + ...ac572ea8f5f613129192c47d598818_icgraph.map | 5 + ...ac572ea8f5f613129192c47d598818_icgraph.md5 | 1 + ...ac572ea8f5f613129192c47d598818_icgraph.svg | 39 + ...52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.map | 5 + ...52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.md5 | 1 + ...52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.svg | 39 + ...67ebc6d04dedfc104b4a61233d6eab4_cgraph.map | 7 + ...67ebc6d04dedfc104b4a61233d6eab4_cgraph.md5 | 1 + ...67ebc6d04dedfc104b4a61233d6eab4_cgraph.svg | 57 + a01415_source.html | 157 + a01416.map | 34 + a01416.md5 | 1 + a01416.svg | 300 + a01417.map | 30 + a01417.md5 | 1 + a01417.svg | 264 + a01418.html | 173 + a01418.js | 4 + ...39e69ccc46ae7f3d6b9992866040bf9_cgraph.map | 115 + ...39e69ccc46ae7f3d6b9992866040bf9_cgraph.md5 | 1 + ...39e69ccc46ae7f3d6b9992866040bf9_cgraph.svg | 1029 +++ ...9e69ccc46ae7f3d6b9992866040bf9_icgraph.map | 12 + ...9e69ccc46ae7f3d6b9992866040bf9_icgraph.md5 | 1 + ...9e69ccc46ae7f3d6b9992866040bf9_icgraph.svg | 103 + a01418_source.html | 117 + a01419.map | 5 + a01419.md5 | 1 + a01419.svg | 39 + a01420.map | 11 + a01420.md5 | 1 + a01420.svg | 93 + a01421.html | 433 + a01421.js | 10 + ...d3707df989265f8cf380acdef95eb02_cgraph.map | 13 + ...d3707df989265f8cf380acdef95eb02_cgraph.md5 | 1 + ...d3707df989265f8cf380acdef95eb02_cgraph.svg | 111 + ...3707df989265f8cf380acdef95eb02_icgraph.map | 13 + ...3707df989265f8cf380acdef95eb02_icgraph.md5 | 1 + ...3707df989265f8cf380acdef95eb02_icgraph.svg | 112 + ...7bee94f7a23281c8b2b72ec433f6059_cgraph.map | 61 + ...7bee94f7a23281c8b2b72ec433f6059_cgraph.md5 | 1 + ...7bee94f7a23281c8b2b72ec433f6059_cgraph.svg | 543 ++ ...bee94f7a23281c8b2b72ec433f6059_icgraph.map | 18 + ...bee94f7a23281c8b2b72ec433f6059_icgraph.md5 | 1 + ...bee94f7a23281c8b2b72ec433f6059_icgraph.svg | 157 + ...6456b4307a70983ebe554fa712d856e_cgraph.map | 7 + ...6456b4307a70983ebe554fa712d856e_cgraph.md5 | 1 + ...6456b4307a70983ebe554fa712d856e_cgraph.svg | 57 + ...cb73b347940187fb3399f51b1a55b7_icgraph.map | 19 + ...cb73b347940187fb3399f51b1a55b7_icgraph.md5 | 1 + ...cb73b347940187fb3399f51b1a55b7_icgraph.svg | 166 + ...e08f924cb86d1310099621564536657_cgraph.map | 23 + ...e08f924cb86d1310099621564536657_cgraph.md5 | 1 + ...e08f924cb86d1310099621564536657_cgraph.svg | 201 + ...08f924cb86d1310099621564536657_icgraph.map | 18 + ...08f924cb86d1310099621564536657_icgraph.md5 | 1 + ...08f924cb86d1310099621564536657_icgraph.svg | 157 + a01421_source.html | 178 + a01422.map | 38 + a01422.md5 | 1 + a01422.svg | 336 + a01423.map | 25 + a01423.md5 | 1 + a01423.svg | 219 + a01424.html | 499 ++ a01424.js | 13 + ...8da9ec8e2f9a4470f10ee3059bd593_icgraph.map | 27 + ...8da9ec8e2f9a4470f10ee3059bd593_icgraph.md5 | 1 + ...8da9ec8e2f9a4470f10ee3059bd593_icgraph.svg | 239 + ...2aaf13eb56eb1832e725ef73236116f_cgraph.map | 15 + ...2aaf13eb56eb1832e725ef73236116f_cgraph.md5 | 1 + ...2aaf13eb56eb1832e725ef73236116f_cgraph.svg | 129 + ...aaf13eb56eb1832e725ef73236116f_icgraph.map | 63 + ...aaf13eb56eb1832e725ef73236116f_icgraph.md5 | 1 + ...aaf13eb56eb1832e725ef73236116f_icgraph.svg | 564 ++ ...413a3584787f9b629e54b2ef9439f06_cgraph.map | 17 + ...413a3584787f9b629e54b2ef9439f06_cgraph.md5 | 1 + ...413a3584787f9b629e54b2ef9439f06_cgraph.svg | 147 + ...13a3584787f9b629e54b2ef9439f06_icgraph.map | 46 + ...13a3584787f9b629e54b2ef9439f06_icgraph.md5 | 1 + ...13a3584787f9b629e54b2ef9439f06_icgraph.svg | 409 + ...f84ea82594c4dbe91cf602ee078e04d_cgraph.map | 15 + ...f84ea82594c4dbe91cf602ee078e04d_cgraph.md5 | 1 + ...f84ea82594c4dbe91cf602ee078e04d_cgraph.svg | 129 + ...84ea82594c4dbe91cf602ee078e04d_icgraph.map | 25 + ...84ea82594c4dbe91cf602ee078e04d_icgraph.md5 | 1 + ...84ea82594c4dbe91cf602ee078e04d_icgraph.svg | 221 + ...1f2d1dc9f842b2eed7aa7e80607e29_icgraph.map | 7 + ...1f2d1dc9f842b2eed7aa7e80607e29_icgraph.md5 | 1 + ...1f2d1dc9f842b2eed7aa7e80607e29_icgraph.svg | 57 + a01424_source.html | 172 + a01425.map | 5 + a01425.md5 | 1 + a01425.svg | 39 + a01426.map | 40 + a01426.md5 | 1 + a01426.svg | 354 + a01427.html | 722 ++ a01427.js | 23 + ...e57dc466fca84c701d8fd6a84cb6789_cgraph.map | 5 + ...e57dc466fca84c701d8fd6a84cb6789_cgraph.md5 | 1 + ...e57dc466fca84c701d8fd6a84cb6789_cgraph.svg | 39 + ...57dc466fca84c701d8fd6a84cb6789_icgraph.map | 5 + ...57dc466fca84c701d8fd6a84cb6789_icgraph.md5 | 1 + ...57dc466fca84c701d8fd6a84cb6789_icgraph.svg | 39 + ...3ddb422946cf774c687c1ab63dcda15_cgraph.map | 65 + ...3ddb422946cf774c687c1ab63dcda15_cgraph.md5 | 1 + ...3ddb422946cf774c687c1ab63dcda15_cgraph.svg | 581 ++ ...ddb422946cf774c687c1ab63dcda15_icgraph.map | 9 + ...ddb422946cf774c687c1ab63dcda15_icgraph.md5 | 1 + ...ddb422946cf774c687c1ab63dcda15_icgraph.svg | 75 + ...b82433bc8c7d7f03683ac521a3679fa_cgraph.map | 19 + ...b82433bc8c7d7f03683ac521a3679fa_cgraph.md5 | 1 + ...b82433bc8c7d7f03683ac521a3679fa_cgraph.svg | 165 + ...82433bc8c7d7f03683ac521a3679fa_icgraph.map | 20 + ...82433bc8c7d7f03683ac521a3679fa_icgraph.md5 | 1 + ...82433bc8c7d7f03683ac521a3679fa_icgraph.svg | 175 + ...2fa3d6e6c761009b464cc0fbedc6a16_cgraph.map | 7 + ...2fa3d6e6c761009b464cc0fbedc6a16_cgraph.md5 | 1 + ...2fa3d6e6c761009b464cc0fbedc6a16_cgraph.svg | 57 + ...fa3d6e6c761009b464cc0fbedc6a16_icgraph.map | 19 + ...fa3d6e6c761009b464cc0fbedc6a16_icgraph.md5 | 1 + ...fa3d6e6c761009b464cc0fbedc6a16_icgraph.svg | 165 + ...1eb3edd264c847c36e9456b2598452_icgraph.map | 21 + ...1eb3edd264c847c36e9456b2598452_icgraph.md5 | 1 + ...1eb3edd264c847c36e9456b2598452_icgraph.svg | 183 + a01427_source.html | 215 + a01428.map | 50 + a01428.md5 | 1 + a01428.svg | 444 + a01429.map | 36 + a01429.md5 | 1 + a01429.svg | 318 + a01433.html | 913 ++ a01433.js | 19 + ...fa370eee5160963e617d1daf1c07363_cgraph.map | 13 + ...fa370eee5160963e617d1daf1c07363_cgraph.md5 | 1 + ...fa370eee5160963e617d1daf1c07363_cgraph.svg | 111 + ...a370eee5160963e617d1daf1c07363_icgraph.map | 97 + ...a370eee5160963e617d1daf1c07363_icgraph.md5 | 1 + ...a370eee5160963e617d1daf1c07363_icgraph.svg | 871 ++ ...bfeaeb9b81855e640d7a67cc9d92b17_cgraph.map | 9 + ...bfeaeb9b81855e640d7a67cc9d92b17_cgraph.md5 | 1 + ...bfeaeb9b81855e640d7a67cc9d92b17_cgraph.svg | 75 + ...feaeb9b81855e640d7a67cc9d92b17_icgraph.map | 70 + ...feaeb9b81855e640d7a67cc9d92b17_icgraph.md5 | 1 + ...feaeb9b81855e640d7a67cc9d92b17_icgraph.svg | 628 ++ ...a7d01fc7720e936a430efc09d094c6c_cgraph.map | 7 + ...a7d01fc7720e936a430efc09d094c6c_cgraph.md5 | 1 + ...a7d01fc7720e936a430efc09d094c6c_cgraph.svg | 57 + ...7d01fc7720e936a430efc09d094c6c_icgraph.map | 31 + ...7d01fc7720e936a430efc09d094c6c_icgraph.md5 | 1 + ...7d01fc7720e936a430efc09d094c6c_icgraph.svg | 275 + ...bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.map | 5 + ...bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.md5 | 1 + ...bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.svg | 39 + ...bcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.map | 112 + ...bcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.md5 | 1 + ...bcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.svg | 1010 +++ ...5a896fb606c2aa66a5a4c2af59ce494_cgraph.map | 5 + ...5a896fb606c2aa66a5a4c2af59ce494_cgraph.md5 | 1 + ...5a896fb606c2aa66a5a4c2af59ce494_cgraph.svg | 39 + ...a896fb606c2aa66a5a4c2af59ce494_icgraph.map | 95 + ...a896fb606c2aa66a5a4c2af59ce494_icgraph.md5 | 1 + ...a896fb606c2aa66a5a4c2af59ce494_icgraph.svg | 853 ++ ...ab7c7fe9cb93434dde72a4e464a7e69_cgraph.map | 17 + ...ab7c7fe9cb93434dde72a4e464a7e69_cgraph.md5 | 1 + ...ab7c7fe9cb93434dde72a4e464a7e69_cgraph.svg | 147 + ...b7c7fe9cb93434dde72a4e464a7e69_icgraph.map | 72 + ...b7c7fe9cb93434dde72a4e464a7e69_icgraph.md5 | 1 + ...b7c7fe9cb93434dde72a4e464a7e69_icgraph.svg | 646 ++ ...2e422aab2fcfa562795beb2843e8019_cgraph.map | 38 + ...2e422aab2fcfa562795beb2843e8019_cgraph.md5 | 1 + ...2e422aab2fcfa562795beb2843e8019_cgraph.svg | 336 + ...e422aab2fcfa562795beb2843e8019_icgraph.map | 23 + ...e422aab2fcfa562795beb2843e8019_icgraph.md5 | 1 + ...e422aab2fcfa562795beb2843e8019_icgraph.svg | 203 + ...728117d73179c279de49e01ae905dda_cgraph.map | 5 + ...728117d73179c279de49e01ae905dda_cgraph.md5 | 1 + ...728117d73179c279de49e01ae905dda_cgraph.svg | 39 + ...28117d73179c279de49e01ae905dda_icgraph.map | 85 + ...28117d73179c279de49e01ae905dda_icgraph.md5 | 1 + ...28117d73179c279de49e01ae905dda_icgraph.svg | 763 ++ ...7fbf1f43289d3e0e862b315f00e35e2_cgraph.map | 13 + ...7fbf1f43289d3e0e862b315f00e35e2_cgraph.md5 | 1 + ...7fbf1f43289d3e0e862b315f00e35e2_cgraph.svg | 111 + ...fbf1f43289d3e0e862b315f00e35e2_icgraph.map | 29 + ...fbf1f43289d3e0e862b315f00e35e2_icgraph.md5 | 1 + ...fbf1f43289d3e0e862b315f00e35e2_icgraph.svg | 257 + ...1d30ecbf6bff6457b680aa940281072_cgraph.map | 5 + ...1d30ecbf6bff6457b680aa940281072_cgraph.md5 | 1 + ...1d30ecbf6bff6457b680aa940281072_cgraph.svg | 39 + ...d30ecbf6bff6457b680aa940281072_icgraph.map | 123 + ...d30ecbf6bff6457b680aa940281072_icgraph.md5 | 1 + ...d30ecbf6bff6457b680aa940281072_icgraph.svg | 1109 +++ ...baa29dfccfdfe6e3fe69a1d001c05b5_cgraph.map | 36 + ...baa29dfccfdfe6e3fe69a1d001c05b5_cgraph.md5 | 1 + ...baa29dfccfdfe6e3fe69a1d001c05b5_cgraph.svg | 318 + ...aa29dfccfdfe6e3fe69a1d001c05b5_icgraph.map | 21 + ...aa29dfccfdfe6e3fe69a1d001c05b5_icgraph.md5 | 1 + ...aa29dfccfdfe6e3fe69a1d001c05b5_icgraph.svg | 185 + ...6ae81847153386c57918f4d91be8a7_icgraph.map | 25 + ...6ae81847153386c57918f4d91be8a7_icgraph.md5 | 1 + ...6ae81847153386c57918f4d91be8a7_icgraph.svg | 221 + ...bf9e72bb6cbd8b9e33489d46c25075d_cgraph.map | 11 + ...bf9e72bb6cbd8b9e33489d46c25075d_cgraph.md5 | 1 + ...bf9e72bb6cbd8b9e33489d46c25075d_cgraph.svg | 93 + ...f9e72bb6cbd8b9e33489d46c25075d_icgraph.map | 118 + ...f9e72bb6cbd8b9e33489d46c25075d_icgraph.md5 | 1 + ...f9e72bb6cbd8b9e33489d46c25075d_icgraph.svg | 1064 +++ ...d6af4d83e934e3e654ead541b15f2d9_cgraph.map | 5 + ...d6af4d83e934e3e654ead541b15f2d9_cgraph.md5 | 1 + ...d6af4d83e934e3e654ead541b15f2d9_cgraph.svg | 39 + ...6af4d83e934e3e654ead541b15f2d9_icgraph.map | 113 + ...6af4d83e934e3e654ead541b15f2d9_icgraph.md5 | 1 + ...6af4d83e934e3e654ead541b15f2d9_icgraph.svg | 1019 +++ ...e9571a12debd9d75a0f8fb93420e268_cgraph.map | 7 + ...e9571a12debd9d75a0f8fb93420e268_cgraph.md5 | 1 + ...e9571a12debd9d75a0f8fb93420e268_cgraph.svg | 57 + ...9571a12debd9d75a0f8fb93420e268_icgraph.map | 7 + ...9571a12debd9d75a0f8fb93420e268_icgraph.md5 | 1 + ...9571a12debd9d75a0f8fb93420e268_icgraph.svg | 57 + a01433_source.html | 175 + a01434.map | 5 + a01434.md5 | 1 + a01434.svg | 39 + a01435.map | 15 + a01435.md5 | 1 + a01435.svg | 129 + a01436.html | 117 + a01436_source.html | 109 + a01438.map | 56 + a01438.md5 | 1 + a01438.svg | 498 ++ a01898.html | 7410 +++++++++++++++++ a01898.js | 285 + ...18ffd885ac72f4cb8ac0f972f6b4900_cgraph.map | 23 + ...18ffd885ac72f4cb8ac0f972f6b4900_cgraph.md5 | 1 + ...18ffd885ac72f4cb8ac0f972f6b4900_cgraph.svg | 201 + ...ce4644252dfd54eb489e77d0adfd20_icgraph.map | 20 + ...ce4644252dfd54eb489e77d0adfd20_icgraph.md5 | 1 + ...ce4644252dfd54eb489e77d0adfd20_icgraph.svg | 174 + ...cb0780a1d244f7541f85d2ece3999fc_cgraph.map | 13 + ...cb0780a1d244f7541f85d2ece3999fc_cgraph.md5 | 1 + ...cb0780a1d244f7541f85d2ece3999fc_cgraph.svg | 111 + ...496157d710a0e954cca1e11fd1713f_icgraph.map | 5 + ...496157d710a0e954cca1e11fd1713f_icgraph.md5 | 1 + ...496157d710a0e954cca1e11fd1713f_icgraph.svg | 39 + ...fab72f66aa46b46a4677be26a1b5d1_icgraph.map | 7 + ...fab72f66aa46b46a4677be26a1b5d1_icgraph.md5 | 1 + ...fab72f66aa46b46a4677be26a1b5d1_icgraph.svg | 57 + ...b80f9ee2d497077e4741029c8e23700_cgraph.map | 14 + ...b80f9ee2d497077e4741029c8e23700_cgraph.md5 | 1 + ...b80f9ee2d497077e4741029c8e23700_cgraph.svg | 120 + ...20e33b2d417733503759c0594f882d_icgraph.map | 19 + ...20e33b2d417733503759c0594f882d_icgraph.md5 | 1 + ...20e33b2d417733503759c0594f882d_icgraph.svg | 165 + ...8b748c27be5a7a156907cc56b8a58e_icgraph.map | 7 + ...8b748c27be5a7a156907cc56b8a58e_icgraph.md5 | 1 + ...8b748c27be5a7a156907cc56b8a58e_icgraph.svg | 57 + ...1418d10b9d8c0b0f76f49700dbfcf7_icgraph.map | 5 + ...1418d10b9d8c0b0f76f49700dbfcf7_icgraph.md5 | 1 + ...1418d10b9d8c0b0f76f49700dbfcf7_icgraph.svg | 39 + ...de256edbbbbd4018cd3563f55ee50ab_cgraph.map | 11 + ...de256edbbbbd4018cd3563f55ee50ab_cgraph.md5 | 1 + ...de256edbbbbd4018cd3563f55ee50ab_cgraph.svg | 93 + ...e256edbbbbd4018cd3563f55ee50ab_icgraph.map | 11 + ...e256edbbbbd4018cd3563f55ee50ab_icgraph.md5 | 1 + ...e256edbbbbd4018cd3563f55ee50ab_icgraph.svg | 93 + ...09388ac4c1fc24595689b52c6698b9_icgraph.map | 7 + ...09388ac4c1fc24595689b52c6698b9_icgraph.md5 | 1 + ...09388ac4c1fc24595689b52c6698b9_icgraph.svg | 57 + ...c6367328ed688a118d756151de3455d_cgraph.map | 5 + ...c6367328ed688a118d756151de3455d_cgraph.md5 | 1 + ...c6367328ed688a118d756151de3455d_cgraph.svg | 39 + ...fa93d3a16f6cd853ca26b8796112770_cgraph.map | 5 + ...fa93d3a16f6cd853ca26b8796112770_cgraph.md5 | 1 + ...fa93d3a16f6cd853ca26b8796112770_cgraph.svg | 39 + ...4d873251d4d24875c099b0fdf89c8d_icgraph.map | 9 + ...4d873251d4d24875c099b0fdf89c8d_icgraph.md5 | 1 + ...4d873251d4d24875c099b0fdf89c8d_icgraph.svg | 75 + ...56a11ac0c98046018896db06f45979_icgraph.map | 7 + ...56a11ac0c98046018896db06f45979_icgraph.md5 | 1 + ...56a11ac0c98046018896db06f45979_icgraph.svg | 57 + ...1f04155b5dceea889ba3cef64968684_cgraph.map | 7 + ...1f04155b5dceea889ba3cef64968684_cgraph.md5 | 1 + ...1f04155b5dceea889ba3cef64968684_cgraph.svg | 57 + ...26dbaacf5aca0a8435e3ce4d44844f4_cgraph.map | 17 + ...26dbaacf5aca0a8435e3ce4d44844f4_cgraph.md5 | 1 + ...26dbaacf5aca0a8435e3ce4d44844f4_cgraph.svg | 147 + ...6dbaacf5aca0a8435e3ce4d44844f4_icgraph.map | 5 + ...6dbaacf5aca0a8435e3ce4d44844f4_icgraph.md5 | 1 + ...6dbaacf5aca0a8435e3ce4d44844f4_icgraph.svg | 39 + ...7bcf00a7c234d2b45926ac02550d634_cgraph.map | 5 + ...7bcf00a7c234d2b45926ac02550d634_cgraph.md5 | 1 + ...7bcf00a7c234d2b45926ac02550d634_cgraph.svg | 39 + ...bcf00a7c234d2b45926ac02550d634_icgraph.map | 7 + ...bcf00a7c234d2b45926ac02550d634_icgraph.md5 | 1 + ...bcf00a7c234d2b45926ac02550d634_icgraph.svg | 57 + ...89f1726140c8d0ef5b54d893d806262_cgraph.map | 7 + ...89f1726140c8d0ef5b54d893d806262_cgraph.md5 | 1 + ...89f1726140c8d0ef5b54d893d806262_cgraph.svg | 57 + ...9e7e77bbc6d5208678b007bf89aab61_cgraph.map | 9 + ...9e7e77bbc6d5208678b007bf89aab61_cgraph.md5 | 1 + ...9e7e77bbc6d5208678b007bf89aab61_cgraph.svg | 75 + ...e02204694aaa24ccc23b1cd2c403b7e_cgraph.map | 17 + ...e02204694aaa24ccc23b1cd2c403b7e_cgraph.md5 | 1 + ...e02204694aaa24ccc23b1cd2c403b7e_cgraph.svg | 147 + ...9111e5f127c26e3b9f11bf26c8038a_icgraph.map | 14 + ...9111e5f127c26e3b9f11bf26c8038a_icgraph.md5 | 1 + ...9111e5f127c26e3b9f11bf26c8038a_icgraph.svg | 120 + ...e26c45fc3b7bd05c627138d0d103fc_icgraph.map | 5 + ...e26c45fc3b7bd05c627138d0d103fc_icgraph.md5 | 1 + ...e26c45fc3b7bd05c627138d0d103fc_icgraph.svg | 39 + ...2888b3de06df35c3b18b31b1e15fe8c_cgraph.map | 15 + ...2888b3de06df35c3b18b31b1e15fe8c_cgraph.md5 | 1 + ...2888b3de06df35c3b18b31b1e15fe8c_cgraph.svg | 129 + ...888b3de06df35c3b18b31b1e15fe8c_icgraph.map | 5 + ...888b3de06df35c3b18b31b1e15fe8c_icgraph.md5 | 1 + ...888b3de06df35c3b18b31b1e15fe8c_icgraph.svg | 39 + ...2b9d57eca306724cb8c4f928d0e824_icgraph.map | 13 + ...2b9d57eca306724cb8c4f928d0e824_icgraph.md5 | 1 + ...2b9d57eca306724cb8c4f928d0e824_icgraph.svg | 111 + ...1656892fa59cbd2e3b60a2608dfefc_icgraph.map | 20 + ...1656892fa59cbd2e3b60a2608dfefc_icgraph.md5 | 1 + ...1656892fa59cbd2e3b60a2608dfefc_icgraph.svg | 174 + ...78e200be9eedb1ddf007d431dcb09a2_cgraph.map | 5 + ...78e200be9eedb1ddf007d431dcb09a2_cgraph.md5 | 1 + ...78e200be9eedb1ddf007d431dcb09a2_cgraph.svg | 39 + ...cee517bb2a61c5b79a745f3e0b4aa86_cgraph.map | 7 + ...cee517bb2a61c5b79a745f3e0b4aa86_cgraph.md5 | 1 + ...cee517bb2a61c5b79a745f3e0b4aa86_cgraph.svg | 57 + ...ee517bb2a61c5b79a745f3e0b4aa86_icgraph.map | 7 + ...ee517bb2a61c5b79a745f3e0b4aa86_icgraph.md5 | 1 + ...ee517bb2a61c5b79a745f3e0b4aa86_icgraph.svg | 57 + ...8adec320537d6e63bc68e76633a1f0e_cgraph.map | 7 + ...8adec320537d6e63bc68e76633a1f0e_cgraph.md5 | 1 + ...8adec320537d6e63bc68e76633a1f0e_cgraph.svg | 57 + ...adec320537d6e63bc68e76633a1f0e_icgraph.map | 7 + ...adec320537d6e63bc68e76633a1f0e_icgraph.md5 | 1 + ...adec320537d6e63bc68e76633a1f0e_icgraph.svg | 57 + ...c9bc229eecc960b0c2bfd9033b6e2e0_cgraph.map | 9 + ...c9bc229eecc960b0c2bfd9033b6e2e0_cgraph.md5 | 1 + ...c9bc229eecc960b0c2bfd9033b6e2e0_cgraph.svg | 75 + a01898_source.html | 6793 +++++++++++++++ a01899.map | 41 + a01899.md5 | 1 + a01899.svg | 363 + a01901.html | 1247 +++ a01901.js | 50 + ...18ffd885ac72f4cb8ac0f972f6b4900_cgraph.map | 23 + ...18ffd885ac72f4cb8ac0f972f6b4900_cgraph.md5 | 1 + ...18ffd885ac72f4cb8ac0f972f6b4900_cgraph.svg | 201 + ...cb0780a1d244f7541f85d2ece3999fc_cgraph.map | 13 + ...cb0780a1d244f7541f85d2ece3999fc_cgraph.md5 | 1 + ...cb0780a1d244f7541f85d2ece3999fc_cgraph.svg | 111 + ...b80f9ee2d497077e4741029c8e23700_cgraph.map | 14 + ...b80f9ee2d497077e4741029c8e23700_cgraph.md5 | 1 + ...b80f9ee2d497077e4741029c8e23700_cgraph.svg | 120 + ...fa93d3a16f6cd853ca26b8796112770_cgraph.map | 5 + ...fa93d3a16f6cd853ca26b8796112770_cgraph.md5 | 1 + ...fa93d3a16f6cd853ca26b8796112770_cgraph.svg | 39 + ...1f04155b5dceea889ba3cef64968684_cgraph.map | 7 + ...1f04155b5dceea889ba3cef64968684_cgraph.md5 | 1 + ...1f04155b5dceea889ba3cef64968684_cgraph.svg | 57 + ...89f1726140c8d0ef5b54d893d806262_cgraph.map | 7 + ...89f1726140c8d0ef5b54d893d806262_cgraph.md5 | 1 + ...89f1726140c8d0ef5b54d893d806262_cgraph.svg | 57 + ...9e7e77bbc6d5208678b007bf89aab61_cgraph.map | 9 + ...9e7e77bbc6d5208678b007bf89aab61_cgraph.md5 | 1 + ...9e7e77bbc6d5208678b007bf89aab61_cgraph.svg | 75 + ...c9bc229eecc960b0c2bfd9033b6e2e0_cgraph.map | 9 + ...c9bc229eecc960b0c2bfd9033b6e2e0_cgraph.md5 | 1 + ...c9bc229eecc960b0c2bfd9033b6e2e0_cgraph.svg | 75 + a01901_source.html | 765 ++ a01902.map | 5 + a01902.md5 | 1 + a01902.svg | 39 + a01903.map | 7 + a01903.md5 | 1 + a01903.svg | 57 + a01904.html | 247 + a01904.js | 8 + a01904_source.html | 142 + a01905.map | 11 + a01905.md5 | 1 + a01905.svg | 93 + a01907.html | 660 ++ a01907.js | 42 + ...2fd608f651d254148dc74f0ae371dfe_cgraph.map | 120 + ...2fd608f651d254148dc74f0ae371dfe_cgraph.md5 | 1 + ...2fd608f651d254148dc74f0ae371dfe_cgraph.svg | 1074 +++ ...fd608f651d254148dc74f0ae371dfe_icgraph.map | 19 + ...fd608f651d254148dc74f0ae371dfe_icgraph.md5 | 1 + ...fd608f651d254148dc74f0ae371dfe_icgraph.svg | 167 + ...6d4d420328a42fd671699ae60c4c3a_icgraph.map | 18 + ...6d4d420328a42fd671699ae60c4c3a_icgraph.md5 | 1 + ...6d4d420328a42fd671699ae60c4c3a_icgraph.svg | 157 + ...cb362223e9e7a76f4c5695080db2755_cgraph.map | 23 + ...cb362223e9e7a76f4c5695080db2755_cgraph.md5 | 1 + ...cb362223e9e7a76f4c5695080db2755_cgraph.svg | 203 + ...b362223e9e7a76f4c5695080db2755_icgraph.map | 5 + ...b362223e9e7a76f4c5695080db2755_icgraph.md5 | 1 + ...b362223e9e7a76f4c5695080db2755_icgraph.svg | 40 + ...7a9203f163a9c8c78e22bde5fa4efbc_cgraph.map | 7 + ...7a9203f163a9c8c78e22bde5fa4efbc_cgraph.md5 | 1 + ...7a9203f163a9c8c78e22bde5fa4efbc_cgraph.svg | 57 + ...6e4832b06bd5757be4502d2de7b3026_cgraph.map | 119 + ...6e4832b06bd5757be4502d2de7b3026_cgraph.md5 | 1 + ...6e4832b06bd5757be4502d2de7b3026_cgraph.svg | 1066 +++ a01907_source.html | 767 ++ a01908.map | 98 + a01908.md5 | 1 + a01908.svg | 876 ++ a01913.html | 828 ++ a01913.js | 19 + ...706a66a62ca8710342ac1c097b703ed_cgraph.map | 85 + ...706a66a62ca8710342ac1c097b703ed_cgraph.md5 | 1 + ...706a66a62ca8710342ac1c097b703ed_cgraph.svg | 761 ++ ...c89dce1734d8093f7a443d71a5ebb94_cgraph.map | 5 + ...c89dce1734d8093f7a443d71a5ebb94_cgraph.md5 | 1 + ...c89dce1734d8093f7a443d71a5ebb94_cgraph.svg | 39 + ...0082ae256676bd58f960128433237c1_cgraph.map | 5 + ...0082ae256676bd58f960128433237c1_cgraph.md5 | 1 + ...0082ae256676bd58f960128433237c1_cgraph.svg | 39 + ...15e79d6e82e45f24bcd1742c146a0da_cgraph.map | 17 + ...15e79d6e82e45f24bcd1742c146a0da_cgraph.md5 | 1 + ...15e79d6e82e45f24bcd1742c146a0da_cgraph.svg | 147 + ...03b6bc6d5be49fd8715f62c7174c28e_cgraph.map | 19 + ...03b6bc6d5be49fd8715f62c7174c28e_cgraph.md5 | 1 + ...03b6bc6d5be49fd8715f62c7174c28e_cgraph.svg | 165 + ...3b6bc6d5be49fd8715f62c7174c28e_icgraph.map | 5 + ...3b6bc6d5be49fd8715f62c7174c28e_icgraph.md5 | 1 + ...3b6bc6d5be49fd8715f62c7174c28e_icgraph.svg | 40 + ...c0d51ef869f0cebc943169142626b6_icgraph.map | 8 + ...c0d51ef869f0cebc943169142626b6_icgraph.md5 | 1 + ...c0d51ef869f0cebc943169142626b6_icgraph.svg | 66 + ...0ddc33d183998387064192c52d7ca5_icgraph.map | 5 + ...0ddc33d183998387064192c52d7ca5_icgraph.md5 | 1 + ...0ddc33d183998387064192c52d7ca5_icgraph.svg | 39 + ...71ba8da471f464d7e10b13d5db07101_cgraph.map | 27 + ...71ba8da471f464d7e10b13d5db07101_cgraph.md5 | 1 + ...71ba8da471f464d7e10b13d5db07101_cgraph.svg | 237 + ...443355ad3d09b08427e538d75cab254_cgraph.map | 17 + ...443355ad3d09b08427e538d75cab254_cgraph.md5 | 1 + ...443355ad3d09b08427e538d75cab254_cgraph.svg | 147 + ...164c99d44fec2d7296a76c8926eb585_cgraph.map | 13 + ...164c99d44fec2d7296a76c8926eb585_cgraph.md5 | 1 + ...164c99d44fec2d7296a76c8926eb585_cgraph.svg | 112 + ...3f384ca4812e46dedce753be42654df_cgraph.map | 25 + ...3f384ca4812e46dedce753be42654df_cgraph.md5 | 1 + ...3f384ca4812e46dedce753be42654df_cgraph.svg | 219 + ...f384ca4812e46dedce753be42654df_icgraph.map | 5 + ...f384ca4812e46dedce753be42654df_icgraph.md5 | 1 + ...f384ca4812e46dedce753be42654df_icgraph.svg | 39 + ...6afd8cc035237c811ce6a1b7727acc3_cgraph.map | 15 + ...6afd8cc035237c811ce6a1b7727acc3_cgraph.md5 | 1 + ...6afd8cc035237c811ce6a1b7727acc3_cgraph.svg | 129 + ...afd8cc035237c811ce6a1b7727acc3_icgraph.map | 22 + ...afd8cc035237c811ce6a1b7727acc3_icgraph.md5 | 1 + ...afd8cc035237c811ce6a1b7727acc3_icgraph.svg | 193 + ...864d2fab73a39a8c98356f7bca1304_icgraph.map | 19 + ...864d2fab73a39a8c98356f7bca1304_icgraph.md5 | 1 + ...864d2fab73a39a8c98356f7bca1304_icgraph.svg | 165 + ...0b933c02a24d69c1efa40179f60288f_cgraph.map | 35 + ...0b933c02a24d69c1efa40179f60288f_cgraph.md5 | 1 + ...0b933c02a24d69c1efa40179f60288f_cgraph.svg | 310 + ...b933c02a24d69c1efa40179f60288f_icgraph.map | 13 + ...b933c02a24d69c1efa40179f60288f_icgraph.md5 | 1 + ...b933c02a24d69c1efa40179f60288f_icgraph.svg | 111 + a01913_source.html | 373 + a01914.map | 72 + a01914.md5 | 1 + a01914.svg | 642 ++ a01916.html | 278 + a01916.js | 8 + ...229452e0f07cdd4b0b06fbdc2a5d61_icgraph.map | 11 + ...229452e0f07cdd4b0b06fbdc2a5d61_icgraph.md5 | 1 + ...229452e0f07cdd4b0b06fbdc2a5d61_icgraph.svg | 93 + ...dc678cace81fa112fa6baad1c190539_cgraph.map | 5 + ...dc678cace81fa112fa6baad1c190539_cgraph.md5 | 1 + ...dc678cace81fa112fa6baad1c190539_cgraph.svg | 39 + a01916_source.html | 176 + a01917.map | 11 + a01917.md5 | 1 + a01917.svg | 93 + a01919.html | 1204 +++ a01919.js | 27 + ...13a3c52b0c3b4f3b390921ee4c5022e_cgraph.map | 29 + ...13a3c52b0c3b4f3b390921ee4c5022e_cgraph.md5 | 1 + ...13a3c52b0c3b4f3b390921ee4c5022e_cgraph.svg | 255 + ...8d07d808917e0b971d46332e9e64da4_cgraph.map | 30 + ...8d07d808917e0b971d46332e9e64da4_cgraph.md5 | 1 + ...8d07d808917e0b971d46332e9e64da4_cgraph.svg | 264 + ...d07d808917e0b971d46332e9e64da4_icgraph.map | 20 + ...d07d808917e0b971d46332e9e64da4_icgraph.md5 | 1 + ...d07d808917e0b971d46332e9e64da4_icgraph.svg | 175 + ...74d47b5c2c866aa3a61bec0dde4e0d_icgraph.map | 9 + ...74d47b5c2c866aa3a61bec0dde4e0d_icgraph.md5 | 1 + ...74d47b5c2c866aa3a61bec0dde4e0d_icgraph.svg | 75 + ...dc669466d6f52d5be8af2d991512ac2_cgraph.map | 30 + ...dc669466d6f52d5be8af2d991512ac2_cgraph.md5 | 1 + ...dc669466d6f52d5be8af2d991512ac2_cgraph.svg | 264 + ...c669466d6f52d5be8af2d991512ac2_icgraph.map | 20 + ...c669466d6f52d5be8af2d991512ac2_icgraph.md5 | 1 + ...c669466d6f52d5be8af2d991512ac2_icgraph.svg | 175 + ...9e660e3e344bc697d98174059ead3c_icgraph.map | 19 + ...9e660e3e344bc697d98174059ead3c_icgraph.md5 | 1 + ...9e660e3e344bc697d98174059ead3c_icgraph.svg | 166 + ...b65f90a821aca384f0ca1cff7bd1846_cgraph.map | 27 + ...b65f90a821aca384f0ca1cff7bd1846_cgraph.md5 | 1 + ...b65f90a821aca384f0ca1cff7bd1846_cgraph.svg | 237 + ...65f90a821aca384f0ca1cff7bd1846_icgraph.map | 27 + ...65f90a821aca384f0ca1cff7bd1846_icgraph.md5 | 1 + ...65f90a821aca384f0ca1cff7bd1846_icgraph.svg | 238 + ...26989df37e605824d846b7ba54b43ea_cgraph.map | 31 + ...26989df37e605824d846b7ba54b43ea_cgraph.md5 | 1 + ...26989df37e605824d846b7ba54b43ea_cgraph.svg | 273 + ...6989df37e605824d846b7ba54b43ea_icgraph.map | 7 + ...6989df37e605824d846b7ba54b43ea_icgraph.md5 | 1 + ...6989df37e605824d846b7ba54b43ea_icgraph.svg | 57 + ...96bc4319d0f6c6baa7d797a8df6b56f_cgraph.map | 110 + ...96bc4319d0f6c6baa7d797a8df6b56f_cgraph.md5 | 1 + ...96bc4319d0f6c6baa7d797a8df6b56f_cgraph.svg | 984 +++ ...6bc4319d0f6c6baa7d797a8df6b56f_icgraph.map | 5 + ...6bc4319d0f6c6baa7d797a8df6b56f_icgraph.md5 | 1 + ...6bc4319d0f6c6baa7d797a8df6b56f_icgraph.svg | 39 + ...c43ea323f2de1675b00e48330a12e2a_cgraph.map | 7 + ...c43ea323f2de1675b00e48330a12e2a_cgraph.md5 | 1 + ...c43ea323f2de1675b00e48330a12e2a_cgraph.svg | 57 + ...d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.map | 122 + ...d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.md5 | 1 + ...d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.svg | 1092 +++ ...995f71dba475975efc37756783cfce9_cgraph.map | 96 + ...995f71dba475975efc37756783cfce9_cgraph.md5 | 1 + ...995f71dba475975efc37756783cfce9_cgraph.svg | 858 ++ ...95f71dba475975efc37756783cfce9_icgraph.map | 5 + ...95f71dba475975efc37756783cfce9_icgraph.md5 | 1 + ...95f71dba475975efc37756783cfce9_icgraph.svg | 39 + ...6e0520e5569748ce1172bafca24fafe_cgraph.map | 23 + ...6e0520e5569748ce1172bafca24fafe_cgraph.md5 | 1 + ...6e0520e5569748ce1172bafca24fafe_cgraph.svg | 201 + ...1f7fb20b3a23b388bea24f1b46a33a8_cgraph.map | 115 + ...1f7fb20b3a23b388bea24f1b46a33a8_cgraph.md5 | 1 + ...1f7fb20b3a23b388bea24f1b46a33a8_cgraph.svg | 1029 +++ ...a0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.map | 5 + ...a0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.md5 | 1 + ...a0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.svg | 39 + ...4f10e1a58d989e93ad8d6318f9d4162_cgraph.map | 5 + ...4f10e1a58d989e93ad8d6318f9d4162_cgraph.md5 | 1 + ...4f10e1a58d989e93ad8d6318f9d4162_cgraph.svg | 39 + ...efe449d4a278e9fc4b9c5f7e31000a1_cgraph.map | 33 + ...efe449d4a278e9fc4b9c5f7e31000a1_cgraph.md5 | 1 + ...efe449d4a278e9fc4b9c5f7e31000a1_cgraph.svg | 291 + ...fe449d4a278e9fc4b9c5f7e31000a1_icgraph.map | 5 + ...fe449d4a278e9fc4b9c5f7e31000a1_icgraph.md5 | 1 + ...fe449d4a278e9fc4b9c5f7e31000a1_icgraph.svg | 39 + ...735744d0f8bec04394639a841d2ba0f_cgraph.map | 93 + ...735744d0f8bec04394639a841d2ba0f_cgraph.md5 | 1 + ...735744d0f8bec04394639a841d2ba0f_cgraph.svg | 831 ++ ...8ede6fc8d207004035f45d945688d2c_cgraph.map | 110 + ...8ede6fc8d207004035f45d945688d2c_cgraph.md5 | 1 + ...8ede6fc8d207004035f45d945688d2c_cgraph.svg | 985 +++ ...eaab7d93372f0752d59c70d9c5940e7_cgraph.map | 114 + ...eaab7d93372f0752d59c70d9c5940e7_cgraph.md5 | 1 + ...eaab7d93372f0752d59c70d9c5940e7_cgraph.svg | 1020 +++ ...aab7d93372f0752d59c70d9c5940e7_icgraph.map | 5 + ...aab7d93372f0752d59c70d9c5940e7_icgraph.md5 | 1 + ...aab7d93372f0752d59c70d9c5940e7_icgraph.svg | 39 + a01919_source.html | 589 ++ a01920.map | 91 + a01920.md5 | 1 + a01920.svg | 813 ++ a01922.html | 966 +++ a01922.js | 24 + ...a0b147b7fc892c291afe60cb0fa2c1c_cgraph.map | 21 + ...a0b147b7fc892c291afe60cb0fa2c1c_cgraph.md5 | 1 + ...a0b147b7fc892c291afe60cb0fa2c1c_cgraph.svg | 184 + ...0b147b7fc892c291afe60cb0fa2c1c_icgraph.map | 7 + ...0b147b7fc892c291afe60cb0fa2c1c_icgraph.md5 | 1 + ...0b147b7fc892c291afe60cb0fa2c1c_icgraph.svg | 59 + ...5682d9ee7b1c993dbf64d4f3de2d9f_icgraph.map | 7 + ...5682d9ee7b1c993dbf64d4f3de2d9f_icgraph.md5 | 1 + ...5682d9ee7b1c993dbf64d4f3de2d9f_icgraph.svg | 57 + ...02bbd6fa197c2c48d527325e5e2cf5b_cgraph.map | 29 + ...02bbd6fa197c2c48d527325e5e2cf5b_cgraph.md5 | 1 + ...02bbd6fa197c2c48d527325e5e2cf5b_cgraph.svg | 255 + ...2bbd6fa197c2c48d527325e5e2cf5b_icgraph.map | 39 + ...2bbd6fa197c2c48d527325e5e2cf5b_icgraph.md5 | 1 + ...2bbd6fa197c2c48d527325e5e2cf5b_icgraph.svg | 346 + ...920cc4cd90589f3c5ac8686a72bcfc0_cgraph.map | 34 + ...920cc4cd90589f3c5ac8686a72bcfc0_cgraph.md5 | 1 + ...920cc4cd90589f3c5ac8686a72bcfc0_cgraph.svg | 301 + ...eb16d4196838d10a2b57715f2eddee7_cgraph.map | 23 + ...eb16d4196838d10a2b57715f2eddee7_cgraph.md5 | 1 + ...eb16d4196838d10a2b57715f2eddee7_cgraph.svg | 201 + ...8fd893484b6e2d67d8b372b508d14f_icgraph.map | 29 + ...8fd893484b6e2d67d8b372b508d14f_icgraph.md5 | 1 + ...8fd893484b6e2d67d8b372b508d14f_icgraph.svg | 256 + ...c73bee66b4cb5a64d949b6fbbd64498_cgraph.map | 5 + ...c73bee66b4cb5a64d949b6fbbd64498_cgraph.md5 | 1 + ...c73bee66b4cb5a64d949b6fbbd64498_cgraph.svg | 39 + ...6352ba91ba482c6688b7364d10bf956_cgraph.map | 7 + ...6352ba91ba482c6688b7364d10bf956_cgraph.md5 | 1 + ...6352ba91ba482c6688b7364d10bf956_cgraph.svg | 57 + ...352ba91ba482c6688b7364d10bf956_icgraph.map | 23 + ...352ba91ba482c6688b7364d10bf956_icgraph.md5 | 1 + ...352ba91ba482c6688b7364d10bf956_icgraph.svg | 203 + ...71ba8da471f464d7e10b13d5db07101_cgraph.map | 27 + ...71ba8da471f464d7e10b13d5db07101_cgraph.md5 | 1 + ...71ba8da471f464d7e10b13d5db07101_cgraph.svg | 237 + ...55b8011e6d7c9b28c7df40065efb28_icgraph.map | 48 + ...55b8011e6d7c9b28c7df40065efb28_icgraph.md5 | 1 + ...55b8011e6d7c9b28c7df40065efb28_icgraph.svg | 427 + ...50d1c54fe430c1294b9c8a9d3e1466_icgraph.map | 28 + ...50d1c54fe430c1294b9c8a9d3e1466_icgraph.md5 | 1 + ...50d1c54fe430c1294b9c8a9d3e1466_icgraph.svg | 247 + ...03d3cde2d1354544cd082482c3f185_icgraph.map | 28 + ...03d3cde2d1354544cd082482c3f185_icgraph.md5 | 1 + ...03d3cde2d1354544cd082482c3f185_icgraph.svg | 247 + ...735744d0f8bec04394639a841d2ba0f_cgraph.map | 93 + ...735744d0f8bec04394639a841d2ba0f_cgraph.md5 | 1 + ...735744d0f8bec04394639a841d2ba0f_cgraph.svg | 831 ++ ...e7e4a63c40fbcaae742b8de8693483f_cgraph.map | 21 + ...e7e4a63c40fbcaae742b8de8693483f_cgraph.md5 | 1 + ...e7e4a63c40fbcaae742b8de8693483f_cgraph.svg | 183 + ...7e4a63c40fbcaae742b8de8693483f_icgraph.map | 51 + ...7e4a63c40fbcaae742b8de8693483f_icgraph.md5 | 1 + ...7e4a63c40fbcaae742b8de8693483f_icgraph.svg | 454 + a01922_source.html | 430 + a01923.map | 84 + a01923.md5 | 1 + a01923.svg | 750 ++ a01925.html | 1072 +++ a01925.js | 23 + ...6712b2a923d4bda1be98de189bc0f9_icgraph.map | 5 + ...6712b2a923d4bda1be98de189bc0f9_icgraph.md5 | 1 + ...6712b2a923d4bda1be98de189bc0f9_icgraph.svg | 41 + ...cfa2c90268c6e53ce376beb7cce153c_cgraph.map | 19 + ...cfa2c90268c6e53ce376beb7cce153c_cgraph.md5 | 1 + ...cfa2c90268c6e53ce376beb7cce153c_cgraph.svg | 165 + ...fa2c90268c6e53ce376beb7cce153c_icgraph.map | 41 + ...fa2c90268c6e53ce376beb7cce153c_icgraph.md5 | 1 + ...fa2c90268c6e53ce376beb7cce153c_icgraph.svg | 364 + ...c22ae41507232dc3efc725428cbfc7b_cgraph.map | 7 + ...c22ae41507232dc3efc725428cbfc7b_cgraph.md5 | 1 + ...c22ae41507232dc3efc725428cbfc7b_cgraph.svg | 57 + ...22ae41507232dc3efc725428cbfc7b_icgraph.map | 18 + ...22ae41507232dc3efc725428cbfc7b_icgraph.md5 | 1 + ...22ae41507232dc3efc725428cbfc7b_icgraph.svg | 157 + ...06bea23d2b9964f0f7c12947180e01_icgraph.map | 21 + ...06bea23d2b9964f0f7c12947180e01_icgraph.md5 | 1 + ...06bea23d2b9964f0f7c12947180e01_icgraph.svg | 185 + ...144f906658718ef853a8d18dda1e724_cgraph.map | 17 + ...144f906658718ef853a8d18dda1e724_cgraph.md5 | 1 + ...144f906658718ef853a8d18dda1e724_cgraph.svg | 147 + ...44f906658718ef853a8d18dda1e724_icgraph.map | 59 + ...44f906658718ef853a8d18dda1e724_icgraph.md5 | 1 + ...44f906658718ef853a8d18dda1e724_icgraph.svg | 528 ++ ...9aa16caa6dfcec85af956b42b33a0fa_cgraph.map | 5 + ...9aa16caa6dfcec85af956b42b33a0fa_cgraph.md5 | 1 + ...9aa16caa6dfcec85af956b42b33a0fa_cgraph.svg | 39 + ...dde947b05bc69599a6c7d92c38d088_icgraph.map | 23 + ...dde947b05bc69599a6c7d92c38d088_icgraph.md5 | 1 + ...dde947b05bc69599a6c7d92c38d088_icgraph.svg | 203 + ...cb53dd71cfaedb214bc5aef0e572cc2_cgraph.map | 15 + ...cb53dd71cfaedb214bc5aef0e572cc2_cgraph.md5 | 1 + ...cb53dd71cfaedb214bc5aef0e572cc2_cgraph.svg | 129 + ...9b763e71a5ae1e57f78c008e7c1135c_cgraph.map | 15 + ...9b763e71a5ae1e57f78c008e7c1135c_cgraph.md5 | 1 + ...9b763e71a5ae1e57f78c008e7c1135c_cgraph.svg | 129 + ...b763e71a5ae1e57f78c008e7c1135c_icgraph.map | 5 + ...b763e71a5ae1e57f78c008e7c1135c_icgraph.md5 | 1 + ...b763e71a5ae1e57f78c008e7c1135c_icgraph.svg | 39 + ...36751c1bdab169e4735143d3712a09_icgraph.map | 5 + ...36751c1bdab169e4735143d3712a09_icgraph.md5 | 1 + ...36751c1bdab169e4735143d3712a09_icgraph.svg | 39 + ...805b003097be6a6328a35c78bf558b_icgraph.map | 21 + ...805b003097be6a6328a35c78bf558b_icgraph.md5 | 1 + ...805b003097be6a6328a35c78bf558b_icgraph.svg | 185 + ...ff14a859f9b7a34676c2fcdb762386b_cgraph.map | 23 + ...ff14a859f9b7a34676c2fcdb762386b_cgraph.md5 | 1 + ...ff14a859f9b7a34676c2fcdb762386b_cgraph.svg | 203 + ...4ce6437cad359c8523f57fe50be020d_cgraph.map | 5 + ...4ce6437cad359c8523f57fe50be020d_cgraph.md5 | 1 + ...4ce6437cad359c8523f57fe50be020d_cgraph.svg | 39 + ...ce6437cad359c8523f57fe50be020d_icgraph.map | 23 + ...ce6437cad359c8523f57fe50be020d_icgraph.md5 | 1 + ...ce6437cad359c8523f57fe50be020d_icgraph.svg | 203 + ...0862a60d187bfed0cfa11bf27174551_cgraph.map | 27 + ...0862a60d187bfed0cfa11bf27174551_cgraph.md5 | 1 + ...0862a60d187bfed0cfa11bf27174551_cgraph.svg | 237 + ...4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.map | 19 + ...4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.md5 | 1 + ...4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.svg | 166 + ...461ab1d225a0f76f08d2f37a4a7e0e_icgraph.map | 11 + ...461ab1d225a0f76f08d2f37a4a7e0e_icgraph.md5 | 1 + ...461ab1d225a0f76f08d2f37a4a7e0e_icgraph.svg | 94 + ...5172b735dddd3f77fbb0265bbcdfc20_cgraph.map | 15 + ...5172b735dddd3f77fbb0265bbcdfc20_cgraph.md5 | 1 + ...5172b735dddd3f77fbb0265bbcdfc20_cgraph.svg | 130 + ...172b735dddd3f77fbb0265bbcdfc20_icgraph.map | 17 + ...172b735dddd3f77fbb0265bbcdfc20_icgraph.md5 | 1 + ...172b735dddd3f77fbb0265bbcdfc20_icgraph.svg | 148 + ...6293e9ec7776aa49ecf632fcc4f5e26_cgraph.map | 69 + ...6293e9ec7776aa49ecf632fcc4f5e26_cgraph.md5 | 1 + ...6293e9ec7776aa49ecf632fcc4f5e26_cgraph.svg | 615 ++ ...293e9ec7776aa49ecf632fcc4f5e26_icgraph.map | 21 + ...293e9ec7776aa49ecf632fcc4f5e26_icgraph.md5 | 1 + ...293e9ec7776aa49ecf632fcc4f5e26_icgraph.svg | 185 + ...2e1e32dc603394aecede365f454c8c4_cgraph.map | 9 + ...2e1e32dc603394aecede365f454c8c4_cgraph.md5 | 1 + ...2e1e32dc603394aecede365f454c8c4_cgraph.svg | 75 + ...d2ffbe2275e3b8c2fc97a003ee7380_icgraph.map | 7 + ...d2ffbe2275e3b8c2fc97a003ee7380_icgraph.md5 | 1 + ...d2ffbe2275e3b8c2fc97a003ee7380_icgraph.svg | 57 + a01925_source.html | 466 ++ a01926.map | 71 + a01926.md5 | 1 + a01926.svg | 633 ++ a01928.html | 365 + a01928.js | 8 + ...0352290ef80c644620afca91f719cfe_cgraph.map | 5 + ...0352290ef80c644620afca91f719cfe_cgraph.md5 | 1 + ...0352290ef80c644620afca91f719cfe_cgraph.svg | 39 + ...352290ef80c644620afca91f719cfe_icgraph.map | 5 + ...352290ef80c644620afca91f719cfe_icgraph.md5 | 1 + ...352290ef80c644620afca91f719cfe_icgraph.svg | 39 + ...6ac572ea8f5f613129192c47d598818_cgraph.map | 31 + ...6ac572ea8f5f613129192c47d598818_cgraph.md5 | 1 + ...6ac572ea8f5f613129192c47d598818_cgraph.svg | 273 + ...ac572ea8f5f613129192c47d598818_icgraph.map | 5 + ...ac572ea8f5f613129192c47d598818_icgraph.md5 | 1 + ...ac572ea8f5f613129192c47d598818_icgraph.svg | 39 + ...52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.map | 5 + ...52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.md5 | 1 + ...52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.svg | 39 + ...67ebc6d04dedfc104b4a61233d6eab4_cgraph.map | 7 + ...67ebc6d04dedfc104b4a61233d6eab4_cgraph.md5 | 1 + ...67ebc6d04dedfc104b4a61233d6eab4_cgraph.svg | 57 + a01928_source.html | 167 + a01929.map | 38 + a01929.md5 | 1 + a01929.svg | 336 + a01931.html | 167 + a01931.js | 4 + ...0ab3bf4a8af9bb101b5a53248609771_cgraph.map | 115 + ...0ab3bf4a8af9bb101b5a53248609771_cgraph.md5 | 1 + ...0ab3bf4a8af9bb101b5a53248609771_cgraph.svg | 1029 +++ ...ab3bf4a8af9bb101b5a53248609771_icgraph.map | 12 + ...ab3bf4a8af9bb101b5a53248609771_icgraph.md5 | 1 + ...ab3bf4a8af9bb101b5a53248609771_icgraph.svg | 103 + a01931_source.html | 132 + a01932.map | 71 + a01932.md5 | 1 + a01932.svg | 633 ++ a01934.html | 432 + a01934.js | 9 + ...d3707df989265f8cf380acdef95eb02_cgraph.map | 13 + ...d3707df989265f8cf380acdef95eb02_cgraph.md5 | 1 + ...d3707df989265f8cf380acdef95eb02_cgraph.svg | 111 + ...3707df989265f8cf380acdef95eb02_icgraph.map | 13 + ...3707df989265f8cf380acdef95eb02_icgraph.md5 | 1 + ...3707df989265f8cf380acdef95eb02_icgraph.svg | 112 + ...7bee94f7a23281c8b2b72ec433f6059_cgraph.map | 61 + ...7bee94f7a23281c8b2b72ec433f6059_cgraph.md5 | 1 + ...7bee94f7a23281c8b2b72ec433f6059_cgraph.svg | 543 ++ ...bee94f7a23281c8b2b72ec433f6059_icgraph.map | 18 + ...bee94f7a23281c8b2b72ec433f6059_icgraph.md5 | 1 + ...bee94f7a23281c8b2b72ec433f6059_icgraph.svg | 157 + ...6456b4307a70983ebe554fa712d856e_cgraph.map | 7 + ...6456b4307a70983ebe554fa712d856e_cgraph.md5 | 1 + ...6456b4307a70983ebe554fa712d856e_cgraph.svg | 57 + ...eb16d4196838d10a2b57715f2eddee7_cgraph.map | 23 + ...eb16d4196838d10a2b57715f2eddee7_cgraph.md5 | 1 + ...eb16d4196838d10a2b57715f2eddee7_cgraph.svg | 201 + ...cb73b347940187fb3399f51b1a55b7_icgraph.map | 19 + ...cb73b347940187fb3399f51b1a55b7_icgraph.md5 | 1 + ...cb73b347940187fb3399f51b1a55b7_icgraph.svg | 166 + ...e08f924cb86d1310099621564536657_cgraph.map | 23 + ...e08f924cb86d1310099621564536657_cgraph.md5 | 1 + ...e08f924cb86d1310099621564536657_cgraph.svg | 201 + ...08f924cb86d1310099621564536657_icgraph.map | 18 + ...08f924cb86d1310099621564536657_icgraph.md5 | 1 + ...08f924cb86d1310099621564536657_icgraph.svg | 157 + a01934_source.html | 262 + a01935.map | 83 + a01935.md5 | 1 + a01935.svg | 741 ++ a01937.html | 441 + a01937.js | 9 + ...8da9ec8e2f9a4470f10ee3059bd593_icgraph.map | 27 + ...8da9ec8e2f9a4470f10ee3059bd593_icgraph.md5 | 1 + ...8da9ec8e2f9a4470f10ee3059bd593_icgraph.svg | 239 + ...2aaf13eb56eb1832e725ef73236116f_cgraph.map | 15 + ...2aaf13eb56eb1832e725ef73236116f_cgraph.md5 | 1 + ...2aaf13eb56eb1832e725ef73236116f_cgraph.svg | 129 + ...aaf13eb56eb1832e725ef73236116f_icgraph.map | 63 + ...aaf13eb56eb1832e725ef73236116f_icgraph.md5 | 1 + ...aaf13eb56eb1832e725ef73236116f_icgraph.svg | 564 ++ ...413a3584787f9b629e54b2ef9439f06_cgraph.map | 17 + ...413a3584787f9b629e54b2ef9439f06_cgraph.md5 | 1 + ...413a3584787f9b629e54b2ef9439f06_cgraph.svg | 147 + ...13a3584787f9b629e54b2ef9439f06_icgraph.map | 46 + ...13a3584787f9b629e54b2ef9439f06_icgraph.md5 | 1 + ...13a3584787f9b629e54b2ef9439f06_icgraph.svg | 409 + ...f84ea82594c4dbe91cf602ee078e04d_cgraph.map | 15 + ...f84ea82594c4dbe91cf602ee078e04d_cgraph.md5 | 1 + ...f84ea82594c4dbe91cf602ee078e04d_cgraph.svg | 129 + ...84ea82594c4dbe91cf602ee078e04d_icgraph.map | 25 + ...84ea82594c4dbe91cf602ee078e04d_icgraph.md5 | 1 + ...84ea82594c4dbe91cf602ee078e04d_icgraph.svg | 221 + ...1f2d1dc9f842b2eed7aa7e80607e29_icgraph.map | 7 + ...1f2d1dc9f842b2eed7aa7e80607e29_icgraph.md5 | 1 + ...1f2d1dc9f842b2eed7aa7e80607e29_icgraph.svg | 57 + a01937_source.html | 252 + a01938.map | 13 + a01938.md5 | 1 + a01938.svg | 111 + a01940.html | 669 ++ a01940.js | 17 + ...e57dc466fca84c701d8fd6a84cb6789_cgraph.map | 5 + ...e57dc466fca84c701d8fd6a84cb6789_cgraph.md5 | 1 + ...e57dc466fca84c701d8fd6a84cb6789_cgraph.svg | 39 + ...57dc466fca84c701d8fd6a84cb6789_icgraph.map | 5 + ...57dc466fca84c701d8fd6a84cb6789_icgraph.md5 | 1 + ...57dc466fca84c701d8fd6a84cb6789_icgraph.svg | 39 + ...920cc4cd90589f3c5ac8686a72bcfc0_cgraph.map | 34 + ...920cc4cd90589f3c5ac8686a72bcfc0_cgraph.md5 | 1 + ...920cc4cd90589f3c5ac8686a72bcfc0_cgraph.svg | 301 + ...3ddb422946cf774c687c1ab63dcda15_cgraph.map | 65 + ...3ddb422946cf774c687c1ab63dcda15_cgraph.md5 | 1 + ...3ddb422946cf774c687c1ab63dcda15_cgraph.svg | 581 ++ ...ddb422946cf774c687c1ab63dcda15_icgraph.map | 9 + ...ddb422946cf774c687c1ab63dcda15_icgraph.md5 | 1 + ...ddb422946cf774c687c1ab63dcda15_icgraph.svg | 75 + ...b82433bc8c7d7f03683ac521a3679fa_cgraph.map | 19 + ...b82433bc8c7d7f03683ac521a3679fa_cgraph.md5 | 1 + ...b82433bc8c7d7f03683ac521a3679fa_cgraph.svg | 165 + ...82433bc8c7d7f03683ac521a3679fa_icgraph.map | 20 + ...82433bc8c7d7f03683ac521a3679fa_icgraph.md5 | 1 + ...82433bc8c7d7f03683ac521a3679fa_icgraph.svg | 175 + ...2fa3d6e6c761009b464cc0fbedc6a16_cgraph.map | 7 + ...2fa3d6e6c761009b464cc0fbedc6a16_cgraph.md5 | 1 + ...2fa3d6e6c761009b464cc0fbedc6a16_cgraph.svg | 57 + ...fa3d6e6c761009b464cc0fbedc6a16_icgraph.map | 19 + ...fa3d6e6c761009b464cc0fbedc6a16_icgraph.md5 | 1 + ...fa3d6e6c761009b464cc0fbedc6a16_icgraph.svg | 165 + ...1eb3edd264c847c36e9456b2598452_icgraph.map | 21 + ...1eb3edd264c847c36e9456b2598452_icgraph.md5 | 1 + ...1eb3edd264c847c36e9456b2598452_icgraph.svg | 183 + a01940_source.html | 282 + a01941.map | 68 + a01941.md5 | 1 + a01941.svg | 606 ++ a01943.html | 248 + a01943.js | 6 + ...86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.map | 23 + ...86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.md5 | 1 + ...86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.svg | 203 + ...805af1bb8178dbb114ff65d491f840_icgraph.map | 5 + ...805af1bb8178dbb114ff65d491f840_icgraph.md5 | 1 + ...805af1bb8178dbb114ff65d491f840_icgraph.svg | 40 + a01943_source.html | 170 + a01944.map | 21 + a01944.md5 | 1 + a01944.svg | 183 + a01946.html | 249 + a01946.js | 6 + ...ee1fea325d2edd421f59ab240dfbe54_cgraph.map | 114 + ...ee1fea325d2edd421f59ab240dfbe54_cgraph.md5 | 1 + ...ee1fea325d2edd421f59ab240dfbe54_cgraph.svg | 1020 +++ ...26dc0763861425aefd6253b538a289a_cgraph.map | 7 + ...26dc0763861425aefd6253b538a289a_cgraph.md5 | 1 + ...26dc0763861425aefd6253b538a289a_cgraph.svg | 57 + a01946_source.html | 151 + a01947.map | 37 + a01947.md5 | 1 + a01947.svg | 327 + a01949.html | 181 + a01949.js | 4 + ...a99bcb12e2ee55d68a029bfca9b6d51_cgraph.map | 115 + ...a99bcb12e2ee55d68a029bfca9b6d51_cgraph.md5 | 1 + ...a99bcb12e2ee55d68a029bfca9b6d51_cgraph.svg | 1030 +++ a01949_source.html | 144 + a01950.map | 86 + a01950.md5 | 1 + a01950.svg | 768 ++ a01952.html | 666 ++ a01952.js | 15 + ...06b62b1bc50d56e80ba7b7adb02f961_cgraph.map | 14 + ...06b62b1bc50d56e80ba7b7adb02f961_cgraph.md5 | 1 + ...06b62b1bc50d56e80ba7b7adb02f961_cgraph.svg | 120 + ...6b62b1bc50d56e80ba7b7adb02f961_icgraph.map | 5 + ...6b62b1bc50d56e80ba7b7adb02f961_icgraph.md5 | 1 + ...6b62b1bc50d56e80ba7b7adb02f961_icgraph.svg | 39 + ...99a24a46fb1be57ca21abf8bc61928_icgraph.map | 25 + ...99a24a46fb1be57ca21abf8bc61928_icgraph.md5 | 1 + ...99a24a46fb1be57ca21abf8bc61928_icgraph.svg | 221 + ...3d0d5ad8a6878dde35fe7b827b33b05_cgraph.map | 5 + ...3d0d5ad8a6878dde35fe7b827b33b05_cgraph.md5 | 1 + ...3d0d5ad8a6878dde35fe7b827b33b05_cgraph.svg | 39 + ...d0d5ad8a6878dde35fe7b827b33b05_icgraph.map | 9 + ...d0d5ad8a6878dde35fe7b827b33b05_icgraph.md5 | 1 + ...d0d5ad8a6878dde35fe7b827b33b05_icgraph.svg | 75 + ...0e82902c3c17ef427f5876beb5a04e_icgraph.map | 5 + ...0e82902c3c17ef427f5876beb5a04e_icgraph.md5 | 1 + ...0e82902c3c17ef427f5876beb5a04e_icgraph.svg | 39 + ...bb16b03a95a60c4748c189dafa8a54_icgraph.map | 7 + ...bb16b03a95a60c4748c189dafa8a54_icgraph.md5 | 1 + ...bb16b03a95a60c4748c189dafa8a54_icgraph.svg | 57 + ...5a4ee90ef57eb7d12191236c3a105f2_cgraph.map | 10 + ...5a4ee90ef57eb7d12191236c3a105f2_cgraph.md5 | 1 + ...5a4ee90ef57eb7d12191236c3a105f2_cgraph.svg | 84 + ...a4ee90ef57eb7d12191236c3a105f2_icgraph.map | 7 + ...a4ee90ef57eb7d12191236c3a105f2_icgraph.md5 | 1 + ...a4ee90ef57eb7d12191236c3a105f2_icgraph.svg | 57 + ...a432f287b9f55f026e2d120e677998_icgraph.map | 14 + ...a432f287b9f55f026e2d120e677998_icgraph.md5 | 1 + ...a432f287b9f55f026e2d120e677998_icgraph.svg | 120 + ...ac539947a2f5fe419a493103a45e4be_cgraph.map | 5 + ...ac539947a2f5fe419a493103a45e4be_cgraph.md5 | 1 + ...ac539947a2f5fe419a493103a45e4be_cgraph.svg | 39 + ...c539947a2f5fe419a493103a45e4be_icgraph.map | 9 + ...c539947a2f5fe419a493103a45e4be_icgraph.md5 | 1 + ...c539947a2f5fe419a493103a45e4be_icgraph.svg | 75 + a01952_source.html | 437 + a01953.map | 19 + a01953.md5 | 1 + a01953.svg | 165 + a01955.html | 907 ++ a01955.js | 16 + ...738274ac3fd171eda6bfb42492bc0d7_cgraph.map | 12 + ...738274ac3fd171eda6bfb42492bc0d7_cgraph.md5 | 1 + ...738274ac3fd171eda6bfb42492bc0d7_cgraph.svg | 102 + ...38274ac3fd171eda6bfb42492bc0d7_icgraph.map | 45 + ...38274ac3fd171eda6bfb42492bc0d7_icgraph.md5 | 1 + ...38274ac3fd171eda6bfb42492bc0d7_icgraph.svg | 401 + ...7713c8e9b90065e23b0ec1a225f79ab_cgraph.map | 5 + ...7713c8e9b90065e23b0ec1a225f79ab_cgraph.md5 | 1 + ...7713c8e9b90065e23b0ec1a225f79ab_cgraph.svg | 39 + ...713c8e9b90065e23b0ec1a225f79ab_icgraph.map | 59 + ...713c8e9b90065e23b0ec1a225f79ab_icgraph.md5 | 1 + ...713c8e9b90065e23b0ec1a225f79ab_icgraph.svg | 527 ++ ...a28ba7c7791236d03b1fa9f81aa6a71_cgraph.map | 22 + ...a28ba7c7791236d03b1fa9f81aa6a71_cgraph.md5 | 1 + ...a28ba7c7791236d03b1fa9f81aa6a71_cgraph.svg | 192 + ...28ba7c7791236d03b1fa9f81aa6a71_icgraph.map | 33 + ...28ba7c7791236d03b1fa9f81aa6a71_icgraph.md5 | 1 + ...28ba7c7791236d03b1fa9f81aa6a71_icgraph.svg | 293 + ...e8deff7c038efae14d1cc98e4ab109f_cgraph.map | 20 + ...e8deff7c038efae14d1cc98e4ab109f_cgraph.md5 | 1 + ...e8deff7c038efae14d1cc98e4ab109f_cgraph.svg | 174 + ...8deff7c038efae14d1cc98e4ab109f_icgraph.map | 28 + ...8deff7c038efae14d1cc98e4ab109f_icgraph.md5 | 1 + ...8deff7c038efae14d1cc98e4ab109f_icgraph.svg | 248 + ...36fa8eefc3d744aa7248d6786cfee03_cgraph.map | 24 + ...36fa8eefc3d744aa7248d6786cfee03_cgraph.md5 | 1 + ...36fa8eefc3d744aa7248d6786cfee03_cgraph.svg | 210 + ...6fa8eefc3d744aa7248d6786cfee03_icgraph.map | 28 + ...6fa8eefc3d744aa7248d6786cfee03_icgraph.md5 | 1 + ...6fa8eefc3d744aa7248d6786cfee03_icgraph.svg | 248 + ...a525d89ade920512dc65409bc8e85d8_cgraph.map | 24 + ...a525d89ade920512dc65409bc8e85d8_cgraph.md5 | 1 + ...a525d89ade920512dc65409bc8e85d8_cgraph.svg | 210 + ...525d89ade920512dc65409bc8e85d8_icgraph.map | 21 + ...525d89ade920512dc65409bc8e85d8_icgraph.md5 | 1 + ...525d89ade920512dc65409bc8e85d8_icgraph.svg | 185 + ...b9cd8f5d0c205ac6c1fd30f77cbf539_cgraph.map | 15 + ...b9cd8f5d0c205ac6c1fd30f77cbf539_cgraph.md5 | 1 + ...b9cd8f5d0c205ac6c1fd30f77cbf539_cgraph.svg | 129 + ...9cd8f5d0c205ac6c1fd30f77cbf539_icgraph.map | 47 + ...9cd8f5d0c205ac6c1fd30f77cbf539_icgraph.md5 | 1 + ...9cd8f5d0c205ac6c1fd30f77cbf539_icgraph.svg | 419 + ...f3886cdcb91a28bf13b07aae8b2285_icgraph.map | 33 + ...f3886cdcb91a28bf13b07aae8b2285_icgraph.md5 | 1 + ...f3886cdcb91a28bf13b07aae8b2285_icgraph.svg | 293 + ...8091e179416d4beec1b5681cfb68742_cgraph.map | 17 + ...8091e179416d4beec1b5681cfb68742_cgraph.md5 | 1 + ...8091e179416d4beec1b5681cfb68742_cgraph.svg | 147 + ...091e179416d4beec1b5681cfb68742_icgraph.map | 35 + ...091e179416d4beec1b5681cfb68742_icgraph.md5 | 1 + ...091e179416d4beec1b5681cfb68742_icgraph.svg | 311 + ...b687fb4c464903e23504eea3ddc3873_cgraph.map | 10 + ...b687fb4c464903e23504eea3ddc3873_cgraph.md5 | 1 + ...b687fb4c464903e23504eea3ddc3873_cgraph.svg | 84 + ...687fb4c464903e23504eea3ddc3873_icgraph.map | 53 + ...687fb4c464903e23504eea3ddc3873_icgraph.md5 | 1 + ...687fb4c464903e23504eea3ddc3873_icgraph.svg | 473 ++ ...7aa94ad075bf97a566f01f899fcd859_cgraph.map | 26 + ...7aa94ad075bf97a566f01f899fcd859_cgraph.md5 | 1 + ...7aa94ad075bf97a566f01f899fcd859_cgraph.svg | 228 + ...aa94ad075bf97a566f01f899fcd859_icgraph.map | 26 + ...aa94ad075bf97a566f01f899fcd859_icgraph.md5 | 1 + ...aa94ad075bf97a566f01f899fcd859_icgraph.svg | 230 + ...87e9691e65d65348749f8dc70f24602_cgraph.map | 7 + ...87e9691e65d65348749f8dc70f24602_cgraph.md5 | 1 + ...87e9691e65d65348749f8dc70f24602_cgraph.svg | 57 + ...7e9691e65d65348749f8dc70f24602_icgraph.map | 49 + ...7e9691e65d65348749f8dc70f24602_icgraph.md5 | 1 + ...7e9691e65d65348749f8dc70f24602_icgraph.svg | 437 + ...f9af0356940583dfe3045e693cc8a45_cgraph.map | 5 + ...f9af0356940583dfe3045e693cc8a45_cgraph.md5 | 1 + ...f9af0356940583dfe3045e693cc8a45_cgraph.svg | 39 + ...9af0356940583dfe3045e693cc8a45_icgraph.map | 33 + ...9af0356940583dfe3045e693cc8a45_icgraph.md5 | 1 + ...9af0356940583dfe3045e693cc8a45_icgraph.svg | 293 + a01955_source.html | 379 + a01956.map | 32 + a01956.md5 | 1 + a01956.svg | 282 + a01958.html | 545 ++ a01958.js | 12 + ...0a9ced40b89f30fa314c4534bfb0922_cgraph.map | 5 + ...0a9ced40b89f30fa314c4534bfb0922_cgraph.md5 | 1 + ...0a9ced40b89f30fa314c4534bfb0922_cgraph.svg | 39 + ...85e5516222ab7e7fc354c614760ec5_icgraph.map | 110 + ...85e5516222ab7e7fc354c614760ec5_icgraph.md5 | 1 + ...85e5516222ab7e7fc354c614760ec5_icgraph.svg | 991 +++ ...cace11e17315f11b44dd9e3eabbf72a_cgraph.map | 5 + ...cace11e17315f11b44dd9e3eabbf72a_cgraph.md5 | 1 + ...cace11e17315f11b44dd9e3eabbf72a_cgraph.svg | 39 + ...ace11e17315f11b44dd9e3eabbf72a_icgraph.map | 5 + ...ace11e17315f11b44dd9e3eabbf72a_icgraph.md5 | 1 + ...ace11e17315f11b44dd9e3eabbf72a_icgraph.svg | 40 + ...575f52a42e0e0d2fb41bda2d1268ce_icgraph.map | 125 + ...575f52a42e0e0d2fb41bda2d1268ce_icgraph.md5 | 1 + ...575f52a42e0e0d2fb41bda2d1268ce_icgraph.svg | 1125 +++ ...f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.map | 102 + ...f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.md5 | 1 + ...f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.svg | 916 ++ ...c44e095ebfd8721de878c42abcbbdc_icgraph.map | 19 + ...c44e095ebfd8721de878c42abcbbdc_icgraph.md5 | 1 + ...c44e095ebfd8721de878c42abcbbdc_icgraph.svg | 166 + ...36e49d2e694b1da49504a689ed48e4a_cgraph.map | 5 + ...36e49d2e694b1da49504a689ed48e4a_cgraph.md5 | 1 + ...36e49d2e694b1da49504a689ed48e4a_cgraph.svg | 39 + ...6e49d2e694b1da49504a689ed48e4a_icgraph.map | 41 + ...6e49d2e694b1da49504a689ed48e4a_icgraph.md5 | 1 + ...6e49d2e694b1da49504a689ed48e4a_icgraph.svg | 365 + ...06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.map | 5 + ...06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.md5 | 1 + ...06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.svg | 39 + ...6a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.map | 125 + ...6a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.md5 | 1 + ...6a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.svg | 1125 +++ ...af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.map | 5 + ...af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.md5 | 1 + ...af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.svg | 40 + a01958_source.html | 210 + a01959.map | 9 + a01959.md5 | 1 + a01959.svg | 75 + a01961.html | 470 ++ a01961.js | 14 + ...c353188156b1df4463a5fc7f7bc25e_icgraph.map | 11 + ...c353188156b1df4463a5fc7f7bc25e_icgraph.md5 | 1 + ...c353188156b1df4463a5fc7f7bc25e_icgraph.svg | 93 + ...84d59bded666fdcf1a8e949cb56a6a_icgraph.map | 21 + ...84d59bded666fdcf1a8e949cb56a6a_icgraph.md5 | 1 + ...84d59bded666fdcf1a8e949cb56a6a_icgraph.svg | 183 + ...ae55b169121c4851bb7c0adf4eac47_icgraph.map | 22 + ...ae55b169121c4851bb7c0adf4eac47_icgraph.md5 | 1 + ...ae55b169121c4851bb7c0adf4eac47_icgraph.svg | 193 + a01961_source.html | 251 + a01962.map | 27 + a01962.md5 | 1 + a01962.svg | 237 + a01964.html | 613 ++ a01964.js | 16 + ...44807fe9679a9a5fbf1bfc9dd78dc6_icgraph.map | 35 + ...44807fe9679a9a5fbf1bfc9dd78dc6_icgraph.md5 | 1 + ...44807fe9679a9a5fbf1bfc9dd78dc6_icgraph.svg | 311 + ...86232272942235166bf349ef7aacf9d_cgraph.map | 5 + ...86232272942235166bf349ef7aacf9d_cgraph.md5 | 1 + ...86232272942235166bf349ef7aacf9d_cgraph.svg | 39 + ...6232272942235166bf349ef7aacf9d_icgraph.map | 5 + ...6232272942235166bf349ef7aacf9d_icgraph.md5 | 1 + ...6232272942235166bf349ef7aacf9d_icgraph.svg | 39 + ...a7dc8cdb641981a0b564f046dfeb6a_icgraph.map | 7 + ...a7dc8cdb641981a0b564f046dfeb6a_icgraph.md5 | 1 + ...a7dc8cdb641981a0b564f046dfeb6a_icgraph.svg | 57 + ...809d11e47f180968c23903fed321ef_icgraph.map | 23 + ...809d11e47f180968c23903fed321ef_icgraph.md5 | 1 + ...809d11e47f180968c23903fed321ef_icgraph.svg | 203 + ...bd28e423e19877e5abcb1fe3d12c03_icgraph.map | 21 + ...bd28e423e19877e5abcb1fe3d12c03_icgraph.md5 | 1 + ...bd28e423e19877e5abcb1fe3d12c03_icgraph.svg | 185 + ...c3bfbf6daaf8172e131aa23dc7393c_icgraph.map | 58 + ...c3bfbf6daaf8172e131aa23dc7393c_icgraph.md5 | 1 + ...c3bfbf6daaf8172e131aa23dc7393c_icgraph.svg | 518 ++ ...e493d3889d6f207d1e122cf4bb1b8c_icgraph.map | 62 + ...e493d3889d6f207d1e122cf4bb1b8c_icgraph.md5 | 1 + ...e493d3889d6f207d1e122cf4bb1b8c_icgraph.svg | 554 ++ ...8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.map | 5 + ...8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.md5 | 1 + ...8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.svg | 39 + ...ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.map | 21 + ...ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.md5 | 1 + ...ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.svg | 185 + a01964_source.html | 310 + a01965.map | 29 + a01965.md5 | 1 + a01965.svg | 255 + a02174.html | 232 + a02174.js | 6 + ...bae55e86ffc384b3c1d2da3580f5c42_cgraph.map | 28 + ...bae55e86ffc384b3c1d2da3580f5c42_cgraph.md5 | 1 + ...bae55e86ffc384b3c1d2da3580f5c42_cgraph.svg | 246 + ...ae55e86ffc384b3c1d2da3580f5c42_icgraph.map | 5 + ...ae55e86ffc384b3c1d2da3580f5c42_icgraph.md5 | 1 + ...ae55e86ffc384b3c1d2da3580f5c42_icgraph.svg | 39 + ...ac7e88ed7b8a1e2ff8aa435ac6b58ec_cgraph.map | 53 + ...ac7e88ed7b8a1e2ff8aa435ac6b58ec_cgraph.md5 | 1 + ...ac7e88ed7b8a1e2ff8aa435ac6b58ec_cgraph.svg | 471 ++ ...1d371a2840849690acce147e7a205da_cgraph.map | 119 + ...1d371a2840849690acce147e7a205da_cgraph.md5 | 1 + ...1d371a2840849690acce147e7a205da_cgraph.svg | 1065 +++ ...d371a2840849690acce147e7a205da_icgraph.map | 15 + ...d371a2840849690acce147e7a205da_icgraph.md5 | 1 + ...d371a2840849690acce147e7a205da_icgraph.svg | 130 + a02175.html | 476 ++ a02175.js | 11 + ...08252bb9afc2990fa2c5f4b980c9f27_cgraph.map | 67 + ...08252bb9afc2990fa2c5f4b980c9f27_cgraph.md5 | 1 + ...08252bb9afc2990fa2c5f4b980c9f27_cgraph.svg | 599 ++ ...0b30e50de286842c7942a7e3e163578_cgraph.map | 37 + ...0b30e50de286842c7942a7e3e163578_cgraph.md5 | 1 + ...0b30e50de286842c7942a7e3e163578_cgraph.svg | 328 + ...1bcefd54b929d1a638d174da051130f_cgraph.map | 23 + ...1bcefd54b929d1a638d174da051130f_cgraph.md5 | 1 + ...1bcefd54b929d1a638d174da051130f_cgraph.svg | 201 + ...97b17905d4c7ee2f5ee831d367ece92_cgraph.map | 23 + ...97b17905d4c7ee2f5ee831d367ece92_cgraph.md5 | 1 + ...97b17905d4c7ee2f5ee831d367ece92_cgraph.svg | 201 + ...7b17905d4c7ee2f5ee831d367ece92_icgraph.map | 5 + ...7b17905d4c7ee2f5ee831d367ece92_icgraph.md5 | 1 + ...7b17905d4c7ee2f5ee831d367ece92_icgraph.svg | 39 + ...f1598b99463c5ef533a457f225b4c0b_cgraph.map | 31 + ...f1598b99463c5ef533a457f225b4c0b_cgraph.md5 | 1 + ...f1598b99463c5ef533a457f225b4c0b_cgraph.svg | 275 + ...d7613438ee9db973f6abf9259956bd5_cgraph.map | 8 + ...d7613438ee9db973f6abf9259956bd5_cgraph.md5 | 1 + ...d7613438ee9db973f6abf9259956bd5_cgraph.svg | 66 + ...8a10ab4e51e59c464ab3ab473e4a0f7_cgraph.map | 67 + ...8a10ab4e51e59c464ab3ab473e4a0f7_cgraph.md5 | 1 + ...8a10ab4e51e59c464ab3ab473e4a0f7_cgraph.svg | 599 ++ a02176.html | 255 + a02176.js | 6 + ...0242aa6d9591e5fa3dbb36f1e27a896_cgraph.map | 23 + ...0242aa6d9591e5fa3dbb36f1e27a896_cgraph.md5 | 1 + ...0242aa6d9591e5fa3dbb36f1e27a896_cgraph.svg | 201 + ...242aa6d9591e5fa3dbb36f1e27a896_icgraph.map | 10 + ...242aa6d9591e5fa3dbb36f1e27a896_icgraph.md5 | 1 + ...242aa6d9591e5fa3dbb36f1e27a896_icgraph.svg | 84 + ...39047efb2b454e6c1ac54138ef2985d_cgraph.map | 11 + ...39047efb2b454e6c1ac54138ef2985d_cgraph.md5 | 1 + ...39047efb2b454e6c1ac54138ef2985d_cgraph.svg | 93 + ...9047efb2b454e6c1ac54138ef2985d_icgraph.map | 14 + ...9047efb2b454e6c1ac54138ef2985d_icgraph.md5 | 1 + ...9047efb2b454e6c1ac54138ef2985d_icgraph.svg | 121 + ...ad2dafb4a231390f02b7c866295b7d9_cgraph.map | 39 + ...ad2dafb4a231390f02b7c866295b7d9_cgraph.md5 | 1 + ...ad2dafb4a231390f02b7c866295b7d9_cgraph.svg | 345 + a02177.html | 452 + a02177.js | 8 + ...418f4cd7336bf77cce7b955a1bf7077_cgraph.map | 95 + ...418f4cd7336bf77cce7b955a1bf7077_cgraph.md5 | 1 + ...418f4cd7336bf77cce7b955a1bf7077_cgraph.svg | 849 ++ ...5195957c1cde1508257782716aa6db3_cgraph.map | 23 + ...5195957c1cde1508257782716aa6db3_cgraph.md5 | 1 + ...5195957c1cde1508257782716aa6db3_cgraph.svg | 201 + ...195957c1cde1508257782716aa6db3_icgraph.map | 11 + ...195957c1cde1508257782716aa6db3_icgraph.md5 | 1 + ...195957c1cde1508257782716aa6db3_icgraph.svg | 94 + ...9f0f3fbb14da879d3ff09bd367bbb24_cgraph.map | 79 + ...9f0f3fbb14da879d3ff09bd367bbb24_cgraph.md5 | 1 + ...9f0f3fbb14da879d3ff09bd367bbb24_cgraph.svg | 705 ++ ...f0f3fbb14da879d3ff09bd367bbb24_icgraph.map | 16 + ...f0f3fbb14da879d3ff09bd367bbb24_icgraph.md5 | 1 + ...f0f3fbb14da879d3ff09bd367bbb24_icgraph.svg | 139 + ...b098c0a8c3908f3fdd32e7ea7d780bb_cgraph.map | 15 + ...b098c0a8c3908f3fdd32e7ea7d780bb_cgraph.md5 | 1 + ...b098c0a8c3908f3fdd32e7ea7d780bb_cgraph.svg | 129 + ...098c0a8c3908f3fdd32e7ea7d780bb_icgraph.map | 11 + ...098c0a8c3908f3fdd32e7ea7d780bb_icgraph.md5 | 1 + ...098c0a8c3908f3fdd32e7ea7d780bb_icgraph.svg | 94 + a02178.html | 155 + a02178.js | 4 + ...260ad2dd766aec3274c518e2e312b1f_cgraph.map | 35 + ...260ad2dd766aec3274c518e2e312b1f_cgraph.md5 | 1 + ...260ad2dd766aec3274c518e2e312b1f_cgraph.svg | 309 + a02182.html | 141 + a02182.js | 4 + a02186.html | 163 + a02186.js | 5 + a02188.map | 7 + a02188.md5 | 1 + a02188.svg | 59 + a02190.html | 245 + a02190.js | 9 + a02194.html | 318 + a02194.js | 13 + a02196.map | 4 + a02196.md5 | 1 + a02196.svg | 32 + a02198.html | 208 + a02198.js | 7 + a02200.map | 4 + a02200.md5 | 1 + a02200.svg | 34 + a02202.html | 256 + a02202.js | 10 + a02204.map | 4 + a02204.md5 | 1 + a02204.svg | 31 + a02206.html | 208 + a02206.js | 7 + a02208.map | 12 + a02208.md5 | 1 + a02208.svg | 114 + a02210.html | 496 ++ a02210.js | 22 + a02214.html | 241 + a02214.js | 9 + a02218.html | 161 + a02218.js | 5 + a02226.html | 141 + a02226.js | 4 + a02228.map | 12 + a02228.md5 | 1 + a02228.svg | 108 + a02230.html | 270 + a02230.js | 10 + a02232.map | 15 + a02232.md5 | 1 + a02232.svg | 137 + a02234.html | 252 + a02234.js | 9 + a02236.map | 15 + a02236.md5 | 1 + a02236.svg | 137 + a02238.html | 232 + a02238.js | 8 + a02240.map | 22 + a02240.md5 | 1 + a02240.svg | 205 + a02242.html | 230 + a02242.js | 8 + a02244.map | 55 + a02244.md5 | 1 + a02244.svg | 527 ++ a02246.html | 329 + a02246.js | 13 + a02250.html | 161 + a02250.js | 5 + a02252.map | 58 + a02252.md5 | 1 + a02252.svg | 556 ++ a02254.html | 308 + a02254.js | 12 + a02258.html | 177 + a02258.js | 6 + a02260.map | 74 + a02260.md5 | 1 + a02260.svg | 713 ++ a02262.html | 218 + a02262.js | 8 + a02264.map | 38 + a02264.md5 | 1 + a02264.svg | 362 + a02266.html | 211 + a02266.js | 7 + a02272.map | 41 + a02272.md5 | 1 + a02272.svg | 391 + a02274.html | 251 + a02274.js | 9 + a02276.map | 43 + a02276.md5 | 1 + a02276.svg | 410 + a02278.html | 190 + a02278.js | 6 + a02280.map | 49 + a02280.md5 | 1 + a02280.svg | 470 ++ a02282.html | 379 + a02282.js | 15 + a02284.map | 24 + a02284.md5 | 1 + a02284.svg | 224 + a02286.html | 190 + a02286.js | 6 + a02288.map | 55 + a02288.md5 | 1 + a02288.svg | 527 ++ a02290.html | 333 + a02290.js | 13 + a02294.html | 243 + a02294.js | 9 + a02298.html | 144 + a02298.js | 4 + a02300.map | 5 + a02300.md5 | 1 + a02300.svg | 40 + a02302.html | 195 + a02302.js | 7 + a02306.html | 163 + a02306.js | 5 + a02308.map | 4 + a02308.md5 | 1 + a02308.svg | 32 + a02310.html | 193 + a02310.js | 6 + a02312.map | 6 + a02312.md5 | 1 + a02312.svg | 51 + a02314.html | 172 + a02314.js | 5 + a02318.html | 193 + a02318.js | 6 + a02322.html | 159 + a02322.js | 5 + a02324.map | 38 + a02324.md5 | 1 + a02324.svg | 362 + a02326.html | 485 ++ a02326.js | 20 + a02330.html | 142 + a02330.js | 4 + a02334.html | 159 + a02334.js | 5 + a02336.map | 5 + a02336.md5 | 1 + a02336.svg | 42 + a02338.html | 187 + a02338.js | 6 + a02340.html | 726 ++ a02340.js | 25 + ...4d6d40ed6d39c37c11df8d98fe78a2_icgraph.map | 5 + ...4d6d40ed6d39c37c11df8d98fe78a2_icgraph.md5 | 1 + ...4d6d40ed6d39c37c11df8d98fe78a2_icgraph.svg | 40 + ...828b5c2758940f6d3c7d4335228de5_icgraph.map | 5 + ...828b5c2758940f6d3c7d4335228de5_icgraph.md5 | 1 + ...828b5c2758940f6d3c7d4335228de5_icgraph.svg | 40 + a02340_source.html | 322 + a02341.map | 29 + a02341.md5 | 1 + a02341.svg | 255 + a02343.html | 639 ++ a02343.js | 17 + ...69e798e54b8e0933d5c39960d6c2ad3_cgraph.map | 5 + ...69e798e54b8e0933d5c39960d6c2ad3_cgraph.md5 | 1 + ...69e798e54b8e0933d5c39960d6c2ad3_cgraph.svg | 39 + ...2b9155cb5133ef21023a1ff4653bf04_cgraph.map | 5 + ...2b9155cb5133ef21023a1ff4653bf04_cgraph.md5 | 1 + ...2b9155cb5133ef21023a1ff4653bf04_cgraph.svg | 40 + ...4fec37f87bcd49aaacc97696f9e0e7d_cgraph.map | 5 + ...4fec37f87bcd49aaacc97696f9e0e7d_cgraph.md5 | 1 + ...4fec37f87bcd49aaacc97696f9e0e7d_cgraph.svg | 39 + ...fec37f87bcd49aaacc97696f9e0e7d_icgraph.map | 23 + ...fec37f87bcd49aaacc97696f9e0e7d_icgraph.md5 | 1 + ...fec37f87bcd49aaacc97696f9e0e7d_icgraph.svg | 203 + ...45f029b25098d24aca61b20beabe1bf_cgraph.map | 16 + ...45f029b25098d24aca61b20beabe1bf_cgraph.md5 | 1 + ...45f029b25098d24aca61b20beabe1bf_cgraph.svg | 138 + ...87bef36a598f3a197afea8e055e6608_cgraph.map | 5 + ...87bef36a598f3a197afea8e055e6608_cgraph.md5 | 1 + ...87bef36a598f3a197afea8e055e6608_cgraph.svg | 40 + ...80c36522a102a50963aa44fe7c692c_icgraph.map | 5 + ...80c36522a102a50963aa44fe7c692c_icgraph.md5 | 1 + ...80c36522a102a50963aa44fe7c692c_icgraph.svg | 39 + ...f21f41c6c1797ff0b8754fb046f3dbc_cgraph.map | 5 + ...f21f41c6c1797ff0b8754fb046f3dbc_cgraph.md5 | 1 + ...f21f41c6c1797ff0b8754fb046f3dbc_cgraph.svg | 39 + ...6fb6388e92c5d82c9d5750fee1a7fb_icgraph.map | 7 + ...6fb6388e92c5d82c9d5750fee1a7fb_icgraph.md5 | 1 + ...6fb6388e92c5d82c9d5750fee1a7fb_icgraph.svg | 57 + ...bfaa5e934f1853fc8fd536ea469ad9_icgraph.map | 23 + ...bfaa5e934f1853fc8fd536ea469ad9_icgraph.md5 | 1 + ...bfaa5e934f1853fc8fd536ea469ad9_icgraph.svg | 203 + ...828b5c2758940f6d3c7d4335228de5_icgraph.map | 78 + ...828b5c2758940f6d3c7d4335228de5_icgraph.md5 | 1 + ...828b5c2758940f6d3c7d4335228de5_icgraph.svg | 700 ++ a02343_source.html | 271 + a02344.map | 7 + a02344.md5 | 1 + a02344.svg | 57 + a02346.html | 949 +++ a02346.js | 31 + ...a370eee5160963e617d1daf1c07363_icgraph.map | 97 + ...a370eee5160963e617d1daf1c07363_icgraph.md5 | 1 + ...a370eee5160963e617d1daf1c07363_icgraph.svg | 871 ++ ...7d01fc7720e936a430efc09d094c6c_icgraph.map | 31 + ...7d01fc7720e936a430efc09d094c6c_icgraph.md5 | 1 + ...7d01fc7720e936a430efc09d094c6c_icgraph.svg | 275 + ...083e8ceb4bfe7793ca1a5a799834d0_icgraph.map | 115 + ...083e8ceb4bfe7793ca1a5a799834d0_icgraph.md5 | 1 + ...083e8ceb4bfe7793ca1a5a799834d0_icgraph.svg | 1037 +++ ...b7c7fe9cb93434dde72a4e464a7e69_icgraph.map | 72 + ...b7c7fe9cb93434dde72a4e464a7e69_icgraph.md5 | 1 + ...b7c7fe9cb93434dde72a4e464a7e69_icgraph.svg | 646 ++ ...459f71b73bbc23f0b4bb342d093dde3_cgraph.map | 7 + ...459f71b73bbc23f0b4bb342d093dde3_cgraph.md5 | 1 + ...459f71b73bbc23f0b4bb342d093dde3_cgraph.svg | 57 + ...59f71b73bbc23f0b4bb342d093dde3_icgraph.map | 123 + ...59f71b73bbc23f0b4bb342d093dde3_icgraph.md5 | 1 + ...59f71b73bbc23f0b4bb342d093dde3_icgraph.svg | 1109 +++ ...2195e0b081f467f8e058d1406bd4fc7_cgraph.map | 9 + ...2195e0b081f467f8e058d1406bd4fc7_cgraph.md5 | 1 + ...2195e0b081f467f8e058d1406bd4fc7_cgraph.svg | 75 + ...195e0b081f467f8e058d1406bd4fc7_icgraph.map | 23 + ...195e0b081f467f8e058d1406bd4fc7_icgraph.md5 | 1 + ...195e0b081f467f8e058d1406bd4fc7_icgraph.svg | 203 + ...d38a2680290bd159549efaa41b925b_icgraph.map | 122 + ...d38a2680290bd159549efaa41b925b_icgraph.md5 | 1 + ...d38a2680290bd159549efaa41b925b_icgraph.svg | 1100 +++ ...28117d73179c279de49e01ae905dda_icgraph.map | 84 + ...28117d73179c279de49e01ae905dda_icgraph.md5 | 1 + ...28117d73179c279de49e01ae905dda_icgraph.svg | 754 ++ ...d30ecbf6bff6457b680aa940281072_icgraph.map | 124 + ...d30ecbf6bff6457b680aa940281072_icgraph.md5 | 1 + ...d30ecbf6bff6457b680aa940281072_icgraph.svg | 1118 +++ ...6ae81847153386c57918f4d91be8a7_icgraph.map | 25 + ...6ae81847153386c57918f4d91be8a7_icgraph.md5 | 1 + ...6ae81847153386c57918f4d91be8a7_icgraph.svg | 221 + ...f9e72bb6cbd8b9e33489d46c25075d_icgraph.map | 117 + ...f9e72bb6cbd8b9e33489d46c25075d_icgraph.md5 | 1 + ...f9e72bb6cbd8b9e33489d46c25075d_icgraph.svg | 1055 +++ a02346_source.html | 428 + a02347.map | 44 + a02347.md5 | 1 + a02347.svg | 390 + a02349.html | 724 ++ a02349.js | 19 + ...bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.map | 5 + ...bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.md5 | 1 + ...bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.svg | 39 + ...bcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.map | 5 + ...bcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.md5 | 1 + ...bcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.svg | 39 + ...28117d73179c279de49e01ae905dda_icgraph.map | 5 + ...28117d73179c279de49e01ae905dda_icgraph.md5 | 1 + ...28117d73179c279de49e01ae905dda_icgraph.svg | 39 + ...7fbf1f43289d3e0e862b315f00e35e2_cgraph.map | 9 + ...7fbf1f43289d3e0e862b315f00e35e2_cgraph.md5 | 1 + ...7fbf1f43289d3e0e862b315f00e35e2_cgraph.svg | 75 + ...d30ecbf6bff6457b680aa940281072_icgraph.map | 7 + ...d30ecbf6bff6457b680aa940281072_icgraph.md5 | 1 + ...d30ecbf6bff6457b680aa940281072_icgraph.svg | 57 + ...f9e72bb6cbd8b9e33489d46c25075d_icgraph.map | 5 + ...f9e72bb6cbd8b9e33489d46c25075d_icgraph.md5 | 1 + ...f9e72bb6cbd8b9e33489d46c25075d_icgraph.svg | 39 + ...d6af4d83e934e3e654ead541b15f2d9_cgraph.map | 5 + ...d6af4d83e934e3e654ead541b15f2d9_cgraph.md5 | 1 + ...d6af4d83e934e3e654ead541b15f2d9_cgraph.svg | 39 + a02349_source.html | 226 + a02350.map | 29 + a02350.md5 | 1 + a02350.svg | 255 + a02352.html | 897 ++ a02352.js | 19 + ...fa370eee5160963e617d1daf1c07363_cgraph.map | 13 + ...fa370eee5160963e617d1daf1c07363_cgraph.md5 | 1 + ...fa370eee5160963e617d1daf1c07363_cgraph.svg | 111 + ...a370eee5160963e617d1daf1c07363_icgraph.map | 97 + ...a370eee5160963e617d1daf1c07363_icgraph.md5 | 1 + ...a370eee5160963e617d1daf1c07363_icgraph.svg | 871 ++ ...bfeaeb9b81855e640d7a67cc9d92b17_cgraph.map | 9 + ...bfeaeb9b81855e640d7a67cc9d92b17_cgraph.md5 | 1 + ...bfeaeb9b81855e640d7a67cc9d92b17_cgraph.svg | 75 + ...feaeb9b81855e640d7a67cc9d92b17_icgraph.map | 70 + ...feaeb9b81855e640d7a67cc9d92b17_icgraph.md5 | 1 + ...feaeb9b81855e640d7a67cc9d92b17_icgraph.svg | 628 ++ ...a7d01fc7720e936a430efc09d094c6c_cgraph.map | 7 + ...a7d01fc7720e936a430efc09d094c6c_cgraph.md5 | 1 + ...a7d01fc7720e936a430efc09d094c6c_cgraph.svg | 57 + ...7d01fc7720e936a430efc09d094c6c_icgraph.map | 31 + ...7d01fc7720e936a430efc09d094c6c_icgraph.md5 | 1 + ...7d01fc7720e936a430efc09d094c6c_icgraph.svg | 275 + ...bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.map | 5 + ...bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.md5 | 1 + ...bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.svg | 39 + ...bcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.map | 113 + ...bcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.md5 | 1 + ...bcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.svg | 1019 +++ ...5a896fb606c2aa66a5a4c2af59ce494_cgraph.map | 5 + ...5a896fb606c2aa66a5a4c2af59ce494_cgraph.md5 | 1 + ...5a896fb606c2aa66a5a4c2af59ce494_cgraph.svg | 39 + ...a896fb606c2aa66a5a4c2af59ce494_icgraph.map | 95 + ...a896fb606c2aa66a5a4c2af59ce494_icgraph.md5 | 1 + ...a896fb606c2aa66a5a4c2af59ce494_icgraph.svg | 853 ++ ...ab7c7fe9cb93434dde72a4e464a7e69_cgraph.map | 17 + ...ab7c7fe9cb93434dde72a4e464a7e69_cgraph.md5 | 1 + ...ab7c7fe9cb93434dde72a4e464a7e69_cgraph.svg | 147 + ...b7c7fe9cb93434dde72a4e464a7e69_icgraph.map | 72 + ...b7c7fe9cb93434dde72a4e464a7e69_icgraph.md5 | 1 + ...b7c7fe9cb93434dde72a4e464a7e69_icgraph.svg | 646 ++ ...2e422aab2fcfa562795beb2843e8019_cgraph.map | 38 + ...2e422aab2fcfa562795beb2843e8019_cgraph.md5 | 1 + ...2e422aab2fcfa562795beb2843e8019_cgraph.svg | 336 + ...e422aab2fcfa562795beb2843e8019_icgraph.map | 23 + ...e422aab2fcfa562795beb2843e8019_icgraph.md5 | 1 + ...e422aab2fcfa562795beb2843e8019_icgraph.svg | 203 + ...728117d73179c279de49e01ae905dda_cgraph.map | 5 + ...728117d73179c279de49e01ae905dda_cgraph.md5 | 1 + ...728117d73179c279de49e01ae905dda_cgraph.svg | 39 + ...28117d73179c279de49e01ae905dda_icgraph.map | 48 + ...28117d73179c279de49e01ae905dda_icgraph.md5 | 1 + ...28117d73179c279de49e01ae905dda_icgraph.svg | 429 + ...7fbf1f43289d3e0e862b315f00e35e2_cgraph.map | 9 + ...7fbf1f43289d3e0e862b315f00e35e2_cgraph.md5 | 1 + ...7fbf1f43289d3e0e862b315f00e35e2_cgraph.svg | 75 + ...fbf1f43289d3e0e862b315f00e35e2_icgraph.map | 29 + ...fbf1f43289d3e0e862b315f00e35e2_icgraph.md5 | 1 + ...fbf1f43289d3e0e862b315f00e35e2_icgraph.svg | 257 + ...1d30ecbf6bff6457b680aa940281072_cgraph.map | 5 + ...1d30ecbf6bff6457b680aa940281072_cgraph.md5 | 1 + ...1d30ecbf6bff6457b680aa940281072_cgraph.svg | 39 + ...d30ecbf6bff6457b680aa940281072_icgraph.map | 119 + ...d30ecbf6bff6457b680aa940281072_icgraph.md5 | 1 + ...d30ecbf6bff6457b680aa940281072_icgraph.svg | 1073 +++ ...baa29dfccfdfe6e3fe69a1d001c05b5_cgraph.map | 36 + ...baa29dfccfdfe6e3fe69a1d001c05b5_cgraph.md5 | 1 + ...baa29dfccfdfe6e3fe69a1d001c05b5_cgraph.svg | 318 + ...aa29dfccfdfe6e3fe69a1d001c05b5_icgraph.map | 21 + ...aa29dfccfdfe6e3fe69a1d001c05b5_icgraph.md5 | 1 + ...aa29dfccfdfe6e3fe69a1d001c05b5_icgraph.svg | 185 + ...bf9e72bb6cbd8b9e33489d46c25075d_cgraph.map | 11 + ...bf9e72bb6cbd8b9e33489d46c25075d_cgraph.md5 | 1 + ...bf9e72bb6cbd8b9e33489d46c25075d_cgraph.svg | 93 + ...f9e72bb6cbd8b9e33489d46c25075d_icgraph.map | 118 + ...f9e72bb6cbd8b9e33489d46c25075d_icgraph.md5 | 1 + ...f9e72bb6cbd8b9e33489d46c25075d_icgraph.svg | 1064 +++ ...d6af4d83e934e3e654ead541b15f2d9_cgraph.map | 5 + ...d6af4d83e934e3e654ead541b15f2d9_cgraph.md5 | 1 + ...d6af4d83e934e3e654ead541b15f2d9_cgraph.svg | 39 + ...6af4d83e934e3e654ead541b15f2d9_icgraph.map | 113 + ...6af4d83e934e3e654ead541b15f2d9_icgraph.md5 | 1 + ...6af4d83e934e3e654ead541b15f2d9_icgraph.svg | 1019 +++ ...e9571a12debd9d75a0f8fb93420e268_cgraph.map | 7 + ...e9571a12debd9d75a0f8fb93420e268_cgraph.md5 | 1 + ...e9571a12debd9d75a0f8fb93420e268_cgraph.svg | 57 + ...9571a12debd9d75a0f8fb93420e268_icgraph.map | 7 + ...9571a12debd9d75a0f8fb93420e268_icgraph.md5 | 1 + ...9571a12debd9d75a0f8fb93420e268_icgraph.svg | 57 + a02352_source.html | 221 + a02353.map | 25 + a02353.md5 | 1 + a02353.svg | 219 + a02355.html | 198 + a02355.js | 10 + a02355_source.html | 188 + a02356.map | 27 + a02356.md5 | 1 + a02356.svg | 237 + a02357.map | 5 + a02357.md5 | 1 + a02357.svg | 39 + a02358.html | 142 + a02358.js | 7 + a02358_source.html | 153 + a02359.map | 27 + a02359.md5 | 1 + a02359.svg | 237 + a02360.map | 5 + a02360.md5 | 1 + a02360.svg | 39 + a02361.html | 140 + a02361.js | 7 + a02361_source.html | 146 + a02362.map | 23 + a02362.md5 | 1 + a02362.svg | 201 + a02363.map | 5 + a02363.md5 | 1 + a02363.svg | 39 + annotated.html | 149 + annotated_dup.js | 40 + bc_s.png | Bin 0 -> 683 bytes bc_sd.png | Bin 0 -> 570 bytes ccmake_scr.png | Bin 0 -> 66973 bytes classes.html | 128 + closed.png | Bin 0 -> 130 bytes dir_000000_000005.html | 105 + dir_000000_000012.html | 105 + dir_000001_000003.html | 105 + dir_000001_000005.html | 105 + dir_000001_000012.html | 105 + dir_000002_000003.html | 105 + dir_000002_000005.html | 105 + dir_000002_000012.html | 105 + dir_000003_000005.html | 105 + dir_000003_000012.html | 105 + dir_000004_000012.html | 105 + dir_000005_000010.html | 105 + dir_000006_000003.html | 105 + dir_000006_000005.html | 105 + dir_000006_000012.html | 105 + dir_000007_000003.html | 105 + dir_000008_000003.html | 105 + dir_000008_000005.html | 105 + dir_000008_000012.html | 105 + dir_000009_000003.html | 105 + dir_000012_000000.html | 105 + dir_000012_000003.html | 105 + dir_000012_000005.html | 105 + dir_0f311e9d6354c33ee33a2e1d521faacd.html | 121 + dir_0f311e9d6354c33ee33a2e1d521faacd.js | 4 + dir_0f311e9d6354c33ee33a2e1d521faacd_dep.map | 10 + dir_0f311e9d6354c33ee33a2e1d521faacd_dep.md5 | 1 + dir_0f311e9d6354c33ee33a2e1d521faacd_dep.svg | 86 + dir_18997a6c0c87b9abd61bc73a2ec4908c.html | 127 + dir_18997a6c0c87b9abd61bc73a2ec4908c.js | 7 + dir_18997a6c0c87b9abd61bc73a2ec4908c_dep.map | 6 + dir_18997a6c0c87b9abd61bc73a2ec4908c_dep.md5 | 1 + dir_18997a6c0c87b9abd61bc73a2ec4908c_dep.svg | 48 + dir_277b185b16885b8bfa09a39abbb00c86.html | 121 + dir_277b185b16885b8bfa09a39abbb00c86.js | 4 + dir_277b185b16885b8bfa09a39abbb00c86_dep.map | 4 + dir_277b185b16885b8bfa09a39abbb00c86_dep.md5 | 1 + dir_277b185b16885b8bfa09a39abbb00c86_dep.svg | 29 + dir_2e53991d0abfe4d26476f40debcf47e2.html | 128 + dir_2e53991d0abfe4d26476f40debcf47e2.js | 6 + dir_2e53991d0abfe4d26476f40debcf47e2_dep.map | 11 + dir_2e53991d0abfe4d26476f40debcf47e2_dep.md5 | 1 + dir_2e53991d0abfe4d26476f40debcf47e2_dep.svg | 98 + dir_313caf1132e152dd9b58bea13a4052ca.html | 157 + dir_313caf1132e152dd9b58bea13a4052ca.js | 22 + dir_313caf1132e152dd9b58bea13a4052ca_dep.map | 10 + dir_313caf1132e152dd9b58bea13a4052ca_dep.md5 | 1 + dir_313caf1132e152dd9b58bea13a4052ca_dep.svg | 86 + dir_62dd6e7b4057fd55668a5ab83622491d.html | 123 + dir_62dd6e7b4057fd55668a5ab83622491d.js | 5 + dir_62dd6e7b4057fd55668a5ab83622491d_dep.map | 10 + dir_62dd6e7b4057fd55668a5ab83622491d_dep.md5 | 1 + dir_62dd6e7b4057fd55668a5ab83622491d_dep.svg | 86 + dir_68267d1309a1af8e8297ef4c3efbcdba.html | 129 + dir_68267d1309a1af8e8297ef4c3efbcdba.js | 8 + dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map | 22 + dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 | 1 + dir_68267d1309a1af8e8297ef4c3efbcdba_dep.svg | 208 + dir_70d5e250c66d001b18da37689179cade.html | 121 + dir_70d5e250c66d001b18da37689179cade.js | 4 + dir_70d5e250c66d001b18da37689179cade_dep.map | 11 + dir_70d5e250c66d001b18da37689179cade_dep.md5 | 1 + dir_70d5e250c66d001b18da37689179cade_dep.svg | 98 + dir_8d1c3ce1cd911fc2390a767bff7252f7.html | 123 + dir_8d1c3ce1cd911fc2390a767bff7252f7.js | 5 + dir_8d1c3ce1cd911fc2390a767bff7252f7_dep.map | 6 + dir_8d1c3ce1cd911fc2390a767bff7252f7_dep.md5 | 1 + dir_8d1c3ce1cd911fc2390a767bff7252f7_dep.svg | 48 + dir_9572de8811e490ed7cfd146fb7e7620e.html | 123 + dir_9572de8811e490ed7cfd146fb7e7620e.js | 5 + dir_9572de8811e490ed7cfd146fb7e7620e_dep.map | 6 + dir_9572de8811e490ed7cfd146fb7e7620e_dep.md5 | 1 + dir_9572de8811e490ed7cfd146fb7e7620e_dep.svg | 48 + dir_aebb8dcc11953d78e620bbef0b9e2183.html | 159 + dir_aebb8dcc11953d78e620bbef0b9e2183.js | 23 + dir_aebb8dcc11953d78e620bbef0b9e2183_dep.map | 8 + dir_aebb8dcc11953d78e620bbef0b9e2183_dep.md5 | 1 + dir_aebb8dcc11953d78e620bbef0b9e2183_dep.svg | 67 + dir_b60a79ed93f318a37dbc9781b4452c17.html | 130 + dir_b60a79ed93f318a37dbc9781b4452c17.js | 7 + dir_b60a79ed93f318a37dbc9781b4452c17_dep.map | 15 + dir_b60a79ed93f318a37dbc9781b4452c17_dep.md5 | 1 + dir_b60a79ed93f318a37dbc9781b4452c17_dep.svg | 136 + dir_d44c64559bbebec7f509842c48db8b23.html | 127 + dir_d44c64559bbebec7f509842c48db8b23.js | 7 + dir_d44c64559bbebec7f509842c48db8b23_dep.map | 5 + dir_d44c64559bbebec7f509842c48db8b23_dep.md5 | 1 + dir_d44c64559bbebec7f509842c48db8b23_dep.svg | 40 + doc.svg | 12 + docd.svg | 12 + docs.png | Bin 0 -> 1837 bytes doxygen-awesome.css | 2669 ++++++ doxygen.css | 1999 +++++ doxygen.svg | 28 + dynsections.js | 130 + files.html | 181 + files_dup.js | 5 + folderclosed.svg | 11 + folderclosedd.svg | 11 + folderopen.svg | 17 + folderopend.svg | 12 + functions.html | 339 + functions_func.html | 107 + functions_vars.html | 334 + globals.html | 119 + globals_a.html | 329 + globals_b.html | 116 + globals_c.html | 145 + globals_d.html | 143 + globals_defs.html | 109 + globals_defs.js | 23 + globals_defs_a.html | 137 + globals_defs_b.html | 113 + globals_defs_c.html | 137 + globals_defs_d.html | 141 + globals_defs_e.html | 112 + globals_defs_f.html | 117 + globals_defs_g.html | 112 + globals_defs_h.html | 112 + globals_defs_i.html | 127 + globals_defs_l.html | 114 + globals_defs_m.html | 142 + globals_defs_n.html | 116 + globals_defs_o.html | 116 + globals_defs_p.html | 121 + globals_defs_r.html | 112 + globals_defs_s.html | 134 + globals_defs_t.html | 114 + globals_defs_u.html | 144 + globals_defs_v.html | 110 + globals_dup.js | 24 + globals_e.html | 113 + globals_enum.html | 114 + globals_eval.html | 183 + globals_f.html | 124 + globals_func.html | 116 + globals_func.js | 18 + globals_func_a.html | 259 + globals_func_c.html | 112 + globals_func_d.html | 126 + globals_func_f.html | 113 + globals_func_g.html | 109 + globals_func_h.html | 109 + globals_func_i.html | 117 + globals_func_m.html | 111 + globals_func_p.html | 109 + globals_func_r.html | 109 + globals_func_s.html | 120 + globals_func_t.html | 111 + globals_func_u.html | 146 + globals_func_w.html | 109 + globals_g.html | 116 + globals_h.html | 114 + globals_i.html | 142 + globals_l.html | 114 + globals_m.html | 151 + globals_n.html | 118 + globals_o.html | 118 + globals_p.html | 125 + globals_r.html | 115 + globals_s.html | 150 + globals_t.html | 127 + globals_type.html | 181 + globals_u.html | 185 + globals_v.html | 112 + globals_vars.html | 128 + globals_w.html | 109 + graph_legend.html | 167 + graph_legend.md5 | 1 + graph_legend.svg | 167 + index.html | 334 + jquery.js | 34 + logo.png | Bin 0 -> 29051 bytes menu.js | 136 + menudata.js | 163 + modules.html | 116 + modules.js | 8 + nav_f.png | Bin 0 -> 145 bytes nav_fd.png | Bin 0 -> 141 bytes nav_g.png | Bin 0 -> 95 bytes nav_h.png | Bin 0 -> 94 bytes nav_hd.png | Bin 0 -> 99 bytes navtree.css | 150 + navtree.js | 556 ++ navtreedata.js | 99 + navtreeindex0.js | 253 + navtreeindex1.js | 253 + navtreeindex2.js | 253 + navtreeindex3.js | 253 + navtreeindex4.js | 253 + navtreeindex5.js | 140 + open.png | Bin 0 -> 117 bytes resize.js | 155 + search/all_0.js | 14 + search/all_1.js | 280 + search/all_10.js | 6 + search/all_11.js | 19 + search/all_12.js | 67 + search/all_13.js | 39 + search/all_14.js | 90 + search/all_15.js | 11 + search/all_16.js | 4 + search/all_2.js | 18 + search/all_3.js | 53 + search/all_4.js | 44 + search/all_5.js | 11 + search/all_6.js | 27 + search/all_7.js | 12 + search/all_8.js | 13 + search/all_9.js | 47 + search/all_a.js | 8 + search/all_b.js | 16 + search/all_c.js | 63 + search/all_d.js | 16 + search/all_e.js | 22 + search/all_f.js | 41 + search/classes_0.js | 25 + search/classes_1.js | 5 + search/classes_2.js | 9 + search/classes_3.js | 4 + search/classes_4.js | 4 + search/classes_5.js | 9 + search/close.svg | 18 + search/defines_0.js | 4 + search/defines_1.js | 32 + search/defines_10.js | 29 + search/defines_11.js | 9 + search/defines_12.js | 39 + search/defines_13.js | 5 + search/defines_2.js | 8 + search/defines_3.js | 32 + search/defines_4.js | 36 + search/defines_5.js | 7 + search/defines_6.js | 12 + search/defines_7.js | 7 + search/defines_8.js | 7 + search/defines_9.js | 22 + search/defines_a.js | 9 + search/defines_b.js | 37 + search/defines_c.js | 11 + search/defines_d.js | 11 + search/defines_e.js | 16 + search/defines_f.js | 7 + search/enums_0.js | 9 + search/enums_1.js | 4 + search/enums_2.js | 4 + search/enumvalues_0.js | 14 + search/enumvalues_1.js | 4 + search/enumvalues_2.js | 6 + search/enumvalues_3.js | 5 + search/enumvalues_4.js | 4 + search/enumvalues_5.js | 5 + search/enumvalues_6.js | 5 + search/enumvalues_7.js | 5 + search/enumvalues_8.js | 4 + search/enumvalues_9.js | 5 + search/enumvalues_a.js | 6 + search/enumvalues_b.js | 4 + search/files_0.js | 32 + search/files_1.js | 5 + search/files_2.js | 7 + search/files_3.js | 4 + search/files_4.js | 6 + search/files_5.js | 5 + search/files_6.js | 5 + search/files_7.js | 7 + search/files_8.js | 5 + search/files_9.js | 4 + search/files_a.js | 8 + search/files_b.js | 6 + search/functions_0.js | 11 + search/functions_1.js | 154 + search/functions_2.js | 7 + search/functions_3.js | 21 + search/functions_4.js | 8 + search/functions_5.js | 4 + search/functions_6.js | 4 + search/functions_7.js | 12 + search/functions_8.js | 6 + search/functions_9.js | 4 + search/functions_a.js | 4 + search/functions_b.js | 15 + search/functions_c.js | 6 + search/functions_d.js | 41 + search/functions_e.js | 4 + search/groups_0.js | 4 + search/groups_1.js | 7 + search/mag.svg | 24 + search/mag_d.svg | 24 + search/mag_sel.svg | 31 + search/mag_seld.svg | 31 + search/pages_0.js | 4 + search/search.css | 291 + search/search.js | 820 ++ search/searchdata.js | 45 + search/typedefs_0.js | 30 + search/typedefs_1.js | 5 + search/typedefs_2.js | 4 + search/typedefs_3.js | 4 + search/typedefs_4.js | 8 + search/typedefs_5.js | 4 + search/typedefs_6.js | 6 + search/typedefs_7.js | 8 + search/variables_0.js | 5 + search/variables_1.js | 17 + search/variables_10.js | 4 + search/variables_11.js | 12 + search/variables_12.js | 21 + search/variables_13.js | 21 + search/variables_14.js | 8 + search/variables_15.js | 8 + search/variables_2.js | 8 + search/variables_3.js | 13 + search/variables_4.js | 9 + search/variables_5.js | 7 + search/variables_6.js | 12 + search/variables_7.js | 5 + search/variables_8.js | 7 + search/variables_9.js | 10 + search/variables_a.js | 6 + search/variables_b.js | 8 + search/variables_c.js | 11 + search/variables_d.js | 6 + search/variables_e.js | 12 + search/variables_f.js | 21 + splitbar.png | Bin 0 -> 304 bytes splitbard.png | Bin 0 -> 272 bytes sync_off.png | Bin 0 -> 850 bytes sync_on.png | Bin 0 -> 826 bytes tab_a.png | Bin 0 -> 130 bytes tab_ad.png | Bin 0 -> 122 bytes tab_b.png | Bin 0 -> 168 bytes tab_bd.png | Bin 0 -> 140 bytes tab_h.png | Bin 0 -> 173 bytes tab_hd.png | Bin 0 -> 167 bytes tab_s.png | Bin 0 -> 180 bytes tab_sd.png | Bin 0 -> 158 bytes tabs.css | 1 + 2549 files changed, 278416 insertions(+) create mode 100644 a00047.html create mode 100644 a01355.html create mode 100644 a01355.js create mode 100644 a01355_source.html create mode 100644 a01356.map create mode 100644 a01356.md5 create mode 100644 a01356.svg create mode 100644 a01357.map create mode 100644 a01357.md5 create mode 100644 a01357.svg create mode 100644 a01358.html create mode 100644 a01358.js create mode 100644 a01358_a186712b2a923d4bda1be98de189bc0f9_icgraph.map create mode 100644 a01358_a186712b2a923d4bda1be98de189bc0f9_icgraph.md5 create mode 100644 a01358_a186712b2a923d4bda1be98de189bc0f9_icgraph.svg create mode 100644 a01358_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.map create mode 100644 a01358_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.md5 create mode 100644 a01358_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.svg create mode 100644 a01358_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.map create mode 100644 a01358_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.md5 create mode 100644 a01358_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.svg create mode 100644 a01358_a4c22ae41507232dc3efc725428cbfc7b_cgraph.map create mode 100644 a01358_a4c22ae41507232dc3efc725428cbfc7b_cgraph.md5 create mode 100644 a01358_a4c22ae41507232dc3efc725428cbfc7b_cgraph.svg create mode 100644 a01358_a4c22ae41507232dc3efc725428cbfc7b_icgraph.map create mode 100644 a01358_a4c22ae41507232dc3efc725428cbfc7b_icgraph.md5 create mode 100644 a01358_a4c22ae41507232dc3efc725428cbfc7b_icgraph.svg create mode 100644 a01358_a5006bea23d2b9964f0f7c12947180e01_icgraph.map create mode 100644 a01358_a5006bea23d2b9964f0f7c12947180e01_icgraph.md5 create mode 100644 a01358_a5006bea23d2b9964f0f7c12947180e01_icgraph.svg create mode 100644 a01358_a5144f906658718ef853a8d18dda1e724_cgraph.map create mode 100644 a01358_a5144f906658718ef853a8d18dda1e724_cgraph.md5 create mode 100644 a01358_a5144f906658718ef853a8d18dda1e724_cgraph.svg create mode 100644 a01358_a5144f906658718ef853a8d18dda1e724_icgraph.map create mode 100644 a01358_a5144f906658718ef853a8d18dda1e724_icgraph.md5 create mode 100644 a01358_a5144f906658718ef853a8d18dda1e724_icgraph.svg create mode 100644 a01358_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.map create mode 100644 a01358_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.md5 create mode 100644 a01358_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.svg create mode 100644 a01358_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.map create mode 100644 a01358_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.md5 create mode 100644 a01358_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.svg create mode 100644 a01358_a60dde947b05bc69599a6c7d92c38d088_icgraph.map create mode 100644 a01358_a60dde947b05bc69599a6c7d92c38d088_icgraph.md5 create mode 100644 a01358_a60dde947b05bc69599a6c7d92c38d088_icgraph.svg create mode 100644 a01358_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.map create mode 100644 a01358_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.md5 create mode 100644 a01358_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.svg create mode 100644 a01358_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.map create mode 100644 a01358_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.md5 create mode 100644 a01358_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.svg create mode 100644 a01358_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.map create mode 100644 a01358_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.md5 create mode 100644 a01358_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.svg create mode 100644 a01358_a8b36751c1bdab169e4735143d3712a09_icgraph.map create mode 100644 a01358_a8b36751c1bdab169e4735143d3712a09_icgraph.md5 create mode 100644 a01358_a8b36751c1bdab169e4735143d3712a09_icgraph.svg create mode 100644 a01358_a8d805b003097be6a6328a35c78bf558b_icgraph.map create mode 100644 a01358_a8d805b003097be6a6328a35c78bf558b_icgraph.md5 create mode 100644 a01358_a8d805b003097be6a6328a35c78bf558b_icgraph.svg create mode 100644 a01358_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.map create mode 100644 a01358_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.md5 create mode 100644 a01358_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.svg create mode 100644 a01358_a94ce6437cad359c8523f57fe50be020d_cgraph.map create mode 100644 a01358_a94ce6437cad359c8523f57fe50be020d_cgraph.md5 create mode 100644 a01358_a94ce6437cad359c8523f57fe50be020d_cgraph.svg create mode 100644 a01358_a94ce6437cad359c8523f57fe50be020d_icgraph.map create mode 100644 a01358_a94ce6437cad359c8523f57fe50be020d_icgraph.md5 create mode 100644 a01358_a94ce6437cad359c8523f57fe50be020d_icgraph.svg create mode 100644 a01358_aa0862a60d187bfed0cfa11bf27174551_cgraph.map create mode 100644 a01358_aa0862a60d187bfed0cfa11bf27174551_cgraph.md5 create mode 100644 a01358_aa0862a60d187bfed0cfa11bf27174551_cgraph.svg create mode 100644 a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.map create mode 100644 a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.md5 create mode 100644 a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.svg create mode 100644 a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.map create mode 100644 a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.md5 create mode 100644 a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.svg create mode 100644 a01358_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.map create mode 100644 a01358_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.md5 create mode 100644 a01358_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.svg create mode 100644 a01358_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.map create mode 100644 a01358_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.md5 create mode 100644 a01358_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.svg create mode 100644 a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.map create mode 100644 a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.md5 create mode 100644 a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.svg create mode 100644 a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.map create mode 100644 a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.md5 create mode 100644 a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.svg create mode 100644 a01358_aa6e4832b06bd5757be4502d2de7b3026_cgraph.map create mode 100644 a01358_aa6e4832b06bd5757be4502d2de7b3026_cgraph.md5 create mode 100644 a01358_aa6e4832b06bd5757be4502d2de7b3026_cgraph.svg create mode 100644 a01358_ac2e1e32dc603394aecede365f454c8c4_cgraph.map create mode 100644 a01358_ac2e1e32dc603394aecede365f454c8c4_cgraph.md5 create mode 100644 a01358_ac2e1e32dc603394aecede365f454c8c4_cgraph.svg create mode 100644 a01358_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.map create mode 100644 a01358_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.md5 create mode 100644 a01358_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.svg create mode 100644 a01358_source.html create mode 100644 a01359.map create mode 100644 a01359.md5 create mode 100644 a01359.svg create mode 100644 a01360.map create mode 100644 a01360.md5 create mode 100644 a01360.svg create mode 100644 a01361.html create mode 100644 a01361.js create mode 100644 a01361_source.html create mode 100644 a01362.map create mode 100644 a01362.md5 create mode 100644 a01362.svg create mode 100644 a01363.map create mode 100644 a01363.md5 create mode 100644 a01363.svg create mode 100644 a01364.html create mode 100644 a01364.js create mode 100644 a01364_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.map create mode 100644 a01364_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.md5 create mode 100644 a01364_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.svg create mode 100644 a01364_a32b9155cb5133ef21023a1ff4653bf04_cgraph.map create mode 100644 a01364_a32b9155cb5133ef21023a1ff4653bf04_cgraph.md5 create mode 100644 a01364_a32b9155cb5133ef21023a1ff4653bf04_cgraph.svg create mode 100644 a01364_a3c628cf674eb8ffcf515df963220fb84_cgraph.map create mode 100644 a01364_a3c628cf674eb8ffcf515df963220fb84_cgraph.md5 create mode 100644 a01364_a3c628cf674eb8ffcf515df963220fb84_cgraph.svg create mode 100644 a01364_a3c628cf674eb8ffcf515df963220fb84_icgraph.map create mode 100644 a01364_a3c628cf674eb8ffcf515df963220fb84_icgraph.md5 create mode 100644 a01364_a3c628cf674eb8ffcf515df963220fb84_icgraph.svg create mode 100644 a01364_a4a62fff2d911326edc6b805afccbfb6b_cgraph.map create mode 100644 a01364_a4a62fff2d911326edc6b805afccbfb6b_cgraph.md5 create mode 100644 a01364_a4a62fff2d911326edc6b805afccbfb6b_cgraph.svg create mode 100644 a01364_a645f029b25098d24aca61b20beabe1bf_cgraph.map create mode 100644 a01364_a645f029b25098d24aca61b20beabe1bf_cgraph.md5 create mode 100644 a01364_a645f029b25098d24aca61b20beabe1bf_cgraph.svg create mode 100644 a01364_a6b7a76d9da9e24d1dd4f8fc768b342b0_icgraph.map create mode 100644 a01364_a6b7a76d9da9e24d1dd4f8fc768b342b0_icgraph.md5 create mode 100644 a01364_a6b7a76d9da9e24d1dd4f8fc768b342b0_icgraph.svg create mode 100644 a01364_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.map create mode 100644 a01364_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.md5 create mode 100644 a01364_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.svg create mode 100644 a01364_a786db7497e30f72feef2ebcbc75fb775_cgraph.map create mode 100644 a01364_a786db7497e30f72feef2ebcbc75fb775_cgraph.md5 create mode 100644 a01364_a786db7497e30f72feef2ebcbc75fb775_cgraph.svg create mode 100644 a01364_aae81034fc3fcc43abca5e10db42a7d81_icgraph.map create mode 100644 a01364_aae81034fc3fcc43abca5e10db42a7d81_icgraph.md5 create mode 100644 a01364_aae81034fc3fcc43abca5e10db42a7d81_icgraph.svg create mode 100644 a01364_source.html create mode 100644 a01365.map create mode 100644 a01365.md5 create mode 100644 a01365.svg create mode 100644 a01366.map create mode 100644 a01366.md5 create mode 100644 a01366.svg create mode 100644 a01367.html create mode 100644 a01367.js create mode 100644 a01367_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.map create mode 100644 a01367_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.md5 create mode 100644 a01367_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.svg create mode 100644 a01367_a91805af1bb8178dbb114ff65d491f840_icgraph.map create mode 100644 a01367_a91805af1bb8178dbb114ff65d491f840_icgraph.md5 create mode 100644 a01367_a91805af1bb8178dbb114ff65d491f840_icgraph.svg create mode 100644 a01367_source.html create mode 100644 a01368.map create mode 100644 a01368.md5 create mode 100644 a01368.svg create mode 100644 a01369.map create mode 100644 a01369.md5 create mode 100644 a01369.svg create mode 100644 a01370.html create mode 100644 a01370.js create mode 100644 a01370_a27854e7c23d8cf99d4f5044d5a6c54f2_cgraph.map create mode 100644 a01370_a27854e7c23d8cf99d4f5044d5a6c54f2_cgraph.md5 create mode 100644 a01370_a27854e7c23d8cf99d4f5044d5a6c54f2_cgraph.svg create mode 100644 a01370_a2f4a6e64f2337b6493d4b4b45249290c_cgraph.map create mode 100644 a01370_a2f4a6e64f2337b6493d4b4b45249290c_cgraph.md5 create mode 100644 a01370_a2f4a6e64f2337b6493d4b4b45249290c_cgraph.svg create mode 100644 a01370_source.html create mode 100644 a01371.map create mode 100644 a01371.md5 create mode 100644 a01371.svg create mode 100644 a01372.map create mode 100644 a01372.md5 create mode 100644 a01372.svg create mode 100644 a01373.html create mode 100644 a01373.js create mode 100644 a01373_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.map create mode 100644 a01373_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.md5 create mode 100644 a01373_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.svg create mode 100644 a01373_source.html create mode 100644 a01374.map create mode 100644 a01374.md5 create mode 100644 a01374.svg create mode 100644 a01375.map create mode 100644 a01375.md5 create mode 100644 a01375.svg create mode 100644 a01376.html create mode 100644 a01376.js create mode 100644 a01376_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.map create mode 100644 a01376_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.md5 create mode 100644 a01376_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.svg create mode 100644 a01376_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.map create mode 100644 a01376_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.md5 create mode 100644 a01376_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.svg create mode 100644 a01376_a6699a24a46fb1be57ca21abf8bc61928_icgraph.map create mode 100644 a01376_a6699a24a46fb1be57ca21abf8bc61928_icgraph.md5 create mode 100644 a01376_a6699a24a46fb1be57ca21abf8bc61928_icgraph.svg create mode 100644 a01376_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.map create mode 100644 a01376_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.md5 create mode 100644 a01376_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.svg create mode 100644 a01376_a84bb16b03a95a60c4748c189dafa8a54_icgraph.map create mode 100644 a01376_a84bb16b03a95a60c4748c189dafa8a54_icgraph.md5 create mode 100644 a01376_a84bb16b03a95a60c4748c189dafa8a54_icgraph.svg create mode 100644 a01376_source.html create mode 100644 a01377.map create mode 100644 a01377.md5 create mode 100644 a01377.svg create mode 100644 a01378.map create mode 100644 a01378.md5 create mode 100644 a01378.svg create mode 100644 a01379.html create mode 100644 a01379.js create mode 100644 a01379_source.html create mode 100644 a01381.map create mode 100644 a01381.md5 create mode 100644 a01381.svg create mode 100644 a01382.html create mode 100644 a01382.js create mode 100644 a01382_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.map create mode 100644 a01382_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.md5 create mode 100644 a01382_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.svg create mode 100644 a01382_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.map create mode 100644 a01382_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.md5 create mode 100644 a01382_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.svg create mode 100644 a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.map create mode 100644 a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.md5 create mode 100644 a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.svg create mode 100644 a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.map create mode 100644 a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.md5 create mode 100644 a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.svg create mode 100644 a01382_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.map create mode 100644 a01382_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.md5 create mode 100644 a01382_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.svg create mode 100644 a01382_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.map create mode 100644 a01382_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.md5 create mode 100644 a01382_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.svg create mode 100644 a01382_a336fa8eefc3d744aa7248d6786cfee03_cgraph.map create mode 100644 a01382_a336fa8eefc3d744aa7248d6786cfee03_cgraph.md5 create mode 100644 a01382_a336fa8eefc3d744aa7248d6786cfee03_cgraph.svg create mode 100644 a01382_a336fa8eefc3d744aa7248d6786cfee03_icgraph.map create mode 100644 a01382_a336fa8eefc3d744aa7248d6786cfee03_icgraph.md5 create mode 100644 a01382_a336fa8eefc3d744aa7248d6786cfee03_icgraph.svg create mode 100644 a01382_a4a525d89ade920512dc65409bc8e85d8_cgraph.map create mode 100644 a01382_a4a525d89ade920512dc65409bc8e85d8_cgraph.md5 create mode 100644 a01382_a4a525d89ade920512dc65409bc8e85d8_cgraph.svg create mode 100644 a01382_a4a525d89ade920512dc65409bc8e85d8_icgraph.map create mode 100644 a01382_a4a525d89ade920512dc65409bc8e85d8_icgraph.md5 create mode 100644 a01382_a4a525d89ade920512dc65409bc8e85d8_icgraph.svg create mode 100644 a01382_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.map create mode 100644 a01382_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.md5 create mode 100644 a01382_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.svg create mode 100644 a01382_aa7aa94ad075bf97a566f01f899fcd859_cgraph.map create mode 100644 a01382_aa7aa94ad075bf97a566f01f899fcd859_cgraph.md5 create mode 100644 a01382_aa7aa94ad075bf97a566f01f899fcd859_cgraph.svg create mode 100644 a01382_aa7aa94ad075bf97a566f01f899fcd859_icgraph.map create mode 100644 a01382_aa7aa94ad075bf97a566f01f899fcd859_icgraph.md5 create mode 100644 a01382_aa7aa94ad075bf97a566f01f899fcd859_icgraph.svg create mode 100644 a01382_aff9af0356940583dfe3045e693cc8a45_cgraph.map create mode 100644 a01382_aff9af0356940583dfe3045e693cc8a45_cgraph.md5 create mode 100644 a01382_aff9af0356940583dfe3045e693cc8a45_cgraph.svg create mode 100644 a01382_aff9af0356940583dfe3045e693cc8a45_icgraph.map create mode 100644 a01382_aff9af0356940583dfe3045e693cc8a45_icgraph.md5 create mode 100644 a01382_aff9af0356940583dfe3045e693cc8a45_icgraph.svg create mode 100644 a01382_source.html create mode 100644 a01383.map create mode 100644 a01383.md5 create mode 100644 a01383.svg create mode 100644 a01384.map create mode 100644 a01384.md5 create mode 100644 a01384.svg create mode 100644 a01385.html create mode 100644 a01385.js create mode 100644 a01385_a00a9ced40b89f30fa314c4534bfb0922_cgraph.map create mode 100644 a01385_a00a9ced40b89f30fa314c4534bfb0922_cgraph.md5 create mode 100644 a01385_a00a9ced40b89f30fa314c4534bfb0922_cgraph.svg create mode 100644 a01385_a0c85e5516222ab7e7fc354c614760ec5_icgraph.map create mode 100644 a01385_a0c85e5516222ab7e7fc354c614760ec5_icgraph.md5 create mode 100644 a01385_a0c85e5516222ab7e7fc354c614760ec5_icgraph.svg create mode 100644 a01385_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.map create mode 100644 a01385_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.md5 create mode 100644 a01385_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.svg create mode 100644 a01385_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.map create mode 100644 a01385_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.md5 create mode 100644 a01385_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.svg create mode 100644 a01385_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.map create mode 100644 a01385_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.md5 create mode 100644 a01385_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.svg create mode 100644 a01385_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.map create mode 100644 a01385_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.md5 create mode 100644 a01385_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.svg create mode 100644 a01385_ab36e49d2e694b1da49504a689ed48e4a_cgraph.map create mode 100644 a01385_ab36e49d2e694b1da49504a689ed48e4a_cgraph.md5 create mode 100644 a01385_ab36e49d2e694b1da49504a689ed48e4a_cgraph.svg create mode 100644 a01385_ab36e49d2e694b1da49504a689ed48e4a_icgraph.map create mode 100644 a01385_ab36e49d2e694b1da49504a689ed48e4a_icgraph.md5 create mode 100644 a01385_ab36e49d2e694b1da49504a689ed48e4a_icgraph.svg create mode 100644 a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.map create mode 100644 a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.md5 create mode 100644 a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.svg create mode 100644 a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.map create mode 100644 a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.md5 create mode 100644 a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.svg create mode 100644 a01385_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.map create mode 100644 a01385_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.md5 create mode 100644 a01385_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.svg create mode 100644 a01385_source.html create mode 100644 a01386.map create mode 100644 a01386.md5 create mode 100644 a01386.svg create mode 100644 a01387.map create mode 100644 a01387.md5 create mode 100644 a01387.svg create mode 100644 a01388.html create mode 100644 a01388.js create mode 100644 a01388_a49c353188156b1df4463a5fc7f7bc25e_icgraph.map create mode 100644 a01388_a49c353188156b1df4463a5fc7f7bc25e_icgraph.md5 create mode 100644 a01388_a49c353188156b1df4463a5fc7f7bc25e_icgraph.svg create mode 100644 a01388_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.map create mode 100644 a01388_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.md5 create mode 100644 a01388_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.svg create mode 100644 a01388_a9fae55b169121c4851bb7c0adf4eac47_icgraph.map create mode 100644 a01388_a9fae55b169121c4851bb7c0adf4eac47_icgraph.md5 create mode 100644 a01388_a9fae55b169121c4851bb7c0adf4eac47_icgraph.svg create mode 100644 a01388_source.html create mode 100644 a01389.map create mode 100644 a01389.md5 create mode 100644 a01389.svg create mode 100644 a01390.map create mode 100644 a01390.md5 create mode 100644 a01390.svg create mode 100644 a01391.html create mode 100644 a01391.js create mode 100644 a01391_source.html create mode 100644 a01392.map create mode 100644 a01392.md5 create mode 100644 a01392.svg create mode 100644 a01393.map create mode 100644 a01393.md5 create mode 100644 a01393.svg create mode 100644 a01394.html create mode 100644 a01394.js create mode 100644 a01394_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.map create mode 100644 a01394_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.md5 create mode 100644 a01394_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.svg create mode 100644 a01394_a086232272942235166bf349ef7aacf9d_cgraph.map create mode 100644 a01394_a086232272942235166bf349ef7aacf9d_cgraph.md5 create mode 100644 a01394_a086232272942235166bf349ef7aacf9d_cgraph.svg create mode 100644 a01394_a086232272942235166bf349ef7aacf9d_icgraph.map create mode 100644 a01394_a086232272942235166bf349ef7aacf9d_icgraph.md5 create mode 100644 a01394_a086232272942235166bf349ef7aacf9d_icgraph.svg create mode 100644 a01394_a38809d11e47f180968c23903fed321ef_icgraph.map create mode 100644 a01394_a38809d11e47f180968c23903fed321ef_icgraph.md5 create mode 100644 a01394_a38809d11e47f180968c23903fed321ef_icgraph.svg create mode 100644 a01394_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.map create mode 100644 a01394_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.md5 create mode 100644 a01394_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.svg create mode 100644 a01394_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.map create mode 100644 a01394_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.md5 create mode 100644 a01394_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.svg create mode 100644 a01394_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.map create mode 100644 a01394_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.md5 create mode 100644 a01394_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.svg create mode 100644 a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.map create mode 100644 a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.md5 create mode 100644 a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.svg create mode 100644 a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.map create mode 100644 a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.md5 create mode 100644 a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.svg create mode 100644 a01394_source.html create mode 100644 a01395.map create mode 100644 a01395.md5 create mode 100644 a01395.svg create mode 100644 a01396.map create mode 100644 a01396.md5 create mode 100644 a01396.svg create mode 100644 a01397.html create mode 100644 a01397.js create mode 100644 a01397_source.html create mode 100644 a01398.map create mode 100644 a01398.md5 create mode 100644 a01398.svg create mode 100644 a01399.map create mode 100644 a01399.md5 create mode 100644 a01399.svg create mode 100644 a01400.html create mode 100644 a01400.js create mode 100644 a01400_a0706a66a62ca8710342ac1c097b703ed_cgraph.map create mode 100644 a01400_a0706a66a62ca8710342ac1c097b703ed_cgraph.md5 create mode 100644 a01400_a0706a66a62ca8710342ac1c097b703ed_cgraph.svg create mode 100644 a01400_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.map create mode 100644 a01400_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.md5 create mode 100644 a01400_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.svg create mode 100644 a01400_a40082ae256676bd58f960128433237c1_cgraph.map create mode 100644 a01400_a40082ae256676bd58f960128433237c1_cgraph.md5 create mode 100644 a01400_a40082ae256676bd58f960128433237c1_cgraph.svg create mode 100644 a01400_a415e79d6e82e45f24bcd1742c146a0da_cgraph.map create mode 100644 a01400_a415e79d6e82e45f24bcd1742c146a0da_cgraph.md5 create mode 100644 a01400_a415e79d6e82e45f24bcd1742c146a0da_cgraph.svg create mode 100644 a01400_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.map create mode 100644 a01400_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.md5 create mode 100644 a01400_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.svg create mode 100644 a01400_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.map create mode 100644 a01400_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.md5 create mode 100644 a01400_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.svg create mode 100644 a01400_a73c0d51ef869f0cebc943169142626b6_icgraph.map create mode 100644 a01400_a73c0d51ef869f0cebc943169142626b6_icgraph.md5 create mode 100644 a01400_a73c0d51ef869f0cebc943169142626b6_icgraph.svg create mode 100644 a01400_a800ddc33d183998387064192c52d7ca5_icgraph.map create mode 100644 a01400_a800ddc33d183998387064192c52d7ca5_icgraph.md5 create mode 100644 a01400_a800ddc33d183998387064192c52d7ca5_icgraph.svg create mode 100644 a01400_a9443355ad3d09b08427e538d75cab254_cgraph.map create mode 100644 a01400_a9443355ad3d09b08427e538d75cab254_cgraph.md5 create mode 100644 a01400_a9443355ad3d09b08427e538d75cab254_cgraph.svg create mode 100644 a01400_aa164c99d44fec2d7296a76c8926eb585_cgraph.map create mode 100644 a01400_aa164c99d44fec2d7296a76c8926eb585_cgraph.md5 create mode 100644 a01400_aa164c99d44fec2d7296a76c8926eb585_cgraph.svg create mode 100644 a01400_aa3f384ca4812e46dedce753be42654df_cgraph.map create mode 100644 a01400_aa3f384ca4812e46dedce753be42654df_cgraph.md5 create mode 100644 a01400_aa3f384ca4812e46dedce753be42654df_cgraph.svg create mode 100644 a01400_aa3f384ca4812e46dedce753be42654df_icgraph.map create mode 100644 a01400_aa3f384ca4812e46dedce753be42654df_icgraph.md5 create mode 100644 a01400_aa3f384ca4812e46dedce753be42654df_icgraph.svg create mode 100644 a01400_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.map create mode 100644 a01400_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.md5 create mode 100644 a01400_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.svg create mode 100644 a01400_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.map create mode 100644 a01400_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.md5 create mode 100644 a01400_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.svg create mode 100644 a01400_aed864d2fab73a39a8c98356f7bca1304_icgraph.map create mode 100644 a01400_aed864d2fab73a39a8c98356f7bca1304_icgraph.md5 create mode 100644 a01400_aed864d2fab73a39a8c98356f7bca1304_icgraph.svg create mode 100644 a01400_af0b933c02a24d69c1efa40179f60288f_cgraph.map create mode 100644 a01400_af0b933c02a24d69c1efa40179f60288f_cgraph.md5 create mode 100644 a01400_af0b933c02a24d69c1efa40179f60288f_cgraph.svg create mode 100644 a01400_af0b933c02a24d69c1efa40179f60288f_icgraph.map create mode 100644 a01400_af0b933c02a24d69c1efa40179f60288f_icgraph.md5 create mode 100644 a01400_af0b933c02a24d69c1efa40179f60288f_icgraph.svg create mode 100644 a01400_source.html create mode 100644 a01401.map create mode 100644 a01401.md5 create mode 100644 a01401.svg create mode 100644 a01402.map create mode 100644 a01402.md5 create mode 100644 a01402.svg create mode 100644 a01403.html create mode 100644 a01403.js create mode 100644 a01403_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.map create mode 100644 a01403_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.md5 create mode 100644 a01403_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.svg create mode 100644 a01403_aadc678cace81fa112fa6baad1c190539_cgraph.map create mode 100644 a01403_aadc678cace81fa112fa6baad1c190539_cgraph.md5 create mode 100644 a01403_aadc678cace81fa112fa6baad1c190539_cgraph.svg create mode 100644 a01403_source.html create mode 100644 a01404.map create mode 100644 a01404.md5 create mode 100644 a01404.svg create mode 100644 a01405.map create mode 100644 a01405.md5 create mode 100644 a01405.svg create mode 100644 a01406.html create mode 100644 a01406.js create mode 100644 a01406_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.map create mode 100644 a01406_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.md5 create mode 100644 a01406_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.svg create mode 100644 a01406_a18d07d808917e0b971d46332e9e64da4_cgraph.map create mode 100644 a01406_a18d07d808917e0b971d46332e9e64da4_cgraph.md5 create mode 100644 a01406_a18d07d808917e0b971d46332e9e64da4_cgraph.svg create mode 100644 a01406_a18d07d808917e0b971d46332e9e64da4_icgraph.map create mode 100644 a01406_a18d07d808917e0b971d46332e9e64da4_icgraph.md5 create mode 100644 a01406_a18d07d808917e0b971d46332e9e64da4_icgraph.svg create mode 100644 a01406_a1dc669466d6f52d5be8af2d991512ac2_cgraph.map create mode 100644 a01406_a1dc669466d6f52d5be8af2d991512ac2_cgraph.md5 create mode 100644 a01406_a1dc669466d6f52d5be8af2d991512ac2_cgraph.svg create mode 100644 a01406_a1dc669466d6f52d5be8af2d991512ac2_icgraph.map create mode 100644 a01406_a1dc669466d6f52d5be8af2d991512ac2_icgraph.md5 create mode 100644 a01406_a1dc669466d6f52d5be8af2d991512ac2_icgraph.svg create mode 100644 a01406_a369e660e3e344bc697d98174059ead3c_icgraph.map create mode 100644 a01406_a369e660e3e344bc697d98174059ead3c_icgraph.md5 create mode 100644 a01406_a369e660e3e344bc697d98174059ead3c_icgraph.svg create mode 100644 a01406_a526989df37e605824d846b7ba54b43ea_cgraph.map create mode 100644 a01406_a526989df37e605824d846b7ba54b43ea_cgraph.md5 create mode 100644 a01406_a526989df37e605824d846b7ba54b43ea_cgraph.svg create mode 100644 a01406_a526989df37e605824d846b7ba54b43ea_icgraph.map create mode 100644 a01406_a526989df37e605824d846b7ba54b43ea_icgraph.md5 create mode 100644 a01406_a526989df37e605824d846b7ba54b43ea_icgraph.svg create mode 100644 a01406_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.map create mode 100644 a01406_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.md5 create mode 100644 a01406_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.svg create mode 100644 a01406_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.map create mode 100644 a01406_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.md5 create mode 100644 a01406_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.svg create mode 100644 a01406_a6c43ea323f2de1675b00e48330a12e2a_cgraph.map create mode 100644 a01406_a6c43ea323f2de1675b00e48330a12e2a_cgraph.md5 create mode 100644 a01406_a6c43ea323f2de1675b00e48330a12e2a_cgraph.svg create mode 100644 a01406_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.map create mode 100644 a01406_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.md5 create mode 100644 a01406_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.svg create mode 100644 a01406_a8995f71dba475975efc37756783cfce9_cgraph.map create mode 100644 a01406_a8995f71dba475975efc37756783cfce9_cgraph.md5 create mode 100644 a01406_a8995f71dba475975efc37756783cfce9_cgraph.svg create mode 100644 a01406_a8995f71dba475975efc37756783cfce9_icgraph.map create mode 100644 a01406_a8995f71dba475975efc37756783cfce9_icgraph.md5 create mode 100644 a01406_a8995f71dba475975efc37756783cfce9_icgraph.svg create mode 100644 a01406_a96e0520e5569748ce1172bafca24fafe_cgraph.map create mode 100644 a01406_a96e0520e5569748ce1172bafca24fafe_cgraph.md5 create mode 100644 a01406_a96e0520e5569748ce1172bafca24fafe_cgraph.svg create mode 100644 a01406_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.map create mode 100644 a01406_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.md5 create mode 100644 a01406_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.svg create mode 100644 a01406_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.map create mode 100644 a01406_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.md5 create mode 100644 a01406_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.svg create mode 100644 a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.map create mode 100644 a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.md5 create mode 100644 a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.svg create mode 100644 a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.map create mode 100644 a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.md5 create mode 100644 a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.svg create mode 100644 a01406_source.html create mode 100644 a01407.map create mode 100644 a01407.md5 create mode 100644 a01407.svg create mode 100644 a01408.map create mode 100644 a01408.md5 create mode 100644 a01408.svg create mode 100644 a01409.html create mode 100644 a01409.js create mode 100644 a01409_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.map create mode 100644 a01409_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.md5 create mode 100644 a01409_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.svg create mode 100644 a01409_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.map create mode 100644 a01409_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.md5 create mode 100644 a01409_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.svg create mode 100644 a01409_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.map create mode 100644 a01409_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.md5 create mode 100644 a01409_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.svg create mode 100644 a01409_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.map create mode 100644 a01409_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.md5 create mode 100644 a01409_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.svg create mode 100644 a01409_af8ede6fc8d207004035f45d945688d2c_cgraph.map create mode 100644 a01409_af8ede6fc8d207004035f45d945688d2c_cgraph.md5 create mode 100644 a01409_af8ede6fc8d207004035f45d945688d2c_cgraph.svg create mode 100644 a01409_afeaab7d93372f0752d59c70d9c5940e7_cgraph.map create mode 100644 a01409_afeaab7d93372f0752d59c70d9c5940e7_cgraph.md5 create mode 100644 a01409_afeaab7d93372f0752d59c70d9c5940e7_cgraph.svg create mode 100644 a01409_afeaab7d93372f0752d59c70d9c5940e7_icgraph.map create mode 100644 a01409_afeaab7d93372f0752d59c70d9c5940e7_icgraph.md5 create mode 100644 a01409_afeaab7d93372f0752d59c70d9c5940e7_icgraph.svg create mode 100644 a01409_source.html create mode 100644 a01410.map create mode 100644 a01410.md5 create mode 100644 a01410.svg create mode 100644 a01411.map create mode 100644 a01411.md5 create mode 100644 a01411.svg create mode 100644 a01412.html create mode 100644 a01412.js create mode 100644 a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.map create mode 100644 a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.md5 create mode 100644 a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.svg create mode 100644 a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.map create mode 100644 a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.md5 create mode 100644 a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.svg create mode 100644 a01412_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.map create mode 100644 a01412_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.md5 create mode 100644 a01412_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.svg create mode 100644 a01412_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.map create mode 100644 a01412_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.md5 create mode 100644 a01412_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.svg create mode 100644 a01412_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.map create mode 100644 a01412_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.md5 create mode 100644 a01412_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.svg create mode 100644 a01412_a668fd893484b6e2d67d8b372b508d14f_icgraph.map create mode 100644 a01412_a668fd893484b6e2d67d8b372b508d14f_icgraph.md5 create mode 100644 a01412_a668fd893484b6e2d67d8b372b508d14f_icgraph.svg create mode 100644 a01412_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.map create mode 100644 a01412_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.md5 create mode 100644 a01412_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.svg create mode 100644 a01412_a86352ba91ba482c6688b7364d10bf956_cgraph.map create mode 100644 a01412_a86352ba91ba482c6688b7364d10bf956_cgraph.md5 create mode 100644 a01412_a86352ba91ba482c6688b7364d10bf956_cgraph.svg create mode 100644 a01412_a86352ba91ba482c6688b7364d10bf956_icgraph.map create mode 100644 a01412_a86352ba91ba482c6688b7364d10bf956_icgraph.md5 create mode 100644 a01412_a86352ba91ba482c6688b7364d10bf956_icgraph.svg create mode 100644 a01412_a9255b8011e6d7c9b28c7df40065efb28_icgraph.map create mode 100644 a01412_a9255b8011e6d7c9b28c7df40065efb28_icgraph.md5 create mode 100644 a01412_a9255b8011e6d7c9b28c7df40065efb28_icgraph.svg create mode 100644 a01412_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.map create mode 100644 a01412_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.md5 create mode 100644 a01412_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.svg create mode 100644 a01412_abb03d3cde2d1354544cd082482c3f185_icgraph.map create mode 100644 a01412_abb03d3cde2d1354544cd082482c3f185_icgraph.md5 create mode 100644 a01412_abb03d3cde2d1354544cd082482c3f185_icgraph.svg create mode 100644 a01412_afe7e4a63c40fbcaae742b8de8693483f_cgraph.map create mode 100644 a01412_afe7e4a63c40fbcaae742b8de8693483f_cgraph.md5 create mode 100644 a01412_afe7e4a63c40fbcaae742b8de8693483f_cgraph.svg create mode 100644 a01412_afe7e4a63c40fbcaae742b8de8693483f_icgraph.map create mode 100644 a01412_afe7e4a63c40fbcaae742b8de8693483f_icgraph.md5 create mode 100644 a01412_afe7e4a63c40fbcaae742b8de8693483f_icgraph.svg create mode 100644 a01412_source.html create mode 100644 a01413.map create mode 100644 a01413.md5 create mode 100644 a01413.svg create mode 100644 a01414.map create mode 100644 a01414.md5 create mode 100644 a01414.svg create mode 100644 a01415.html create mode 100644 a01415.js create mode 100644 a01415_a30352290ef80c644620afca91f719cfe_cgraph.map create mode 100644 a01415_a30352290ef80c644620afca91f719cfe_cgraph.md5 create mode 100644 a01415_a30352290ef80c644620afca91f719cfe_cgraph.svg create mode 100644 a01415_a30352290ef80c644620afca91f719cfe_icgraph.map create mode 100644 a01415_a30352290ef80c644620afca91f719cfe_icgraph.md5 create mode 100644 a01415_a30352290ef80c644620afca91f719cfe_icgraph.svg create mode 100644 a01415_a86ac572ea8f5f613129192c47d598818_cgraph.map create mode 100644 a01415_a86ac572ea8f5f613129192c47d598818_cgraph.md5 create mode 100644 a01415_a86ac572ea8f5f613129192c47d598818_cgraph.svg create mode 100644 a01415_a86ac572ea8f5f613129192c47d598818_icgraph.map create mode 100644 a01415_a86ac572ea8f5f613129192c47d598818_icgraph.md5 create mode 100644 a01415_a86ac572ea8f5f613129192c47d598818_icgraph.svg create mode 100644 a01415_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.map create mode 100644 a01415_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.md5 create mode 100644 a01415_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.svg create mode 100644 a01415_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.map create mode 100644 a01415_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.md5 create mode 100644 a01415_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.svg create mode 100644 a01415_source.html create mode 100644 a01416.map create mode 100644 a01416.md5 create mode 100644 a01416.svg create mode 100644 a01417.map create mode 100644 a01417.md5 create mode 100644 a01417.svg create mode 100644 a01418.html create mode 100644 a01418.js create mode 100644 a01418_a639e69ccc46ae7f3d6b9992866040bf9_cgraph.map create mode 100644 a01418_a639e69ccc46ae7f3d6b9992866040bf9_cgraph.md5 create mode 100644 a01418_a639e69ccc46ae7f3d6b9992866040bf9_cgraph.svg create mode 100644 a01418_a639e69ccc46ae7f3d6b9992866040bf9_icgraph.map create mode 100644 a01418_a639e69ccc46ae7f3d6b9992866040bf9_icgraph.md5 create mode 100644 a01418_a639e69ccc46ae7f3d6b9992866040bf9_icgraph.svg create mode 100644 a01418_source.html create mode 100644 a01419.map create mode 100644 a01419.md5 create mode 100644 a01419.svg create mode 100644 a01420.map create mode 100644 a01420.md5 create mode 100644 a01420.svg create mode 100644 a01421.html create mode 100644 a01421.js create mode 100644 a01421_a0d3707df989265f8cf380acdef95eb02_cgraph.map create mode 100644 a01421_a0d3707df989265f8cf380acdef95eb02_cgraph.md5 create mode 100644 a01421_a0d3707df989265f8cf380acdef95eb02_cgraph.svg create mode 100644 a01421_a0d3707df989265f8cf380acdef95eb02_icgraph.map create mode 100644 a01421_a0d3707df989265f8cf380acdef95eb02_icgraph.md5 create mode 100644 a01421_a0d3707df989265f8cf380acdef95eb02_icgraph.svg create mode 100644 a01421_a27bee94f7a23281c8b2b72ec433f6059_cgraph.map create mode 100644 a01421_a27bee94f7a23281c8b2b72ec433f6059_cgraph.md5 create mode 100644 a01421_a27bee94f7a23281c8b2b72ec433f6059_cgraph.svg create mode 100644 a01421_a27bee94f7a23281c8b2b72ec433f6059_icgraph.map create mode 100644 a01421_a27bee94f7a23281c8b2b72ec433f6059_icgraph.md5 create mode 100644 a01421_a27bee94f7a23281c8b2b72ec433f6059_icgraph.svg create mode 100644 a01421_a46456b4307a70983ebe554fa712d856e_cgraph.map create mode 100644 a01421_a46456b4307a70983ebe554fa712d856e_cgraph.md5 create mode 100644 a01421_a46456b4307a70983ebe554fa712d856e_cgraph.svg create mode 100644 a01421_aa3cb73b347940187fb3399f51b1a55b7_icgraph.map create mode 100644 a01421_aa3cb73b347940187fb3399f51b1a55b7_icgraph.md5 create mode 100644 a01421_aa3cb73b347940187fb3399f51b1a55b7_icgraph.svg create mode 100644 a01421_ace08f924cb86d1310099621564536657_cgraph.map create mode 100644 a01421_ace08f924cb86d1310099621564536657_cgraph.md5 create mode 100644 a01421_ace08f924cb86d1310099621564536657_cgraph.svg create mode 100644 a01421_ace08f924cb86d1310099621564536657_icgraph.map create mode 100644 a01421_ace08f924cb86d1310099621564536657_icgraph.md5 create mode 100644 a01421_ace08f924cb86d1310099621564536657_icgraph.svg create mode 100644 a01421_source.html create mode 100644 a01422.map create mode 100644 a01422.md5 create mode 100644 a01422.svg create mode 100644 a01423.map create mode 100644 a01423.md5 create mode 100644 a01423.svg create mode 100644 a01424.html create mode 100644 a01424.js create mode 100644 a01424_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.map create mode 100644 a01424_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.md5 create mode 100644 a01424_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.svg create mode 100644 a01424_a22aaf13eb56eb1832e725ef73236116f_cgraph.map create mode 100644 a01424_a22aaf13eb56eb1832e725ef73236116f_cgraph.md5 create mode 100644 a01424_a22aaf13eb56eb1832e725ef73236116f_cgraph.svg create mode 100644 a01424_a22aaf13eb56eb1832e725ef73236116f_icgraph.map create mode 100644 a01424_a22aaf13eb56eb1832e725ef73236116f_icgraph.md5 create mode 100644 a01424_a22aaf13eb56eb1832e725ef73236116f_icgraph.svg create mode 100644 a01424_a8413a3584787f9b629e54b2ef9439f06_cgraph.map create mode 100644 a01424_a8413a3584787f9b629e54b2ef9439f06_cgraph.md5 create mode 100644 a01424_a8413a3584787f9b629e54b2ef9439f06_cgraph.svg create mode 100644 a01424_a8413a3584787f9b629e54b2ef9439f06_icgraph.map create mode 100644 a01424_a8413a3584787f9b629e54b2ef9439f06_icgraph.md5 create mode 100644 a01424_a8413a3584787f9b629e54b2ef9439f06_icgraph.svg create mode 100644 a01424_acf84ea82594c4dbe91cf602ee078e04d_cgraph.map create mode 100644 a01424_acf84ea82594c4dbe91cf602ee078e04d_cgraph.md5 create mode 100644 a01424_acf84ea82594c4dbe91cf602ee078e04d_cgraph.svg create mode 100644 a01424_acf84ea82594c4dbe91cf602ee078e04d_icgraph.map create mode 100644 a01424_acf84ea82594c4dbe91cf602ee078e04d_icgraph.md5 create mode 100644 a01424_acf84ea82594c4dbe91cf602ee078e04d_icgraph.svg create mode 100644 a01424_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.map create mode 100644 a01424_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.md5 create mode 100644 a01424_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.svg create mode 100644 a01424_source.html create mode 100644 a01425.map create mode 100644 a01425.md5 create mode 100644 a01425.svg create mode 100644 a01426.map create mode 100644 a01426.md5 create mode 100644 a01426.svg create mode 100644 a01427.html create mode 100644 a01427.js create mode 100644 a01427_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.map create mode 100644 a01427_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.md5 create mode 100644 a01427_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.svg create mode 100644 a01427_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.map create mode 100644 a01427_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.md5 create mode 100644 a01427_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.svg create mode 100644 a01427_a83ddb422946cf774c687c1ab63dcda15_cgraph.map create mode 100644 a01427_a83ddb422946cf774c687c1ab63dcda15_cgraph.md5 create mode 100644 a01427_a83ddb422946cf774c687c1ab63dcda15_cgraph.svg create mode 100644 a01427_a83ddb422946cf774c687c1ab63dcda15_icgraph.map create mode 100644 a01427_a83ddb422946cf774c687c1ab63dcda15_icgraph.md5 create mode 100644 a01427_a83ddb422946cf774c687c1ab63dcda15_icgraph.svg create mode 100644 a01427_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.map create mode 100644 a01427_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.md5 create mode 100644 a01427_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.svg create mode 100644 a01427_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.map create mode 100644 a01427_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.md5 create mode 100644 a01427_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.svg create mode 100644 a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.map create mode 100644 a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.md5 create mode 100644 a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.svg create mode 100644 a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.map create mode 100644 a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.md5 create mode 100644 a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.svg create mode 100644 a01427_afe1eb3edd264c847c36e9456b2598452_icgraph.map create mode 100644 a01427_afe1eb3edd264c847c36e9456b2598452_icgraph.md5 create mode 100644 a01427_afe1eb3edd264c847c36e9456b2598452_icgraph.svg create mode 100644 a01427_source.html create mode 100644 a01428.map create mode 100644 a01428.md5 create mode 100644 a01428.svg create mode 100644 a01429.map create mode 100644 a01429.md5 create mode 100644 a01429.svg create mode 100644 a01433.html create mode 100644 a01433.js create mode 100644 a01433_a0fa370eee5160963e617d1daf1c07363_cgraph.map create mode 100644 a01433_a0fa370eee5160963e617d1daf1c07363_cgraph.md5 create mode 100644 a01433_a0fa370eee5160963e617d1daf1c07363_cgraph.svg create mode 100644 a01433_a0fa370eee5160963e617d1daf1c07363_icgraph.map create mode 100644 a01433_a0fa370eee5160963e617d1daf1c07363_icgraph.md5 create mode 100644 a01433_a0fa370eee5160963e617d1daf1c07363_icgraph.svg create mode 100644 a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.map create mode 100644 a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.md5 create mode 100644 a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.svg create mode 100644 a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.map create mode 100644 a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.md5 create mode 100644 a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.svg create mode 100644 a01433_a2a7d01fc7720e936a430efc09d094c6c_cgraph.map create mode 100644 a01433_a2a7d01fc7720e936a430efc09d094c6c_cgraph.md5 create mode 100644 a01433_a2a7d01fc7720e936a430efc09d094c6c_cgraph.svg create mode 100644 a01433_a2a7d01fc7720e936a430efc09d094c6c_icgraph.map create mode 100644 a01433_a2a7d01fc7720e936a430efc09d094c6c_icgraph.md5 create mode 100644 a01433_a2a7d01fc7720e936a430efc09d094c6c_icgraph.svg create mode 100644 a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.map create mode 100644 a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.md5 create mode 100644 a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.svg create mode 100644 a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.map create mode 100644 a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.md5 create mode 100644 a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.svg create mode 100644 a01433_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.map create mode 100644 a01433_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.md5 create mode 100644 a01433_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.svg create mode 100644 a01433_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.map create mode 100644 a01433_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.md5 create mode 100644 a01433_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.svg create mode 100644 a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.map create mode 100644 a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.md5 create mode 100644 a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.svg create mode 100644 a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.map create mode 100644 a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.md5 create mode 100644 a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.svg create mode 100644 a01433_ab2e422aab2fcfa562795beb2843e8019_cgraph.map create mode 100644 a01433_ab2e422aab2fcfa562795beb2843e8019_cgraph.md5 create mode 100644 a01433_ab2e422aab2fcfa562795beb2843e8019_cgraph.svg create mode 100644 a01433_ab2e422aab2fcfa562795beb2843e8019_icgraph.map create mode 100644 a01433_ab2e422aab2fcfa562795beb2843e8019_icgraph.md5 create mode 100644 a01433_ab2e422aab2fcfa562795beb2843e8019_icgraph.svg create mode 100644 a01433_ac728117d73179c279de49e01ae905dda_cgraph.map create mode 100644 a01433_ac728117d73179c279de49e01ae905dda_cgraph.md5 create mode 100644 a01433_ac728117d73179c279de49e01ae905dda_cgraph.svg create mode 100644 a01433_ac728117d73179c279de49e01ae905dda_icgraph.map create mode 100644 a01433_ac728117d73179c279de49e01ae905dda_icgraph.md5 create mode 100644 a01433_ac728117d73179c279de49e01ae905dda_icgraph.svg create mode 100644 a01433_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.map create mode 100644 a01433_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.md5 create mode 100644 a01433_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.svg create mode 100644 a01433_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.map create mode 100644 a01433_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.md5 create mode 100644 a01433_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.svg create mode 100644 a01433_ad1d30ecbf6bff6457b680aa940281072_cgraph.map create mode 100644 a01433_ad1d30ecbf6bff6457b680aa940281072_cgraph.md5 create mode 100644 a01433_ad1d30ecbf6bff6457b680aa940281072_cgraph.svg create mode 100644 a01433_ad1d30ecbf6bff6457b680aa940281072_icgraph.map create mode 100644 a01433_ad1d30ecbf6bff6457b680aa940281072_icgraph.md5 create mode 100644 a01433_ad1d30ecbf6bff6457b680aa940281072_icgraph.svg create mode 100644 a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.map create mode 100644 a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.md5 create mode 100644 a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.svg create mode 100644 a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.map create mode 100644 a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.md5 create mode 100644 a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.svg create mode 100644 a01433_ae66ae81847153386c57918f4d91be8a7_icgraph.map create mode 100644 a01433_ae66ae81847153386c57918f4d91be8a7_icgraph.md5 create mode 100644 a01433_ae66ae81847153386c57918f4d91be8a7_icgraph.svg create mode 100644 a01433_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.map create mode 100644 a01433_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.md5 create mode 100644 a01433_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.svg create mode 100644 a01433_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.map create mode 100644 a01433_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.md5 create mode 100644 a01433_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.svg create mode 100644 a01433_aed6af4d83e934e3e654ead541b15f2d9_cgraph.map create mode 100644 a01433_aed6af4d83e934e3e654ead541b15f2d9_cgraph.md5 create mode 100644 a01433_aed6af4d83e934e3e654ead541b15f2d9_cgraph.svg create mode 100644 a01433_aed6af4d83e934e3e654ead541b15f2d9_icgraph.map create mode 100644 a01433_aed6af4d83e934e3e654ead541b15f2d9_icgraph.md5 create mode 100644 a01433_aed6af4d83e934e3e654ead541b15f2d9_icgraph.svg create mode 100644 a01433_afe9571a12debd9d75a0f8fb93420e268_cgraph.map create mode 100644 a01433_afe9571a12debd9d75a0f8fb93420e268_cgraph.md5 create mode 100644 a01433_afe9571a12debd9d75a0f8fb93420e268_cgraph.svg create mode 100644 a01433_afe9571a12debd9d75a0f8fb93420e268_icgraph.map create mode 100644 a01433_afe9571a12debd9d75a0f8fb93420e268_icgraph.md5 create mode 100644 a01433_afe9571a12debd9d75a0f8fb93420e268_icgraph.svg create mode 100644 a01433_source.html create mode 100644 a01434.map create mode 100644 a01434.md5 create mode 100644 a01434.svg create mode 100644 a01435.map create mode 100644 a01435.md5 create mode 100644 a01435.svg create mode 100644 a01436.html create mode 100644 a01436_source.html create mode 100644 a01438.map create mode 100644 a01438.md5 create mode 100644 a01438.svg create mode 100644 a01898.html create mode 100644 a01898.js create mode 100644 a01898_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.map create mode 100644 a01898_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.md5 create mode 100644 a01898_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.svg create mode 100644 a01898_a09ce4644252dfd54eb489e77d0adfd20_icgraph.map create mode 100644 a01898_a09ce4644252dfd54eb489e77d0adfd20_icgraph.md5 create mode 100644 a01898_a09ce4644252dfd54eb489e77d0adfd20_icgraph.svg create mode 100644 a01898_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.map create mode 100644 a01898_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.md5 create mode 100644 a01898_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.svg create mode 100644 a01898_a11496157d710a0e954cca1e11fd1713f_icgraph.map create mode 100644 a01898_a11496157d710a0e954cca1e11fd1713f_icgraph.md5 create mode 100644 a01898_a11496157d710a0e954cca1e11fd1713f_icgraph.svg create mode 100644 a01898_a15fab72f66aa46b46a4677be26a1b5d1_icgraph.map create mode 100644 a01898_a15fab72f66aa46b46a4677be26a1b5d1_icgraph.md5 create mode 100644 a01898_a15fab72f66aa46b46a4677be26a1b5d1_icgraph.svg create mode 100644 a01898_a1b80f9ee2d497077e4741029c8e23700_cgraph.map create mode 100644 a01898_a1b80f9ee2d497077e4741029c8e23700_cgraph.md5 create mode 100644 a01898_a1b80f9ee2d497077e4741029c8e23700_cgraph.svg create mode 100644 a01898_a2d20e33b2d417733503759c0594f882d_icgraph.map create mode 100644 a01898_a2d20e33b2d417733503759c0594f882d_icgraph.md5 create mode 100644 a01898_a2d20e33b2d417733503759c0594f882d_icgraph.svg create mode 100644 a01898_a378b748c27be5a7a156907cc56b8a58e_icgraph.map create mode 100644 a01898_a378b748c27be5a7a156907cc56b8a58e_icgraph.md5 create mode 100644 a01898_a378b748c27be5a7a156907cc56b8a58e_icgraph.svg create mode 100644 a01898_a3b1418d10b9d8c0b0f76f49700dbfcf7_icgraph.map create mode 100644 a01898_a3b1418d10b9d8c0b0f76f49700dbfcf7_icgraph.md5 create mode 100644 a01898_a3b1418d10b9d8c0b0f76f49700dbfcf7_icgraph.svg create mode 100644 a01898_a3de256edbbbbd4018cd3563f55ee50ab_cgraph.map create mode 100644 a01898_a3de256edbbbbd4018cd3563f55ee50ab_cgraph.md5 create mode 100644 a01898_a3de256edbbbbd4018cd3563f55ee50ab_cgraph.svg create mode 100644 a01898_a3de256edbbbbd4018cd3563f55ee50ab_icgraph.map create mode 100644 a01898_a3de256edbbbbd4018cd3563f55ee50ab_icgraph.md5 create mode 100644 a01898_a3de256edbbbbd4018cd3563f55ee50ab_icgraph.svg create mode 100644 a01898_a5609388ac4c1fc24595689b52c6698b9_icgraph.map create mode 100644 a01898_a5609388ac4c1fc24595689b52c6698b9_icgraph.md5 create mode 100644 a01898_a5609388ac4c1fc24595689b52c6698b9_icgraph.svg create mode 100644 a01898_a5c6367328ed688a118d756151de3455d_cgraph.map create mode 100644 a01898_a5c6367328ed688a118d756151de3455d_cgraph.md5 create mode 100644 a01898_a5c6367328ed688a118d756151de3455d_cgraph.svg create mode 100644 a01898_a5fa93d3a16f6cd853ca26b8796112770_cgraph.map create mode 100644 a01898_a5fa93d3a16f6cd853ca26b8796112770_cgraph.md5 create mode 100644 a01898_a5fa93d3a16f6cd853ca26b8796112770_cgraph.svg create mode 100644 a01898_a614d873251d4d24875c099b0fdf89c8d_icgraph.map create mode 100644 a01898_a614d873251d4d24875c099b0fdf89c8d_icgraph.md5 create mode 100644 a01898_a614d873251d4d24875c099b0fdf89c8d_icgraph.svg create mode 100644 a01898_a6156a11ac0c98046018896db06f45979_icgraph.map create mode 100644 a01898_a6156a11ac0c98046018896db06f45979_icgraph.md5 create mode 100644 a01898_a6156a11ac0c98046018896db06f45979_icgraph.svg create mode 100644 a01898_a61f04155b5dceea889ba3cef64968684_cgraph.map create mode 100644 a01898_a61f04155b5dceea889ba3cef64968684_cgraph.md5 create mode 100644 a01898_a61f04155b5dceea889ba3cef64968684_cgraph.svg create mode 100644 a01898_a726dbaacf5aca0a8435e3ce4d44844f4_cgraph.map create mode 100644 a01898_a726dbaacf5aca0a8435e3ce4d44844f4_cgraph.md5 create mode 100644 a01898_a726dbaacf5aca0a8435e3ce4d44844f4_cgraph.svg create mode 100644 a01898_a726dbaacf5aca0a8435e3ce4d44844f4_icgraph.map create mode 100644 a01898_a726dbaacf5aca0a8435e3ce4d44844f4_icgraph.md5 create mode 100644 a01898_a726dbaacf5aca0a8435e3ce4d44844f4_icgraph.svg create mode 100644 a01898_a77bcf00a7c234d2b45926ac02550d634_cgraph.map create mode 100644 a01898_a77bcf00a7c234d2b45926ac02550d634_cgraph.md5 create mode 100644 a01898_a77bcf00a7c234d2b45926ac02550d634_cgraph.svg create mode 100644 a01898_a77bcf00a7c234d2b45926ac02550d634_icgraph.map create mode 100644 a01898_a77bcf00a7c234d2b45926ac02550d634_icgraph.md5 create mode 100644 a01898_a77bcf00a7c234d2b45926ac02550d634_icgraph.svg create mode 100644 a01898_a789f1726140c8d0ef5b54d893d806262_cgraph.map create mode 100644 a01898_a789f1726140c8d0ef5b54d893d806262_cgraph.md5 create mode 100644 a01898_a789f1726140c8d0ef5b54d893d806262_cgraph.svg create mode 100644 a01898_a79e7e77bbc6d5208678b007bf89aab61_cgraph.map create mode 100644 a01898_a79e7e77bbc6d5208678b007bf89aab61_cgraph.md5 create mode 100644 a01898_a79e7e77bbc6d5208678b007bf89aab61_cgraph.svg create mode 100644 a01898_a8e02204694aaa24ccc23b1cd2c403b7e_cgraph.map create mode 100644 a01898_a8e02204694aaa24ccc23b1cd2c403b7e_cgraph.md5 create mode 100644 a01898_a8e02204694aaa24ccc23b1cd2c403b7e_cgraph.svg create mode 100644 a01898_a949111e5f127c26e3b9f11bf26c8038a_icgraph.map create mode 100644 a01898_a949111e5f127c26e3b9f11bf26c8038a_icgraph.md5 create mode 100644 a01898_a949111e5f127c26e3b9f11bf26c8038a_icgraph.svg create mode 100644 a01898_a99e26c45fc3b7bd05c627138d0d103fc_icgraph.map create mode 100644 a01898_a99e26c45fc3b7bd05c627138d0d103fc_icgraph.md5 create mode 100644 a01898_a99e26c45fc3b7bd05c627138d0d103fc_icgraph.svg create mode 100644 a01898_aa2888b3de06df35c3b18b31b1e15fe8c_cgraph.map create mode 100644 a01898_aa2888b3de06df35c3b18b31b1e15fe8c_cgraph.md5 create mode 100644 a01898_aa2888b3de06df35c3b18b31b1e15fe8c_cgraph.svg create mode 100644 a01898_aa2888b3de06df35c3b18b31b1e15fe8c_icgraph.map create mode 100644 a01898_aa2888b3de06df35c3b18b31b1e15fe8c_icgraph.md5 create mode 100644 a01898_aa2888b3de06df35c3b18b31b1e15fe8c_icgraph.svg create mode 100644 a01898_ab22b9d57eca306724cb8c4f928d0e824_icgraph.map create mode 100644 a01898_ab22b9d57eca306724cb8c4f928d0e824_icgraph.md5 create mode 100644 a01898_ab22b9d57eca306724cb8c4f928d0e824_icgraph.svg create mode 100644 a01898_adc1656892fa59cbd2e3b60a2608dfefc_icgraph.map create mode 100644 a01898_adc1656892fa59cbd2e3b60a2608dfefc_icgraph.md5 create mode 100644 a01898_adc1656892fa59cbd2e3b60a2608dfefc_icgraph.svg create mode 100644 a01898_ae78e200be9eedb1ddf007d431dcb09a2_cgraph.map create mode 100644 a01898_ae78e200be9eedb1ddf007d431dcb09a2_cgraph.md5 create mode 100644 a01898_ae78e200be9eedb1ddf007d431dcb09a2_cgraph.svg create mode 100644 a01898_aecee517bb2a61c5b79a745f3e0b4aa86_cgraph.map create mode 100644 a01898_aecee517bb2a61c5b79a745f3e0b4aa86_cgraph.md5 create mode 100644 a01898_aecee517bb2a61c5b79a745f3e0b4aa86_cgraph.svg create mode 100644 a01898_aecee517bb2a61c5b79a745f3e0b4aa86_icgraph.map create mode 100644 a01898_aecee517bb2a61c5b79a745f3e0b4aa86_icgraph.md5 create mode 100644 a01898_aecee517bb2a61c5b79a745f3e0b4aa86_icgraph.svg create mode 100644 a01898_af8adec320537d6e63bc68e76633a1f0e_cgraph.map create mode 100644 a01898_af8adec320537d6e63bc68e76633a1f0e_cgraph.md5 create mode 100644 a01898_af8adec320537d6e63bc68e76633a1f0e_cgraph.svg create mode 100644 a01898_af8adec320537d6e63bc68e76633a1f0e_icgraph.map create mode 100644 a01898_af8adec320537d6e63bc68e76633a1f0e_icgraph.md5 create mode 100644 a01898_af8adec320537d6e63bc68e76633a1f0e_icgraph.svg create mode 100644 a01898_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.map create mode 100644 a01898_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.md5 create mode 100644 a01898_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.svg create mode 100644 a01898_source.html create mode 100644 a01899.map create mode 100644 a01899.md5 create mode 100644 a01899.svg create mode 100644 a01901.html create mode 100644 a01901.js create mode 100644 a01901_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.map create mode 100644 a01901_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.md5 create mode 100644 a01901_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.svg create mode 100644 a01901_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.map create mode 100644 a01901_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.md5 create mode 100644 a01901_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.svg create mode 100644 a01901_a1b80f9ee2d497077e4741029c8e23700_cgraph.map create mode 100644 a01901_a1b80f9ee2d497077e4741029c8e23700_cgraph.md5 create mode 100644 a01901_a1b80f9ee2d497077e4741029c8e23700_cgraph.svg create mode 100644 a01901_a5fa93d3a16f6cd853ca26b8796112770_cgraph.map create mode 100644 a01901_a5fa93d3a16f6cd853ca26b8796112770_cgraph.md5 create mode 100644 a01901_a5fa93d3a16f6cd853ca26b8796112770_cgraph.svg create mode 100644 a01901_a61f04155b5dceea889ba3cef64968684_cgraph.map create mode 100644 a01901_a61f04155b5dceea889ba3cef64968684_cgraph.md5 create mode 100644 a01901_a61f04155b5dceea889ba3cef64968684_cgraph.svg create mode 100644 a01901_a789f1726140c8d0ef5b54d893d806262_cgraph.map create mode 100644 a01901_a789f1726140c8d0ef5b54d893d806262_cgraph.md5 create mode 100644 a01901_a789f1726140c8d0ef5b54d893d806262_cgraph.svg create mode 100644 a01901_a79e7e77bbc6d5208678b007bf89aab61_cgraph.map create mode 100644 a01901_a79e7e77bbc6d5208678b007bf89aab61_cgraph.md5 create mode 100644 a01901_a79e7e77bbc6d5208678b007bf89aab61_cgraph.svg create mode 100644 a01901_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.map create mode 100644 a01901_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.md5 create mode 100644 a01901_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.svg create mode 100644 a01901_source.html create mode 100644 a01902.map create mode 100644 a01902.md5 create mode 100644 a01902.svg create mode 100644 a01903.map create mode 100644 a01903.md5 create mode 100644 a01903.svg create mode 100644 a01904.html create mode 100644 a01904.js create mode 100644 a01904_source.html create mode 100644 a01905.map create mode 100644 a01905.md5 create mode 100644 a01905.svg create mode 100644 a01907.html create mode 100644 a01907.js create mode 100644 a01907_a02fd608f651d254148dc74f0ae371dfe_cgraph.map create mode 100644 a01907_a02fd608f651d254148dc74f0ae371dfe_cgraph.md5 create mode 100644 a01907_a02fd608f651d254148dc74f0ae371dfe_cgraph.svg create mode 100644 a01907_a02fd608f651d254148dc74f0ae371dfe_icgraph.map create mode 100644 a01907_a02fd608f651d254148dc74f0ae371dfe_icgraph.md5 create mode 100644 a01907_a02fd608f651d254148dc74f0ae371dfe_icgraph.svg create mode 100644 a01907_a226d4d420328a42fd671699ae60c4c3a_icgraph.map create mode 100644 a01907_a226d4d420328a42fd671699ae60c4c3a_icgraph.md5 create mode 100644 a01907_a226d4d420328a42fd671699ae60c4c3a_icgraph.svg create mode 100644 a01907_a4cb362223e9e7a76f4c5695080db2755_cgraph.map create mode 100644 a01907_a4cb362223e9e7a76f4c5695080db2755_cgraph.md5 create mode 100644 a01907_a4cb362223e9e7a76f4c5695080db2755_cgraph.svg create mode 100644 a01907_a4cb362223e9e7a76f4c5695080db2755_icgraph.map create mode 100644 a01907_a4cb362223e9e7a76f4c5695080db2755_icgraph.md5 create mode 100644 a01907_a4cb362223e9e7a76f4c5695080db2755_icgraph.svg create mode 100644 a01907_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.map create mode 100644 a01907_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.md5 create mode 100644 a01907_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.svg create mode 100644 a01907_aa6e4832b06bd5757be4502d2de7b3026_cgraph.map create mode 100644 a01907_aa6e4832b06bd5757be4502d2de7b3026_cgraph.md5 create mode 100644 a01907_aa6e4832b06bd5757be4502d2de7b3026_cgraph.svg create mode 100644 a01907_source.html create mode 100644 a01908.map create mode 100644 a01908.md5 create mode 100644 a01908.svg create mode 100644 a01913.html create mode 100644 a01913.js create mode 100644 a01913_a0706a66a62ca8710342ac1c097b703ed_cgraph.map create mode 100644 a01913_a0706a66a62ca8710342ac1c097b703ed_cgraph.md5 create mode 100644 a01913_a0706a66a62ca8710342ac1c097b703ed_cgraph.svg create mode 100644 a01913_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.map create mode 100644 a01913_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.md5 create mode 100644 a01913_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.svg create mode 100644 a01913_a40082ae256676bd58f960128433237c1_cgraph.map create mode 100644 a01913_a40082ae256676bd58f960128433237c1_cgraph.md5 create mode 100644 a01913_a40082ae256676bd58f960128433237c1_cgraph.svg create mode 100644 a01913_a415e79d6e82e45f24bcd1742c146a0da_cgraph.map create mode 100644 a01913_a415e79d6e82e45f24bcd1742c146a0da_cgraph.md5 create mode 100644 a01913_a415e79d6e82e45f24bcd1742c146a0da_cgraph.svg create mode 100644 a01913_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.map create mode 100644 a01913_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.md5 create mode 100644 a01913_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.svg create mode 100644 a01913_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.map create mode 100644 a01913_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.md5 create mode 100644 a01913_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.svg create mode 100644 a01913_a73c0d51ef869f0cebc943169142626b6_icgraph.map create mode 100644 a01913_a73c0d51ef869f0cebc943169142626b6_icgraph.md5 create mode 100644 a01913_a73c0d51ef869f0cebc943169142626b6_icgraph.svg create mode 100644 a01913_a800ddc33d183998387064192c52d7ca5_icgraph.map create mode 100644 a01913_a800ddc33d183998387064192c52d7ca5_icgraph.md5 create mode 100644 a01913_a800ddc33d183998387064192c52d7ca5_icgraph.svg create mode 100644 a01913_a871ba8da471f464d7e10b13d5db07101_cgraph.map create mode 100644 a01913_a871ba8da471f464d7e10b13d5db07101_cgraph.md5 create mode 100644 a01913_a871ba8da471f464d7e10b13d5db07101_cgraph.svg create mode 100644 a01913_a9443355ad3d09b08427e538d75cab254_cgraph.map create mode 100644 a01913_a9443355ad3d09b08427e538d75cab254_cgraph.md5 create mode 100644 a01913_a9443355ad3d09b08427e538d75cab254_cgraph.svg create mode 100644 a01913_aa164c99d44fec2d7296a76c8926eb585_cgraph.map create mode 100644 a01913_aa164c99d44fec2d7296a76c8926eb585_cgraph.md5 create mode 100644 a01913_aa164c99d44fec2d7296a76c8926eb585_cgraph.svg create mode 100644 a01913_aa3f384ca4812e46dedce753be42654df_cgraph.map create mode 100644 a01913_aa3f384ca4812e46dedce753be42654df_cgraph.md5 create mode 100644 a01913_aa3f384ca4812e46dedce753be42654df_cgraph.svg create mode 100644 a01913_aa3f384ca4812e46dedce753be42654df_icgraph.map create mode 100644 a01913_aa3f384ca4812e46dedce753be42654df_icgraph.md5 create mode 100644 a01913_aa3f384ca4812e46dedce753be42654df_icgraph.svg create mode 100644 a01913_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.map create mode 100644 a01913_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.md5 create mode 100644 a01913_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.svg create mode 100644 a01913_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.map create mode 100644 a01913_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.md5 create mode 100644 a01913_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.svg create mode 100644 a01913_aed864d2fab73a39a8c98356f7bca1304_icgraph.map create mode 100644 a01913_aed864d2fab73a39a8c98356f7bca1304_icgraph.md5 create mode 100644 a01913_aed864d2fab73a39a8c98356f7bca1304_icgraph.svg create mode 100644 a01913_af0b933c02a24d69c1efa40179f60288f_cgraph.map create mode 100644 a01913_af0b933c02a24d69c1efa40179f60288f_cgraph.md5 create mode 100644 a01913_af0b933c02a24d69c1efa40179f60288f_cgraph.svg create mode 100644 a01913_af0b933c02a24d69c1efa40179f60288f_icgraph.map create mode 100644 a01913_af0b933c02a24d69c1efa40179f60288f_icgraph.md5 create mode 100644 a01913_af0b933c02a24d69c1efa40179f60288f_icgraph.svg create mode 100644 a01913_source.html create mode 100644 a01914.map create mode 100644 a01914.md5 create mode 100644 a01914.svg create mode 100644 a01916.html create mode 100644 a01916.js create mode 100644 a01916_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.map create mode 100644 a01916_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.md5 create mode 100644 a01916_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.svg create mode 100644 a01916_aadc678cace81fa112fa6baad1c190539_cgraph.map create mode 100644 a01916_aadc678cace81fa112fa6baad1c190539_cgraph.md5 create mode 100644 a01916_aadc678cace81fa112fa6baad1c190539_cgraph.svg create mode 100644 a01916_source.html create mode 100644 a01917.map create mode 100644 a01917.md5 create mode 100644 a01917.svg create mode 100644 a01919.html create mode 100644 a01919.js create mode 100644 a01919_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.map create mode 100644 a01919_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.md5 create mode 100644 a01919_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.svg create mode 100644 a01919_a18d07d808917e0b971d46332e9e64da4_cgraph.map create mode 100644 a01919_a18d07d808917e0b971d46332e9e64da4_cgraph.md5 create mode 100644 a01919_a18d07d808917e0b971d46332e9e64da4_cgraph.svg create mode 100644 a01919_a18d07d808917e0b971d46332e9e64da4_icgraph.map create mode 100644 a01919_a18d07d808917e0b971d46332e9e64da4_icgraph.md5 create mode 100644 a01919_a18d07d808917e0b971d46332e9e64da4_icgraph.svg create mode 100644 a01919_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.map create mode 100644 a01919_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.md5 create mode 100644 a01919_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.svg create mode 100644 a01919_a1dc669466d6f52d5be8af2d991512ac2_cgraph.map create mode 100644 a01919_a1dc669466d6f52d5be8af2d991512ac2_cgraph.md5 create mode 100644 a01919_a1dc669466d6f52d5be8af2d991512ac2_cgraph.svg create mode 100644 a01919_a1dc669466d6f52d5be8af2d991512ac2_icgraph.map create mode 100644 a01919_a1dc669466d6f52d5be8af2d991512ac2_icgraph.md5 create mode 100644 a01919_a1dc669466d6f52d5be8af2d991512ac2_icgraph.svg create mode 100644 a01919_a369e660e3e344bc697d98174059ead3c_icgraph.map create mode 100644 a01919_a369e660e3e344bc697d98174059ead3c_icgraph.md5 create mode 100644 a01919_a369e660e3e344bc697d98174059ead3c_icgraph.svg create mode 100644 a01919_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.map create mode 100644 a01919_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.md5 create mode 100644 a01919_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.svg create mode 100644 a01919_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.map create mode 100644 a01919_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.md5 create mode 100644 a01919_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.svg create mode 100644 a01919_a526989df37e605824d846b7ba54b43ea_cgraph.map create mode 100644 a01919_a526989df37e605824d846b7ba54b43ea_cgraph.md5 create mode 100644 a01919_a526989df37e605824d846b7ba54b43ea_cgraph.svg create mode 100644 a01919_a526989df37e605824d846b7ba54b43ea_icgraph.map create mode 100644 a01919_a526989df37e605824d846b7ba54b43ea_icgraph.md5 create mode 100644 a01919_a526989df37e605824d846b7ba54b43ea_icgraph.svg create mode 100644 a01919_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.map create mode 100644 a01919_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.md5 create mode 100644 a01919_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.svg create mode 100644 a01919_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.map create mode 100644 a01919_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.md5 create mode 100644 a01919_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.svg create mode 100644 a01919_a6c43ea323f2de1675b00e48330a12e2a_cgraph.map create mode 100644 a01919_a6c43ea323f2de1675b00e48330a12e2a_cgraph.md5 create mode 100644 a01919_a6c43ea323f2de1675b00e48330a12e2a_cgraph.svg create mode 100644 a01919_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.map create mode 100644 a01919_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.md5 create mode 100644 a01919_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.svg create mode 100644 a01919_a8995f71dba475975efc37756783cfce9_cgraph.map create mode 100644 a01919_a8995f71dba475975efc37756783cfce9_cgraph.md5 create mode 100644 a01919_a8995f71dba475975efc37756783cfce9_cgraph.svg create mode 100644 a01919_a8995f71dba475975efc37756783cfce9_icgraph.map create mode 100644 a01919_a8995f71dba475975efc37756783cfce9_icgraph.md5 create mode 100644 a01919_a8995f71dba475975efc37756783cfce9_icgraph.svg create mode 100644 a01919_a96e0520e5569748ce1172bafca24fafe_cgraph.map create mode 100644 a01919_a96e0520e5569748ce1172bafca24fafe_cgraph.md5 create mode 100644 a01919_a96e0520e5569748ce1172bafca24fafe_cgraph.svg create mode 100644 a01919_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.map create mode 100644 a01919_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.md5 create mode 100644 a01919_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.svg create mode 100644 a01919_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.map create mode 100644 a01919_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.md5 create mode 100644 a01919_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.svg create mode 100644 a01919_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.map create mode 100644 a01919_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.md5 create mode 100644 a01919_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.svg create mode 100644 a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.map create mode 100644 a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.md5 create mode 100644 a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.svg create mode 100644 a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.map create mode 100644 a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.md5 create mode 100644 a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.svg create mode 100644 a01919_af735744d0f8bec04394639a841d2ba0f_cgraph.map create mode 100644 a01919_af735744d0f8bec04394639a841d2ba0f_cgraph.md5 create mode 100644 a01919_af735744d0f8bec04394639a841d2ba0f_cgraph.svg create mode 100644 a01919_af8ede6fc8d207004035f45d945688d2c_cgraph.map create mode 100644 a01919_af8ede6fc8d207004035f45d945688d2c_cgraph.md5 create mode 100644 a01919_af8ede6fc8d207004035f45d945688d2c_cgraph.svg create mode 100644 a01919_afeaab7d93372f0752d59c70d9c5940e7_cgraph.map create mode 100644 a01919_afeaab7d93372f0752d59c70d9c5940e7_cgraph.md5 create mode 100644 a01919_afeaab7d93372f0752d59c70d9c5940e7_cgraph.svg create mode 100644 a01919_afeaab7d93372f0752d59c70d9c5940e7_icgraph.map create mode 100644 a01919_afeaab7d93372f0752d59c70d9c5940e7_icgraph.md5 create mode 100644 a01919_afeaab7d93372f0752d59c70d9c5940e7_icgraph.svg create mode 100644 a01919_source.html create mode 100644 a01920.map create mode 100644 a01920.md5 create mode 100644 a01920.svg create mode 100644 a01922.html create mode 100644 a01922.js create mode 100644 a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.map create mode 100644 a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.md5 create mode 100644 a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.svg create mode 100644 a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.map create mode 100644 a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.md5 create mode 100644 a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.svg create mode 100644 a01922_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.map create mode 100644 a01922_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.md5 create mode 100644 a01922_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.svg create mode 100644 a01922_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.map create mode 100644 a01922_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.md5 create mode 100644 a01922_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.svg create mode 100644 a01922_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.map create mode 100644 a01922_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.md5 create mode 100644 a01922_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.svg create mode 100644 a01922_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.map create mode 100644 a01922_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.md5 create mode 100644 a01922_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.svg create mode 100644 a01922_a5eb16d4196838d10a2b57715f2eddee7_cgraph.map create mode 100644 a01922_a5eb16d4196838d10a2b57715f2eddee7_cgraph.md5 create mode 100644 a01922_a5eb16d4196838d10a2b57715f2eddee7_cgraph.svg create mode 100644 a01922_a668fd893484b6e2d67d8b372b508d14f_icgraph.map create mode 100644 a01922_a668fd893484b6e2d67d8b372b508d14f_icgraph.md5 create mode 100644 a01922_a668fd893484b6e2d67d8b372b508d14f_icgraph.svg create mode 100644 a01922_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.map create mode 100644 a01922_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.md5 create mode 100644 a01922_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.svg create mode 100644 a01922_a86352ba91ba482c6688b7364d10bf956_cgraph.map create mode 100644 a01922_a86352ba91ba482c6688b7364d10bf956_cgraph.md5 create mode 100644 a01922_a86352ba91ba482c6688b7364d10bf956_cgraph.svg create mode 100644 a01922_a86352ba91ba482c6688b7364d10bf956_icgraph.map create mode 100644 a01922_a86352ba91ba482c6688b7364d10bf956_icgraph.md5 create mode 100644 a01922_a86352ba91ba482c6688b7364d10bf956_icgraph.svg create mode 100644 a01922_a871ba8da471f464d7e10b13d5db07101_cgraph.map create mode 100644 a01922_a871ba8da471f464d7e10b13d5db07101_cgraph.md5 create mode 100644 a01922_a871ba8da471f464d7e10b13d5db07101_cgraph.svg create mode 100644 a01922_a9255b8011e6d7c9b28c7df40065efb28_icgraph.map create mode 100644 a01922_a9255b8011e6d7c9b28c7df40065efb28_icgraph.md5 create mode 100644 a01922_a9255b8011e6d7c9b28c7df40065efb28_icgraph.svg create mode 100644 a01922_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.map create mode 100644 a01922_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.md5 create mode 100644 a01922_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.svg create mode 100644 a01922_abb03d3cde2d1354544cd082482c3f185_icgraph.map create mode 100644 a01922_abb03d3cde2d1354544cd082482c3f185_icgraph.md5 create mode 100644 a01922_abb03d3cde2d1354544cd082482c3f185_icgraph.svg create mode 100644 a01922_af735744d0f8bec04394639a841d2ba0f_cgraph.map create mode 100644 a01922_af735744d0f8bec04394639a841d2ba0f_cgraph.md5 create mode 100644 a01922_af735744d0f8bec04394639a841d2ba0f_cgraph.svg create mode 100644 a01922_afe7e4a63c40fbcaae742b8de8693483f_cgraph.map create mode 100644 a01922_afe7e4a63c40fbcaae742b8de8693483f_cgraph.md5 create mode 100644 a01922_afe7e4a63c40fbcaae742b8de8693483f_cgraph.svg create mode 100644 a01922_afe7e4a63c40fbcaae742b8de8693483f_icgraph.map create mode 100644 a01922_afe7e4a63c40fbcaae742b8de8693483f_icgraph.md5 create mode 100644 a01922_afe7e4a63c40fbcaae742b8de8693483f_icgraph.svg create mode 100644 a01922_source.html create mode 100644 a01923.map create mode 100644 a01923.md5 create mode 100644 a01923.svg create mode 100644 a01925.html create mode 100644 a01925.js create mode 100644 a01925_a186712b2a923d4bda1be98de189bc0f9_icgraph.map create mode 100644 a01925_a186712b2a923d4bda1be98de189bc0f9_icgraph.md5 create mode 100644 a01925_a186712b2a923d4bda1be98de189bc0f9_icgraph.svg create mode 100644 a01925_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.map create mode 100644 a01925_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.md5 create mode 100644 a01925_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.svg create mode 100644 a01925_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.map create mode 100644 a01925_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.md5 create mode 100644 a01925_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.svg create mode 100644 a01925_a4c22ae41507232dc3efc725428cbfc7b_cgraph.map create mode 100644 a01925_a4c22ae41507232dc3efc725428cbfc7b_cgraph.md5 create mode 100644 a01925_a4c22ae41507232dc3efc725428cbfc7b_cgraph.svg create mode 100644 a01925_a4c22ae41507232dc3efc725428cbfc7b_icgraph.map create mode 100644 a01925_a4c22ae41507232dc3efc725428cbfc7b_icgraph.md5 create mode 100644 a01925_a4c22ae41507232dc3efc725428cbfc7b_icgraph.svg create mode 100644 a01925_a5006bea23d2b9964f0f7c12947180e01_icgraph.map create mode 100644 a01925_a5006bea23d2b9964f0f7c12947180e01_icgraph.md5 create mode 100644 a01925_a5006bea23d2b9964f0f7c12947180e01_icgraph.svg create mode 100644 a01925_a5144f906658718ef853a8d18dda1e724_cgraph.map create mode 100644 a01925_a5144f906658718ef853a8d18dda1e724_cgraph.md5 create mode 100644 a01925_a5144f906658718ef853a8d18dda1e724_cgraph.svg create mode 100644 a01925_a5144f906658718ef853a8d18dda1e724_icgraph.map create mode 100644 a01925_a5144f906658718ef853a8d18dda1e724_icgraph.md5 create mode 100644 a01925_a5144f906658718ef853a8d18dda1e724_icgraph.svg create mode 100644 a01925_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.map create mode 100644 a01925_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.md5 create mode 100644 a01925_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.svg create mode 100644 a01925_a60dde947b05bc69599a6c7d92c38d088_icgraph.map create mode 100644 a01925_a60dde947b05bc69599a6c7d92c38d088_icgraph.md5 create mode 100644 a01925_a60dde947b05bc69599a6c7d92c38d088_icgraph.svg create mode 100644 a01925_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.map create mode 100644 a01925_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.md5 create mode 100644 a01925_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.svg create mode 100644 a01925_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.map create mode 100644 a01925_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.md5 create mode 100644 a01925_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.svg create mode 100644 a01925_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.map create mode 100644 a01925_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.md5 create mode 100644 a01925_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.svg create mode 100644 a01925_a8b36751c1bdab169e4735143d3712a09_icgraph.map create mode 100644 a01925_a8b36751c1bdab169e4735143d3712a09_icgraph.md5 create mode 100644 a01925_a8b36751c1bdab169e4735143d3712a09_icgraph.svg create mode 100644 a01925_a8d805b003097be6a6328a35c78bf558b_icgraph.map create mode 100644 a01925_a8d805b003097be6a6328a35c78bf558b_icgraph.md5 create mode 100644 a01925_a8d805b003097be6a6328a35c78bf558b_icgraph.svg create mode 100644 a01925_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.map create mode 100644 a01925_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.md5 create mode 100644 a01925_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.svg create mode 100644 a01925_a94ce6437cad359c8523f57fe50be020d_cgraph.map create mode 100644 a01925_a94ce6437cad359c8523f57fe50be020d_cgraph.md5 create mode 100644 a01925_a94ce6437cad359c8523f57fe50be020d_cgraph.svg create mode 100644 a01925_a94ce6437cad359c8523f57fe50be020d_icgraph.map create mode 100644 a01925_a94ce6437cad359c8523f57fe50be020d_icgraph.md5 create mode 100644 a01925_a94ce6437cad359c8523f57fe50be020d_icgraph.svg create mode 100644 a01925_aa0862a60d187bfed0cfa11bf27174551_cgraph.map create mode 100644 a01925_aa0862a60d187bfed0cfa11bf27174551_cgraph.md5 create mode 100644 a01925_aa0862a60d187bfed0cfa11bf27174551_cgraph.svg create mode 100644 a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.map create mode 100644 a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.md5 create mode 100644 a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.svg create mode 100644 a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.map create mode 100644 a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.md5 create mode 100644 a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.svg create mode 100644 a01925_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.map create mode 100644 a01925_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.md5 create mode 100644 a01925_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.svg create mode 100644 a01925_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.map create mode 100644 a01925_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.md5 create mode 100644 a01925_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.svg create mode 100644 a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.map create mode 100644 a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.md5 create mode 100644 a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.svg create mode 100644 a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.map create mode 100644 a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.md5 create mode 100644 a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.svg create mode 100644 a01925_ac2e1e32dc603394aecede365f454c8c4_cgraph.map create mode 100644 a01925_ac2e1e32dc603394aecede365f454c8c4_cgraph.md5 create mode 100644 a01925_ac2e1e32dc603394aecede365f454c8c4_cgraph.svg create mode 100644 a01925_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.map create mode 100644 a01925_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.md5 create mode 100644 a01925_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.svg create mode 100644 a01925_source.html create mode 100644 a01926.map create mode 100644 a01926.md5 create mode 100644 a01926.svg create mode 100644 a01928.html create mode 100644 a01928.js create mode 100644 a01928_a30352290ef80c644620afca91f719cfe_cgraph.map create mode 100644 a01928_a30352290ef80c644620afca91f719cfe_cgraph.md5 create mode 100644 a01928_a30352290ef80c644620afca91f719cfe_cgraph.svg create mode 100644 a01928_a30352290ef80c644620afca91f719cfe_icgraph.map create mode 100644 a01928_a30352290ef80c644620afca91f719cfe_icgraph.md5 create mode 100644 a01928_a30352290ef80c644620afca91f719cfe_icgraph.svg create mode 100644 a01928_a86ac572ea8f5f613129192c47d598818_cgraph.map create mode 100644 a01928_a86ac572ea8f5f613129192c47d598818_cgraph.md5 create mode 100644 a01928_a86ac572ea8f5f613129192c47d598818_cgraph.svg create mode 100644 a01928_a86ac572ea8f5f613129192c47d598818_icgraph.map create mode 100644 a01928_a86ac572ea8f5f613129192c47d598818_icgraph.md5 create mode 100644 a01928_a86ac572ea8f5f613129192c47d598818_icgraph.svg create mode 100644 a01928_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.map create mode 100644 a01928_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.md5 create mode 100644 a01928_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.svg create mode 100644 a01928_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.map create mode 100644 a01928_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.md5 create mode 100644 a01928_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.svg create mode 100644 a01928_source.html create mode 100644 a01929.map create mode 100644 a01929.md5 create mode 100644 a01929.svg create mode 100644 a01931.html create mode 100644 a01931.js create mode 100644 a01931_a80ab3bf4a8af9bb101b5a53248609771_cgraph.map create mode 100644 a01931_a80ab3bf4a8af9bb101b5a53248609771_cgraph.md5 create mode 100644 a01931_a80ab3bf4a8af9bb101b5a53248609771_cgraph.svg create mode 100644 a01931_a80ab3bf4a8af9bb101b5a53248609771_icgraph.map create mode 100644 a01931_a80ab3bf4a8af9bb101b5a53248609771_icgraph.md5 create mode 100644 a01931_a80ab3bf4a8af9bb101b5a53248609771_icgraph.svg create mode 100644 a01931_source.html create mode 100644 a01932.map create mode 100644 a01932.md5 create mode 100644 a01932.svg create mode 100644 a01934.html create mode 100644 a01934.js create mode 100644 a01934_a0d3707df989265f8cf380acdef95eb02_cgraph.map create mode 100644 a01934_a0d3707df989265f8cf380acdef95eb02_cgraph.md5 create mode 100644 a01934_a0d3707df989265f8cf380acdef95eb02_cgraph.svg create mode 100644 a01934_a0d3707df989265f8cf380acdef95eb02_icgraph.map create mode 100644 a01934_a0d3707df989265f8cf380acdef95eb02_icgraph.md5 create mode 100644 a01934_a0d3707df989265f8cf380acdef95eb02_icgraph.svg create mode 100644 a01934_a27bee94f7a23281c8b2b72ec433f6059_cgraph.map create mode 100644 a01934_a27bee94f7a23281c8b2b72ec433f6059_cgraph.md5 create mode 100644 a01934_a27bee94f7a23281c8b2b72ec433f6059_cgraph.svg create mode 100644 a01934_a27bee94f7a23281c8b2b72ec433f6059_icgraph.map create mode 100644 a01934_a27bee94f7a23281c8b2b72ec433f6059_icgraph.md5 create mode 100644 a01934_a27bee94f7a23281c8b2b72ec433f6059_icgraph.svg create mode 100644 a01934_a46456b4307a70983ebe554fa712d856e_cgraph.map create mode 100644 a01934_a46456b4307a70983ebe554fa712d856e_cgraph.md5 create mode 100644 a01934_a46456b4307a70983ebe554fa712d856e_cgraph.svg create mode 100644 a01934_a5eb16d4196838d10a2b57715f2eddee7_cgraph.map create mode 100644 a01934_a5eb16d4196838d10a2b57715f2eddee7_cgraph.md5 create mode 100644 a01934_a5eb16d4196838d10a2b57715f2eddee7_cgraph.svg create mode 100644 a01934_aa3cb73b347940187fb3399f51b1a55b7_icgraph.map create mode 100644 a01934_aa3cb73b347940187fb3399f51b1a55b7_icgraph.md5 create mode 100644 a01934_aa3cb73b347940187fb3399f51b1a55b7_icgraph.svg create mode 100644 a01934_ace08f924cb86d1310099621564536657_cgraph.map create mode 100644 a01934_ace08f924cb86d1310099621564536657_cgraph.md5 create mode 100644 a01934_ace08f924cb86d1310099621564536657_cgraph.svg create mode 100644 a01934_ace08f924cb86d1310099621564536657_icgraph.map create mode 100644 a01934_ace08f924cb86d1310099621564536657_icgraph.md5 create mode 100644 a01934_ace08f924cb86d1310099621564536657_icgraph.svg create mode 100644 a01934_source.html create mode 100644 a01935.map create mode 100644 a01935.md5 create mode 100644 a01935.svg create mode 100644 a01937.html create mode 100644 a01937.js create mode 100644 a01937_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.map create mode 100644 a01937_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.md5 create mode 100644 a01937_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.svg create mode 100644 a01937_a22aaf13eb56eb1832e725ef73236116f_cgraph.map create mode 100644 a01937_a22aaf13eb56eb1832e725ef73236116f_cgraph.md5 create mode 100644 a01937_a22aaf13eb56eb1832e725ef73236116f_cgraph.svg create mode 100644 a01937_a22aaf13eb56eb1832e725ef73236116f_icgraph.map create mode 100644 a01937_a22aaf13eb56eb1832e725ef73236116f_icgraph.md5 create mode 100644 a01937_a22aaf13eb56eb1832e725ef73236116f_icgraph.svg create mode 100644 a01937_a8413a3584787f9b629e54b2ef9439f06_cgraph.map create mode 100644 a01937_a8413a3584787f9b629e54b2ef9439f06_cgraph.md5 create mode 100644 a01937_a8413a3584787f9b629e54b2ef9439f06_cgraph.svg create mode 100644 a01937_a8413a3584787f9b629e54b2ef9439f06_icgraph.map create mode 100644 a01937_a8413a3584787f9b629e54b2ef9439f06_icgraph.md5 create mode 100644 a01937_a8413a3584787f9b629e54b2ef9439f06_icgraph.svg create mode 100644 a01937_acf84ea82594c4dbe91cf602ee078e04d_cgraph.map create mode 100644 a01937_acf84ea82594c4dbe91cf602ee078e04d_cgraph.md5 create mode 100644 a01937_acf84ea82594c4dbe91cf602ee078e04d_cgraph.svg create mode 100644 a01937_acf84ea82594c4dbe91cf602ee078e04d_icgraph.map create mode 100644 a01937_acf84ea82594c4dbe91cf602ee078e04d_icgraph.md5 create mode 100644 a01937_acf84ea82594c4dbe91cf602ee078e04d_icgraph.svg create mode 100644 a01937_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.map create mode 100644 a01937_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.md5 create mode 100644 a01937_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.svg create mode 100644 a01937_source.html create mode 100644 a01938.map create mode 100644 a01938.md5 create mode 100644 a01938.svg create mode 100644 a01940.html create mode 100644 a01940.js create mode 100644 a01940_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.map create mode 100644 a01940_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.md5 create mode 100644 a01940_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.svg create mode 100644 a01940_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.map create mode 100644 a01940_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.md5 create mode 100644 a01940_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.svg create mode 100644 a01940_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.map create mode 100644 a01940_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.md5 create mode 100644 a01940_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.svg create mode 100644 a01940_a83ddb422946cf774c687c1ab63dcda15_cgraph.map create mode 100644 a01940_a83ddb422946cf774c687c1ab63dcda15_cgraph.md5 create mode 100644 a01940_a83ddb422946cf774c687c1ab63dcda15_cgraph.svg create mode 100644 a01940_a83ddb422946cf774c687c1ab63dcda15_icgraph.map create mode 100644 a01940_a83ddb422946cf774c687c1ab63dcda15_icgraph.md5 create mode 100644 a01940_a83ddb422946cf774c687c1ab63dcda15_icgraph.svg create mode 100644 a01940_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.map create mode 100644 a01940_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.md5 create mode 100644 a01940_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.svg create mode 100644 a01940_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.map create mode 100644 a01940_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.md5 create mode 100644 a01940_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.svg create mode 100644 a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.map create mode 100644 a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.md5 create mode 100644 a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.svg create mode 100644 a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.map create mode 100644 a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.md5 create mode 100644 a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.svg create mode 100644 a01940_afe1eb3edd264c847c36e9456b2598452_icgraph.map create mode 100644 a01940_afe1eb3edd264c847c36e9456b2598452_icgraph.md5 create mode 100644 a01940_afe1eb3edd264c847c36e9456b2598452_icgraph.svg create mode 100644 a01940_source.html create mode 100644 a01941.map create mode 100644 a01941.md5 create mode 100644 a01941.svg create mode 100644 a01943.html create mode 100644 a01943.js create mode 100644 a01943_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.map create mode 100644 a01943_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.md5 create mode 100644 a01943_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.svg create mode 100644 a01943_a91805af1bb8178dbb114ff65d491f840_icgraph.map create mode 100644 a01943_a91805af1bb8178dbb114ff65d491f840_icgraph.md5 create mode 100644 a01943_a91805af1bb8178dbb114ff65d491f840_icgraph.svg create mode 100644 a01943_source.html create mode 100644 a01944.map create mode 100644 a01944.md5 create mode 100644 a01944.svg create mode 100644 a01946.html create mode 100644 a01946.js create mode 100644 a01946_a4ee1fea325d2edd421f59ab240dfbe54_cgraph.map create mode 100644 a01946_a4ee1fea325d2edd421f59ab240dfbe54_cgraph.md5 create mode 100644 a01946_a4ee1fea325d2edd421f59ab240dfbe54_cgraph.svg create mode 100644 a01946_af26dc0763861425aefd6253b538a289a_cgraph.map create mode 100644 a01946_af26dc0763861425aefd6253b538a289a_cgraph.md5 create mode 100644 a01946_af26dc0763861425aefd6253b538a289a_cgraph.svg create mode 100644 a01946_source.html create mode 100644 a01947.map create mode 100644 a01947.md5 create mode 100644 a01947.svg create mode 100644 a01949.html create mode 100644 a01949.js create mode 100644 a01949_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.map create mode 100644 a01949_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.md5 create mode 100644 a01949_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.svg create mode 100644 a01949_source.html create mode 100644 a01950.map create mode 100644 a01950.md5 create mode 100644 a01950.svg create mode 100644 a01952.html create mode 100644 a01952.js create mode 100644 a01952_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.map create mode 100644 a01952_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.md5 create mode 100644 a01952_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.svg create mode 100644 a01952_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.map create mode 100644 a01952_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.md5 create mode 100644 a01952_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.svg create mode 100644 a01952_a6699a24a46fb1be57ca21abf8bc61928_icgraph.map create mode 100644 a01952_a6699a24a46fb1be57ca21abf8bc61928_icgraph.md5 create mode 100644 a01952_a6699a24a46fb1be57ca21abf8bc61928_icgraph.svg create mode 100644 a01952_a73d0d5ad8a6878dde35fe7b827b33b05_cgraph.map create mode 100644 a01952_a73d0d5ad8a6878dde35fe7b827b33b05_cgraph.md5 create mode 100644 a01952_a73d0d5ad8a6878dde35fe7b827b33b05_cgraph.svg create mode 100644 a01952_a73d0d5ad8a6878dde35fe7b827b33b05_icgraph.map create mode 100644 a01952_a73d0d5ad8a6878dde35fe7b827b33b05_icgraph.md5 create mode 100644 a01952_a73d0d5ad8a6878dde35fe7b827b33b05_icgraph.svg create mode 100644 a01952_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.map create mode 100644 a01952_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.md5 create mode 100644 a01952_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.svg create mode 100644 a01952_a84bb16b03a95a60c4748c189dafa8a54_icgraph.map create mode 100644 a01952_a84bb16b03a95a60c4748c189dafa8a54_icgraph.md5 create mode 100644 a01952_a84bb16b03a95a60c4748c189dafa8a54_icgraph.svg create mode 100644 a01952_ae5a4ee90ef57eb7d12191236c3a105f2_cgraph.map create mode 100644 a01952_ae5a4ee90ef57eb7d12191236c3a105f2_cgraph.md5 create mode 100644 a01952_ae5a4ee90ef57eb7d12191236c3a105f2_cgraph.svg create mode 100644 a01952_ae5a4ee90ef57eb7d12191236c3a105f2_icgraph.map create mode 100644 a01952_ae5a4ee90ef57eb7d12191236c3a105f2_icgraph.md5 create mode 100644 a01952_ae5a4ee90ef57eb7d12191236c3a105f2_icgraph.svg create mode 100644 a01952_af8a432f287b9f55f026e2d120e677998_icgraph.map create mode 100644 a01952_af8a432f287b9f55f026e2d120e677998_icgraph.md5 create mode 100644 a01952_af8a432f287b9f55f026e2d120e677998_icgraph.svg create mode 100644 a01952_afac539947a2f5fe419a493103a45e4be_cgraph.map create mode 100644 a01952_afac539947a2f5fe419a493103a45e4be_cgraph.md5 create mode 100644 a01952_afac539947a2f5fe419a493103a45e4be_cgraph.svg create mode 100644 a01952_afac539947a2f5fe419a493103a45e4be_icgraph.map create mode 100644 a01952_afac539947a2f5fe419a493103a45e4be_icgraph.md5 create mode 100644 a01952_afac539947a2f5fe419a493103a45e4be_icgraph.svg create mode 100644 a01952_source.html create mode 100644 a01953.map create mode 100644 a01953.md5 create mode 100644 a01953.svg create mode 100644 a01955.html create mode 100644 a01955.js create mode 100644 a01955_a0738274ac3fd171eda6bfb42492bc0d7_cgraph.map create mode 100644 a01955_a0738274ac3fd171eda6bfb42492bc0d7_cgraph.md5 create mode 100644 a01955_a0738274ac3fd171eda6bfb42492bc0d7_cgraph.svg create mode 100644 a01955_a0738274ac3fd171eda6bfb42492bc0d7_icgraph.map create mode 100644 a01955_a0738274ac3fd171eda6bfb42492bc0d7_icgraph.md5 create mode 100644 a01955_a0738274ac3fd171eda6bfb42492bc0d7_icgraph.svg create mode 100644 a01955_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.map create mode 100644 a01955_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.md5 create mode 100644 a01955_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.svg create mode 100644 a01955_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.map create mode 100644 a01955_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.md5 create mode 100644 a01955_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.svg create mode 100644 a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.map create mode 100644 a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.md5 create mode 100644 a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.svg create mode 100644 a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.map create mode 100644 a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.md5 create mode 100644 a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.svg create mode 100644 a01955_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.map create mode 100644 a01955_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.md5 create mode 100644 a01955_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.svg create mode 100644 a01955_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.map create mode 100644 a01955_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.md5 create mode 100644 a01955_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.svg create mode 100644 a01955_a336fa8eefc3d744aa7248d6786cfee03_cgraph.map create mode 100644 a01955_a336fa8eefc3d744aa7248d6786cfee03_cgraph.md5 create mode 100644 a01955_a336fa8eefc3d744aa7248d6786cfee03_cgraph.svg create mode 100644 a01955_a336fa8eefc3d744aa7248d6786cfee03_icgraph.map create mode 100644 a01955_a336fa8eefc3d744aa7248d6786cfee03_icgraph.md5 create mode 100644 a01955_a336fa8eefc3d744aa7248d6786cfee03_icgraph.svg create mode 100644 a01955_a4a525d89ade920512dc65409bc8e85d8_cgraph.map create mode 100644 a01955_a4a525d89ade920512dc65409bc8e85d8_cgraph.md5 create mode 100644 a01955_a4a525d89ade920512dc65409bc8e85d8_cgraph.svg create mode 100644 a01955_a4a525d89ade920512dc65409bc8e85d8_icgraph.map create mode 100644 a01955_a4a525d89ade920512dc65409bc8e85d8_icgraph.md5 create mode 100644 a01955_a4a525d89ade920512dc65409bc8e85d8_icgraph.svg create mode 100644 a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_cgraph.map create mode 100644 a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_cgraph.md5 create mode 100644 a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_cgraph.svg create mode 100644 a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_icgraph.map create mode 100644 a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_icgraph.md5 create mode 100644 a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_icgraph.svg create mode 100644 a01955_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.map create mode 100644 a01955_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.md5 create mode 100644 a01955_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.svg create mode 100644 a01955_a88091e179416d4beec1b5681cfb68742_cgraph.map create mode 100644 a01955_a88091e179416d4beec1b5681cfb68742_cgraph.md5 create mode 100644 a01955_a88091e179416d4beec1b5681cfb68742_cgraph.svg create mode 100644 a01955_a88091e179416d4beec1b5681cfb68742_icgraph.map create mode 100644 a01955_a88091e179416d4beec1b5681cfb68742_icgraph.md5 create mode 100644 a01955_a88091e179416d4beec1b5681cfb68742_icgraph.svg create mode 100644 a01955_a8b687fb4c464903e23504eea3ddc3873_cgraph.map create mode 100644 a01955_a8b687fb4c464903e23504eea3ddc3873_cgraph.md5 create mode 100644 a01955_a8b687fb4c464903e23504eea3ddc3873_cgraph.svg create mode 100644 a01955_a8b687fb4c464903e23504eea3ddc3873_icgraph.map create mode 100644 a01955_a8b687fb4c464903e23504eea3ddc3873_icgraph.md5 create mode 100644 a01955_a8b687fb4c464903e23504eea3ddc3873_icgraph.svg create mode 100644 a01955_aa7aa94ad075bf97a566f01f899fcd859_cgraph.map create mode 100644 a01955_aa7aa94ad075bf97a566f01f899fcd859_cgraph.md5 create mode 100644 a01955_aa7aa94ad075bf97a566f01f899fcd859_cgraph.svg create mode 100644 a01955_aa7aa94ad075bf97a566f01f899fcd859_icgraph.map create mode 100644 a01955_aa7aa94ad075bf97a566f01f899fcd859_icgraph.md5 create mode 100644 a01955_aa7aa94ad075bf97a566f01f899fcd859_icgraph.svg create mode 100644 a01955_ab87e9691e65d65348749f8dc70f24602_cgraph.map create mode 100644 a01955_ab87e9691e65d65348749f8dc70f24602_cgraph.md5 create mode 100644 a01955_ab87e9691e65d65348749f8dc70f24602_cgraph.svg create mode 100644 a01955_ab87e9691e65d65348749f8dc70f24602_icgraph.map create mode 100644 a01955_ab87e9691e65d65348749f8dc70f24602_icgraph.md5 create mode 100644 a01955_ab87e9691e65d65348749f8dc70f24602_icgraph.svg create mode 100644 a01955_aff9af0356940583dfe3045e693cc8a45_cgraph.map create mode 100644 a01955_aff9af0356940583dfe3045e693cc8a45_cgraph.md5 create mode 100644 a01955_aff9af0356940583dfe3045e693cc8a45_cgraph.svg create mode 100644 a01955_aff9af0356940583dfe3045e693cc8a45_icgraph.map create mode 100644 a01955_aff9af0356940583dfe3045e693cc8a45_icgraph.md5 create mode 100644 a01955_aff9af0356940583dfe3045e693cc8a45_icgraph.svg create mode 100644 a01955_source.html create mode 100644 a01956.map create mode 100644 a01956.md5 create mode 100644 a01956.svg create mode 100644 a01958.html create mode 100644 a01958.js create mode 100644 a01958_a00a9ced40b89f30fa314c4534bfb0922_cgraph.map create mode 100644 a01958_a00a9ced40b89f30fa314c4534bfb0922_cgraph.md5 create mode 100644 a01958_a00a9ced40b89f30fa314c4534bfb0922_cgraph.svg create mode 100644 a01958_a0c85e5516222ab7e7fc354c614760ec5_icgraph.map create mode 100644 a01958_a0c85e5516222ab7e7fc354c614760ec5_icgraph.md5 create mode 100644 a01958_a0c85e5516222ab7e7fc354c614760ec5_icgraph.svg create mode 100644 a01958_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.map create mode 100644 a01958_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.md5 create mode 100644 a01958_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.svg create mode 100644 a01958_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.map create mode 100644 a01958_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.md5 create mode 100644 a01958_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.svg create mode 100644 a01958_a5c575f52a42e0e0d2fb41bda2d1268ce_icgraph.map create mode 100644 a01958_a5c575f52a42e0e0d2fb41bda2d1268ce_icgraph.md5 create mode 100644 a01958_a5c575f52a42e0e0d2fb41bda2d1268ce_icgraph.svg create mode 100644 a01958_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.map create mode 100644 a01958_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.md5 create mode 100644 a01958_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.svg create mode 100644 a01958_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.map create mode 100644 a01958_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.md5 create mode 100644 a01958_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.svg create mode 100644 a01958_ab36e49d2e694b1da49504a689ed48e4a_cgraph.map create mode 100644 a01958_ab36e49d2e694b1da49504a689ed48e4a_cgraph.md5 create mode 100644 a01958_ab36e49d2e694b1da49504a689ed48e4a_cgraph.svg create mode 100644 a01958_ab36e49d2e694b1da49504a689ed48e4a_icgraph.map create mode 100644 a01958_ab36e49d2e694b1da49504a689ed48e4a_icgraph.md5 create mode 100644 a01958_ab36e49d2e694b1da49504a689ed48e4a_icgraph.svg create mode 100644 a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.map create mode 100644 a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.md5 create mode 100644 a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.svg create mode 100644 a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.map create mode 100644 a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.md5 create mode 100644 a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.svg create mode 100644 a01958_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.map create mode 100644 a01958_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.md5 create mode 100644 a01958_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.svg create mode 100644 a01958_source.html create mode 100644 a01959.map create mode 100644 a01959.md5 create mode 100644 a01959.svg create mode 100644 a01961.html create mode 100644 a01961.js create mode 100644 a01961_a49c353188156b1df4463a5fc7f7bc25e_icgraph.map create mode 100644 a01961_a49c353188156b1df4463a5fc7f7bc25e_icgraph.md5 create mode 100644 a01961_a49c353188156b1df4463a5fc7f7bc25e_icgraph.svg create mode 100644 a01961_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.map create mode 100644 a01961_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.md5 create mode 100644 a01961_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.svg create mode 100644 a01961_a9fae55b169121c4851bb7c0adf4eac47_icgraph.map create mode 100644 a01961_a9fae55b169121c4851bb7c0adf4eac47_icgraph.md5 create mode 100644 a01961_a9fae55b169121c4851bb7c0adf4eac47_icgraph.svg create mode 100644 a01961_source.html create mode 100644 a01962.map create mode 100644 a01962.md5 create mode 100644 a01962.svg create mode 100644 a01964.html create mode 100644 a01964.js create mode 100644 a01964_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.map create mode 100644 a01964_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.md5 create mode 100644 a01964_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.svg create mode 100644 a01964_a086232272942235166bf349ef7aacf9d_cgraph.map create mode 100644 a01964_a086232272942235166bf349ef7aacf9d_cgraph.md5 create mode 100644 a01964_a086232272942235166bf349ef7aacf9d_cgraph.svg create mode 100644 a01964_a086232272942235166bf349ef7aacf9d_icgraph.map create mode 100644 a01964_a086232272942235166bf349ef7aacf9d_icgraph.md5 create mode 100644 a01964_a086232272942235166bf349ef7aacf9d_icgraph.svg create mode 100644 a01964_a08a7dc8cdb641981a0b564f046dfeb6a_icgraph.map create mode 100644 a01964_a08a7dc8cdb641981a0b564f046dfeb6a_icgraph.md5 create mode 100644 a01964_a08a7dc8cdb641981a0b564f046dfeb6a_icgraph.svg create mode 100644 a01964_a38809d11e47f180968c23903fed321ef_icgraph.map create mode 100644 a01964_a38809d11e47f180968c23903fed321ef_icgraph.md5 create mode 100644 a01964_a38809d11e47f180968c23903fed321ef_icgraph.svg create mode 100644 a01964_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.map create mode 100644 a01964_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.md5 create mode 100644 a01964_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.svg create mode 100644 a01964_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.map create mode 100644 a01964_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.md5 create mode 100644 a01964_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.svg create mode 100644 a01964_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.map create mode 100644 a01964_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.md5 create mode 100644 a01964_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.svg create mode 100644 a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.map create mode 100644 a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.md5 create mode 100644 a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.svg create mode 100644 a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.map create mode 100644 a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.md5 create mode 100644 a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.svg create mode 100644 a01964_source.html create mode 100644 a01965.map create mode 100644 a01965.md5 create mode 100644 a01965.svg create mode 100644 a02174.html create mode 100644 a02174.js create mode 100644 a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_cgraph.map create mode 100644 a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_cgraph.md5 create mode 100644 a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_cgraph.svg create mode 100644 a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_icgraph.map create mode 100644 a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_icgraph.md5 create mode 100644 a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_icgraph.svg create mode 100644 a02174_ga8ac7e88ed7b8a1e2ff8aa435ac6b58ec_cgraph.map create mode 100644 a02174_ga8ac7e88ed7b8a1e2ff8aa435ac6b58ec_cgraph.md5 create mode 100644 a02174_ga8ac7e88ed7b8a1e2ff8aa435ac6b58ec_cgraph.svg create mode 100644 a02174_gae1d371a2840849690acce147e7a205da_cgraph.map create mode 100644 a02174_gae1d371a2840849690acce147e7a205da_cgraph.md5 create mode 100644 a02174_gae1d371a2840849690acce147e7a205da_cgraph.svg create mode 100644 a02174_gae1d371a2840849690acce147e7a205da_icgraph.map create mode 100644 a02174_gae1d371a2840849690acce147e7a205da_icgraph.md5 create mode 100644 a02174_gae1d371a2840849690acce147e7a205da_icgraph.svg create mode 100644 a02175.html create mode 100644 a02175.js create mode 100644 a02175_ga008252bb9afc2990fa2c5f4b980c9f27_cgraph.map create mode 100644 a02175_ga008252bb9afc2990fa2c5f4b980c9f27_cgraph.md5 create mode 100644 a02175_ga008252bb9afc2990fa2c5f4b980c9f27_cgraph.svg create mode 100644 a02175_ga30b30e50de286842c7942a7e3e163578_cgraph.map create mode 100644 a02175_ga30b30e50de286842c7942a7e3e163578_cgraph.md5 create mode 100644 a02175_ga30b30e50de286842c7942a7e3e163578_cgraph.svg create mode 100644 a02175_ga41bcefd54b929d1a638d174da051130f_cgraph.map create mode 100644 a02175_ga41bcefd54b929d1a638d174da051130f_cgraph.md5 create mode 100644 a02175_ga41bcefd54b929d1a638d174da051130f_cgraph.svg create mode 100644 a02175_ga497b17905d4c7ee2f5ee831d367ece92_cgraph.map create mode 100644 a02175_ga497b17905d4c7ee2f5ee831d367ece92_cgraph.md5 create mode 100644 a02175_ga497b17905d4c7ee2f5ee831d367ece92_cgraph.svg create mode 100644 a02175_ga497b17905d4c7ee2f5ee831d367ece92_icgraph.map create mode 100644 a02175_ga497b17905d4c7ee2f5ee831d367ece92_icgraph.md5 create mode 100644 a02175_ga497b17905d4c7ee2f5ee831d367ece92_icgraph.svg create mode 100644 a02175_ga7f1598b99463c5ef533a457f225b4c0b_cgraph.map create mode 100644 a02175_ga7f1598b99463c5ef533a457f225b4c0b_cgraph.md5 create mode 100644 a02175_ga7f1598b99463c5ef533a457f225b4c0b_cgraph.svg create mode 100644 a02175_gadd7613438ee9db973f6abf9259956bd5_cgraph.map create mode 100644 a02175_gadd7613438ee9db973f6abf9259956bd5_cgraph.md5 create mode 100644 a02175_gadd7613438ee9db973f6abf9259956bd5_cgraph.svg create mode 100644 a02175_gaf8a10ab4e51e59c464ab3ab473e4a0f7_cgraph.map create mode 100644 a02175_gaf8a10ab4e51e59c464ab3ab473e4a0f7_cgraph.md5 create mode 100644 a02175_gaf8a10ab4e51e59c464ab3ab473e4a0f7_cgraph.svg create mode 100644 a02176.html create mode 100644 a02176.js create mode 100644 a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_cgraph.map create mode 100644 a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_cgraph.md5 create mode 100644 a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_cgraph.svg create mode 100644 a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_icgraph.map create mode 100644 a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_icgraph.md5 create mode 100644 a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_icgraph.svg create mode 100644 a02176_ga739047efb2b454e6c1ac54138ef2985d_cgraph.map create mode 100644 a02176_ga739047efb2b454e6c1ac54138ef2985d_cgraph.md5 create mode 100644 a02176_ga739047efb2b454e6c1ac54138ef2985d_cgraph.svg create mode 100644 a02176_ga739047efb2b454e6c1ac54138ef2985d_icgraph.map create mode 100644 a02176_ga739047efb2b454e6c1ac54138ef2985d_icgraph.md5 create mode 100644 a02176_ga739047efb2b454e6c1ac54138ef2985d_icgraph.svg create mode 100644 a02176_gafad2dafb4a231390f02b7c866295b7d9_cgraph.map create mode 100644 a02176_gafad2dafb4a231390f02b7c866295b7d9_cgraph.md5 create mode 100644 a02176_gafad2dafb4a231390f02b7c866295b7d9_cgraph.svg create mode 100644 a02177.html create mode 100644 a02177.js create mode 100644 a02177_ga1418f4cd7336bf77cce7b955a1bf7077_cgraph.map create mode 100644 a02177_ga1418f4cd7336bf77cce7b955a1bf7077_cgraph.md5 create mode 100644 a02177_ga1418f4cd7336bf77cce7b955a1bf7077_cgraph.svg create mode 100644 a02177_ga55195957c1cde1508257782716aa6db3_cgraph.map create mode 100644 a02177_ga55195957c1cde1508257782716aa6db3_cgraph.md5 create mode 100644 a02177_ga55195957c1cde1508257782716aa6db3_cgraph.svg create mode 100644 a02177_ga55195957c1cde1508257782716aa6db3_icgraph.map create mode 100644 a02177_ga55195957c1cde1508257782716aa6db3_icgraph.md5 create mode 100644 a02177_ga55195957c1cde1508257782716aa6db3_icgraph.svg create mode 100644 a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_cgraph.map create mode 100644 a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_cgraph.md5 create mode 100644 a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_cgraph.svg create mode 100644 a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_icgraph.map create mode 100644 a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_icgraph.md5 create mode 100644 a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_icgraph.svg create mode 100644 a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_cgraph.map create mode 100644 a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_cgraph.md5 create mode 100644 a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_cgraph.svg create mode 100644 a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_icgraph.map create mode 100644 a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_icgraph.md5 create mode 100644 a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_icgraph.svg create mode 100644 a02178.html create mode 100644 a02178.js create mode 100644 a02178_ga9260ad2dd766aec3274c518e2e312b1f_cgraph.map create mode 100644 a02178_ga9260ad2dd766aec3274c518e2e312b1f_cgraph.md5 create mode 100644 a02178_ga9260ad2dd766aec3274c518e2e312b1f_cgraph.svg create mode 100644 a02182.html create mode 100644 a02182.js create mode 100644 a02186.html create mode 100644 a02186.js create mode 100644 a02188.map create mode 100644 a02188.md5 create mode 100644 a02188.svg create mode 100644 a02190.html create mode 100644 a02190.js create mode 100644 a02194.html create mode 100644 a02194.js create mode 100644 a02196.map create mode 100644 a02196.md5 create mode 100644 a02196.svg create mode 100644 a02198.html create mode 100644 a02198.js create mode 100644 a02200.map create mode 100644 a02200.md5 create mode 100644 a02200.svg create mode 100644 a02202.html create mode 100644 a02202.js create mode 100644 a02204.map create mode 100644 a02204.md5 create mode 100644 a02204.svg create mode 100644 a02206.html create mode 100644 a02206.js create mode 100644 a02208.map create mode 100644 a02208.md5 create mode 100644 a02208.svg create mode 100644 a02210.html create mode 100644 a02210.js create mode 100644 a02214.html create mode 100644 a02214.js create mode 100644 a02218.html create mode 100644 a02218.js create mode 100644 a02226.html create mode 100644 a02226.js create mode 100644 a02228.map create mode 100644 a02228.md5 create mode 100644 a02228.svg create mode 100644 a02230.html create mode 100644 a02230.js create mode 100644 a02232.map create mode 100644 a02232.md5 create mode 100644 a02232.svg create mode 100644 a02234.html create mode 100644 a02234.js create mode 100644 a02236.map create mode 100644 a02236.md5 create mode 100644 a02236.svg create mode 100644 a02238.html create mode 100644 a02238.js create mode 100644 a02240.map create mode 100644 a02240.md5 create mode 100644 a02240.svg create mode 100644 a02242.html create mode 100644 a02242.js create mode 100644 a02244.map create mode 100644 a02244.md5 create mode 100644 a02244.svg create mode 100644 a02246.html create mode 100644 a02246.js create mode 100644 a02250.html create mode 100644 a02250.js create mode 100644 a02252.map create mode 100644 a02252.md5 create mode 100644 a02252.svg create mode 100644 a02254.html create mode 100644 a02254.js create mode 100644 a02258.html create mode 100644 a02258.js create mode 100644 a02260.map create mode 100644 a02260.md5 create mode 100644 a02260.svg create mode 100644 a02262.html create mode 100644 a02262.js create mode 100644 a02264.map create mode 100644 a02264.md5 create mode 100644 a02264.svg create mode 100644 a02266.html create mode 100644 a02266.js create mode 100644 a02272.map create mode 100644 a02272.md5 create mode 100644 a02272.svg create mode 100644 a02274.html create mode 100644 a02274.js create mode 100644 a02276.map create mode 100644 a02276.md5 create mode 100644 a02276.svg create mode 100644 a02278.html create mode 100644 a02278.js create mode 100644 a02280.map create mode 100644 a02280.md5 create mode 100644 a02280.svg create mode 100644 a02282.html create mode 100644 a02282.js create mode 100644 a02284.map create mode 100644 a02284.md5 create mode 100644 a02284.svg create mode 100644 a02286.html create mode 100644 a02286.js create mode 100644 a02288.map create mode 100644 a02288.md5 create mode 100644 a02288.svg create mode 100644 a02290.html create mode 100644 a02290.js create mode 100644 a02294.html create mode 100644 a02294.js create mode 100644 a02298.html create mode 100644 a02298.js create mode 100644 a02300.map create mode 100644 a02300.md5 create mode 100644 a02300.svg create mode 100644 a02302.html create mode 100644 a02302.js create mode 100644 a02306.html create mode 100644 a02306.js create mode 100644 a02308.map create mode 100644 a02308.md5 create mode 100644 a02308.svg create mode 100644 a02310.html create mode 100644 a02310.js create mode 100644 a02312.map create mode 100644 a02312.md5 create mode 100644 a02312.svg create mode 100644 a02314.html create mode 100644 a02314.js create mode 100644 a02318.html create mode 100644 a02318.js create mode 100644 a02322.html create mode 100644 a02322.js create mode 100644 a02324.map create mode 100644 a02324.md5 create mode 100644 a02324.svg create mode 100644 a02326.html create mode 100644 a02326.js create mode 100644 a02330.html create mode 100644 a02330.js create mode 100644 a02334.html create mode 100644 a02334.js create mode 100644 a02336.map create mode 100644 a02336.md5 create mode 100644 a02336.svg create mode 100644 a02338.html create mode 100644 a02338.js create mode 100644 a02340.html create mode 100644 a02340.js create mode 100644 a02340_a714d6d40ed6d39c37c11df8d98fe78a2_icgraph.map create mode 100644 a02340_a714d6d40ed6d39c37c11df8d98fe78a2_icgraph.md5 create mode 100644 a02340_a714d6d40ed6d39c37c11df8d98fe78a2_icgraph.svg create mode 100644 a02340_ac9828b5c2758940f6d3c7d4335228de5_icgraph.map create mode 100644 a02340_ac9828b5c2758940f6d3c7d4335228de5_icgraph.md5 create mode 100644 a02340_ac9828b5c2758940f6d3c7d4335228de5_icgraph.svg create mode 100644 a02340_source.html create mode 100644 a02341.map create mode 100644 a02341.md5 create mode 100644 a02341.svg create mode 100644 a02343.html create mode 100644 a02343.js create mode 100644 a02343_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.map create mode 100644 a02343_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.md5 create mode 100644 a02343_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.svg create mode 100644 a02343_a32b9155cb5133ef21023a1ff4653bf04_cgraph.map create mode 100644 a02343_a32b9155cb5133ef21023a1ff4653bf04_cgraph.md5 create mode 100644 a02343_a32b9155cb5133ef21023a1ff4653bf04_cgraph.svg create mode 100644 a02343_a44fec37f87bcd49aaacc97696f9e0e7d_cgraph.map create mode 100644 a02343_a44fec37f87bcd49aaacc97696f9e0e7d_cgraph.md5 create mode 100644 a02343_a44fec37f87bcd49aaacc97696f9e0e7d_cgraph.svg create mode 100644 a02343_a44fec37f87bcd49aaacc97696f9e0e7d_icgraph.map create mode 100644 a02343_a44fec37f87bcd49aaacc97696f9e0e7d_icgraph.md5 create mode 100644 a02343_a44fec37f87bcd49aaacc97696f9e0e7d_icgraph.svg create mode 100644 a02343_a645f029b25098d24aca61b20beabe1bf_cgraph.map create mode 100644 a02343_a645f029b25098d24aca61b20beabe1bf_cgraph.md5 create mode 100644 a02343_a645f029b25098d24aca61b20beabe1bf_cgraph.svg create mode 100644 a02343_a687bef36a598f3a197afea8e055e6608_cgraph.map create mode 100644 a02343_a687bef36a598f3a197afea8e055e6608_cgraph.md5 create mode 100644 a02343_a687bef36a598f3a197afea8e055e6608_cgraph.svg create mode 100644 a02343_a6c80c36522a102a50963aa44fe7c692c_icgraph.map create mode 100644 a02343_a6c80c36522a102a50963aa44fe7c692c_icgraph.md5 create mode 100644 a02343_a6c80c36522a102a50963aa44fe7c692c_icgraph.svg create mode 100644 a02343_a6f21f41c6c1797ff0b8754fb046f3dbc_cgraph.map create mode 100644 a02343_a6f21f41c6c1797ff0b8754fb046f3dbc_cgraph.md5 create mode 100644 a02343_a6f21f41c6c1797ff0b8754fb046f3dbc_cgraph.svg create mode 100644 a02343_a726fb6388e92c5d82c9d5750fee1a7fb_icgraph.map create mode 100644 a02343_a726fb6388e92c5d82c9d5750fee1a7fb_icgraph.md5 create mode 100644 a02343_a726fb6388e92c5d82c9d5750fee1a7fb_icgraph.svg create mode 100644 a02343_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.map create mode 100644 a02343_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.md5 create mode 100644 a02343_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.svg create mode 100644 a02343_ac9828b5c2758940f6d3c7d4335228de5_icgraph.map create mode 100644 a02343_ac9828b5c2758940f6d3c7d4335228de5_icgraph.md5 create mode 100644 a02343_ac9828b5c2758940f6d3c7d4335228de5_icgraph.svg create mode 100644 a02343_source.html create mode 100644 a02344.map create mode 100644 a02344.md5 create mode 100644 a02344.svg create mode 100644 a02346.html create mode 100644 a02346.js create mode 100644 a02346_a0fa370eee5160963e617d1daf1c07363_icgraph.map create mode 100644 a02346_a0fa370eee5160963e617d1daf1c07363_icgraph.md5 create mode 100644 a02346_a0fa370eee5160963e617d1daf1c07363_icgraph.svg create mode 100644 a02346_a2a7d01fc7720e936a430efc09d094c6c_icgraph.map create mode 100644 a02346_a2a7d01fc7720e936a430efc09d094c6c_icgraph.md5 create mode 100644 a02346_a2a7d01fc7720e936a430efc09d094c6c_icgraph.svg create mode 100644 a02346_a49083e8ceb4bfe7793ca1a5a799834d0_icgraph.map create mode 100644 a02346_a49083e8ceb4bfe7793ca1a5a799834d0_icgraph.md5 create mode 100644 a02346_a49083e8ceb4bfe7793ca1a5a799834d0_icgraph.svg create mode 100644 a02346_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.map create mode 100644 a02346_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.md5 create mode 100644 a02346_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.svg create mode 100644 a02346_aa459f71b73bbc23f0b4bb342d093dde3_cgraph.map create mode 100644 a02346_aa459f71b73bbc23f0b4bb342d093dde3_cgraph.md5 create mode 100644 a02346_aa459f71b73bbc23f0b4bb342d093dde3_cgraph.svg create mode 100644 a02346_aa459f71b73bbc23f0b4bb342d093dde3_icgraph.map create mode 100644 a02346_aa459f71b73bbc23f0b4bb342d093dde3_icgraph.md5 create mode 100644 a02346_aa459f71b73bbc23f0b4bb342d093dde3_icgraph.svg create mode 100644 a02346_ab2195e0b081f467f8e058d1406bd4fc7_cgraph.map create mode 100644 a02346_ab2195e0b081f467f8e058d1406bd4fc7_cgraph.md5 create mode 100644 a02346_ab2195e0b081f467f8e058d1406bd4fc7_cgraph.svg create mode 100644 a02346_ab2195e0b081f467f8e058d1406bd4fc7_icgraph.map create mode 100644 a02346_ab2195e0b081f467f8e058d1406bd4fc7_icgraph.md5 create mode 100644 a02346_ab2195e0b081f467f8e058d1406bd4fc7_icgraph.svg create mode 100644 a02346_ab5d38a2680290bd159549efaa41b925b_icgraph.map create mode 100644 a02346_ab5d38a2680290bd159549efaa41b925b_icgraph.md5 create mode 100644 a02346_ab5d38a2680290bd159549efaa41b925b_icgraph.svg create mode 100644 a02346_ac728117d73179c279de49e01ae905dda_icgraph.map create mode 100644 a02346_ac728117d73179c279de49e01ae905dda_icgraph.md5 create mode 100644 a02346_ac728117d73179c279de49e01ae905dda_icgraph.svg create mode 100644 a02346_ad1d30ecbf6bff6457b680aa940281072_icgraph.map create mode 100644 a02346_ad1d30ecbf6bff6457b680aa940281072_icgraph.md5 create mode 100644 a02346_ad1d30ecbf6bff6457b680aa940281072_icgraph.svg create mode 100644 a02346_ae66ae81847153386c57918f4d91be8a7_icgraph.map create mode 100644 a02346_ae66ae81847153386c57918f4d91be8a7_icgraph.md5 create mode 100644 a02346_ae66ae81847153386c57918f4d91be8a7_icgraph.svg create mode 100644 a02346_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.map create mode 100644 a02346_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.md5 create mode 100644 a02346_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.svg create mode 100644 a02346_source.html create mode 100644 a02347.map create mode 100644 a02347.md5 create mode 100644 a02347.svg create mode 100644 a02349.html create mode 100644 a02349.js create mode 100644 a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.map create mode 100644 a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.md5 create mode 100644 a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.svg create mode 100644 a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.map create mode 100644 a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.md5 create mode 100644 a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.svg create mode 100644 a02349_ac728117d73179c279de49e01ae905dda_icgraph.map create mode 100644 a02349_ac728117d73179c279de49e01ae905dda_icgraph.md5 create mode 100644 a02349_ac728117d73179c279de49e01ae905dda_icgraph.svg create mode 100644 a02349_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.map create mode 100644 a02349_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.md5 create mode 100644 a02349_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.svg create mode 100644 a02349_ad1d30ecbf6bff6457b680aa940281072_icgraph.map create mode 100644 a02349_ad1d30ecbf6bff6457b680aa940281072_icgraph.md5 create mode 100644 a02349_ad1d30ecbf6bff6457b680aa940281072_icgraph.svg create mode 100644 a02349_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.map create mode 100644 a02349_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.md5 create mode 100644 a02349_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.svg create mode 100644 a02349_aed6af4d83e934e3e654ead541b15f2d9_cgraph.map create mode 100644 a02349_aed6af4d83e934e3e654ead541b15f2d9_cgraph.md5 create mode 100644 a02349_aed6af4d83e934e3e654ead541b15f2d9_cgraph.svg create mode 100644 a02349_source.html create mode 100644 a02350.map create mode 100644 a02350.md5 create mode 100644 a02350.svg create mode 100644 a02352.html create mode 100644 a02352.js create mode 100644 a02352_a0fa370eee5160963e617d1daf1c07363_cgraph.map create mode 100644 a02352_a0fa370eee5160963e617d1daf1c07363_cgraph.md5 create mode 100644 a02352_a0fa370eee5160963e617d1daf1c07363_cgraph.svg create mode 100644 a02352_a0fa370eee5160963e617d1daf1c07363_icgraph.map create mode 100644 a02352_a0fa370eee5160963e617d1daf1c07363_icgraph.md5 create mode 100644 a02352_a0fa370eee5160963e617d1daf1c07363_icgraph.svg create mode 100644 a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.map create mode 100644 a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.md5 create mode 100644 a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.svg create mode 100644 a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.map create mode 100644 a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.md5 create mode 100644 a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.svg create mode 100644 a02352_a2a7d01fc7720e936a430efc09d094c6c_cgraph.map create mode 100644 a02352_a2a7d01fc7720e936a430efc09d094c6c_cgraph.md5 create mode 100644 a02352_a2a7d01fc7720e936a430efc09d094c6c_cgraph.svg create mode 100644 a02352_a2a7d01fc7720e936a430efc09d094c6c_icgraph.map create mode 100644 a02352_a2a7d01fc7720e936a430efc09d094c6c_icgraph.md5 create mode 100644 a02352_a2a7d01fc7720e936a430efc09d094c6c_icgraph.svg create mode 100644 a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.map create mode 100644 a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.md5 create mode 100644 a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.svg create mode 100644 a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.map create mode 100644 a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.md5 create mode 100644 a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.svg create mode 100644 a02352_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.map create mode 100644 a02352_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.md5 create mode 100644 a02352_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.svg create mode 100644 a02352_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.map create mode 100644 a02352_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.md5 create mode 100644 a02352_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.svg create mode 100644 a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.map create mode 100644 a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.md5 create mode 100644 a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.svg create mode 100644 a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.map create mode 100644 a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.md5 create mode 100644 a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.svg create mode 100644 a02352_ab2e422aab2fcfa562795beb2843e8019_cgraph.map create mode 100644 a02352_ab2e422aab2fcfa562795beb2843e8019_cgraph.md5 create mode 100644 a02352_ab2e422aab2fcfa562795beb2843e8019_cgraph.svg create mode 100644 a02352_ab2e422aab2fcfa562795beb2843e8019_icgraph.map create mode 100644 a02352_ab2e422aab2fcfa562795beb2843e8019_icgraph.md5 create mode 100644 a02352_ab2e422aab2fcfa562795beb2843e8019_icgraph.svg create mode 100644 a02352_ac728117d73179c279de49e01ae905dda_cgraph.map create mode 100644 a02352_ac728117d73179c279de49e01ae905dda_cgraph.md5 create mode 100644 a02352_ac728117d73179c279de49e01ae905dda_cgraph.svg create mode 100644 a02352_ac728117d73179c279de49e01ae905dda_icgraph.map create mode 100644 a02352_ac728117d73179c279de49e01ae905dda_icgraph.md5 create mode 100644 a02352_ac728117d73179c279de49e01ae905dda_icgraph.svg create mode 100644 a02352_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.map create mode 100644 a02352_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.md5 create mode 100644 a02352_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.svg create mode 100644 a02352_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.map create mode 100644 a02352_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.md5 create mode 100644 a02352_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.svg create mode 100644 a02352_ad1d30ecbf6bff6457b680aa940281072_cgraph.map create mode 100644 a02352_ad1d30ecbf6bff6457b680aa940281072_cgraph.md5 create mode 100644 a02352_ad1d30ecbf6bff6457b680aa940281072_cgraph.svg create mode 100644 a02352_ad1d30ecbf6bff6457b680aa940281072_icgraph.map create mode 100644 a02352_ad1d30ecbf6bff6457b680aa940281072_icgraph.md5 create mode 100644 a02352_ad1d30ecbf6bff6457b680aa940281072_icgraph.svg create mode 100644 a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.map create mode 100644 a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.md5 create mode 100644 a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.svg create mode 100644 a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.map create mode 100644 a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.md5 create mode 100644 a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.svg create mode 100644 a02352_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.map create mode 100644 a02352_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.md5 create mode 100644 a02352_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.svg create mode 100644 a02352_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.map create mode 100644 a02352_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.md5 create mode 100644 a02352_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.svg create mode 100644 a02352_aed6af4d83e934e3e654ead541b15f2d9_cgraph.map create mode 100644 a02352_aed6af4d83e934e3e654ead541b15f2d9_cgraph.md5 create mode 100644 a02352_aed6af4d83e934e3e654ead541b15f2d9_cgraph.svg create mode 100644 a02352_aed6af4d83e934e3e654ead541b15f2d9_icgraph.map create mode 100644 a02352_aed6af4d83e934e3e654ead541b15f2d9_icgraph.md5 create mode 100644 a02352_aed6af4d83e934e3e654ead541b15f2d9_icgraph.svg create mode 100644 a02352_afe9571a12debd9d75a0f8fb93420e268_cgraph.map create mode 100644 a02352_afe9571a12debd9d75a0f8fb93420e268_cgraph.md5 create mode 100644 a02352_afe9571a12debd9d75a0f8fb93420e268_cgraph.svg create mode 100644 a02352_afe9571a12debd9d75a0f8fb93420e268_icgraph.map create mode 100644 a02352_afe9571a12debd9d75a0f8fb93420e268_icgraph.md5 create mode 100644 a02352_afe9571a12debd9d75a0f8fb93420e268_icgraph.svg create mode 100644 a02352_source.html create mode 100644 a02353.map create mode 100644 a02353.md5 create mode 100644 a02353.svg create mode 100644 a02355.html create mode 100644 a02355.js create mode 100644 a02355_source.html create mode 100644 a02356.map create mode 100644 a02356.md5 create mode 100644 a02356.svg create mode 100644 a02357.map create mode 100644 a02357.md5 create mode 100644 a02357.svg create mode 100644 a02358.html create mode 100644 a02358.js create mode 100644 a02358_source.html create mode 100644 a02359.map create mode 100644 a02359.md5 create mode 100644 a02359.svg create mode 100644 a02360.map create mode 100644 a02360.md5 create mode 100644 a02360.svg create mode 100644 a02361.html create mode 100644 a02361.js create mode 100644 a02361_source.html create mode 100644 a02362.map create mode 100644 a02362.md5 create mode 100644 a02362.svg create mode 100644 a02363.map create mode 100644 a02363.md5 create mode 100644 a02363.svg create mode 100644 annotated.html create mode 100644 annotated_dup.js create mode 100644 bc_s.png create mode 100644 bc_sd.png create mode 100644 ccmake_scr.png create mode 100644 classes.html create mode 100644 closed.png create mode 100644 dir_000000_000005.html create mode 100644 dir_000000_000012.html create mode 100644 dir_000001_000003.html create mode 100644 dir_000001_000005.html create mode 100644 dir_000001_000012.html create mode 100644 dir_000002_000003.html create mode 100644 dir_000002_000005.html create mode 100644 dir_000002_000012.html create mode 100644 dir_000003_000005.html create mode 100644 dir_000003_000012.html create mode 100644 dir_000004_000012.html create mode 100644 dir_000005_000010.html create mode 100644 dir_000006_000003.html create mode 100644 dir_000006_000005.html create mode 100644 dir_000006_000012.html create mode 100644 dir_000007_000003.html create mode 100644 dir_000008_000003.html create mode 100644 dir_000008_000005.html create mode 100644 dir_000008_000012.html create mode 100644 dir_000009_000003.html create mode 100644 dir_000012_000000.html create mode 100644 dir_000012_000003.html create mode 100644 dir_000012_000005.html create mode 100644 dir_0f311e9d6354c33ee33a2e1d521faacd.html create mode 100644 dir_0f311e9d6354c33ee33a2e1d521faacd.js create mode 100644 dir_0f311e9d6354c33ee33a2e1d521faacd_dep.map create mode 100644 dir_0f311e9d6354c33ee33a2e1d521faacd_dep.md5 create mode 100644 dir_0f311e9d6354c33ee33a2e1d521faacd_dep.svg create mode 100644 dir_18997a6c0c87b9abd61bc73a2ec4908c.html create mode 100644 dir_18997a6c0c87b9abd61bc73a2ec4908c.js create mode 100644 dir_18997a6c0c87b9abd61bc73a2ec4908c_dep.map create mode 100644 dir_18997a6c0c87b9abd61bc73a2ec4908c_dep.md5 create mode 100644 dir_18997a6c0c87b9abd61bc73a2ec4908c_dep.svg create mode 100644 dir_277b185b16885b8bfa09a39abbb00c86.html create mode 100644 dir_277b185b16885b8bfa09a39abbb00c86.js create mode 100644 dir_277b185b16885b8bfa09a39abbb00c86_dep.map create mode 100644 dir_277b185b16885b8bfa09a39abbb00c86_dep.md5 create mode 100644 dir_277b185b16885b8bfa09a39abbb00c86_dep.svg create mode 100644 dir_2e53991d0abfe4d26476f40debcf47e2.html create mode 100644 dir_2e53991d0abfe4d26476f40debcf47e2.js create mode 100644 dir_2e53991d0abfe4d26476f40debcf47e2_dep.map create mode 100644 dir_2e53991d0abfe4d26476f40debcf47e2_dep.md5 create mode 100644 dir_2e53991d0abfe4d26476f40debcf47e2_dep.svg create mode 100644 dir_313caf1132e152dd9b58bea13a4052ca.html create mode 100644 dir_313caf1132e152dd9b58bea13a4052ca.js create mode 100644 dir_313caf1132e152dd9b58bea13a4052ca_dep.map create mode 100644 dir_313caf1132e152dd9b58bea13a4052ca_dep.md5 create mode 100644 dir_313caf1132e152dd9b58bea13a4052ca_dep.svg create mode 100644 dir_62dd6e7b4057fd55668a5ab83622491d.html create mode 100644 dir_62dd6e7b4057fd55668a5ab83622491d.js create mode 100644 dir_62dd6e7b4057fd55668a5ab83622491d_dep.map create mode 100644 dir_62dd6e7b4057fd55668a5ab83622491d_dep.md5 create mode 100644 dir_62dd6e7b4057fd55668a5ab83622491d_dep.svg create mode 100644 dir_68267d1309a1af8e8297ef4c3efbcdba.html create mode 100644 dir_68267d1309a1af8e8297ef4c3efbcdba.js create mode 100644 dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map create mode 100644 dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 create mode 100644 dir_68267d1309a1af8e8297ef4c3efbcdba_dep.svg create mode 100644 dir_70d5e250c66d001b18da37689179cade.html create mode 100644 dir_70d5e250c66d001b18da37689179cade.js create mode 100644 dir_70d5e250c66d001b18da37689179cade_dep.map create mode 100644 dir_70d5e250c66d001b18da37689179cade_dep.md5 create mode 100644 dir_70d5e250c66d001b18da37689179cade_dep.svg create mode 100644 dir_8d1c3ce1cd911fc2390a767bff7252f7.html create mode 100644 dir_8d1c3ce1cd911fc2390a767bff7252f7.js create mode 100644 dir_8d1c3ce1cd911fc2390a767bff7252f7_dep.map create mode 100644 dir_8d1c3ce1cd911fc2390a767bff7252f7_dep.md5 create mode 100644 dir_8d1c3ce1cd911fc2390a767bff7252f7_dep.svg create mode 100644 dir_9572de8811e490ed7cfd146fb7e7620e.html create mode 100644 dir_9572de8811e490ed7cfd146fb7e7620e.js create mode 100644 dir_9572de8811e490ed7cfd146fb7e7620e_dep.map create mode 100644 dir_9572de8811e490ed7cfd146fb7e7620e_dep.md5 create mode 100644 dir_9572de8811e490ed7cfd146fb7e7620e_dep.svg create mode 100644 dir_aebb8dcc11953d78e620bbef0b9e2183.html create mode 100644 dir_aebb8dcc11953d78e620bbef0b9e2183.js create mode 100644 dir_aebb8dcc11953d78e620bbef0b9e2183_dep.map create mode 100644 dir_aebb8dcc11953d78e620bbef0b9e2183_dep.md5 create mode 100644 dir_aebb8dcc11953d78e620bbef0b9e2183_dep.svg create mode 100644 dir_b60a79ed93f318a37dbc9781b4452c17.html create mode 100644 dir_b60a79ed93f318a37dbc9781b4452c17.js create mode 100644 dir_b60a79ed93f318a37dbc9781b4452c17_dep.map create mode 100644 dir_b60a79ed93f318a37dbc9781b4452c17_dep.md5 create mode 100644 dir_b60a79ed93f318a37dbc9781b4452c17_dep.svg create mode 100644 dir_d44c64559bbebec7f509842c48db8b23.html create mode 100644 dir_d44c64559bbebec7f509842c48db8b23.js create mode 100644 dir_d44c64559bbebec7f509842c48db8b23_dep.map create mode 100644 dir_d44c64559bbebec7f509842c48db8b23_dep.md5 create mode 100644 dir_d44c64559bbebec7f509842c48db8b23_dep.svg create mode 100644 doc.svg create mode 100644 docd.svg create mode 100644 docs.png create mode 100644 doxygen-awesome.css create mode 100644 doxygen.css create mode 100644 doxygen.svg create mode 100644 dynsections.js create mode 100644 files.html create mode 100644 files_dup.js create mode 100644 folderclosed.svg create mode 100644 folderclosedd.svg create mode 100644 folderopen.svg create mode 100644 folderopend.svg create mode 100644 functions.html create mode 100644 functions_func.html create mode 100644 functions_vars.html create mode 100644 globals.html create mode 100644 globals_a.html create mode 100644 globals_b.html create mode 100644 globals_c.html create mode 100644 globals_d.html create mode 100644 globals_defs.html create mode 100644 globals_defs.js create mode 100644 globals_defs_a.html create mode 100644 globals_defs_b.html create mode 100644 globals_defs_c.html create mode 100644 globals_defs_d.html create mode 100644 globals_defs_e.html create mode 100644 globals_defs_f.html create mode 100644 globals_defs_g.html create mode 100644 globals_defs_h.html create mode 100644 globals_defs_i.html create mode 100644 globals_defs_l.html create mode 100644 globals_defs_m.html create mode 100644 globals_defs_n.html create mode 100644 globals_defs_o.html create mode 100644 globals_defs_p.html create mode 100644 globals_defs_r.html create mode 100644 globals_defs_s.html create mode 100644 globals_defs_t.html create mode 100644 globals_defs_u.html create mode 100644 globals_defs_v.html create mode 100644 globals_dup.js create mode 100644 globals_e.html create mode 100644 globals_enum.html create mode 100644 globals_eval.html create mode 100644 globals_f.html create mode 100644 globals_func.html create mode 100644 globals_func.js create mode 100644 globals_func_a.html create mode 100644 globals_func_c.html create mode 100644 globals_func_d.html create mode 100644 globals_func_f.html create mode 100644 globals_func_g.html create mode 100644 globals_func_h.html create mode 100644 globals_func_i.html create mode 100644 globals_func_m.html create mode 100644 globals_func_p.html create mode 100644 globals_func_r.html create mode 100644 globals_func_s.html create mode 100644 globals_func_t.html create mode 100644 globals_func_u.html create mode 100644 globals_func_w.html create mode 100644 globals_g.html create mode 100644 globals_h.html create mode 100644 globals_i.html create mode 100644 globals_l.html create mode 100644 globals_m.html create mode 100644 globals_n.html create mode 100644 globals_o.html create mode 100644 globals_p.html create mode 100644 globals_r.html create mode 100644 globals_s.html create mode 100644 globals_t.html create mode 100644 globals_type.html create mode 100644 globals_u.html create mode 100644 globals_v.html create mode 100644 globals_vars.html create mode 100644 globals_w.html create mode 100644 graph_legend.html create mode 100644 graph_legend.md5 create mode 100644 graph_legend.svg create mode 100644 index.html create mode 100644 jquery.js create mode 100644 logo.png create mode 100644 menu.js create mode 100644 menudata.js create mode 100644 modules.html create mode 100644 modules.js create mode 100644 nav_f.png create mode 100644 nav_fd.png create mode 100644 nav_g.png create mode 100644 nav_h.png create mode 100644 nav_hd.png create mode 100644 navtree.css create mode 100644 navtree.js create mode 100644 navtreedata.js create mode 100644 navtreeindex0.js create mode 100644 navtreeindex1.js create mode 100644 navtreeindex2.js create mode 100644 navtreeindex3.js create mode 100644 navtreeindex4.js create mode 100644 navtreeindex5.js create mode 100644 open.png create mode 100644 resize.js create mode 100644 search/all_0.js create mode 100644 search/all_1.js create mode 100644 search/all_10.js create mode 100644 search/all_11.js create mode 100644 search/all_12.js create mode 100644 search/all_13.js create mode 100644 search/all_14.js create mode 100644 search/all_15.js create mode 100644 search/all_16.js create mode 100644 search/all_2.js create mode 100644 search/all_3.js create mode 100644 search/all_4.js create mode 100644 search/all_5.js create mode 100644 search/all_6.js create mode 100644 search/all_7.js create mode 100644 search/all_8.js create mode 100644 search/all_9.js create mode 100644 search/all_a.js create mode 100644 search/all_b.js create mode 100644 search/all_c.js create mode 100644 search/all_d.js create mode 100644 search/all_e.js create mode 100644 search/all_f.js create mode 100644 search/classes_0.js create mode 100644 search/classes_1.js create mode 100644 search/classes_2.js create mode 100644 search/classes_3.js create mode 100644 search/classes_4.js create mode 100644 search/classes_5.js create mode 100644 search/close.svg create mode 100644 search/defines_0.js create mode 100644 search/defines_1.js create mode 100644 search/defines_10.js create mode 100644 search/defines_11.js create mode 100644 search/defines_12.js create mode 100644 search/defines_13.js create mode 100644 search/defines_2.js create mode 100644 search/defines_3.js create mode 100644 search/defines_4.js create mode 100644 search/defines_5.js create mode 100644 search/defines_6.js create mode 100644 search/defines_7.js create mode 100644 search/defines_8.js create mode 100644 search/defines_9.js create mode 100644 search/defines_a.js create mode 100644 search/defines_b.js create mode 100644 search/defines_c.js create mode 100644 search/defines_d.js create mode 100644 search/defines_e.js create mode 100644 search/defines_f.js create mode 100644 search/enums_0.js create mode 100644 search/enums_1.js create mode 100644 search/enums_2.js create mode 100644 search/enumvalues_0.js create mode 100644 search/enumvalues_1.js create mode 100644 search/enumvalues_2.js create mode 100644 search/enumvalues_3.js create mode 100644 search/enumvalues_4.js create mode 100644 search/enumvalues_5.js create mode 100644 search/enumvalues_6.js create mode 100644 search/enumvalues_7.js create mode 100644 search/enumvalues_8.js create mode 100644 search/enumvalues_9.js create mode 100644 search/enumvalues_a.js create mode 100644 search/enumvalues_b.js create mode 100644 search/files_0.js create mode 100644 search/files_1.js create mode 100644 search/files_2.js create mode 100644 search/files_3.js create mode 100644 search/files_4.js create mode 100644 search/files_5.js create mode 100644 search/files_6.js create mode 100644 search/files_7.js create mode 100644 search/files_8.js create mode 100644 search/files_9.js create mode 100644 search/files_a.js create mode 100644 search/files_b.js create mode 100644 search/functions_0.js create mode 100644 search/functions_1.js create mode 100644 search/functions_2.js create mode 100644 search/functions_3.js create mode 100644 search/functions_4.js create mode 100644 search/functions_5.js create mode 100644 search/functions_6.js create mode 100644 search/functions_7.js create mode 100644 search/functions_8.js create mode 100644 search/functions_9.js create mode 100644 search/functions_a.js create mode 100644 search/functions_b.js create mode 100644 search/functions_c.js create mode 100644 search/functions_d.js create mode 100644 search/functions_e.js create mode 100644 search/groups_0.js create mode 100644 search/groups_1.js create mode 100644 search/mag.svg create mode 100644 search/mag_d.svg create mode 100644 search/mag_sel.svg create mode 100644 search/mag_seld.svg create mode 100644 search/pages_0.js create mode 100644 search/search.css create mode 100644 search/search.js create mode 100644 search/searchdata.js create mode 100644 search/typedefs_0.js create mode 100644 search/typedefs_1.js create mode 100644 search/typedefs_2.js create mode 100644 search/typedefs_3.js create mode 100644 search/typedefs_4.js create mode 100644 search/typedefs_5.js create mode 100644 search/typedefs_6.js create mode 100644 search/typedefs_7.js create mode 100644 search/variables_0.js create mode 100644 search/variables_1.js create mode 100644 search/variables_10.js create mode 100644 search/variables_11.js create mode 100644 search/variables_12.js create mode 100644 search/variables_13.js create mode 100644 search/variables_14.js create mode 100644 search/variables_15.js create mode 100644 search/variables_2.js create mode 100644 search/variables_3.js create mode 100644 search/variables_4.js create mode 100644 search/variables_5.js create mode 100644 search/variables_6.js create mode 100644 search/variables_7.js create mode 100644 search/variables_8.js create mode 100644 search/variables_9.js create mode 100644 search/variables_a.js create mode 100644 search/variables_b.js create mode 100644 search/variables_c.js create mode 100644 search/variables_d.js create mode 100644 search/variables_e.js create mode 100644 search/variables_f.js create mode 100644 splitbar.png create mode 100644 splitbard.png create mode 100644 sync_off.png create mode 100644 sync_on.png create mode 100644 tab_a.png create mode 100644 tab_ad.png create mode 100644 tab_b.png create mode 100644 tab_bd.png create mode 100644 tab_h.png create mode 100644 tab_hd.png create mode 100644 tab_s.png create mode 100644 tab_sd.png create mode 100644 tabs.css diff --git a/a00047.html b/a00047.html new file mode 100644 index 00000000..196264f8 --- /dev/null +++ b/a00047.html @@ -0,0 +1,108 @@ + + + + + + + +Arax: README.md File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
README.md File Reference
+
+
+
+
+ + + + diff --git a/a01355.html b/a01355.html new file mode 100644 index 00000000..c84f0bdf --- /dev/null +++ b/a01355.html @@ -0,0 +1,260 @@ + + + + + + + +Arax: arax.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax.h File Reference
+
+
+
#include <stdio.h>
+#include <stddef.h>
+#include "arax_types.h"
+#include <core/arax_accel_types.h>
+
+ + Include dependency graph for arax.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + +

+Macros

#define ARAX_HANDLER(FN, ARCH)
 
#define ARAX_HANDLER_EX(FN, ARCH, EX)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

arax_pipe_sarax_init ()
 
void arax_exit ()
 
int arax_clean ()
 
int arax_accel_list (arax_accel_type_e type, int physical, arax_accel ***accels)
 
void arax_accel_set_physical (arax_accel *vaccel, arax_accel *phys)
 
void arax_accel_list_free (arax_accel **accels)
 
arax_accel_type_e arax_accel_type (arax_accel *accel)
 
arax_accel_state_e arax_accel_stat (arax_accel *accel, arax_accel_stats_s *stat)
 
int arax_accel_acquire_phys (arax_accel **accel)
 
arax_accelarax_accel_acquire_type (arax_accel_type_e type)
 
void arax_accel_release (arax_accel **accel)
 
arax_procarax_proc_register (const char *func_name)
 
arax_procarax_proc_get (const char *func_name)
 
int arax_proc_put (arax_proc *func)
 
arax_taskarax_task_issue (arax_accel *accel, arax_proc *proc, const void *host_init, size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count, arax_data **dev_out)
 
arax_task_state_e arax_task_issue_sync (arax_accel *accel, arax_proc *proc, void *host_init, size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count, arax_data **dev_out)
 
arax_task_state_e arax_task_stat (arax_task *task, arax_task_stats_s *stats)
 
arax_task_state_e arax_task_wait (arax_task *task)
 
void arax_task_free (arax_task *task)
 
arax_buffer_s ARAX_BUFFER (size_t size)
 
+

Macro Definition Documentation

+ +

◆ ARAX_HANDLER

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define ARAX_HANDLER( FN,
 ARCH 
)
+
+Value:
extern "C" arax_task_state_e FN ## _ARAX_FN_ ## ARCH(arax_task_msg_s \
+
* task) __attribute__((section(".ARAX_HANDLERS"))); \
+
extern "C" arax_task_state_e FN ## _ARAX_FN_ ## ARCH(arax_task_msg_s * task)
+
arax_task_state_e
Definition arax_types.h:62
+
struct queue __attribute__((aligned(CONF_CACHE_LINE)))
+ +

Define a handler for a function named FN, for the ARCH architecture.

+ +

Definition at line 282 of file arax.h.

+ +
+
+ +

◆ ARAX_HANDLER_EX

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define ARAX_HANDLER_EX( FN,
 ARCH,
 EX 
)
+
+Value:
extern "C" arax_task_state_e FN ## _ARAX_FN_ ## ARCH(arax_task_msg_s \
+
* task, EX) __attribute__((section(".ARAX_HANDLERS"))); \
+
extern "C" arax_task_state_e FN ## _ARAX_FN_ ## ARCH(arax_task_msg_s * task, EX)
+

Define a handler for a function named FN, for the ARCH architecture. Extended version allows additional arguements.

+ +

Definition at line 291 of file arax.h.

+ +
+
+
+
+ + + + diff --git a/a01355.js b/a01355.js new file mode 100644 index 00000000..058c301f --- /dev/null +++ b/a01355.js @@ -0,0 +1,25 @@ +var a01355 = +[ + [ "ARAX_HANDLER", "a01355.html#a2042c802da0a6319dfa7387b56c5ea1d", null ], + [ "ARAX_HANDLER_EX", "a01355.html#abc7977aebe6e5c8503679e8ee436c581", null ], + [ "arax_accel_acquire_phys", "a02175.html#gaf8a10ab4e51e59c464ab3ab473e4a0f7", null ], + [ "arax_accel_acquire_type", "a02175.html#ga008252bb9afc2990fa2c5f4b980c9f27", null ], + [ "arax_accel_list", "a02175.html#ga7f1598b99463c5ef533a457f225b4c0b", null ], + [ "arax_accel_list_free", "a02175.html#ga41bcefd54b929d1a638d174da051130f", null ], + [ "arax_accel_release", "a02175.html#ga497b17905d4c7ee2f5ee831d367ece92", null ], + [ "arax_accel_set_physical", "a02175.html#ga30b30e50de286842c7942a7e3e163578", null ], + [ "arax_accel_stat", "a02175.html#gadd7613438ee9db973f6abf9259956bd5", null ], + [ "arax_accel_type", "a02175.html#ga03cf4cdda8950d49fb9cb2e766d7a162", null ], + [ "ARAX_BUFFER", "a02178.html#ga9260ad2dd766aec3274c518e2e312b1f", null ], + [ "arax_clean", "a02174.html#ga4bae55e86ffc384b3c1d2da3580f5c42", null ], + [ "arax_exit", "a02174.html#ga8ac7e88ed7b8a1e2ff8aa435ac6b58ec", null ], + [ "arax_init", "a02174.html#gae1d371a2840849690acce147e7a205da", null ], + [ "arax_proc_get", "a02176.html#ga739047efb2b454e6c1ac54138ef2985d", null ], + [ "arax_proc_put", "a02176.html#ga70242aa6d9591e5fa3dbb36f1e27a896", null ], + [ "arax_proc_register", "a02176.html#gafad2dafb4a231390f02b7c866295b7d9", null ], + [ "arax_task_free", "a02177.html#ga55195957c1cde1508257782716aa6db3", null ], + [ "arax_task_issue", "a02177.html#gac9f0f3fbb14da879d3ff09bd367bbb24", null ], + [ "arax_task_issue_sync", "a02177.html#ga1418f4cd7336bf77cce7b955a1bf7077", null ], + [ "arax_task_stat", "a02177.html#gafd8ed07de431241d4a3e20ddb1eaede5", null ], + [ "arax_task_wait", "a02177.html#gacb098c0a8c3908f3fdd32e7ea7d780bb", null ] +]; \ No newline at end of file diff --git a/a01355_source.html b/a01355_source.html new file mode 100644 index 00000000..a6256dbd --- /dev/null +++ b/a01355_source.html @@ -0,0 +1,213 @@ + + + + + + + +Arax: arax.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax.h
+
+
+Go to the documentation of this file.
1#ifndef ARAX_TALK
+
2#define ARAX_TALK
+
3
+
4#include <stdio.h>
+
5#include <stddef.h>
+
6#include "arax_types.h"
+ +
8#ifdef __cplusplus
+
9extern "C" {
+
10#endif /* ifdef __cplusplus */
+
11
+ +
26
+
30void arax_exit();
+
31
+
38int arax_clean();
+
39
+
62int arax_accel_list(arax_accel_type_e type, int physical, arax_accel ***accels);
+
63
+ +
72
+
78void arax_accel_list_free(arax_accel **accels);
+
79
+ +
87
+ +
97
+ +
110
+ +
122
+
134void arax_accel_release(arax_accel **accel);
+
135
+
158arax_proc* arax_proc_register(const char *func_name);
+
159
+
170arax_proc* arax_proc_get(const char *func_name);
+
171
+
180int arax_proc_put(arax_proc *func);
+
181
+
207arax_task* arax_task_issue(arax_accel *accel, arax_proc *proc, const void *host_init,
+
208 size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count,
+
209 arax_data **dev_out);
+
210
+
224arax_task_state_e arax_task_issue_sync(arax_accel *accel, arax_proc *proc, void *host_init,
+
225 size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count,
+
226 arax_data **dev_out);
+
227
+
228
+ +
242
+ +
253
+
260void arax_task_free(arax_task *task);
+
261
+
275arax_buffer_s ARAX_BUFFER(size_t size);
+
276
+
282#define ARAX_HANDLER(FN, ARCH) \
+
283 extern "C" arax_task_state_e FN ## _ARAX_FN_ ## ARCH(arax_task_msg_s \
+
284 * task) __attribute__((section(".ARAX_HANDLERS"))); \
+
285 extern "C" arax_task_state_e FN ## _ARAX_FN_ ## ARCH(arax_task_msg_s * task)
+
286
+
291#define ARAX_HANDLER_EX(FN, ARCH, EX) \
+
292 extern "C" arax_task_state_e FN ## _ARAX_FN_ ## ARCH(arax_task_msg_s \
+
293 * task, EX) __attribute__((section(".ARAX_HANDLERS"))); \
+
294 extern "C" arax_task_state_e FN ## _ARAX_FN_ ## ARCH(arax_task_msg_s * task, EX)
+
295
+
296
+
297#ifdef __cplusplus
+
298}
+
299#endif /* ifdef __cplusplus */
+
300
+
301#endif /* ifndef ARAX_TALK */
+ +
void arax_task
Definition arax_types.h:51
+
enum arax_accel_state arax_accel_state_e
+
void arax_accel
Definition arax_types.h:9
+
enum arax_accel_type arax_accel_type_e
+
void arax_proc
Definition arax_types.h:14
+
arax_accel_type
Definition arax_types.h:83
+
arax_task_state_e
Definition arax_types.h:62
+
void * arax_buffer_s
Definition arax_types.h:102
+
void arax_data
Definition arax_types.h:56
+ +
int arax_clean()
Definition impl.c:193
+
void arax_exit()
Definition impl.c:156
+
arax_pipe_s * arax_init()
Definition impl.c:132
+
arax_accel * arax_accel_acquire_type(arax_accel_type_e type)
Definition impl.c:354
+
void arax_accel_set_physical(arax_accel *vaccel, arax_accel *phys)
Definition impl.c:209
+
void arax_accel_list_free(arax_accel **accels)
Definition impl.c:283
+
void arax_accel_release(arax_accel **accel)
Definition impl.c:366
+
int arax_accel_list(arax_accel_type_e type, int physical, arax_accel ***accels)
Definition impl.c:221
+
arax_accel_state_e arax_accel_stat(arax_accel *accel, arax_accel_stats_s *stat)
Definition impl.c:314
+
int arax_accel_acquire_phys(arax_accel **accel)
Definition impl.c:335
+
int arax_proc_put(arax_proc *func)
Definition impl.c:413
+
arax_proc * arax_proc_get(const char *func_name)
Definition impl.c:400
+
arax_proc * arax_proc_register(const char *func_name)
Definition impl.c:384
+
arax_task_state_e arax_task_issue_sync(arax_accel *accel, arax_proc *proc, void *host_init, size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count, arax_data **dev_out)
Definition impl.c:490
+
void arax_task_free(arax_task *task)
Definition impl.c:524
+
arax_task * arax_task_issue(arax_accel *accel, arax_proc *proc, const void *host_init, size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count, arax_data **dev_out)
Definition impl.c:467
+
arax_task_state_e arax_task_wait(arax_task *task)
Definition impl.c:515
+
arax_task_state_e arax_task_stat(arax_task *task, arax_task_stats_s *stats)
Definition impl.c:502
+
arax_buffer_s ARAX_BUFFER(size_t size)
Definition impl.c:531
+ + + +
+
+ + + + diff --git a/a01356.map b/a01356.map new file mode 100644 index 00000000..52db7826 --- /dev/null +++ b/a01356.map @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/a01356.md5 b/a01356.md5 new file mode 100644 index 00000000..f5534c32 --- /dev/null +++ b/a01356.md5 @@ -0,0 +1 @@ +6d4b1d6323dc6f40a3c4c16a28c6b289 \ No newline at end of file diff --git a/a01356.svg b/a01356.svg new file mode 100644 index 00000000..b8a1def0 --- /dev/null +++ b/a01356.svg @@ -0,0 +1,138 @@ + + + + + + +arax.h + + +Node1 + + +arax.h + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stddef.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_types.h + + + + + +Node1->Node4 + + + + + + + + +Node7 + + +core/arax_accel_types.h + + + + + +Node1->Node7 + + + + + + + + +Node5 + + +sys/time.h + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +time.h + + + + + +Node4->Node6 + + + + + + + + +Node7->Node4 + + + + + + + + diff --git a/a01357.map b/a01357.map new file mode 100644 index 00000000..9268e721 --- /dev/null +++ b/a01357.map @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01357.md5 b/a01357.md5 new file mode 100644 index 00000000..75b74044 --- /dev/null +++ b/a01357.md5 @@ -0,0 +1 @@ +44f59d59c5f74c680fb10f4ed244f231 \ No newline at end of file diff --git a/a01357.svg b/a01357.svg new file mode 100644 index 00000000..c53740f7 --- /dev/null +++ b/a01357.svg @@ -0,0 +1,543 @@ + + + + + + +arax.h + + +Node1 + + +arax.h + + + + + +Node2 + + +arax_accel.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data.h + + + + + +Node1->Node3 + + + + + + + + +Node7 + + +arax_task.c + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +impl.c + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +arax_pipe.h + + + + + +Node1->Node9 + + + + + + + + +Node16 + + +arax_plot.h + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +arax_proc.h + + + + + +Node1->Node17 + + + + + + + + +Node20 + + +timer.h + + + + + +Node1->Node20 + + + + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +arax_object.c + + + + + +Node2->Node6 + + + + + + + + +Node2->Node9 + + + + + + + + +Node15 + + +arax_vaccel.h + + + + + +Node2->Node15 + + + + + + + + +Node4 + + +arax_data.c + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data_private.h + + + + + +Node3->Node5 + + + + + + + + +Node3->Node6 + + + + + + + + +Node3->Node7 + + + + + + + + +Node3->Node8 + + + + + + + + +Node5->Node4 + + + + + + + + +Node9->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node9->Node7 + + + + + + + + +Node9->Node8 + + + + + + + + +Node10 + + +arax_accel.c + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_pipe.c + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +arax_plot.c + + + + + +Node9->Node12 + + + + + + + + +Node13 + + +arax_ptr.c + + + + + +Node9->Node13 + + + + + + + + +Node14 + + +arax_vaccel.c + + + + + +Node9->Node14 + + + + + + + + +Node15->Node2 + + + + + + + + +Node16->Node12 + + + + + + + + +Node17->Node6 + + + + + + + + +Node18 + + +arax_proc.c + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +arax_task.h + + + + + +Node17->Node19 + + + + + + + + +Node19->Node4 + + + + + + + + +Node19->Node6 + + + + + + + + +Node19->Node9 + + + + + + + + +Node20->Node7 + + + + + + + + +Node20->Node8 + + + + + + + + +Node21 + + +alloc.c + + + + + +Node20->Node21 + + + + + + + + diff --git a/a01358.html b/a01358.html new file mode 100644 index 00000000..50b5bd83 --- /dev/null +++ b/a01358.html @@ -0,0 +1,1323 @@ + + + + + + + +Arax: arax_pipe.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_pipe.h File Reference
+
+
+
#include <arax.h>
+#include <utils/Kv.h>
+#include "utils/queue.h"
+#include "core/arax_accel.h"
+#include "core/arax_task.h"
+
+ + Include dependency graph for arax_pipe.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + +

+Data Structures

struct  arax_process_tracker_s
 
struct  arax_pipe
 
+ + + + + + + + + + + +

+Macros

#define ARAX_PIPE_SHA_SIZE   48
 
#define ARAX_PIPE_THOTTLE_DEBUG_PARAMS
 
#define ARAX_PIPE_THOTTLE_DEBUG_FUNC(FUNC)   FUNC
 
#define pointer_to_offset(TYPE, BASE, VD)   ( (TYPE) VD )
 
#define offset_to_pointer(TYPE, BASE, VD)   ( (TYPE) VD )
 
+ + + +

+Typedefs

typedef struct arax_pipe arax_pipe_s
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

arax_pipe_sarax_controller_init_start ()
 
void arax_controller_init_done ()
 
const char * arax_pipe_get_revision (arax_pipe_s *pipe)
 
void arax_pipe_add_orphan_vaccel (arax_pipe_s *pipe, arax_vaccel_s *vac)
 
int arax_pipe_have_orphan_vaccels (arax_pipe_s *pipe)
 
arax_vaccel_sarax_pipe_get_orphan_vaccel (arax_pipe_s *pipe)
 
void arax_pipe_remove_orphan_vaccel (arax_pipe_s *pipe, arax_vaccel_s *vac)
 
void arax_pipe_orphan_stop (arax_pipe_s *pipe)
 
uint64_t arax_pipe_add_process (arax_pipe_s *pipe)
 
uint64_t arax_pipe_del_process (arax_pipe_s *pipe)
 
int arax_pipe_have_to_mmap (arax_pipe_s *pipe, int pid)
 
void arax_pipe_mark_unmap (arax_pipe_s *pipe, int pid)
 
void * arax_pipe_mmap_address (arax_pipe_s *pipe)
 
arax_pipe_sarax_pipe_init (void *mem, size_t size, int enforce_version)
 
int arax_pipe_delete_accel (arax_pipe_s *pipe, arax_accel_s *accel)
 
arax_accel_sarax_pipe_find_accel (arax_pipe_s *pipe, const char *name, arax_accel_type_e type)
 
arax_proc_sarax_pipe_find_proc (arax_pipe_s *pipe, const char *name)
 
int arax_pipe_exit (arax_pipe_s *pipe)
 
void ARAX_PIPE_THOTTLE_DEBUG_FUNC() arax_pipe_size_inc (arax_pipe_s *pipe, size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS)
 
void ARAX_PIPE_THOTTLE_DEBUG_FUNC() arax_pipe_size_dec (arax_pipe_s *pipe, size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS)
 
size_t arax_pipe_get_available_size (arax_pipe_s *pipe)
 
size_t arax_pipe_get_total_size (arax_pipe_s *pipe)
 
+

Macro Definition Documentation

+ +

◆ ARAX_PIPE_SHA_SIZE

+ +
+
+ + + + +
#define ARAX_PIPE_SHA_SIZE   48
+
+ +

Definition at line 19 of file arax_pipe.h.

+ +
+
+ +

◆ ARAX_PIPE_THOTTLE_DEBUG_FUNC

+ +
+
+ + + + + + + + +
#define ARAX_PIPE_THOTTLE_DEBUG_FUNC( FUNC)   FUNC
+
+ +

Definition at line 218 of file arax_pipe.h.

+ +
+
+ +

◆ ARAX_PIPE_THOTTLE_DEBUG_PARAMS

+ +
+
+ + + + +
#define ARAX_PIPE_THOTTLE_DEBUG_PARAMS
+
+ +

Definition at line 217 of file arax_pipe.h.

+ +
+
+ +

◆ offset_to_pointer

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define offset_to_pointer( TYPE,
 BASE,
 VD 
)   ( (TYPE) VD )
+
+ +

Definition at line 262 of file arax_pipe.h.

+ +
+
+ +

◆ pointer_to_offset

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define pointer_to_offset( TYPE,
 BASE,
 VD 
)   ( (TYPE) VD )
+
+ +

Definition at line 261 of file arax_pipe.h.

+ +
+
+

Typedef Documentation

+ +

◆ arax_pipe_s

+ +
+
+ + + + +
typedef struct arax_pipe arax_pipe_s
+
+

Shared Memory segment layout

+ +
+
+

Function Documentation

+ +

◆ arax_controller_init_done()

+ +
+
+ + + + + + + +
void arax_controller_init_done ()
+
+

Should only be called by the controller process, after it is ready to recieve tasks. See arax_controller_init_start().

+ +

Definition at line 143 of file impl.c.

+ +

References arax_state, and async_condition_notify().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_controller_init_start()

+ +
+
+ + + + + + + +
arax_pipe_s * arax_controller_init_start ()
+
+

Similar to arax_init().

+

As this should be called only by the controller, prior to any other Arax function.

+

After the controller process is initialized and ready to recieve tasks arax_controller_init_done should be called.

+ +

Definition at line 138 of file impl.c.

+ +

References _arax_init().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_add_orphan_vaccel()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_pipe_add_orphan_vaccel (arax_pipe_spipe,
arax_vaccel_svac 
)
+
+

Add vac to the list of orphan_vacs/ unassigned accels.

+
Parameters
+ + + +
pipearax_pipe instance.
vacUnassigned/Orphan Virtual Acceleator instance.
+
+
+ +

Definition at line 63 of file arax_pipe.c.

+ +

References arax_assert, arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, async_condition_lock(), async_condition_notify(), async_condition_unlock(), arax_pipe::orphan_cond, arax_pipe::orphan_vacs, arax_vaccel_s::phys, utils_list_add(), and arax_vaccel_s::vaccels.

+ +

Referenced by arax_vaccel_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_add_process()

+ +
+
+ + + + + + + + +
uint64_t arax_pipe_add_process (arax_pipe_spipe)
+
+

Increase process counter for pipe.

+
Parameters
+ + +
pipearax_pipe instance.
+
+
+
Returns
Number of active processes before adding issuer.
+ +

Definition at line 116 of file arax_pipe.c.

+ +

References arax_pipe::processes.

+ +

Referenced by arax_pipe_init().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_del_process()

+ +
+
+ + + + + + + + +
uint64_t arax_pipe_del_process (arax_pipe_spipe)
+
+

Decrease process counter for pipe.

+
Parameters
+ + +
pipearax_pipe instance.
+
+
+
Returns
Number of active processes before removing issuer.
+ +

Definition at line 121 of file arax_pipe.c.

+ +

References arax_pipe::processes.

+ +

Referenced by arax_pipe_exit().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_delete_accel()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int arax_pipe_delete_accel (arax_pipe_spipe,
arax_accel_saccel 
)
+
+

Remove accel from the pipe accelerator list.

+
Parameters
+ + + +
pipeThe pipe instance where the accelerator belongs.
accelThe accelerator to be removed.
+
+
+
Returns
Returns 0 on success.
+ +

Definition at line 175 of file arax_pipe.c.

+ +

References arax_object_list_lock(), arax_object_list_unlock(), arax_object_ref_dec(), ARAX_TYPE_PHYS_ACCEL, arax_accel_s::obj, arax_pipe::objs, utils_list_node::owner, and utils_list_for_each.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_exit()

+ +
+
+ + + + + + + + +
int arax_pipe_exit (arax_pipe_spipe)
+
+

Destroy arax_pipe.

+
Note
Ensure you perform any cleanup(e.g. delete shared segment) when return value becomes 0.
+
Parameters
+ + +
pipearax_pipe instance to be destroyed.
+
+
+
Returns
Number of remaining users of this shared segment.
+

Destroy arax_pipe.

+ +

Definition at line 241 of file arax_pipe.c.

+ +

References arax_pipe::allocator, arax_object_repo_exit(), arax_pipe_del_process(), arch_alloc_exit(), arax_pipe::async, async_meta_exit(), and arax_pipe::objs.

+ +

Referenced by arax_exit().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_find_accel()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
arax_accel_s * arax_pipe_find_accel (arax_pipe_spipe,
const char * name,
arax_accel_type_e type 
)
+
+

Find an accelerator matching the user specified criteria.

+
Parameters
+ + + + +
pipearax_pipe instance.
nameThe cstring name of the accelerator, \ NULL if we dont care for the name.
typeType of the accelerator, see arax_accel_type_e.
+
+
+
Returns
An arax_accel_s instance, NULL on failure.
+ +

Definition at line 194 of file arax_pipe.c.

+ +

References arax_accel_get_name(), arax_object_list_lock(), arax_object_list_unlock(), ARAX_TYPE_PHYS_ACCEL, arax_pipe::objs, utils_list_node::owner, arax_accel_s::type, and utils_list_for_each.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_find_proc()

+ +
+
+ + + + + + + + + + + + + + + + + + +
arax_proc_s * arax_pipe_find_proc (arax_pipe_spipe,
const char * name 
)
+
+

Find a procedure matching the user specified criteria.

+
Parameters
+ + + +
pipearax_pipe instance.
nameThe cstring name of the procedure.
+
+
+
Returns
An arax_proc_s instance, NULL on failure.
+ +

Definition at line 219 of file arax_pipe.c.

+ +

References arax_object_list_lock(), arax_object_list_unlock(), ARAX_TYPE_PROC, arax_object_s::name, arax_proc_s::obj, arax_pipe::objs, utils_list_node::owner, and utils_list_for_each.

+ +

Referenced by arax_proc_get(), and arax_proc_register().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_get_available_size()

+ +
+
+ + + + + + + + +
size_t arax_pipe_get_available_size (arax_pipe_spipe)
+
+

Gets available size of shm

+
Parameters
+ + +
pipepipe for shm
+
+
+
Returns
Avaliable size of shm
+ +

Definition at line 265 of file arax_pipe.c.

+ +

References arax_assert, arax_throttle_get_available_size(), and arax_pipe::throttle.

+ +

Referenced by _arax_init(), and arax_exit().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_get_orphan_vaccel()

+ +
+
+ + + + + + + + +
arax_vaccel_s * arax_pipe_get_orphan_vaccel (arax_pipe_spipe)
+
+

Return an orphan/unassigned virtual accelerator or null. Function will sleep if no orphans exist at the time of the call. Returned arax_vaccel_s should either be assigned to a arax_accel_s using arax_accel_add_vaccel(), or should be marked again as orphan using arax_pipe_add_orphan_vaccel().

+
Returns
Unassigned/Orphan Virtual Acceleator instance.
+ +

Definition at line 78 of file arax_pipe.c.

+ +

References arax_assert, arax_assert_obj, arax_pipe_have_orphan_vaccels(), ARAX_TYPE_VIRT_ACCEL, async_condition_lock(), async_condition_unlock(), async_condition_wait(), arax_pipe::orphan_cond, arax_pipe::orphan_vacs, utils_list_node::owner, arax_vaccel_s::phys, and utils_list_pop_head().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_get_revision()

+ +
+
+ + + + + + + + +
const char * arax_pipe_get_revision (arax_pipe_spipe)
+
+

Get Arax revision

+
Parameters
+ + +
pipearax_pipe instance.
+
+
+
Returns
const string with Arax revision.
+ +

Definition at line 58 of file arax_pipe.c.

+ +

References arax_pipe::sha.

+ +
+
+ +

◆ arax_pipe_get_total_size()

+ +
+
+ + + + + + + + +
size_t arax_pipe_get_total_size (arax_pipe_spipe)
+
+

Gets available total size of shm

+
Parameters
+ + +
pipepipe for shm
+
+
+
Returns
Total size of shm
+ +

Definition at line 271 of file arax_pipe.c.

+ +

References arax_assert, arax_throttle_get_total_size(), and arax_pipe::throttle.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_have_orphan_vaccels()

+ +
+
+ + + + + + + + +
int arax_pipe_have_orphan_vaccels (arax_pipe_spipe)
+
+

Will return != 0 if there are orphan vaccels.

+

@Note: This function may return old values.

+
Parameters
+ + +
pipearax_pipe instance.
+
+
+
Returns
0 if no orphans, may return any non zero value if orphans exist
+ +

Definition at line 73 of file arax_pipe.c.

+ +

References utils_list_s::length, and arax_pipe::orphan_vacs.

+ +

Referenced by arax_pipe_get_orphan_vaccel().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_have_to_mmap()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int arax_pipe_have_to_mmap (arax_pipe_spipe,
int pid 
)
+
+

Return if we have to mmap, for the given pid. This will return 1, only the first time it is callled with a specific pid.

+ +

Definition at line 126 of file arax_pipe.c.

+ +

References arax_assert, arax_pipe::proc_lock, arax_pipe::proc_map, utils_spinlock_lock, and utils_spinlock_unlock.

+ +

Referenced by _arax_init().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_init()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
arax_pipe_s * arax_pipe_init (void * mem,
size_t size,
int enforce_version 
)
+
+

Initialize a arax_pipe.

+
Note
This function must be called from all end points in order to initialize a arax_pipe instance.Concurrent issuers will be serialized and the returned arax_pipe instance will be initialized by the 'first' issuer. All subsequent issuers will receive the already initialized instance.
+
Parameters
+ + + + +
memShared memory pointer.
sizeSize of the shared memory in bytes.
enforce_versionSet to 0 to make version mismatch non fatal.
+
+
+
Returns
An initialized arax_pipe_s instance.
+

Write sha sum except first byte

+ +

Definition at line 5 of file arax_pipe.c.

+ +

References arax_pipe::allocator, arax_object_repo_init(), arax_pipe_add_process(), ARAX_PIPE_SHA_SIZE, arax_throttle_init(), arch_alloc_init_always(), arch_alloc_init_once(), arax_pipe::ass_kv, arax_pipe::async, async_condition_init(), async_meta_init_once(), arax_pipe::cntrl_ready_cond, arax_pipe::metrics_kv, arax_pipe::objs, arax_pipe::orphan_cond, arax_pipe::orphan_vacs, arax_pipe::sha, arax_pipe::shm_size, arax_pipe::throttle, utils_kv_init(), and utils_list_init().

+ +

Referenced by _arax_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_mark_unmap()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_pipe_mark_unmap (arax_pipe_spipe,
int pid 
)
+
+

This should be called after munmap'ing pipe, in pid process.

+ +

Definition at line 148 of file arax_pipe.c.

+ +

References arax_assert, arax_pipe::proc_lock, arax_pipe::proc_map, utils_spinlock_lock, and utils_spinlock_unlock.

+ +

Referenced by arax_exit().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_mmap_address()

+ +
+
+ + + + + + + + +
void * arax_pipe_mmap_address (arax_pipe_spipe)
+
+

Return (and set if needed) the mmap location for pipe.

+
Parameters
+ + +
pipearax_pipe instance.
+
+
+ +

Definition at line 165 of file arax_pipe.c.

+ +

References arax_pipe::self.

+ +

Referenced by _arax_init().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_orphan_stop()

+ +
+
+ + + + + + + + +
void arax_pipe_orphan_stop (arax_pipe_spipe)
+
+

This will return null to a blocked caller thread of arax_pipe_get_orphan_vaccel(). That should be used to signal thread termination.

+

This function should be called once for every thread using arax_pipe_get_orphan_vaccel().

+
Parameters
+ + +
pipearax_pipe instance.
+
+
+ +

Definition at line 109 of file arax_pipe.c.

+ +

References async_condition_lock(), async_condition_notify(), async_condition_unlock(), and arax_pipe::orphan_cond.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_remove_orphan_vaccel()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_pipe_remove_orphan_vaccel (arax_pipe_spipe,
arax_vaccel_svac 
)
+
+

Remove specific vac for list of orphan vacs.

+ +

Definition at line 100 of file arax_pipe.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, async_condition_lock(), async_condition_unlock(), arax_pipe::orphan_cond, arax_pipe::orphan_vacs, utils_list_del(), utils_list_node_linked(), and arax_vaccel_s::vaccels.

+ +

Referenced by arax_accel_add_vaccel(), and ARAX_OBJ_DTOR_DECL().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_size_dec()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void ARAX_PIPE_THOTTLE_DEBUG_FUNC() arax_pipe_size_dec (arax_pipe_spipe,
size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS 
)
+
+

Decrements available size of gpu by sz

+
Parameters
+ + + +
pipepipe for shm
szsize of removed data
+
+
+
Returns
Nothing .
+ +

Definition at line 259 of file arax_pipe.c.

+ +

References arax_assert, and arax_throttle_size_dec().

+ +

Referenced by arax_object_register().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_size_inc()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void ARAX_PIPE_THOTTLE_DEBUG_FUNC() arax_pipe_size_inc (arax_pipe_spipe,
size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS 
)
+
+

Increments available size of gpu by sz

+
Parameters
+ + + +
pipepipe for shm
szSize of added data
+
+
+
Returns
Nothing .
+ +

Definition at line 253 of file arax_pipe.c.

+ +

References arax_assert, and arax_throttle_size_inc().

+ +

Referenced by arax_object_ref_dec(), and arax_object_ref_dec_pre_locked().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01358.js b/a01358.js new file mode 100644 index 00000000..2370d2b3 --- /dev/null +++ b/a01358.js @@ -0,0 +1,33 @@ +var a01358 = +[ + [ "arax_process_tracker_s", "a02322.html", "a02322" ], + [ "arax_pipe", "a02326.html", "a02326" ], + [ "ARAX_PIPE_SHA_SIZE", "a01358.html#a51407c606cb30ebfb637f965e9962f16", null ], + [ "ARAX_PIPE_THOTTLE_DEBUG_FUNC", "a01358.html#a4a2abf6ac0e06ab4cd033095054aa349", null ], + [ "ARAX_PIPE_THOTTLE_DEBUG_PARAMS", "a01358.html#a83b6ac47e9c431ef2af1ef4bddd9dea7", null ], + [ "offset_to_pointer", "a01358.html#a844ff73ec9cb9a4b2a976b5ae7327762", null ], + [ "pointer_to_offset", "a01358.html#a57c896fef91db0d1a4a181eedb54fd3c", null ], + [ "arax_pipe_s", "a01358.html#ab087accd8311146aa592d3b311608fd7", null ], + [ "arax_controller_init_done", "a01358.html#a57a9203f163a9c8c78e22bde5fa4efbc", null ], + [ "arax_controller_init_start", "a01358.html#aa6e4832b06bd5757be4502d2de7b3026", null ], + [ "arax_pipe_add_orphan_vaccel", "a01358.html#aa4461ab1d225a0f76f08d2f37a4a7e0e", null ], + [ "arax_pipe_add_process", "a01358.html#a60dde947b05bc69599a6c7d92c38d088", null ], + [ "arax_pipe_del_process", "a01358.html#aedd2ffbe2275e3b8c2fc97a003ee7380", null ], + [ "arax_pipe_delete_accel", "a01358.html#aa0862a60d187bfed0cfa11bf27174551", null ], + [ "arax_pipe_exit", "a01358.html#a79b763e71a5ae1e57f78c008e7c1135c", null ], + [ "arax_pipe_find_accel", "a01358.html#ac2e1e32dc603394aecede365f454c8c4", null ], + [ "arax_pipe_find_proc", "a01358.html#a4c22ae41507232dc3efc725428cbfc7b", null ], + [ "arax_pipe_get_available_size", "a01358.html#a94ce6437cad359c8523f57fe50be020d", null ], + [ "arax_pipe_get_orphan_vaccel", "a01358.html#a8ff14a859f9b7a34676c2fcdb762386b", null ], + [ "arax_pipe_get_revision", "a01358.html#a588019fd47a5925847934e4c6fa6711a", null ], + [ "arax_pipe_get_total_size", "a01358.html#a59aa16caa6dfcec85af956b42b33a0fa", null ], + [ "arax_pipe_have_orphan_vaccels", "a01358.html#a186712b2a923d4bda1be98de189bc0f9", null ], + [ "arax_pipe_have_to_mmap", "a01358.html#a5006bea23d2b9964f0f7c12947180e01", null ], + [ "arax_pipe_init", "a01358.html#aa6293e9ec7776aa49ecf632fcc4f5e26", null ], + [ "arax_pipe_mark_unmap", "a01358.html#a8b36751c1bdab169e4735143d3712a09", null ], + [ "arax_pipe_mmap_address", "a01358.html#a8d805b003097be6a6328a35c78bf558b", null ], + [ "arax_pipe_orphan_stop", "a01358.html#a6cb53dd71cfaedb214bc5aef0e572cc2", null ], + [ "arax_pipe_remove_orphan_vaccel", "a01358.html#aa5172b735dddd3f77fbb0265bbcdfc20", null ], + [ "arax_pipe_size_dec", "a01358.html#a1cfa2c90268c6e53ce376beb7cce153c", null ], + [ "arax_pipe_size_inc", "a01358.html#a5144f906658718ef853a8d18dda1e724", null ] +]; \ No newline at end of file diff --git a/a01358_a186712b2a923d4bda1be98de189bc0f9_icgraph.map b/a01358_a186712b2a923d4bda1be98de189bc0f9_icgraph.map new file mode 100644 index 00000000..174afd43 --- /dev/null +++ b/a01358_a186712b2a923d4bda1be98de189bc0f9_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01358_a186712b2a923d4bda1be98de189bc0f9_icgraph.md5 b/a01358_a186712b2a923d4bda1be98de189bc0f9_icgraph.md5 new file mode 100644 index 00000000..035ba09f --- /dev/null +++ b/a01358_a186712b2a923d4bda1be98de189bc0f9_icgraph.md5 @@ -0,0 +1 @@ +b765faf31ee0c699c8c8dbe10f66ec8f \ No newline at end of file diff --git a/a01358_a186712b2a923d4bda1be98de189bc0f9_icgraph.svg b/a01358_a186712b2a923d4bda1be98de189bc0f9_icgraph.svg new file mode 100644 index 00000000..22ceb4f0 --- /dev/null +++ b/a01358_a186712b2a923d4bda1be98de189bc0f9_icgraph.svg @@ -0,0 +1,41 @@ + + + + + + +arax_pipe_have_orphan_vaccels + + +Node1 + + +arax_pipe_have_orphan +_vaccels + + + + + +Node2 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01358_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.map b/a01358_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.map new file mode 100644 index 00000000..ab7b427a --- /dev/null +++ b/a01358_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/a01358_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.md5 b/a01358_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.md5 new file mode 100644 index 00000000..06abfd38 --- /dev/null +++ b/a01358_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.md5 @@ -0,0 +1 @@ +c7f2a40f1c1286952f8fbdd52d917e8f \ No newline at end of file diff --git a/a01358_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.svg b/a01358_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.svg new file mode 100644 index 00000000..957ad6ae --- /dev/null +++ b/a01358_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.svg @@ -0,0 +1,165 @@ + + + + + + +arax_pipe_size_dec + + +Node1 + + +arax_pipe_size_dec + + + + + +Node2 + + +arax_throttle_size_dec + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_condition_lock + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_condition_unlock + + + + + +Node2->Node5 + + + + + + + + +Node7 + + +async_condition_wait + + + + + +Node2->Node7 + + + + + + + + +Node4 + + +async_completion_wait + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +async_completion_complete + + + + + +Node5->Node6 + + + + + + + + +Node7->Node4 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +async_semaphore_dec + + + + + +Node7->Node8 + + + + + + + + diff --git a/a01358_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.map b/a01358_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.map new file mode 100644 index 00000000..8a000e0f --- /dev/null +++ b/a01358_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.map @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01358_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.md5 b/a01358_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.md5 new file mode 100644 index 00000000..ac795113 --- /dev/null +++ b/a01358_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.md5 @@ -0,0 +1 @@ +9111127a923650c12e21af2b9d46f19a \ No newline at end of file diff --git a/a01358_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.svg b/a01358_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.svg new file mode 100644 index 00000000..aab3f04b --- /dev/null +++ b/a01358_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.svg @@ -0,0 +1,364 @@ + + + + + + +arax_pipe_size_dec + + +Node1 + + +arax_pipe_size_dec + + + + + +Node2 + + +arax_object_register + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_init_aligned + + + + + +Node2->Node4 + + + + + + + + +Node7 + + +arax_proc_init + + + + + +Node2->Node7 + + + + + + + + +Node9 + + +arax_task_alloc + + + + + +Node2->Node9 + + + + + + + + +Node17 + + +arax_vaccel_init + + + + + +Node2->Node17 + + + + + + + + +Node5 + + +arax_data_init + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +ARAX_BUFFER + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +arax_proc_register + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +arax_task_issue + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_allocate +_remote + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_data_get + + + + + +Node10->Node12 + + + + + + + + +Node14 + + +arax_data_set + + + + + +Node10->Node14 + + + + + + + + +Node15 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node10->Node15 + + + + + + + + +Node16 + + +arax_task_issue_sync + + + + + +Node10->Node16 + + + + + + + + +Node13 + + +arax_data_memcpy + + + + + +Node12->Node13 + + + + + + + + +Node14->Node13 + + + + + + + + +Node17->Node3 + + + + + + + + +Node18 + + +arax_accel_acquire_phys + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +arax_accel_acquire_type + + + + + +Node17->Node19 + + + + + + + + diff --git a/a01358_a4c22ae41507232dc3efc725428cbfc7b_cgraph.map b/a01358_a4c22ae41507232dc3efc725428cbfc7b_cgraph.map new file mode 100644 index 00000000..ccf579aa --- /dev/null +++ b/a01358_a4c22ae41507232dc3efc725428cbfc7b_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01358_a4c22ae41507232dc3efc725428cbfc7b_cgraph.md5 b/a01358_a4c22ae41507232dc3efc725428cbfc7b_cgraph.md5 new file mode 100644 index 00000000..23497a5a --- /dev/null +++ b/a01358_a4c22ae41507232dc3efc725428cbfc7b_cgraph.md5 @@ -0,0 +1 @@ +54ccdf6de7021a867d9573715ce65aae \ No newline at end of file diff --git a/a01358_a4c22ae41507232dc3efc725428cbfc7b_cgraph.svg b/a01358_a4c22ae41507232dc3efc725428cbfc7b_cgraph.svg new file mode 100644 index 00000000..72525d6f --- /dev/null +++ b/a01358_a4c22ae41507232dc3efc725428cbfc7b_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_pipe_find_proc + + +Node1 + + +arax_pipe_find_proc + + + + + +Node2 + + +arax_object_list_lock + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_object_list_unlock + + + + + +Node1->Node3 + + + + + + + + diff --git a/a01358_a4c22ae41507232dc3efc725428cbfc7b_icgraph.map b/a01358_a4c22ae41507232dc3efc725428cbfc7b_icgraph.map new file mode 100644 index 00000000..c74126c7 --- /dev/null +++ b/a01358_a4c22ae41507232dc3efc725428cbfc7b_icgraph.map @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/a01358_a4c22ae41507232dc3efc725428cbfc7b_icgraph.md5 b/a01358_a4c22ae41507232dc3efc725428cbfc7b_icgraph.md5 new file mode 100644 index 00000000..3566a225 --- /dev/null +++ b/a01358_a4c22ae41507232dc3efc725428cbfc7b_icgraph.md5 @@ -0,0 +1 @@ +12ddb64171fad8251fb0e9bc1796d188 \ No newline at end of file diff --git a/a01358_a4c22ae41507232dc3efc725428cbfc7b_icgraph.svg b/a01358_a4c22ae41507232dc3efc725428cbfc7b_icgraph.svg new file mode 100644 index 00000000..41e0e0f8 --- /dev/null +++ b/a01358_a4c22ae41507232dc3efc725428cbfc7b_icgraph.svg @@ -0,0 +1,157 @@ + + + + + + +arax_pipe_find_proc + + +Node1 + + +arax_pipe_find_proc + + + + + +Node2 + + +arax_proc_get + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +arax_proc_register + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +arax_data_allocate +_remote + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_get + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +arax_data_set + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2->Node7 + + + + + + + + +Node5 + + +arax_data_memcpy + + + + + +Node4->Node5 + + + + + + + + +Node6->Node5 + + + + + + + + diff --git a/a01358_a5006bea23d2b9964f0f7c12947180e01_icgraph.map b/a01358_a5006bea23d2b9964f0f7c12947180e01_icgraph.map new file mode 100644 index 00000000..e280d39d --- /dev/null +++ b/a01358_a5006bea23d2b9964f0f7c12947180e01_icgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01358_a5006bea23d2b9964f0f7c12947180e01_icgraph.md5 b/a01358_a5006bea23d2b9964f0f7c12947180e01_icgraph.md5 new file mode 100644 index 00000000..c97cfd80 --- /dev/null +++ b/a01358_a5006bea23d2b9964f0f7c12947180e01_icgraph.md5 @@ -0,0 +1 @@ +b1a99d0948c7b8d3a244b67f9226ad81 \ No newline at end of file diff --git a/a01358_a5006bea23d2b9964f0f7c12947180e01_icgraph.svg b/a01358_a5006bea23d2b9964f0f7c12947180e01_icgraph.svg new file mode 100644 index 00000000..557f70e5 --- /dev/null +++ b/a01358_a5006bea23d2b9964f0f7c12947180e01_icgraph.svg @@ -0,0 +1,185 @@ + + + + + + +arax_pipe_have_to_mmap + + +Node1 + + +arax_pipe_have_to_mmap + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01358_a5144f906658718ef853a8d18dda1e724_cgraph.map b/a01358_a5144f906658718ef853a8d18dda1e724_cgraph.map new file mode 100644 index 00000000..d78babee --- /dev/null +++ b/a01358_a5144f906658718ef853a8d18dda1e724_cgraph.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/a01358_a5144f906658718ef853a8d18dda1e724_cgraph.md5 b/a01358_a5144f906658718ef853a8d18dda1e724_cgraph.md5 new file mode 100644 index 00000000..948a3d3d --- /dev/null +++ b/a01358_a5144f906658718ef853a8d18dda1e724_cgraph.md5 @@ -0,0 +1 @@ +53ed2966da2f709da15c3aa3ceac83c9 \ No newline at end of file diff --git a/a01358_a5144f906658718ef853a8d18dda1e724_cgraph.svg b/a01358_a5144f906658718ef853a8d18dda1e724_cgraph.svg new file mode 100644 index 00000000..a19fa1f8 --- /dev/null +++ b/a01358_a5144f906658718ef853a8d18dda1e724_cgraph.svg @@ -0,0 +1,147 @@ + + + + + + +arax_pipe_size_inc + + +Node1 + + +arax_pipe_size_inc + + + + + +Node2 + + +arax_throttle_size_inc + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_condition_lock + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_condition_notify + + + + + +Node2->Node5 + + + + + + + + +Node7 + + +async_condition_unlock + + + + + +Node2->Node7 + + + + + + + + +Node4 + + +async_completion_wait + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +async_semaphore_inc + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_completion_complete + + + + + +Node7->Node8 + + + + + + + + diff --git a/a01358_a5144f906658718ef853a8d18dda1e724_icgraph.map b/a01358_a5144f906658718ef853a8d18dda1e724_icgraph.map new file mode 100644 index 00000000..528389c5 --- /dev/null +++ b/a01358_a5144f906658718ef853a8d18dda1e724_icgraph.map @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01358_a5144f906658718ef853a8d18dda1e724_icgraph.md5 b/a01358_a5144f906658718ef853a8d18dda1e724_icgraph.md5 new file mode 100644 index 00000000..bce9c272 --- /dev/null +++ b/a01358_a5144f906658718ef853a8d18dda1e724_icgraph.md5 @@ -0,0 +1 @@ +138963997cced80f8e2717880f5b4a6d \ No newline at end of file diff --git a/a01358_a5144f906658718ef853a8d18dda1e724_icgraph.svg b/a01358_a5144f906658718ef853a8d18dda1e724_icgraph.svg new file mode 100644 index 00000000..d78f4e26 --- /dev/null +++ b/a01358_a5144f906658718ef853a8d18dda1e724_icgraph.svg @@ -0,0 +1,528 @@ + + + + + + +arax_pipe_size_inc + + +Node1 + + +arax_pipe_size_inc + + + + + +Node2 + + +arax_object_ref_dec + + + + + +Node1->Node2 + + + + + + + + +Node23 + + +arax_object_ref_dec +_pre_locked + + + + + +Node1->Node23 + + + + + + + + +Node3 + + +arax_accel_list_free + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_accel_release + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +arax_data_free + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +arax_data_migrate_accel + + + + + +Node2->Node7 + + + + + + + + +Node16 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2->Node16 + + + + + + + + +Node19 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2->Node19 + + + + + + + + +Node20 + + +arax_pipe_delete_accel + + + + + +Node2->Node20 + + + + + + + + +Node21 + + +arax_proc_put + + + + + +Node2->Node21 + + + + + + + + +Node22 + + +arax_task_free + + + + + +Node2->Node22 + + + + + + + + +Node5 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +arax_data_arg_init + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_input_init + + + + + +Node7->Node9 + + + + + + + + +Node18 + + +arax_data_output_init + + + + + +Node7->Node18 + + + + + + + + +Node10 + + +arax_task_alloc + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_task_issue + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_data_allocate +_remote + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +arax_data_get + + + + + +Node11->Node13 + + + + + + + + +Node15 + + +arax_data_set + + + + + +Node11->Node15 + + + + + + + + +Node11->Node16 + + + + + + + + +Node17 + + +arax_task_issue_sync + + + + + +Node11->Node17 + + + + + + + + +Node14 + + +arax_data_memcpy + + + + + +Node13->Node14 + + + + + + + + +Node15->Node14 + + + + + + + + +Node18->Node10 + + + + + + + + +Node21->Node13 + + + + + + + + +Node21->Node15 + + + + + + + + +Node22->Node12 + + + + + + + + +Node22->Node13 + + + + + + + + +Node22->Node17 + + + + + + + + +Node24 + + +arax_accel_list_free +_pre_locked + + + + + +Node23->Node24 + + + + + + + + +Node25 + + +arax_accel_list + + + + + +Node24->Node25 + + + + + + + + diff --git a/a01358_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.map b/a01358_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.map new file mode 100644 index 00000000..1af12496 --- /dev/null +++ b/a01358_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01358_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.md5 b/a01358_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.md5 new file mode 100644 index 00000000..b169e67d --- /dev/null +++ b/a01358_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.md5 @@ -0,0 +1 @@ +16471aca56431bd68e19e9ae46a37f1c \ No newline at end of file diff --git a/a01358_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.svg b/a01358_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.svg new file mode 100644 index 00000000..b5c0f6f9 --- /dev/null +++ b/a01358_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_controller_init_done + + +Node1 + + +arax_controller_init_done + + + + + +Node2 + + +async_condition_notify + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_semaphore_inc + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01358_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.map b/a01358_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.map new file mode 100644 index 00000000..ae991f04 --- /dev/null +++ b/a01358_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01358_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.md5 b/a01358_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.md5 new file mode 100644 index 00000000..11ea06d6 --- /dev/null +++ b/a01358_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.md5 @@ -0,0 +1 @@ +8eba9e8e78280ce00061ff8a3f16ae21 \ No newline at end of file diff --git a/a01358_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.svg b/a01358_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.svg new file mode 100644 index 00000000..b910c5d7 --- /dev/null +++ b/a01358_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_pipe_get_total_size + + +Node1 + + +arax_pipe_get_total_size + + + + + +Node2 + + +arax_throttle_get_total_size + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01358_a60dde947b05bc69599a6c7d92c38d088_icgraph.map b/a01358_a60dde947b05bc69599a6c7d92c38d088_icgraph.map new file mode 100644 index 00000000..710927b0 --- /dev/null +++ b/a01358_a60dde947b05bc69599a6c7d92c38d088_icgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01358_a60dde947b05bc69599a6c7d92c38d088_icgraph.md5 b/a01358_a60dde947b05bc69599a6c7d92c38d088_icgraph.md5 new file mode 100644 index 00000000..b2f0beb3 --- /dev/null +++ b/a01358_a60dde947b05bc69599a6c7d92c38d088_icgraph.md5 @@ -0,0 +1 @@ +6ce86ce4082eae6a0cb0737736468a0f \ No newline at end of file diff --git a/a01358_a60dde947b05bc69599a6c7d92c38d088_icgraph.svg b/a01358_a60dde947b05bc69599a6c7d92c38d088_icgraph.svg new file mode 100644 index 00000000..924a8711 --- /dev/null +++ b/a01358_a60dde947b05bc69599a6c7d92c38d088_icgraph.svg @@ -0,0 +1,203 @@ + + + + + + +arax_pipe_add_process + + +Node1 + + +arax_pipe_add_process + + + + + +Node2 + + +arax_pipe_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01358_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.map b/a01358_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.map new file mode 100644 index 00000000..51de39bc --- /dev/null +++ b/a01358_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/a01358_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.md5 b/a01358_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.md5 new file mode 100644 index 00000000..913dae53 --- /dev/null +++ b/a01358_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.md5 @@ -0,0 +1 @@ +0c3b65111a4a5c27fb81799ceafd4a95 \ No newline at end of file diff --git a/a01358_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.svg b/a01358_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.svg new file mode 100644 index 00000000..397b60db --- /dev/null +++ b/a01358_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.svg @@ -0,0 +1,129 @@ + + + + + + +arax_pipe_orphan_stop + + +Node1 + + +arax_pipe_orphan_stop + + + + + +Node2 + + +async_condition_lock + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +async_condition_notify + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +async_condition_unlock + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +async_completion_wait + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_semaphore_inc + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_completion_complete + + + + + +Node6->Node7 + + + + + + + + diff --git a/a01358_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.map b/a01358_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.map new file mode 100644 index 00000000..b1561508 --- /dev/null +++ b/a01358_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/a01358_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.md5 b/a01358_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.md5 new file mode 100644 index 00000000..4297f87e --- /dev/null +++ b/a01358_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.md5 @@ -0,0 +1 @@ +ef717309eba257202adb4d34ecd5d620 \ No newline at end of file diff --git a/a01358_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.svg b/a01358_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.svg new file mode 100644 index 00000000..98fb9801 --- /dev/null +++ b/a01358_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.svg @@ -0,0 +1,129 @@ + + + + + + +arax_pipe_exit + + +Node1 + + +arax_pipe_exit + + + + + +Node2 + + +arax_object_repo_exit + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_del_process + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arch_alloc_exit + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +async_meta_exit + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +getVmID + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +wakeupVm + + + + + +Node5->Node7 + + + + + + + + diff --git a/a01358_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.map b/a01358_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.map new file mode 100644 index 00000000..3ba779d7 --- /dev/null +++ b/a01358_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01358_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.md5 b/a01358_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.md5 new file mode 100644 index 00000000..62c6e607 --- /dev/null +++ b/a01358_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.md5 @@ -0,0 +1 @@ +8bf2b63e2fbeaeccaa2612ea09e33fc2 \ No newline at end of file diff --git a/a01358_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.svg b/a01358_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.svg new file mode 100644 index 00000000..983c0e0b --- /dev/null +++ b/a01358_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_pipe_exit + + +Node1 + + +arax_pipe_exit + + + + + +Node2 + + +arax_exit + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01358_a8b36751c1bdab169e4735143d3712a09_icgraph.map b/a01358_a8b36751c1bdab169e4735143d3712a09_icgraph.map new file mode 100644 index 00000000..2d824e19 --- /dev/null +++ b/a01358_a8b36751c1bdab169e4735143d3712a09_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01358_a8b36751c1bdab169e4735143d3712a09_icgraph.md5 b/a01358_a8b36751c1bdab169e4735143d3712a09_icgraph.md5 new file mode 100644 index 00000000..dd6bad1c --- /dev/null +++ b/a01358_a8b36751c1bdab169e4735143d3712a09_icgraph.md5 @@ -0,0 +1 @@ +69668a4ca496fbc63db33e3f75cdf596 \ No newline at end of file diff --git a/a01358_a8b36751c1bdab169e4735143d3712a09_icgraph.svg b/a01358_a8b36751c1bdab169e4735143d3712a09_icgraph.svg new file mode 100644 index 00000000..4af217bc --- /dev/null +++ b/a01358_a8b36751c1bdab169e4735143d3712a09_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_pipe_mark_unmap + + +Node1 + + +arax_pipe_mark_unmap + + + + + +Node2 + + +arax_exit + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01358_a8d805b003097be6a6328a35c78bf558b_icgraph.map b/a01358_a8d805b003097be6a6328a35c78bf558b_icgraph.map new file mode 100644 index 00000000..be05be8a --- /dev/null +++ b/a01358_a8d805b003097be6a6328a35c78bf558b_icgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01358_a8d805b003097be6a6328a35c78bf558b_icgraph.md5 b/a01358_a8d805b003097be6a6328a35c78bf558b_icgraph.md5 new file mode 100644 index 00000000..2d6f8fa4 --- /dev/null +++ b/a01358_a8d805b003097be6a6328a35c78bf558b_icgraph.md5 @@ -0,0 +1 @@ +84d6bee4de4a1e2adae1da93180b84b8 \ No newline at end of file diff --git a/a01358_a8d805b003097be6a6328a35c78bf558b_icgraph.svg b/a01358_a8d805b003097be6a6328a35c78bf558b_icgraph.svg new file mode 100644 index 00000000..e4cbbac9 --- /dev/null +++ b/a01358_a8d805b003097be6a6328a35c78bf558b_icgraph.svg @@ -0,0 +1,185 @@ + + + + + + +arax_pipe_mmap_address + + +Node1 + + +arax_pipe_mmap_address + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01358_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.map b/a01358_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.map new file mode 100644 index 00000000..5b8e4c5c --- /dev/null +++ b/a01358_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01358_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.md5 b/a01358_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.md5 new file mode 100644 index 00000000..148bcb54 --- /dev/null +++ b/a01358_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.md5 @@ -0,0 +1 @@ +96e8ed412bd7c081e6609e79244db044 \ No newline at end of file diff --git a/a01358_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.svg b/a01358_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.svg new file mode 100644 index 00000000..816ba5a4 --- /dev/null +++ b/a01358_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.svg @@ -0,0 +1,203 @@ + + + + + + +arax_pipe_get_orphan_vaccel + + +Node1 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node2 + + +arax_pipe_have_orphan +_vaccels + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_condition_lock + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +async_condition_unlock + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +async_condition_wait + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +utils_list_pop_head + + + + + +Node1->Node9 + + + + + + + + +Node4 + + +async_completion_wait + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +async_completion_complete + + + + + +Node5->Node6 + + + + + + + + +Node7->Node4 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +async_semaphore_dec + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +utils_list_del + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01358_a94ce6437cad359c8523f57fe50be020d_cgraph.map b/a01358_a94ce6437cad359c8523f57fe50be020d_cgraph.map new file mode 100644 index 00000000..d1734ace --- /dev/null +++ b/a01358_a94ce6437cad359c8523f57fe50be020d_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01358_a94ce6437cad359c8523f57fe50be020d_cgraph.md5 b/a01358_a94ce6437cad359c8523f57fe50be020d_cgraph.md5 new file mode 100644 index 00000000..3b7b322e --- /dev/null +++ b/a01358_a94ce6437cad359c8523f57fe50be020d_cgraph.md5 @@ -0,0 +1 @@ +e6b30f867889e5ecea185427960aaa0a \ No newline at end of file diff --git a/a01358_a94ce6437cad359c8523f57fe50be020d_cgraph.svg b/a01358_a94ce6437cad359c8523f57fe50be020d_cgraph.svg new file mode 100644 index 00000000..dcea9200 --- /dev/null +++ b/a01358_a94ce6437cad359c8523f57fe50be020d_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_pipe_get_available_size + + +Node1 + + +arax_pipe_get_available_size + + + + + +Node2 + + +arax_throttle_get_available_size + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01358_a94ce6437cad359c8523f57fe50be020d_icgraph.map b/a01358_a94ce6437cad359c8523f57fe50be020d_icgraph.map new file mode 100644 index 00000000..67d3b427 --- /dev/null +++ b/a01358_a94ce6437cad359c8523f57fe50be020d_icgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01358_a94ce6437cad359c8523f57fe50be020d_icgraph.md5 b/a01358_a94ce6437cad359c8523f57fe50be020d_icgraph.md5 new file mode 100644 index 00000000..79dbc8f9 --- /dev/null +++ b/a01358_a94ce6437cad359c8523f57fe50be020d_icgraph.md5 @@ -0,0 +1 @@ +0bf605fc4085ba0ada1e3d6e6a970033 \ No newline at end of file diff --git a/a01358_a94ce6437cad359c8523f57fe50be020d_icgraph.svg b/a01358_a94ce6437cad359c8523f57fe50be020d_icgraph.svg new file mode 100644 index 00000000..94e67b01 --- /dev/null +++ b/a01358_a94ce6437cad359c8523f57fe50be020d_icgraph.svg @@ -0,0 +1,203 @@ + + + + + + +arax_pipe_get_available_size + + +Node1 + + +arax_pipe_get_available_size + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +arax_exit + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01358_aa0862a60d187bfed0cfa11bf27174551_cgraph.map b/a01358_aa0862a60d187bfed0cfa11bf27174551_cgraph.map new file mode 100644 index 00000000..6891c6e3 --- /dev/null +++ b/a01358_aa0862a60d187bfed0cfa11bf27174551_cgraph.map @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01358_aa0862a60d187bfed0cfa11bf27174551_cgraph.md5 b/a01358_aa0862a60d187bfed0cfa11bf27174551_cgraph.md5 new file mode 100644 index 00000000..26020dc9 --- /dev/null +++ b/a01358_aa0862a60d187bfed0cfa11bf27174551_cgraph.md5 @@ -0,0 +1 @@ +1f6d8ba401e304c8dc200fc78e26c1ae \ No newline at end of file diff --git a/a01358_aa0862a60d187bfed0cfa11bf27174551_cgraph.svg b/a01358_aa0862a60d187bfed0cfa11bf27174551_cgraph.svg new file mode 100644 index 00000000..0c845833 --- /dev/null +++ b/a01358_aa0862a60d187bfed0cfa11bf27174551_cgraph.svg @@ -0,0 +1,237 @@ + + + + + + +arax_pipe_delete_accel + + +Node1 + + +arax_pipe_delete_accel + + + + + +Node2 + + +arax_object_list_lock + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_object_list_unlock + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_object_ref_dec + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +arax_pipe_size_inc + + + + + +Node4->Node5 + + + + + + + + +Node13 + + +utils_list_del + + + + + +Node4->Node13 + + + + + + + + +Node6 + + +arax_throttle_size_inc + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +async_condition_lock + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_condition_notify + + + + + +Node6->Node9 + + + + + + + + +Node11 + + +async_condition_unlock + + + + + +Node6->Node11 + + + + + + + + +Node8 + + +async_completion_wait + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +async_semaphore_inc + + + + + +Node9->Node10 + + + + + + + + +Node12 + + +async_completion_complete + + + + + +Node11->Node12 + + + + + + + + diff --git a/a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.map b/a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.map new file mode 100644 index 00000000..524c5f97 --- /dev/null +++ b/a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.md5 b/a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.md5 new file mode 100644 index 00000000..481fc771 --- /dev/null +++ b/a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.md5 @@ -0,0 +1 @@ +99cfed55b7e693e8c6ec4cc3e8bb577b \ No newline at end of file diff --git a/a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.svg b/a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.svg new file mode 100644 index 00000000..c79d2c00 --- /dev/null +++ b/a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.svg @@ -0,0 +1,166 @@ + + + + + + +arax_pipe_add_orphan_vaccel + + +Node1 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node2 + + +async_condition_lock + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +async_condition_notify + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +async_condition_unlock + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +utils_list_add + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +async_completion_wait + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_semaphore_inc + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_completion_complete + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +utils_list_node_add + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.map b/a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.map new file mode 100644 index 00000000..4b42226c --- /dev/null +++ b/a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.md5 b/a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.md5 new file mode 100644 index 00000000..b5d7508d --- /dev/null +++ b/a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.md5 @@ -0,0 +1 @@ +2b84456fa59b5b4bb2eda98573bdd664 \ No newline at end of file diff --git a/a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.svg b/a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.svg new file mode 100644 index 00000000..db24c6d7 --- /dev/null +++ b/a01358_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.svg @@ -0,0 +1,94 @@ + + + + + + +arax_pipe_add_orphan_vaccel + + +Node1 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node2 + + +arax_vaccel_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_acquire_phys + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_accel_acquire_type + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_accel_init + + + + + +Node2->Node5 + + + + + + + + diff --git a/a01358_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.map b/a01358_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.map new file mode 100644 index 00000000..6b43b6f2 --- /dev/null +++ b/a01358_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/a01358_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.md5 b/a01358_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.md5 new file mode 100644 index 00000000..4e542bb0 --- /dev/null +++ b/a01358_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.md5 @@ -0,0 +1 @@ +b7762805a83a050cb38e7df454d6ee18 \ No newline at end of file diff --git a/a01358_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.svg b/a01358_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.svg new file mode 100644 index 00000000..c4243a07 --- /dev/null +++ b/a01358_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.svg @@ -0,0 +1,130 @@ + + + + + + +arax_pipe_remove_orphan_vaccel + + +Node1 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node2 + + +async_condition_lock + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +async_condition_unlock + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +utils_list_del + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +utils_list_node_linked + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +async_completion_wait + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_completion_complete + + + + + +Node4->Node5 + + + + + + + + diff --git a/a01358_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.map b/a01358_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.map new file mode 100644 index 00000000..b4b1bbea --- /dev/null +++ b/a01358_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/a01358_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.md5 b/a01358_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.md5 new file mode 100644 index 00000000..8a277c38 --- /dev/null +++ b/a01358_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.md5 @@ -0,0 +1 @@ +a48fce6325a51fa564fe0eee1030b643 \ No newline at end of file diff --git a/a01358_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.svg b/a01358_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.svg new file mode 100644 index 00000000..cba7f45f --- /dev/null +++ b/a01358_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.svg @@ -0,0 +1,148 @@ + + + + + + +arax_pipe_remove_orphan_vaccel + + +Node1 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node2 + + +arax_accel_add_vaccel + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +arax_accel_set_physical + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_vaccel_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_accel_acquire_phys + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_accel_acquire_type + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_accel_init + + + + + +Node4->Node7 + + + + + + + + diff --git a/a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.map b/a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.map new file mode 100644 index 00000000..ab6e65ce --- /dev/null +++ b/a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.map @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.md5 b/a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.md5 new file mode 100644 index 00000000..21c661f9 --- /dev/null +++ b/a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.md5 @@ -0,0 +1 @@ +f6ddb4429c823f2e6943cf5406b70e8c \ No newline at end of file diff --git a/a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.svg b/a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.svg new file mode 100644 index 00000000..cc380918 --- /dev/null +++ b/a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.svg @@ -0,0 +1,615 @@ + + + + + + +arax_pipe_init + + +Node1 + + +arax_pipe_init + + + + + +Node2 + + +arax_object_repo_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +utils_list_init + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +arax_pipe_add_process + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +arax_throttle_init + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +async_condition_init + + + + + +Node1->Node7 + + + + + + + + +Node13 + + +arch_alloc_init_always + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +arch_alloc_init_once + + + + + +Node1->Node14 + + + + + + + + +Node16 + + +async_meta_init_once + + + + + +Node1->Node16 + + + + + + + + +Node31 + + +utils_kv_init + + + + + +Node1->Node31 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +utils_list_node_init + + + + + +Node3->Node4 + + + + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +async_completion_complete + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +async_completion_init + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +async_condition_unlock + + + + + +Node7->Node10 + + + + + + + + +Node12 + + +async_semaphore_init + + + + + +Node7->Node12 + + + + + + + + +Node11 + + +async_completion_complete + + + + + +Node10->Node11 + + + + + + + + +Node15 + + +utils_bitmap_init + + + + + +Node14->Node15 + + + + + + + + +Node16->Node3 + + + + + + + + +Node17 + + +utils_config_alloc_path + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +utils_config_free_path + + + + + +Node16->Node19 + + + + + + + + +Node20 + + +utils_config_get_bool + + + + + +Node16->Node20 + + + + + + + + +Node18 + + +system_home_path + + + + + +Node17->Node18 + + + + + + + + +Node21 + + +utils_config_get_int + + + + + +Node20->Node21 + + + + + + + + +Node22 + + +utils_config_get_long + + + + + +Node21->Node22 + + + + + + + + +Node23 + + +_utils_config_get_str + + + + + +Node22->Node23 + + + + + + + + +Node28 + + +utils_config_write_long + + + + + +Node22->Node28 + + + + + + + + +Node24 + + +conf_get + + + + + +Node23->Node24 + + + + + + + + +Node25 + + +system_env_var + + + + + +Node24->Node25 + + + + + + + + +Node26 + + +system_file_size + + + + + +Node24->Node26 + + + + + + + + +Node27 + + +utils_config_get_source + + + + + +Node24->Node27 + + + + + + + + +Node27->Node25 + + + + + + + + +Node29 + + +utils_config_write_str + + + + + +Node28->Node29 + + + + + + + + +Node29->Node24 + + + + + + + + +Node30 + + +conf_set + + + + + +Node29->Node30 + + + + + + + + +Node30->Node27 + + + + + + + + diff --git a/a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.map b/a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.map new file mode 100644 index 00000000..92a70841 --- /dev/null +++ b/a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.md5 b/a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.md5 new file mode 100644 index 00000000..7005e8ba --- /dev/null +++ b/a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.md5 @@ -0,0 +1 @@ +ae0f565665cf1d29a70e124dee592fe1 \ No newline at end of file diff --git a/a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.svg b/a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.svg new file mode 100644 index 00000000..93fe200d --- /dev/null +++ b/a01358_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.svg @@ -0,0 +1,185 @@ + + + + + + +arax_pipe_init + + +Node1 + + +arax_pipe_init + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01358_aa6e4832b06bd5757be4502d2de7b3026_cgraph.map b/a01358_aa6e4832b06bd5757be4502d2de7b3026_cgraph.map new file mode 100644 index 00000000..5cfe53d1 --- /dev/null +++ b/a01358_aa6e4832b06bd5757be4502d2de7b3026_cgraph.map @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01358_aa6e4832b06bd5757be4502d2de7b3026_cgraph.md5 b/a01358_aa6e4832b06bd5757be4502d2de7b3026_cgraph.md5 new file mode 100644 index 00000000..780af866 --- /dev/null +++ b/a01358_aa6e4832b06bd5757be4502d2de7b3026_cgraph.md5 @@ -0,0 +1 @@ +788a4f55cb2eb13d0403bd14ec3f33a3 \ No newline at end of file diff --git a/a01358_aa6e4832b06bd5757be4502d2de7b3026_cgraph.svg b/a01358_aa6e4832b06bd5757be4502d2de7b3026_cgraph.svg new file mode 100644 index 00000000..a8e4bfeb --- /dev/null +++ b/a01358_aa6e4832b06bd5757be4502d2de7b3026_cgraph.svg @@ -0,0 +1,1066 @@ + + + + + + +arax_controller_init_start + + +Node1 + + +arax_controller_init +_start + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_get_available_size + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +arax_pipe_have_to_mmap + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +arax_pipe_init + + + + + +Node2->Node6 + + + + + + + + +Node22 + + +utils_config_alloc_path + + + + + +Node2->Node22 + + + + + + + + +Node25 + + +utils_config_get_bool + + + + + +Node2->Node25 + + + + + + + + +Node32 + + +utils_config_get_source + + + + + +Node2->Node32 + + + + + + + + +Node37 + + +arax_pipe_mmap_address + + + + + +Node2->Node37 + + + + + + + + +Node38 + + +async_condition_lock + + + + + +Node2->Node38 + + + + + + + + +Node40 + + +async_condition_unlock + + + + + +Node2->Node40 + + + + + + + + +Node41 + + +async_condition_wait + + + + + +Node2->Node41 + + + + + + + + +Node43 + + +async_meta_init_always + + + + + +Node2->Node43 + + + + + + + + +Node48 + + +utils_config_get_str + + + + + +Node2->Node48 + + + + + + + + +Node49 + + +system_mmap + + + + + +Node2->Node49 + + + + + + + + +Node50 + + +system_process_id + + + + + +Node2->Node50 + + + + + + + + +Node51 + + +system_total_memory + + + + + +Node2->Node51 + + + + + + + + +Node52 + + +utils_config_get_size + + + + + +Node2->Node52 + + + + + + + + +Node4 + + +arax_throttle_get_available_size + + + + + +Node3->Node4 + + + + + + + + +Node7 + + +arax_object_repo_init + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +utils_list_init + + + + + +Node6->Node8 + + + + + + + + +Node10 + + +arax_pipe_add_process + + + + + +Node6->Node10 + + + + + + + + +Node11 + + +arax_throttle_init + + + + + +Node6->Node11 + + + + + + + + +Node12 + + +async_condition_init + + + + + +Node6->Node12 + + + + + + + + +Node18 + + +arch_alloc_init_always + + + + + +Node6->Node18 + + + + + + + + +Node19 + + +arch_alloc_init_once + + + + + +Node6->Node19 + + + + + + + + +Node21 + + +async_meta_init_once + + + + + +Node6->Node21 + + + + + + + + +Node36 + + +utils_kv_init + + + + + +Node6->Node36 + + + + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +utils_list_node_init + + + + + +Node8->Node9 + + + + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +async_completion_complete + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +async_completion_init + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +async_condition_unlock + + + + + +Node12->Node15 + + + + + + + + +Node17 + + +async_semaphore_init + + + + + +Node12->Node17 + + + + + + + + +Node20 + + +utils_bitmap_init + + + + + +Node19->Node20 + + + + + + + + +Node21->Node8 + + + + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +utils_config_free_path + + + + + +Node21->Node24 + + + + + + + + +Node21->Node25 + + + + + + + + +Node23 + + +system_home_path + + + + + +Node22->Node23 + + + + + + + + +Node26 + + +utils_config_get_int + + + + + +Node25->Node26 + + + + + + + + +Node27 + + +utils_config_get_long + + + + + +Node26->Node27 + + + + + + + + +Node28 + + +_utils_config_get_str + + + + + +Node27->Node28 + + + + + + + + +Node33 + + +utils_config_write_long + + + + + +Node27->Node33 + + + + + + + + +Node29 + + +conf_get + + + + + +Node28->Node29 + + + + + + + + +Node30 + + +system_env_var + + + + + +Node29->Node30 + + + + + + + + +Node31 + + +system_file_size + + + + + +Node29->Node31 + + + + + + + + +Node29->Node32 + + + + + + + + +Node32->Node30 + + + + + + + + +Node34 + + +utils_config_write_str + + + + + +Node33->Node34 + + + + + + + + +Node34->Node29 + + + + + + + + +Node39 + + +async_completion_wait + + + + + +Node38->Node39 + + + + + + + + +Node40->Node13 + + + + + + + + +Node41->Node13 + + + + + + + + +Node41->Node39 + + + + + + + + +Node42 + + +async_semaphore_dec + + + + + +Node41->Node42 + + + + + + + + +Node43->Node22 + + + + + + + + +Node43->Node24 + + + + + + + + +Node44 + + +async_thread + + + + + +Node43->Node44 + + + + + + + + +Node43->Node48 + + + + + + + + +Node45 + + +async_completion_check + + + + + +Node44->Node45 + + + + + + + + +Node46 + + +getVmID + + + + + +Node44->Node46 + + + + + + + + +Node47 + + +utils_list_del + + + + + +Node44->Node47 + + + + + + + + +Node48->Node28 + + + + + + + + +Node48->Node34 + + + + + + + + +Node49->Node31 + + + + + + + + +Node52->Node27 + + + + + + + + diff --git a/a01358_ac2e1e32dc603394aecede365f454c8c4_cgraph.map b/a01358_ac2e1e32dc603394aecede365f454c8c4_cgraph.map new file mode 100644 index 00000000..d7b9e7a0 --- /dev/null +++ b/a01358_ac2e1e32dc603394aecede365f454c8c4_cgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a01358_ac2e1e32dc603394aecede365f454c8c4_cgraph.md5 b/a01358_ac2e1e32dc603394aecede365f454c8c4_cgraph.md5 new file mode 100644 index 00000000..2eb6133b --- /dev/null +++ b/a01358_ac2e1e32dc603394aecede365f454c8c4_cgraph.md5 @@ -0,0 +1 @@ +f53b39c56a1ac7c8a61768235c5df6e7 \ No newline at end of file diff --git a/a01358_ac2e1e32dc603394aecede365f454c8c4_cgraph.svg b/a01358_ac2e1e32dc603394aecede365f454c8c4_cgraph.svg new file mode 100644 index 00000000..64340b20 --- /dev/null +++ b/a01358_ac2e1e32dc603394aecede365f454c8c4_cgraph.svg @@ -0,0 +1,75 @@ + + + + + + +arax_pipe_find_accel + + +Node1 + + +arax_pipe_find_accel + + + + + +Node2 + + +arax_accel_get_name + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_object_list_lock + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_object_list_unlock + + + + + +Node1->Node4 + + + + + + + + diff --git a/a01358_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.map b/a01358_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.map new file mode 100644 index 00000000..480b2e80 --- /dev/null +++ b/a01358_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01358_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.md5 b/a01358_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.md5 new file mode 100644 index 00000000..06421570 --- /dev/null +++ b/a01358_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.md5 @@ -0,0 +1 @@ +b62806b84102a974c62f592249f16a39 \ No newline at end of file diff --git a/a01358_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.svg b/a01358_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.svg new file mode 100644 index 00000000..80045548 --- /dev/null +++ b/a01358_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_pipe_del_process + + +Node1 + + +arax_pipe_del_process + + + + + +Node2 + + +arax_pipe_exit + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_exit + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01358_source.html b/a01358_source.html new file mode 100644 index 00000000..0c50f33e --- /dev/null +++ b/a01358_source.html @@ -0,0 +1,284 @@ + + + + + + + +Arax: arax_pipe.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_pipe.h
+
+
+Go to the documentation of this file.
1#ifndef ARAX_PIPE_HEADER
+
2#define ARAX_PIPE_HEADER
+
3#include <arax.h>
+
4#include <utils/Kv.h>
+
5#include "utils/queue.h"
+
6#include "core/arax_accel.h"
+
7#include "core/arax_task.h"
+
8
+
9#ifdef __cplusplus
+
10extern "C" {
+
11#endif /* ifdef __cplusplus */
+
12
+
13typedef struct
+
14{
+
15 int pid;
+ + +
18
+
19#define ARAX_PIPE_SHA_SIZE 48
+
20
+
24typedef struct arax_pipe
+
25{
+ +
27 void *self;
+
28 uint64_t shm_size;
+
29 uint64_t processes;
+ +
31 uint64_t proc_map[ARAX_PROC_MAP_SIZE];
+
32 uint64_t last_uid;
+ + + +
36
+ + + + + + + + +
48
+ +
59
+ +
65
+
72const char* arax_pipe_get_revision(arax_pipe_s *pipe);
+
73
+ +
81
+ +
91
+ +
102
+ +
107
+ +
117
+
124uint64_t arax_pipe_add_process(arax_pipe_s *pipe);
+
125
+
132uint64_t arax_pipe_del_process(arax_pipe_s *pipe);
+
133
+
139int arax_pipe_have_to_mmap(arax_pipe_s *pipe, int pid);
+
140
+
144void arax_pipe_mark_unmap(arax_pipe_s *pipe, int pid);
+
145
+ +
152
+
168arax_pipe_s* arax_pipe_init(void *mem, size_t size, int enforce_version);
+
169
+ +
178
+
188arax_accel_s* arax_pipe_find_accel(arax_pipe_s *pipe, const char *name,
+
189 arax_accel_type_e type);
+
190
+
198arax_proc_s* arax_pipe_find_proc(arax_pipe_s *pipe, const char *name);
+
199
+
209int arax_pipe_exit(arax_pipe_s *pipe);
+
210
+
211#ifdef ARAX_THROTTLE_DEBUG
+
212#define ARAX_PIPE_THOTTLE_DEBUG_PARAMS , const char *parent
+
213#define ARAX_PIPE_THOTTLE_DEBUG_FUNC(FUNC) __ ## FUNC
+
214#define arax_pipe_size_inc(PIPE, SZ) __arax_pipe_size_inc(PIPE, SZ, __func__)
+
215#define arax_pipe_size_dec(PIPE, SZ) __arax_pipe_size_dec(PIPE, SZ, __func__)
+
216#else
+
217#define ARAX_PIPE_THOTTLE_DEBUG_PARAMS
+
218#define ARAX_PIPE_THOTTLE_DEBUG_FUNC(FUNC) FUNC
+
219#endif
+
220
+ +
229
+ +
238
+ +
246
+ +
254
+
255#ifdef MMAP_FIXED
+
256#define pointer_to_offset(TYPE, BASE, \
+
257 VD) ( (TYPE) ( (void *) (VD) -(void *) (BASE) ) )
+
258#define offset_to_pointer(TYPE, BASE, \
+
259 VD) ( (TYPE) ( (char *) (BASE) + (size_t) (VD) ) )
+
260#else /* ifdef MMAP_FIXED */
+
261#define pointer_to_offset(TYPE, BASE, VD) ( (TYPE) VD )
+
262#define offset_to_pointer(TYPE, BASE, VD) ( (TYPE) VD )
+
263#endif /* ifdef MMAP_FIXED */
+
264
+
265#ifdef __cplusplus
+
266}
+
267#endif /* ifdef __cplusplus */
+
268
+
269#endif /* ifndef ARAX_PIPE_HEADER */
+ +
int arax_pipe_have_orphan_vaccels(arax_pipe_s *pipe)
Definition arax_pipe.c:73
+
void ARAX_PIPE_THOTTLE_DEBUG_FUNC() arax_pipe_size_dec(arax_pipe_s *pipe, size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS)
Definition arax_pipe.c:259
+
#define ARAX_PIPE_THOTTLE_DEBUG_FUNC(FUNC)
Definition arax_pipe.h:218
+
arax_proc_s * arax_pipe_find_proc(arax_pipe_s *pipe, const char *name)
Definition arax_pipe.c:219
+
int arax_pipe_have_to_mmap(arax_pipe_s *pipe, int pid)
Definition arax_pipe.c:126
+
#define ARAX_PIPE_SHA_SIZE
Definition arax_pipe.h:19
+
void ARAX_PIPE_THOTTLE_DEBUG_FUNC() arax_pipe_size_inc(arax_pipe_s *pipe, size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS)
Definition arax_pipe.c:253
+
void arax_controller_init_done()
Definition impl.c:143
+
const char * arax_pipe_get_revision(arax_pipe_s *pipe)
Definition arax_pipe.c:58
+
size_t arax_pipe_get_total_size(arax_pipe_s *pipe)
Definition arax_pipe.c:271
+
uint64_t arax_pipe_add_process(arax_pipe_s *pipe)
Definition arax_pipe.c:116
+
void arax_pipe_orphan_stop(arax_pipe_s *pipe)
Definition arax_pipe.c:109
+
int arax_pipe_exit(arax_pipe_s *pipe)
Definition arax_pipe.c:241
+
#define ARAX_PIPE_THOTTLE_DEBUG_PARAMS
Definition arax_pipe.h:217
+
void arax_pipe_mark_unmap(arax_pipe_s *pipe, int pid)
Definition arax_pipe.c:148
+
void * arax_pipe_mmap_address(arax_pipe_s *pipe)
Definition arax_pipe.c:165
+
arax_vaccel_s * arax_pipe_get_orphan_vaccel(arax_pipe_s *pipe)
Definition arax_pipe.c:78
+
size_t arax_pipe_get_available_size(arax_pipe_s *pipe)
Definition arax_pipe.c:265
+
int arax_pipe_delete_accel(arax_pipe_s *pipe, arax_accel_s *accel)
Definition arax_pipe.c:175
+
void arax_pipe_add_orphan_vaccel(arax_pipe_s *pipe, arax_vaccel_s *vac)
Definition arax_pipe.c:63
+
void arax_pipe_remove_orphan_vaccel(arax_pipe_s *pipe, arax_vaccel_s *vac)
Definition arax_pipe.c:100
+
arax_pipe_s * arax_pipe_init(void *mem, size_t size, int enforce_version)
Definition arax_pipe.c:5
+
arax_pipe_s * arax_controller_init_start()
Definition impl.c:138
+
struct arax_pipe arax_pipe_s
+
arax_accel_s * arax_pipe_find_accel(arax_pipe_s *pipe, const char *name, arax_accel_type_e type)
Definition arax_pipe.c:194
+
uint64_t arax_pipe_del_process(arax_pipe_s *pipe)
Definition arax_pipe.c:121
+
enum arax_accel_type arax_accel_type_e
+ + +
volatile uint32_t utils_spinlock
Definition spinlock.h:10
+ + + + + + + + + + + + + + + + +
utils_list_s orphan_vacs
Definition arax_pipe.h:41
+
async_condition_s orphan_cond
Definition arax_pipe.h:40
+
arax_throttle_s throttle
Definition arax_pipe.h:35
+
uint64_t processes
Definition arax_pipe.h:29
+
uint64_t shm_size
Definition arax_pipe.h:28
+
arch_alloc_s allocator
Definition arax_pipe.h:46
+
uint64_t proc_map[ARAX_PROC_MAP_SIZE]
Definition arax_pipe.h:31
+
uint64_t last_uid
Definition arax_pipe.h:32
+
utils_spinlock proc_lock
Definition arax_pipe.h:30
+
char sha[ARAX_PIPE_SHA_SIZE+1]
Definition arax_pipe.h:26
+
int cntrl_ready
Definition arax_pipe.h:37
+
utils_kv_s ass_kv
Definition arax_pipe.h:43
+
async_meta_s async
Definition arax_pipe.h:34
+
async_condition_s cntrl_ready_cond
Definition arax_pipe.h:38
+
void * self
Definition arax_pipe.h:27
+
utils_kv_s metrics_kv
Definition arax_pipe.h:44
+
arax_object_repo_s objs
Definition arax_pipe.h:33
+
+
+ + + + diff --git a/a01359.map b/a01359.map new file mode 100644 index 00000000..1ec338ac --- /dev/null +++ b/a01359.map @@ -0,0 +1,66 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01359.md5 b/a01359.md5 new file mode 100644 index 00000000..c565e203 --- /dev/null +++ b/a01359.md5 @@ -0,0 +1 @@ +2bd28d25af316210b633b7e2bac112e8 \ No newline at end of file diff --git a/a01359.svg b/a01359.svg new file mode 100644 index 00000000..9ad8e471 --- /dev/null +++ b/a01359.svg @@ -0,0 +1,588 @@ + + + + + + +arax_pipe.h + + +Node1 + + +arax_pipe.h + + + + + +Node2 + + +arax.h + + + + + +Node1->Node2 + + + + + + + + +Node9 + + +utils/Kv.h + + + + + +Node1->Node9 + + + + + + + + +Node15 + + +utils/queue.h + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +core/arax_accel.h + + + + + +Node1->Node16 + + + + + + + + +Node23 + + +core/arax_task.h + + + + + +Node1->Node23 + + + + + + + + +Node3 + + +stdio.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stddef.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_types.h + + + + + +Node2->Node5 + + + + + + + + +Node8 + + +core/arax_accel_types.h + + + + + +Node2->Node8 + + + + + + + + +Node6 + + +sys/time.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +time.h + + + + + +Node5->Node7 + + + + + + + + +Node8->Node5 + + + + + + + + +Node9->Node4 + + + + + + + + +Node10 + + +conf.h + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +spinlock.h + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +stdint.h + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +utils/arax_assert.h + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +compat.h + + + + + +Node13->Node14 + + + + + + + + +Node15->Node4 + + + + + + + + +Node15->Node10 + + + + + + + + +Node15->Node11 + + + + + + + + +Node15->Node12 + + + + + + + + +Node16->Node2 + + + + + + + + +Node17 + + +async.h + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +core/arax_vaccel.h + + + + + +Node16->Node18 + + + + + + + + +Node22 + + +core/arax_throttle.h + + + + + +Node16->Node22 + + + + + + + + +Node18->Node15 + + + + + + + + +Node18->Node16 + + + + + + + + +Node18->Node17 + + + + + + + + +Node19 + + +core/arax_object.h + + + + + +Node18->Node19 + + + + + + + + +Node19->Node11 + + + + + + + + +Node20 + + +utils/list.h + + + + + +Node19->Node20 + + + + + + + + +Node21 + + +arch/alloc.h + + + + + +Node19->Node21 + + + + + + + + +Node20->Node4 + + + + + + + + +Node20->Node12 + + + + + + + + +Node22->Node17 + + + + + + + + +Node23->Node17 + + + + + + + + +Node24 + + +core/arax_proc.h + + + + + +Node23->Node24 + + + + + + + + +Node24->Node2 + + + + + + + + +Node24->Node19 + + + + + + + + diff --git a/a01360.map b/a01360.map new file mode 100644 index 00000000..60068d67 --- /dev/null +++ b/a01360.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01360.md5 b/a01360.md5 new file mode 100644 index 00000000..18343258 --- /dev/null +++ b/a01360.md5 @@ -0,0 +1 @@ +5aaaa1196723e25875bf8e012ae43f1a \ No newline at end of file diff --git a/a01360.svg b/a01360.svg new file mode 100644 index 00000000..7a3fafe5 --- /dev/null +++ b/a01360.svg @@ -0,0 +1,183 @@ + + + + + + +arax_pipe.h + + +Node1 + + +arax_pipe.h + + + + + +Node2 + + +arax_accel.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_object.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +arax_pipe.c + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +arax_plot.c + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +arax_ptr.c + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +arax_task.c + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +arax_vaccel.c + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +impl.c + + + + + +Node1->Node10 + + + + + + + + diff --git a/a01361.html b/a01361.html new file mode 100644 index 00000000..3917d3c3 --- /dev/null +++ b/a01361.html @@ -0,0 +1,541 @@ + + + + + + + +Arax: arax_types.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_types.h File Reference
+
+
+
#include <sys/time.h>
+#include <time.h>
+
+ + Include dependency graph for arax_types.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + +

+Data Structures

struct  arax_accel_stats
 
struct  utils_timer_s
 
struct  arax_task_stats
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef void arax_accel
 
typedef void arax_proc
 
typedef struct arax_pipe arax_pipe_s
 
typedef struct arax_accel_stats arax_accel_stats_s
 
typedef struct utils_timer_s utils_timer_s
 
typedef enum arax_accel_state arax_accel_state_e
 
typedef void arax_task
 
typedef void arax_data
 
typedef enum arax_task_state_e arax_task_state_e
 
typedef struct arax_task_stats arax_task_stats_s
 
typedef enum arax_accel_type arax_accel_type_e
 
typedef struct arch_alloc_s arch_alloc_s
 
typedef struct async_meta_s async_meta_s
 
typedef void * arax_buffer_s
 
typedef arax_task_state_e() AraxFunctor(arax_task *)
 
+ + + + + + + +

+Enumerations

enum  arax_accel_state { accel_failed +, accel_idle +, accel_busy + }
 
enum  arax_task_state_e { task_failed +, task_issued +, task_completed + }
 
enum  arax_accel_type {
+  ANY = 0 +, GPU = 1 +, GPU_SOFT = 2 +, CPU = 3 +,
+  SDA = 4 +, NANO_ARM = 5 +, NANO_CORE = 6 +, OPEN_CL = 7 +,
+  HIP = 8 +, ARAX_ACCEL_TYPES +
+ }
 
+

Typedef Documentation

+ +

◆ arax_accel

+ +
+
+ + + + +
typedef void arax_accel
+
+

arax_accel: Accelerator descriptor.

+ +

Definition at line 9 of file arax_types.h.

+ +
+
+ +

◆ arax_accel_state_e

+ +
+
+ + + + +
typedef enum arax_accel_state arax_accel_state_e
+
+

Accelerator State enumeration.

+ +
+
+ +

◆ arax_accel_stats_s

+ +
+
+ + + + +
typedef struct arax_accel_stats arax_accel_stats_s
+
+

Accelerator Statistics

+ +
+
+ +

◆ arax_accel_type_e

+ +
+
+ + + + +
typedef enum arax_accel_type arax_accel_type_e
+
+

Accelerator type enumeration. NOTE: If updated update types_map variable in arax_accel_types.c

+ +
+
+ +

◆ arax_buffer_s

+ +
+
+ + + + +
typedef void* arax_buffer_s
+
+ +

Definition at line 102 of file arax_types.h.

+ +
+
+ +

◆ arax_data

+ +
+
+ + + + +
typedef void arax_data
+
+

arax_data: Opaque data pointer.

+ +

Definition at line 56 of file arax_types.h.

+ +
+
+ +

◆ arax_pipe_s

+ +
+
+ + + + +
typedef struct arax_pipe arax_pipe_s
+
+

Arax Pipe instance

+ +

Definition at line 19 of file arax_types.h.

+ +
+
+ +

◆ arax_proc

+ +
+
+ + + + +
typedef void arax_proc
+
+

arax_proc: Process descriptor.

+ +

Definition at line 14 of file arax_types.h.

+ +
+
+ +

◆ arax_task

+ +
+
+ + + + +
typedef void arax_task
+
+

Arax Task Descriptor

+ +

Definition at line 51 of file arax_types.h.

+ +
+
+ +

◆ arax_task_state_e

+ +
+
+ + + + +
typedef enum arax_task_state_e arax_task_state_e
+
+

Arax Task State enumeration.

+ +
+
+ +

◆ arax_task_stats_s

+ +
+
+ + + + +
typedef struct arax_task_stats arax_task_stats_s
+
+

Arax Task Statistics

+ +
+
+ +

◆ AraxFunctor

+ +
+
+ + + + +
typedef arax_task_state_e() AraxFunctor(arax_task *)
+
+

Receives arguments and inputs/outputs. Performs argument marshalling and task issue to accelerator.

+ +

Definition at line 108 of file arax_types.h.

+ +
+
+ +

◆ arch_alloc_s

+ +
+
+ + + + +
typedef struct arch_alloc_s arch_alloc_s
+
+ +

Definition at line 96 of file arax_types.h.

+ +
+
+ +

◆ async_meta_s

+ +
+
+ + + + +
typedef struct async_meta_s async_meta_s
+
+ +

Definition at line 100 of file arax_types.h.

+ +
+
+ +

◆ utils_timer_s

+ +
+
+ + + + +
typedef struct utils_timer_s utils_timer_s
+
+ +
+
+

Enumeration Type Documentation

+ +

◆ arax_accel_state

+ +
+
+ + + + +
enum arax_accel_state
+
+

Accelerator State enumeration.

+ + + + +
Enumerator
accel_failed 

Accelerator has failed.

+
accel_idle 

Accelerator is idle.

+
accel_busy 

Accelerator is busy.

+
+ +

Definition at line 41 of file arax_types.h.

+ +
+
+ +

◆ arax_accel_type

+ +
+
+ + + + +
enum arax_accel_type
+
+

Accelerator type enumeration. NOTE: If updated update types_map variable in arax_accel_types.c

+ + + + + + + + + + + +
Enumerator
ANY 

Let Scheduler Decide
+

+
GPU 

Run on GPU with CUDA
+

+
GPU_SOFT 

Run on CPU with software CUDA
+

+
CPU 

Run Native x86 code
+

+
SDA 

Xilinx SDAaccel
+

+
NANO_ARM 

ARM accelerator core from NanoStream

+
NANO_CORE 

NanoStreams FPGA accelerator
+

+
OPEN_CL 

OpenCl Accelerators
+

+
HIP 

AMD
+

+
ARAX_ACCEL_TYPES 

End Marker
+

+
+ +

Definition at line 82 of file arax_types.h.

+ +
+
+ +

◆ arax_task_state_e

+ +
+
+ + + + +
enum arax_task_state_e
+
+

Arax Task State enumeration.

+ + + + +
Enumerator
task_failed 

Task execution failed.

+
task_issued 

Task has been issued.

+
task_completed 

Task has been completed.

+
+ +

Definition at line 61 of file arax_types.h.

+ +
+
+
+
+ + + + diff --git a/a01361.js b/a01361.js new file mode 100644 index 00000000..8e7501cd --- /dev/null +++ b/a01361.js @@ -0,0 +1,43 @@ +var a01361 = +[ + [ "arax_accel_stats", "a02330.html", "a02330" ], + [ "utils_timer_s", "a02334.html", "a02334" ], + [ "arax_task_stats", "a02338.html", "a02338" ], + [ "arax_accel", "a01361.html#a352a55d01f21eaa920c5c470049ba0b1", null ], + [ "arax_accel_state_e", "a01361.html#a177507f1b0de9d2b2d42d87bbb2701c6", null ], + [ "arax_accel_stats_s", "a01361.html#aade6fd6997075a04875ad57c660d1f15", null ], + [ "arax_accel_type_e", "a01361.html#a3dbbefe5d80673f62dfcbaf639e3c302", null ], + [ "arax_buffer_s", "a01361.html#afd85be399ac9f7ee20fd2b3184740deb", null ], + [ "arax_data", "a01361.html#aff9a6f6af3314d4e400a0279ce708701", null ], + [ "arax_pipe_s", "a01361.html#ab087accd8311146aa592d3b311608fd7", null ], + [ "arax_proc", "a01361.html#a51457fb1246927196bb92392cea9ba7c", null ], + [ "arax_task", "a01361.html#a138f30a253c72c2db8ad45ed9c172c6f", null ], + [ "arax_task_state_e", "a01361.html#a4831937118354f04bd18cf54e81b7ede", null ], + [ "arax_task_stats_s", "a01361.html#a6cb02d4d1a7a4c5c82d08a282c136559", null ], + [ "AraxFunctor", "a01361.html#a219e259fb417ca51a0470201a874ee80", null ], + [ "arch_alloc_s", "a01361.html#af19de5e770b600186b3da91e0c8f1190", null ], + [ "async_meta_s", "a01361.html#ad3607c4fe8a2611f206fe3362ee9a19b", null ], + [ "utils_timer_s", "a01361.html#a4946c289e5f62f87bed7fb3ddc566939", null ], + [ "arax_accel_state", "a01361.html#af33a079b704d052f2f4c963aed5f3f2a", [ + [ "accel_failed", "a01361.html#af33a079b704d052f2f4c963aed5f3f2aa42ee740d4766d30577fc3538fb098753", null ], + [ "accel_idle", "a01361.html#af33a079b704d052f2f4c963aed5f3f2aaff2507424552114cf03aac6762d211a8", null ], + [ "accel_busy", "a01361.html#af33a079b704d052f2f4c963aed5f3f2aaa8260a0e6538df7ce7fcf126832fad34", null ] + ] ], + [ "arax_accel_type", "a01361.html#a7a6f422d9a6b437f388a19e6af1575c8", [ + [ "ANY", "a01361.html#a7a6f422d9a6b437f388a19e6af1575c8aa00374190265e7b6447db44977a7dff1", null ], + [ "GPU", "a01361.html#a7a6f422d9a6b437f388a19e6af1575c8a90768d506a26e2fd926bc5920b63daad", null ], + [ "GPU_SOFT", "a01361.html#a7a6f422d9a6b437f388a19e6af1575c8a2eb76b65163fc759986a18815199ce60", null ], + [ "CPU", "a01361.html#a7a6f422d9a6b437f388a19e6af1575c8a0035eb0600d18dfc302f6bf7a7cbfa3b", null ], + [ "SDA", "a01361.html#a7a6f422d9a6b437f388a19e6af1575c8ae21c602fb61dc58e4fa361382cb31403", null ], + [ "NANO_ARM", "a01361.html#a7a6f422d9a6b437f388a19e6af1575c8a7e7d12b64ac228ea5e49fdaa2676fc06", null ], + [ "NANO_CORE", "a01361.html#a7a6f422d9a6b437f388a19e6af1575c8ae0c9e1cc9180aaec2e98578ea88e1bfb", null ], + [ "OPEN_CL", "a01361.html#a7a6f422d9a6b437f388a19e6af1575c8a37bf78d5a1906385034f1cac35972c64", null ], + [ "HIP", "a01361.html#a7a6f422d9a6b437f388a19e6af1575c8a5e3ab5c31b20310d2c87c31055b1faf4", null ], + [ "ARAX_ACCEL_TYPES", "a01361.html#a7a6f422d9a6b437f388a19e6af1575c8a76fbff26f938893b47e2b7f113fdf19b", null ] + ] ], + [ "arax_task_state_e", "a01361.html#aa2463c047bffe232c661a52a0dc7db8a", [ + [ "task_failed", "a01361.html#aa2463c047bffe232c661a52a0dc7db8aaea4c704d1c494c1f4cac58eda90716b0", null ], + [ "task_issued", "a01361.html#aa2463c047bffe232c661a52a0dc7db8aa565ef41fef08f053e44b2fe6cd6758ea", null ], + [ "task_completed", "a01361.html#aa2463c047bffe232c661a52a0dc7db8aa7a4cbe15f1a1beedac704098e782410f", null ] + ] ] +]; \ No newline at end of file diff --git a/a01361_source.html b/a01361_source.html new file mode 100644 index 00000000..3f024416 --- /dev/null +++ b/a01361_source.html @@ -0,0 +1,224 @@ + + + + + + + +Arax: arax_types.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_types.h
+
+
+Go to the documentation of this file.
1#ifndef ARAX_TALK_TYPES_HEADER
+
2#define ARAX_TALK_TYPES_HEADER
+
3#include <sys/time.h>
+
4#include <time.h>
+
5
+
9typedef void arax_accel;
+
10
+
14typedef void arax_proc;
+
15
+
19typedef struct arax_pipe arax_pipe_s;
+
20
+
24typedef struct arax_accel_stats
+
25{
+
26 // This padp is necessary as empty struct have sizeof == 1 in C++, but 0 in C
+
27 #ifndef __cplusplus
+
28 char padd;
+
29 #endif
+ +
31
+
32typedef struct utils_timer_s
+
33{
+
34 struct timespec start;
+
35 struct timespec stop;
+ +
37
+
41typedef enum arax_accel_state
+
42{
+ + + + +
47
+
51typedef void arax_task;
+
52
+
56typedef void arax_data;
+
57
+ +
62{
+ + + + +
67
+
71typedef struct arax_task_stats
+
72{
+ + + + +
77
+
82typedef enum arax_accel_type
+
83{
+
84 ANY = 0,
+
85 GPU = 1,
+ +
87 CPU = 3,
+
88 SDA = 4,
+ + +
91 OPEN_CL = 7,
+
92 HIP = 8,
+ + +
95
+ +
97
+
98typedef struct arch_alloc_s arch_alloc_s;
+
99
+ +
101
+
102typedef void *arax_buffer_s;
+
103
+ +
109
+
110#endif // ifndef ARAX_TALK_TYPES_HEADER
+
void arax_task
Definition arax_types.h:51
+
enum arax_accel_state arax_accel_state_e
+
arax_task_state_e() AraxFunctor(arax_task *)
Definition arax_types.h:108
+
void arax_accel
Definition arax_types.h:9
+
enum arax_accel_type arax_accel_type_e
+
void arax_proc
Definition arax_types.h:14
+
struct arax_task_stats arax_task_stats_s
+
arax_accel_type
Definition arax_types.h:83
+
@ CPU
Definition arax_types.h:87
+
@ GPU_SOFT
Definition arax_types.h:86
+
@ OPEN_CL
Definition arax_types.h:91
+
@ HIP
Definition arax_types.h:92
+
@ ARAX_ACCEL_TYPES
Definition arax_types.h:93
+
@ NANO_ARM
Definition arax_types.h:89
+
@ GPU
Definition arax_types.h:85
+
@ ANY
Definition arax_types.h:84
+
@ NANO_CORE
Definition arax_types.h:90
+
@ SDA
Definition arax_types.h:88
+
arax_task_state_e
Definition arax_types.h:62
+
@ task_issued
Definition arax_types.h:64
+
@ task_completed
Definition arax_types.h:65
+
@ task_failed
Definition arax_types.h:63
+
struct arax_accel_stats arax_accel_stats_s
+
arax_accel_state
Definition arax_types.h:42
+
@ accel_failed
Definition arax_types.h:43
+
@ accel_busy
Definition arax_types.h:45
+
@ accel_idle
Definition arax_types.h:44
+
void * arax_buffer_s
Definition arax_types.h:102
+
void arax_data
Definition arax_types.h:56
+ + + + + + +
struct timespec stop
Definition arax_types.h:35
+
struct timespec start
Definition arax_types.h:34
+ +
utils_timer_s task_duration
Definition arax_types.h:75
+
utils_timer_s task_duration_without_issue
Definition arax_types.h:74
+ +
+
+ + + + diff --git a/a01362.map b/a01362.map new file mode 100644 index 00000000..45abd0b6 --- /dev/null +++ b/a01362.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01362.md5 b/a01362.md5 new file mode 100644 index 00000000..37bde87e --- /dev/null +++ b/a01362.md5 @@ -0,0 +1 @@ +cb9b60adb2d9f864aba00c20d7eb3b45 \ No newline at end of file diff --git a/a01362.svg b/a01362.svg new file mode 100644 index 00000000..d5229edb --- /dev/null +++ b/a01362.svg @@ -0,0 +1,57 @@ + + + + + + +arax_types.h + + +Node1 + + +arax_types.h + + + + + +Node2 + + +sys/time.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +time.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/a01363.map b/a01363.map new file mode 100644 index 00000000..0f93893c --- /dev/null +++ b/a01363.map @@ -0,0 +1,73 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01363.md5 b/a01363.md5 new file mode 100644 index 00000000..8f43e7f1 --- /dev/null +++ b/a01363.md5 @@ -0,0 +1 @@ +bf8d94dd306e6028e1df980c4bdad43e \ No newline at end of file diff --git a/a01363.svg b/a01363.svg new file mode 100644 index 00000000..d0d723ef --- /dev/null +++ b/a01363.svg @@ -0,0 +1,651 @@ + + + + + + +arax_types.h + + +Node1 + + +arax_types.h + + + + + +Node2 + + +alloc.h + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +arax.h + + + + + +Node1->Node5 + + + + + + + + +Node25 + + +arax_accel_types.c + + + + + +Node1->Node25 + + + + + + + + +Node26 + + +arax_accel_types.h + + + + + +Node1->Node26 + + + + + + + + +Node3 + + +arax_plot.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +malloc.c + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +arax_accel.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_data.h + + + + + +Node5->Node7 + + + + + + + + +Node11 + + +arax_task.c + + + + + +Node5->Node11 + + + + + + + + +Node12 + + +impl.c + + + + + +Node5->Node12 + + + + + + + + +Node13 + + +arax_pipe.h + + + + + +Node5->Node13 + + + + + + + + +Node19 + + +arax_plot.h + + + + + +Node5->Node19 + + + + + + + + +Node20 + + +arax_proc.h + + + + + +Node5->Node20 + + + + + + + + +Node23 + + +timer.h + + + + + +Node5->Node23 + + + + + + + + +Node6->Node7 + + + + + + + + +Node10 + + +arax_object.c + + + + + +Node6->Node10 + + + + + + + + +Node6->Node13 + + + + + + + + +Node18 + + +arax_vaccel.h + + + + + +Node6->Node18 + + + + + + + + +Node8 + + +arax_data.c + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_private.h + + + + + +Node7->Node9 + + + + + + + + +Node7->Node10 + + + + + + + + +Node7->Node11 + + + + + + + + +Node7->Node12 + + + + + + + + +Node9->Node8 + + + + + + + + +Node13->Node3 + + + + + + + + +Node13->Node8 + + + + + + + + +Node13->Node10 + + + + + + + + +Node13->Node11 + + + + + + + + +Node13->Node12 + + + + + + + + +Node14 + + +arax_accel.c + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +arax_pipe.c + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +arax_ptr.c + + + + + +Node13->Node16 + + + + + + + + +Node17 + + +arax_vaccel.c + + + + + +Node13->Node17 + + + + + + + + +Node18->Node6 + + + + + + + + +Node19->Node3 + + + + + + + + +Node20->Node10 + + + + + + + + +Node21 + + +arax_proc.c + + + + + +Node20->Node21 + + + + + + + + +Node22 + + +arax_task.h + + + + + +Node20->Node22 + + + + + + + + +Node22->Node8 + + + + + + + + +Node22->Node10 + + + + + + + + +Node22->Node13 + + + + + + + + +Node23->Node11 + + + + + + + + +Node23->Node12 + + + + + + + + +Node24 + + +alloc.c + + + + + +Node23->Node24 + + + + + + + + +Node26->Node5 + + + + + + + + diff --git a/a01364.html b/a01364.html new file mode 100644 index 00000000..90971e53 --- /dev/null +++ b/a01364.html @@ -0,0 +1,665 @@ + + + + + + + +Arax: alloc.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
alloc.h File Reference
+
+
+
#include <stddef.h>
+#include "conf.h"
+#include "arax_types.h"
+#include <utils/bitmap.h>
+
+ + Include dependency graph for alloc.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + +

+Data Structures

struct  arch_alloc_s
 
struct  arch_alloc_stats_s
 
+ + + +

+Macros

#define arch_alloc_free(ALLOC, MEM)
 
+ + + +

+Typedefs

typedef void * arch_alloc_state
 
+ + + + + + + + + + + + + + + + + + + + + + + +

+Functions

int arch_alloc_init_once (arch_alloc_s *alloc, size_t size)
 
void arch_alloc_init_always (arch_alloc_s *alloc)
 
void * arch_alloc_allocate (arch_alloc_s *alloc, size_t size)
 
void _arch_alloc_free (arch_alloc_s *alloc, void *mem)
 
void arch_alloc_exit (arch_alloc_s *alloc)
 
arch_alloc_stats_s arch_alloc_stats (arch_alloc_s *alloc)
 
void arch_alloc_inspect (arch_alloc_s *alloc, void(*inspector)(void *start, void *end, size_t size, void *arg), void *arg)
 
void * arax_mmap (size_t s)
 
void * arax_ummap (void *a, size_t s)
 
arch_alloc_sarch_alloc_create_sub_alloc (arch_alloc_s *parent)
 
utils_bitmap_sarch_alloc_get_bitmap ()
 
+

Macro Definition Documentation

+ +

◆ arch_alloc_free

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define arch_alloc_free( ALLOC,
 MEM 
)
+
+Value:
({ \
+
_arch_alloc_free(ALLOC, MEM); \
+
MEM = 0; \
+
})
+

Free previously allocated memory from a arch_alloc_s instance.

+
Parameters
+ + + +
allocAn initialized arch_alloc_s instance.
memA pointer returned from arch_alloc_allocate.
+
+
+ +

Definition at line 70 of file alloc.h.

+ +
+
+

Typedef Documentation

+ +

◆ arch_alloc_state

+ +
+
+ + + + +
typedef void* arch_alloc_state
+
+ +

Definition at line 12 of file alloc.h.

+ +
+
+

Function Documentation

+ +

◆ _arch_alloc_free()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void _arch_alloc_free (arch_alloc_salloc,
void * mem 
)
+
+
+ +

◆ arax_mmap()

+ +
+
+ + + + + + + + +
void * arax_mmap (size_t s)
+
+

Allocate enough pages(4096 bytes) to hold s bytes.

Parameters
+ + +
sNumber of bytes requested (has to be multiple of BIT_ALLOCATOR_BLOCK)
+
+
+
Returns
Page alligned pointer to memory
+ +

Definition at line 143 of file dlmalloc/alloc.c.

+ +

References arax_assert, BIT_ALLOCATOR_BLOCK, BIT_ALLOCATOR_BLOCK_MASK, BITMAP_NOT_FOUND, arch_alloc_inner_s::bmp, global_alloc, arch_alloc_inner_s::start, and utils_bitmap_alloc_bits().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_ummap()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void * arax_ummap (void * a,
size_t s 
)
+
+

Release the pages starting from a and ending after bytes

Parameters
+ + + +
aPointer returned from a call of arax_mmap().
sNumber of bytes to be freed (has to be multiple of BIT_ALLOCATOR_BLOCK)
+
+
+
Returns
NULL on success
+ +

Definition at line 154 of file dlmalloc/alloc.c.

+ +

References BIT_ALLOCATOR_BLOCK, arch_alloc_inner_s::bmp, global_alloc, arch_alloc_inner_s::start, and utils_bitmap_free_bits().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arch_alloc_allocate()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void * arch_alloc_allocate (arch_alloc_salloc,
size_t size 
)
+
+

Allocate contiguous memory from the alloc arch_alloc_s instance.

+
Parameters
+ + + +
allocAn initialized arch_alloc_s instance.
sizeThe size of the allocation.
+
+
+
Returns
Pointer to the beginning of size usable bytes, or NULL on failure.
+ +

Definition at line 62 of file dlmalloc/alloc.c.

+ +

References arch_alloc_inner_s::lock, arch_alloc_inner_s::root, arch_alloc_inner_s::start, utils_spinlock_lock, utils_spinlock_unlock, utils_timer_get_duration_ns, and utils_timer_set.

+ +

Referenced by arax_object_register(), arax_object_rename(), arax_plot_register_metric(), arch_alloc_create_sub_alloc(), and async_semaphore_dec().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arch_alloc_create_sub_alloc()

+ +
+
+ + + + + + + + +
arch_alloc_s * arch_alloc_create_sub_alloc (arch_alloc_sparent)
+
+

Create a sub-allocator.

+

This allocator user the same global bitmap for requesting bulk allocations, but maintains separate metadata from the 'global' allocator.

+

Use arch_alloc_free(), arch_alloc_allocate() to alloc/free memory.

+

Returned allocator should be eventually released by calling arch_alloc_exit()

Parameters
+ + +
parentallocator
+
+
+
Returns
New arch_alloc_s instance.
+ +

Definition at line 163 of file dlmalloc/alloc.c.

+ +

References arch_alloc_allocate(), and arch_alloc_inner_s::root.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arch_alloc_exit()

+ +
+
+ + + + + + + + +
void arch_alloc_exit (arch_alloc_salloc)
+
+

Release any resources claimed by the alloc arch_alloc_s instance.

Note
The shared memory segment (shm in arch_alloc_init) must be freed by the user.
+ +

Definition at line 102 of file dlmalloc/alloc.c.

+ +

References arch_alloc_inner_s::root.

+ +

Referenced by arax_pipe_exit().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arch_alloc_get_bitmap()

+ +
+
+ + + + + + + +
utils_bitmap_s * arch_alloc_get_bitmap ()
+
+ +

Definition at line 172 of file dlmalloc/alloc.c.

+ +

References arch_alloc_inner_s::bmp, and global_alloc.

+ +
+
+ +

◆ arch_alloc_init_always()

+ +
+
+ + + + + + + + +
void arch_alloc_init_always (arch_alloc_salloc)
+
+

Perform necessary initialization for every arax application.

+
Note
This has to be called on new processes, that have not called arch_alloc_init_once
+
Parameters
+ + +
alloc
+
+
+ +

Definition at line 57 of file dlmalloc/alloc.c.

+ +

References global_alloc.

+ +

Referenced by arax_pipe_init().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arch_alloc_init_once()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int arch_alloc_init_once (arch_alloc_salloc,
size_t size 
)
+
+

Initialize a arch_alloc_s instance on a mapped shared memory segment.

+
Note
This only has to be called by the first process, to initialize global state
+
Parameters
+ + + +
allocPointer to be filled with initialized instance.
sizeThe size of the shared memory segment in bytes.
+
+
+
Returns
0 on success.
+ +

Definition at line 27 of file dlmalloc/alloc.c.

+ +

References BIT_ALLOCATOR_BLOCK, BIT_ALLOCATOR_BLOCK_MASK, BITS_PER_PAGE, arch_alloc_inner_s::bmp, global_alloc, arch_alloc_inner_s::lock, arch_alloc_inner_s::root, arch_alloc_inner_s::start, utils_bitmap_init(), and utils_spinlock_init.

+ +

Referenced by arax_pipe_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arch_alloc_inspect()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void arch_alloc_inspect (arch_alloc_salloc,
void(*)(void *start, void *end, size_t size, void *arg) inspector,
void * arg 
)
+
+ +

Definition at line 135 of file dlmalloc/alloc.c.

+ +

References inspect_walker_state::arg, inspect_walker(), inspect_walker_state::inspector, and arch_alloc_inner_s::root.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arch_alloc_stats()

+ +
+
+ + + + + + + + +
arch_alloc_stats_s arch_alloc_stats (arch_alloc_salloc)
+
+ +

Definition at line 117 of file dlmalloc/alloc.c.

+ +

References _arch_alloc_mspace_mallinfo(), and arch_alloc_inner_s::root.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01364.js b/a01364.js new file mode 100644 index 00000000..32ae9184 --- /dev/null +++ b/a01364.js @@ -0,0 +1,18 @@ +var a01364 = +[ + [ "arch_alloc_s", "a02182.html", "a02182" ], + [ "arch_alloc_stats_s", "a02186.html", "a02186" ], + [ "arch_alloc_free", "a01364.html#a143da5e8efe294ade096fed0edc6fc3c", null ], + [ "arch_alloc_state", "a01364.html#a6cade65ca0ac4f9be553291bfef9daf4", null ], + [ "_arch_alloc_free", "a01364.html#afc64b9dda94926a3a44b983eb4879f34", null ], + [ "arax_mmap", "a01364.html#a645f029b25098d24aca61b20beabe1bf", null ], + [ "arax_ummap", "a01364.html#a169e798e54b8e0933d5c39960d6c2ad3", null ], + [ "arch_alloc_allocate", "a01364.html#a6b7a76d9da9e24d1dd4f8fc768b342b0", null ], + [ "arch_alloc_create_sub_alloc", "a01364.html#a32b9155cb5133ef21023a1ff4653bf04", null ], + [ "arch_alloc_exit", "a01364.html#aae81034fc3fcc43abca5e10db42a7d81", null ], + [ "arch_alloc_get_bitmap", "a01364.html#a4c8fda139857abec3429d4d00f8a725c", null ], + [ "arch_alloc_init_always", "a01364.html#a75bfaa5e934f1853fc8fd536ea469ad9", null ], + [ "arch_alloc_init_once", "a01364.html#a3c628cf674eb8ffcf515df963220fb84", null ], + [ "arch_alloc_inspect", "a01364.html#a786db7497e30f72feef2ebcbc75fb775", null ], + [ "arch_alloc_stats", "a01364.html#a4a62fff2d911326edc6b805afccbfb6b", null ] +]; \ No newline at end of file diff --git a/a01364_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.map b/a01364_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.map new file mode 100644 index 00000000..776c16fb --- /dev/null +++ b/a01364_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01364_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.md5 b/a01364_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.md5 new file mode 100644 index 00000000..05abdb19 --- /dev/null +++ b/a01364_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.md5 @@ -0,0 +1 @@ +99bd4b7db21df80451306000dd14029b \ No newline at end of file diff --git a/a01364_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.svg b/a01364_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.svg new file mode 100644 index 00000000..d3bb91f7 --- /dev/null +++ b/a01364_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_ummap + + +Node1 + + +arax_ummap + + + + + +Node2 + + +utils_bitmap_free_bits + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01364_a32b9155cb5133ef21023a1ff4653bf04_cgraph.map b/a01364_a32b9155cb5133ef21023a1ff4653bf04_cgraph.map new file mode 100644 index 00000000..47db0939 --- /dev/null +++ b/a01364_a32b9155cb5133ef21023a1ff4653bf04_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01364_a32b9155cb5133ef21023a1ff4653bf04_cgraph.md5 b/a01364_a32b9155cb5133ef21023a1ff4653bf04_cgraph.md5 new file mode 100644 index 00000000..34cb077b --- /dev/null +++ b/a01364_a32b9155cb5133ef21023a1ff4653bf04_cgraph.md5 @@ -0,0 +1 @@ +566e917b957b427e7c81e604739a6c74 \ No newline at end of file diff --git a/a01364_a32b9155cb5133ef21023a1ff4653bf04_cgraph.svg b/a01364_a32b9155cb5133ef21023a1ff4653bf04_cgraph.svg new file mode 100644 index 00000000..f9f4a1b8 --- /dev/null +++ b/a01364_a32b9155cb5133ef21023a1ff4653bf04_cgraph.svg @@ -0,0 +1,40 @@ + + + + + + +arch_alloc_create_sub_alloc + + +Node1 + + +arch_alloc_create_sub +_alloc + + + + + +Node2 + + +arch_alloc_allocate + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01364_a3c628cf674eb8ffcf515df963220fb84_cgraph.map b/a01364_a3c628cf674eb8ffcf515df963220fb84_cgraph.map new file mode 100644 index 00000000..8d1f1cb3 --- /dev/null +++ b/a01364_a3c628cf674eb8ffcf515df963220fb84_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01364_a3c628cf674eb8ffcf515df963220fb84_cgraph.md5 b/a01364_a3c628cf674eb8ffcf515df963220fb84_cgraph.md5 new file mode 100644 index 00000000..0b413bad --- /dev/null +++ b/a01364_a3c628cf674eb8ffcf515df963220fb84_cgraph.md5 @@ -0,0 +1 @@ +d1942b1c9c798e15cd69b83404bbb348 \ No newline at end of file diff --git a/a01364_a3c628cf674eb8ffcf515df963220fb84_cgraph.svg b/a01364_a3c628cf674eb8ffcf515df963220fb84_cgraph.svg new file mode 100644 index 00000000..bd6f0e77 --- /dev/null +++ b/a01364_a3c628cf674eb8ffcf515df963220fb84_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arch_alloc_init_once + + +Node1 + + +arch_alloc_init_once + + + + + +Node2 + + +utils_bitmap_init + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01364_a3c628cf674eb8ffcf515df963220fb84_icgraph.map b/a01364_a3c628cf674eb8ffcf515df963220fb84_icgraph.map new file mode 100644 index 00000000..db81e3e5 --- /dev/null +++ b/a01364_a3c628cf674eb8ffcf515df963220fb84_icgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01364_a3c628cf674eb8ffcf515df963220fb84_icgraph.md5 b/a01364_a3c628cf674eb8ffcf515df963220fb84_icgraph.md5 new file mode 100644 index 00000000..5f01ab34 --- /dev/null +++ b/a01364_a3c628cf674eb8ffcf515df963220fb84_icgraph.md5 @@ -0,0 +1 @@ +8ac0eb4b68bdef2fee0bef9873f038c8 \ No newline at end of file diff --git a/a01364_a3c628cf674eb8ffcf515df963220fb84_icgraph.svg b/a01364_a3c628cf674eb8ffcf515df963220fb84_icgraph.svg new file mode 100644 index 00000000..ff8eb798 --- /dev/null +++ b/a01364_a3c628cf674eb8ffcf515df963220fb84_icgraph.svg @@ -0,0 +1,203 @@ + + + + + + +arch_alloc_init_once + + +Node1 + + +arch_alloc_init_once + + + + + +Node2 + + +arax_pipe_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01364_a4a62fff2d911326edc6b805afccbfb6b_cgraph.map b/a01364_a4a62fff2d911326edc6b805afccbfb6b_cgraph.map new file mode 100644 index 00000000..3440ab17 --- /dev/null +++ b/a01364_a4a62fff2d911326edc6b805afccbfb6b_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01364_a4a62fff2d911326edc6b805afccbfb6b_cgraph.md5 b/a01364_a4a62fff2d911326edc6b805afccbfb6b_cgraph.md5 new file mode 100644 index 00000000..4dea9955 --- /dev/null +++ b/a01364_a4a62fff2d911326edc6b805afccbfb6b_cgraph.md5 @@ -0,0 +1 @@ +2156b87cee861a37cab04fc7e8b897f7 \ No newline at end of file diff --git a/a01364_a4a62fff2d911326edc6b805afccbfb6b_cgraph.svg b/a01364_a4a62fff2d911326edc6b805afccbfb6b_cgraph.svg new file mode 100644 index 00000000..b4f3fb8b --- /dev/null +++ b/a01364_a4a62fff2d911326edc6b805afccbfb6b_cgraph.svg @@ -0,0 +1,40 @@ + + + + + + +arch_alloc_stats + + +Node1 + + +arch_alloc_stats + + + + + +Node2 + + +_arch_alloc_mspace +_mallinfo + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01364_a645f029b25098d24aca61b20beabe1bf_cgraph.map b/a01364_a645f029b25098d24aca61b20beabe1bf_cgraph.map new file mode 100644 index 00000000..15401d9b --- /dev/null +++ b/a01364_a645f029b25098d24aca61b20beabe1bf_cgraph.map @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/a01364_a645f029b25098d24aca61b20beabe1bf_cgraph.md5 b/a01364_a645f029b25098d24aca61b20beabe1bf_cgraph.md5 new file mode 100644 index 00000000..8eb16151 --- /dev/null +++ b/a01364_a645f029b25098d24aca61b20beabe1bf_cgraph.md5 @@ -0,0 +1 @@ +d05b096a54b9f7d7bd53422b83ca0c43 \ No newline at end of file diff --git a/a01364_a645f029b25098d24aca61b20beabe1bf_cgraph.svg b/a01364_a645f029b25098d24aca61b20beabe1bf_cgraph.svg new file mode 100644 index 00000000..1a7da096 --- /dev/null +++ b/a01364_a645f029b25098d24aca61b20beabe1bf_cgraph.svg @@ -0,0 +1,138 @@ + + + + + + +arax_mmap + + +Node1 + + +arax_mmap + + + + + +Node2 + + +utils_bitmap_alloc_bits + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +find_start + + + + + +Node2->Node3 + + + + + + + + +Node7 + + +utils_bitmap_free + + + + + +Node2->Node7 + + + + + + + + +Node4 + + +find_start_big + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +find_start_small + + + + + +Node3->Node6 + + + + + + + + +Node5 + + +find_end_small + + + + + +Node4->Node5 + + + + + + + + +Node6->Node5 + + + + + + + + diff --git a/a01364_a6b7a76d9da9e24d1dd4f8fc768b342b0_icgraph.map b/a01364_a6b7a76d9da9e24d1dd4f8fc768b342b0_icgraph.map new file mode 100644 index 00000000..8ce96568 --- /dev/null +++ b/a01364_a6b7a76d9da9e24d1dd4f8fc768b342b0_icgraph.map @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01364_a6b7a76d9da9e24d1dd4f8fc768b342b0_icgraph.md5 b/a01364_a6b7a76d9da9e24d1dd4f8fc768b342b0_icgraph.md5 new file mode 100644 index 00000000..8b0bfbca --- /dev/null +++ b/a01364_a6b7a76d9da9e24d1dd4f8fc768b342b0_icgraph.md5 @@ -0,0 +1 @@ +ad1c7c62d2669dc3660d0eaa8b40acdc \ No newline at end of file diff --git a/a01364_a6b7a76d9da9e24d1dd4f8fc768b342b0_icgraph.svg b/a01364_a6b7a76d9da9e24d1dd4f8fc768b342b0_icgraph.svg new file mode 100644 index 00000000..be68b18b --- /dev/null +++ b/a01364_a6b7a76d9da9e24d1dd4f8fc768b342b0_icgraph.svg @@ -0,0 +1,719 @@ + + + + + + +arch_alloc_allocate + + +Node1 + + +arch_alloc_allocate + + + + + +Node2 + + +arax_object_register + + + + + +Node1->Node2 + + + + + + + + +Node20 + + +arax_object_rename + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +arax_plot_register +_metric + + + + + +Node1->Node21 + + + + + + + + +Node22 + + +arch_alloc_create_sub +_alloc + + + + + +Node1->Node22 + + + + + + + + +Node23 + + +async_semaphore_dec + + + + + +Node1->Node23 + + + + + + + + +Node3 + + +arax_accel_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_init_aligned + + + + + +Node2->Node4 + + + + + + + + +Node7 + + +arax_proc_init + + + + + +Node2->Node7 + + + + + + + + +Node9 + + +arax_task_alloc + + + + + +Node2->Node9 + + + + + + + + +Node17 + + +arax_vaccel_init + + + + + +Node2->Node17 + + + + + + + + +Node5 + + +arax_data_init + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +ARAX_BUFFER + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +arax_proc_register + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +arax_task_issue + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_allocate +_remote + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_data_get + + + + + +Node10->Node12 + + + + + + + + +Node14 + + +arax_data_set + + + + + +Node10->Node14 + + + + + + + + +Node15 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node10->Node15 + + + + + + + + +Node16 + + +arax_task_issue_sync + + + + + +Node10->Node16 + + + + + + + + +Node13 + + +arax_data_memcpy + + + + + +Node12->Node13 + + + + + + + + +Node14->Node13 + + + + + + + + +Node17->Node3 + + + + + + + + +Node18 + + +arax_accel_acquire_phys + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +arax_accel_acquire_type + + + + + +Node17->Node19 + + + + + + + + +Node24 + + +async_condition_wait + + + + + +Node23->Node24 + + + + + + + + +Node25 + + +_arax_init + + + + + +Node24->Node25 + + + + + + + + +Node32 + + +arax_accel_wait_for_task + + + + + +Node24->Node32 + + + + + + + + +Node33 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node24->Node33 + + + + + + + + +Node34 + + +arax_throttle_size_dec + + + + + +Node24->Node34 + + + + + + + + +Node26 + + +arax_controller_init +_start + + + + + +Node25->Node26 + + + + + + + + +Node27 + + +arax_init + + + + + +Node25->Node27 + + + + + + + + +Node27->Node21 + + + + + + + + +Node28 + + +arax_ptr_valid + + + + + +Node27->Node28 + + + + + + + + +Node28->Node21 + + + + + + + + +Node29 + + +_arax_assert_obj + + + + + +Node28->Node29 + + + + + + + + +Node30 + + +arax_data_ref + + + + + +Node28->Node30 + + + + + + + + +Node31 + + +arax_data_ref_offset + + + + + +Node28->Node31 + + + + + + + + +Node30->Node31 + + + + + + + + +Node35 + + +arax_accel_size_dec + + + + + +Node34->Node35 + + + + + + + + +Node36 + + +arax_pipe_size_dec + + + + + +Node34->Node36 + + + + + + + + +Node35->Node11 + + + + + + + + +Node36->Node2 + + + + + + + + diff --git a/a01364_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.map b/a01364_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.map new file mode 100644 index 00000000..e77de1d5 --- /dev/null +++ b/a01364_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01364_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.md5 b/a01364_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.md5 new file mode 100644 index 00000000..8887fc43 --- /dev/null +++ b/a01364_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.md5 @@ -0,0 +1 @@ +a4029dbd6f07ddae33e812b311389d31 \ No newline at end of file diff --git a/a01364_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.svg b/a01364_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.svg new file mode 100644 index 00000000..9bde6c17 --- /dev/null +++ b/a01364_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.svg @@ -0,0 +1,203 @@ + + + + + + +arch_alloc_init_always + + +Node1 + + +arch_alloc_init_always + + + + + +Node2 + + +arax_pipe_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01364_a786db7497e30f72feef2ebcbc75fb775_cgraph.map b/a01364_a786db7497e30f72feef2ebcbc75fb775_cgraph.map new file mode 100644 index 00000000..5adaae56 --- /dev/null +++ b/a01364_a786db7497e30f72feef2ebcbc75fb775_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01364_a786db7497e30f72feef2ebcbc75fb775_cgraph.md5 b/a01364_a786db7497e30f72feef2ebcbc75fb775_cgraph.md5 new file mode 100644 index 00000000..4066468b --- /dev/null +++ b/a01364_a786db7497e30f72feef2ebcbc75fb775_cgraph.md5 @@ -0,0 +1 @@ +87ca36cbf511b5895dc9ed7789a3e7ea \ No newline at end of file diff --git a/a01364_a786db7497e30f72feef2ebcbc75fb775_cgraph.svg b/a01364_a786db7497e30f72feef2ebcbc75fb775_cgraph.svg new file mode 100644 index 00000000..bb169992 --- /dev/null +++ b/a01364_a786db7497e30f72feef2ebcbc75fb775_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arch_alloc_inspect + + +Node1 + + +arch_alloc_inspect + + + + + +Node2 + + +inspect_walker + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01364_aae81034fc3fcc43abca5e10db42a7d81_icgraph.map b/a01364_aae81034fc3fcc43abca5e10db42a7d81_icgraph.map new file mode 100644 index 00000000..f1d38c7a --- /dev/null +++ b/a01364_aae81034fc3fcc43abca5e10db42a7d81_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01364_aae81034fc3fcc43abca5e10db42a7d81_icgraph.md5 b/a01364_aae81034fc3fcc43abca5e10db42a7d81_icgraph.md5 new file mode 100644 index 00000000..6f8da5c4 --- /dev/null +++ b/a01364_aae81034fc3fcc43abca5e10db42a7d81_icgraph.md5 @@ -0,0 +1 @@ +d95f56ca498e4ee357517ab187e0c235 \ No newline at end of file diff --git a/a01364_aae81034fc3fcc43abca5e10db42a7d81_icgraph.svg b/a01364_aae81034fc3fcc43abca5e10db42a7d81_icgraph.svg new file mode 100644 index 00000000..fc87abef --- /dev/null +++ b/a01364_aae81034fc3fcc43abca5e10db42a7d81_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arch_alloc_exit + + +Node1 + + +arch_alloc_exit + + + + + +Node2 + + +arax_pipe_exit + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_exit + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01364_source.html b/a01364_source.html new file mode 100644 index 00000000..dfc08e5b --- /dev/null +++ b/a01364_source.html @@ -0,0 +1,203 @@ + + + + + + + +Arax: alloc.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
alloc.h
+
+
+Go to the documentation of this file.
1#ifndef ARCH_ALLOCATOR_HEADER
+
2#define ARCH_ALLOCATOR_HEADER
+
3#include <stddef.h>
+
4#include "conf.h"
+
5#include "arax_types.h"
+
6#include <utils/bitmap.h>
+
7
+
8#ifdef __cplusplus
+
9extern "C" {
+
10#endif /* ifdef __cplusplus */
+
11
+
12typedef void *arch_alloc_state;
+
13
+
14/*
+
15 * TODO:Add canarry
+
16 */
+ +
18{
+
19 #ifdef ALLOC_STATS
+
20 size_t allocs[2]; // < Number of arch_alloc_allocate(failed/successfull).
+
21 size_t frees; // < Number of arch_alloc_free.
+
22 size_t alloc_ns[2]; // < Cumulative nanoseconds spend in alloc(failed/successful).
+
23 size_t free_ns; // < Cumulative nanoseconds spend in free.
+
24 #else
+
25 // This padd is necessary as empty struct have sizeof == 1 in C++, but 0 in C
+
26 char padd;
+
27 #endif
+
28};
+
29
+
40int arch_alloc_init_once(arch_alloc_s *alloc, size_t size);
+
41
+ +
51
+
60void* arch_alloc_allocate(arch_alloc_s *alloc, size_t size);
+
61
+
62void _arch_alloc_free(arch_alloc_s *alloc, void *mem);
+
63
+
70#define arch_alloc_free(ALLOC, MEM) \
+
71 ({ \
+
72 _arch_alloc_free(ALLOC, MEM); \
+
73 MEM = 0; \
+
74 })
+
75
+
81void arch_alloc_exit(arch_alloc_s *alloc);
+
82
+
83typedef struct
+
84{
+
85 size_t total_bytes; // <Bytes available for user data AND allocator metadata.
+
86 size_t used_bytes; // <Bytes used for user data AND allocator metadata.
+
87 #ifdef ALLOC_STATS
+
88 size_t allocs[2]; // < Number of arch_alloc_allocate(failed/successful).
+
89 size_t frees; // < Number of arch_alloc_free.
+
90 size_t alloc_ns[2]; // < Cumulative nanoseconds spend in alloc(failed/successful).
+
91 size_t free_ns; // < Cumulative nanoseconds spend in free.
+
92 #endif
+ +
94
+ +
96
+
97void arch_alloc_inspect(arch_alloc_s *alloc, void (*inspector)(void *start, void *end, size_t size,
+
98 void *arg), void *arg);
+
99
+
105void* arax_mmap(size_t s);
+
106
+
113void* arax_ummap(void *a, size_t s);
+
114
+ +
128
+ +
130#ifdef __cplusplus
+
131}
+
132#endif /* ifdef __cplusplus */
+
133
+
134#endif /* ifndef ARCH_ALLOCATOR_HEADER */
+ +
void * arax_ummap(void *a, size_t s)
+
arch_alloc_s * arch_alloc_create_sub_alloc(arch_alloc_s *parent)
+
int arch_alloc_init_once(arch_alloc_s *alloc, size_t size)
+
arch_alloc_stats_s arch_alloc_stats(arch_alloc_s *alloc)
+
utils_bitmap_s * arch_alloc_get_bitmap()
+
void * arax_mmap(size_t s)
+
void * arch_alloc_allocate(arch_alloc_s *alloc, size_t size)
+
void * arch_alloc_state
Definition alloc.h:12
+
void arch_alloc_init_always(arch_alloc_s *alloc)
+
void arch_alloc_inspect(arch_alloc_s *alloc, void(*inspector)(void *start, void *end, size_t size, void *arg), void *arg)
+
void arch_alloc_exit(arch_alloc_s *alloc)
+
void _arch_alloc_free(arch_alloc_s *alloc, void *mem)
+ + + +
char padd
Definition alloc.h:26
+ +
size_t total_bytes
Definition alloc.h:85
+
size_t used_bytes
Definition alloc.h:86
+ +
+
+ + + + diff --git a/a01365.map b/a01365.map new file mode 100644 index 00000000..be0bba90 --- /dev/null +++ b/a01365.map @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01365.md5 b/a01365.md5 new file mode 100644 index 00000000..f298d15c --- /dev/null +++ b/a01365.md5 @@ -0,0 +1 @@ +6df2a87ccf0e3f74f633b965841d02b6 \ No newline at end of file diff --git a/a01365.svg b/a01365.svg new file mode 100644 index 00000000..92f12968 --- /dev/null +++ b/a01365.svg @@ -0,0 +1,210 @@ + + + + + + +alloc.h + + +Node1 + + +alloc.h + + + + + +Node2 + + +stddef.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +conf.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_types.h + + + + + +Node1->Node4 + + + + + + + + +Node7 + + +utils/bitmap.h + + + + + +Node1->Node7 + + + + + + + + +Node5 + + +sys/time.h + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +time.h + + + + + +Node4->Node6 + + + + + + + + +Node7->Node2 + + + + + + + + +Node8 + + +spinlock.h + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +stdint.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +utils/arax_assert.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +compat.h + + + + + +Node10->Node11 + + + + + + + + diff --git a/a01366.map b/a01366.map new file mode 100644 index 00000000..dedf5af4 --- /dev/null +++ b/a01366.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01366.md5 b/a01366.md5 new file mode 100644 index 00000000..9875e511 --- /dev/null +++ b/a01366.md5 @@ -0,0 +1 @@ +0af597afe75b623345af16b2f62b363a \ No newline at end of file diff --git a/a01366.svg b/a01366.svg new file mode 100644 index 00000000..99958aa7 --- /dev/null +++ b/a01366.svg @@ -0,0 +1,57 @@ + + + + + + +alloc.h + + +Node1 + + +alloc.h + + + + + +Node2 + + +arax_plot.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +malloc.c + + + + + +Node1->Node3 + + + + + + + + diff --git a/a01367.html b/a01367.html new file mode 100644 index 00000000..08e8c665 --- /dev/null +++ b/a01367.html @@ -0,0 +1,263 @@ + + + + + + + +Arax: Kv.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Kv.h File Reference
+
+
+
#include <conf.h>
+#include <stddef.h>
+#include "spinlock.h"
+
+ + Include dependency graph for Kv.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + +

+Data Structures

struct  utils_kv_s
 
struct  utils_kv_s::Pair
 
+ + + + + + + +

+Functions

void utils_kv_init (utils_kv_s *kv)
 
void utils_kv_set (utils_kv_s *kv, void *key, void *value)
 
void ** utils_kv_get (utils_kv_s *kv, void *key)
 
+

Function Documentation

+ +

◆ utils_kv_get()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void ** utils_kv_get (utils_kv_skv,
void * key 
)
+
+

Return &(kv[key]) if found.

+

Returns NULL if key not found.

+ +

Definition at line 35 of file Kv.c.

+ +

References utils_kv_s::Pair::key, utils_kv_s::kv, utils_kv_s::lock, utils_kv_s::pairs, utils_spinlock_lock, utils_spinlock_unlock, and utils_kv_s::Pair::value.

+ +
+
+ +

◆ utils_kv_init()

+ +
+
+ + + + + + + + +
void utils_kv_init (utils_kv_skv)
+
+

Initialize kv.

+ +

Definition at line 5 of file Kv.c.

+ +

References utils_kv_s::lock, and utils_spinlock_init.

+ +

Referenced by arax_pipe_init().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_kv_set()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void utils_kv_set (utils_kv_skv,
void * key,
void * value 
)
+
+

Set kv[key] = value.

+

Overwrites existing value.

+ +

Definition at line 11 of file Kv.c.

+ +

References arax_assert, utils_kv_s::Pair::key, utils_kv_s::kv, utils_kv_s::lock, utils_kv_s::pairs, utils_spinlock_lock, utils_spinlock_unlock, and utils_kv_s::Pair::value.

+ +

Referenced by arax_plot_register_metric().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01367.js b/a01367.js new file mode 100644 index 00000000..ed6d94f3 --- /dev/null +++ b/a01367.js @@ -0,0 +1,8 @@ +var a01367 = +[ + [ "utils_kv_s", "a02302.html", "a02302" ], + [ "Pair", "a02306.html", "a02306" ], + [ "utils_kv_get", "a01367.html#ab3a9ad65d11a3f800b9731cbc30e81ff", null ], + [ "utils_kv_init", "a01367.html#a2e86c7792c1e7e0e1bdf1fe1a25dcab0", null ], + [ "utils_kv_set", "a01367.html#a91805af1bb8178dbb114ff65d491f840", null ] +]; \ No newline at end of file diff --git a/a01367_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.map b/a01367_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.map new file mode 100644 index 00000000..553e799d --- /dev/null +++ b/a01367_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01367_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.md5 b/a01367_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.md5 new file mode 100644 index 00000000..95ad834f --- /dev/null +++ b/a01367_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.md5 @@ -0,0 +1 @@ +83e433247f0df4169cb37479494171d9 \ No newline at end of file diff --git a/a01367_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.svg b/a01367_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.svg new file mode 100644 index 00000000..edf209c5 --- /dev/null +++ b/a01367_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.svg @@ -0,0 +1,203 @@ + + + + + + +utils_kv_init + + +Node1 + + +utils_kv_init + + + + + +Node2 + + +arax_pipe_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01367_a91805af1bb8178dbb114ff65d491f840_icgraph.map b/a01367_a91805af1bb8178dbb114ff65d491f840_icgraph.map new file mode 100644 index 00000000..ede501b3 --- /dev/null +++ b/a01367_a91805af1bb8178dbb114ff65d491f840_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01367_a91805af1bb8178dbb114ff65d491f840_icgraph.md5 b/a01367_a91805af1bb8178dbb114ff65d491f840_icgraph.md5 new file mode 100644 index 00000000..7d51ae84 --- /dev/null +++ b/a01367_a91805af1bb8178dbb114ff65d491f840_icgraph.md5 @@ -0,0 +1 @@ +e504829a53b967cde08a4ac0653cb36e \ No newline at end of file diff --git a/a01367_a91805af1bb8178dbb114ff65d491f840_icgraph.svg b/a01367_a91805af1bb8178dbb114ff65d491f840_icgraph.svg new file mode 100644 index 00000000..687f07d8 --- /dev/null +++ b/a01367_a91805af1bb8178dbb114ff65d491f840_icgraph.svg @@ -0,0 +1,40 @@ + + + + + + +utils_kv_set + + +Node1 + + +utils_kv_set + + + + + +Node2 + + +arax_plot_register +_metric + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01367_source.html b/a01367_source.html new file mode 100644 index 00000000..a680fd8c --- /dev/null +++ b/a01367_source.html @@ -0,0 +1,152 @@ + + + + + + + +Arax: Kv.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Kv.h
+
+
+Go to the documentation of this file.
1#ifndef ARAX_KV_HEADER
+
2#define ARAX_KV_HEADER
+
3#include <conf.h>
+
4#include <stddef.h>
+
5#include "spinlock.h"
+
6
+
10typedef struct
+
11{
+
12 struct Pair
+
13 {
+
14 void *key;
+
15 void *value;
+
16 } kv[ARAX_KV_CAP];
+
17 size_t pairs;
+ + +
20
+
21#ifdef __cplusplus
+
22extern "C" {
+
23#endif /* ifdef __cplusplus */
+
24
+ +
29
+
35void utils_kv_set(utils_kv_s *kv, void *key, void *value);
+
36
+
42void** utils_kv_get(utils_kv_s *kv, void *key);
+
43
+
44#ifdef __cplusplus
+
45}
+
46#endif /* ifdef __cplusplus */
+
47
+
48#endif // ifndef ARAX_KV_HEADER
+
void utils_kv_init(utils_kv_s *kv)
Definition Kv.c:5
+
void utils_kv_set(utils_kv_s *kv, void *key, void *value)
Definition Kv.c:11
+
void ** utils_kv_get(utils_kv_s *kv, void *key)
Definition Kv.c:35
+ +
volatile uint32_t utils_spinlock
Definition spinlock.h:10
+ + +
size_t pairs
Definition Kv.h:17
+
utils_spinlock lock
Definition Kv.h:18
+ +
void * value
Definition Kv.h:15
+
void * key
Definition Kv.h:14
+
+
+ + + + diff --git a/a01368.map b/a01368.map new file mode 100644 index 00000000..2237e8be --- /dev/null +++ b/a01368.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/a01368.md5 b/a01368.md5 new file mode 100644 index 00000000..0d34d916 --- /dev/null +++ b/a01368.md5 @@ -0,0 +1 @@ +bcabce8963e79dc8b6a20b13da2e23a5 \ No newline at end of file diff --git a/a01368.svg b/a01368.svg new file mode 100644 index 00000000..235ca6d1 --- /dev/null +++ b/a01368.svg @@ -0,0 +1,129 @@ + + + + + + +Kv.h + + +Node1 + + +Kv.h + + + + + +Node2 + + +conf.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stddef.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +spinlock.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +stdint.h + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +utils/arax_assert.h + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +compat.h + + + + + +Node6->Node7 + + + + + + + + diff --git a/a01369.map b/a01369.map new file mode 100644 index 00000000..22bf56f6 --- /dev/null +++ b/a01369.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01369.md5 b/a01369.md5 new file mode 100644 index 00000000..034163a3 --- /dev/null +++ b/a01369.md5 @@ -0,0 +1 @@ +0f8a585ec8b852166b05c245f3047859 \ No newline at end of file diff --git a/a01369.svg b/a01369.svg new file mode 100644 index 00000000..f3fb94d7 --- /dev/null +++ b/a01369.svg @@ -0,0 +1,219 @@ + + + + + + +Kv.h + + +Node1 + + +Kv.h + + + + + +Node2 + + +Kv.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_accel.c + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data.c + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_object.c + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +arax_pipe.c + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +arax_plot.c + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +arax_ptr.c + + + + + +Node3->Node9 + + + + + + + + +Node10 + + +arax_task.c + + + + + +Node3->Node10 + + + + + + + + +Node11 + + +arax_vaccel.c + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +impl.c + + + + + +Node3->Node12 + + + + + + + + diff --git a/a01370.html b/a01370.html new file mode 100644 index 00000000..95a6c7d0 --- /dev/null +++ b/a01370.html @@ -0,0 +1,285 @@ + + + + + + + +Arax: arax_assert.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_assert.h File Reference
+
+
+
#include "compat.h"
+
+ + Include dependency graph for arax_assert.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + +

+Macros

#define arax_assert(EXPR)    _arax_assert(!(EXPR),#EXPR, __FILE__, __LINE__)
 
#define arax_assert_obj(OBJ, TYPE)    ARAX_CPP void _arax_assert_obj(void *obj, int type);
 
+ + + + + +

+Functions

ARAX_CPP void _arax_assert (int fail, const char *expr, const char *file, int line)
 
ARAX_CPP void _arax_assert_obj (void *obj, int type)
 
+

Macro Definition Documentation

+ +

◆ arax_assert

+ +
+
+ + + + + + + + +
#define arax_assert( EXPR)    _arax_assert(!(EXPR),#EXPR, __FILE__, __LINE__)
+
+ +

Definition at line 7 of file arax_assert.h.

+ +
+
+ +

◆ arax_assert_obj

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define arax_assert_obj( OBJ,
 TYPE 
)    ARAX_CPP void _arax_assert_obj(void *obj, int type);
+
+ +

Definition at line 12 of file arax_assert.h.

+ +
+
+

Function Documentation

+ +

◆ _arax_assert()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ARAX_CPP void _arax_assert (int fail,
const char * expr,
const char * file,
int line 
)
+
+ +

Definition at line 12 of file arax_assert.c.

+ +

References ARAX_FILE_PREFIX_LEN, and system_backtrace().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ _arax_assert_obj()

+ +
+
+ + + + + + + + + + + + + + + + + + +
ARAX_CPP void _arax_assert_obj (void * obj,
int type 
)
+
+ +

Definition at line 21 of file arax_assert.c.

+ +

References arax_assert, arax_ptr_valid(), and arax_object_s::type.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01370.js b/a01370.js new file mode 100644 index 00000000..a92e9dc0 --- /dev/null +++ b/a01370.js @@ -0,0 +1,7 @@ +var a01370 = +[ + [ "arax_assert", "a01370.html#a785994e2de62bf69795161fb28a4f750", null ], + [ "arax_assert_obj", "a01370.html#a8bb6786a4ea2ff74f4b9e4381ac8a686", null ], + [ "_arax_assert", "a01370.html#a2f4a6e64f2337b6493d4b4b45249290c", null ], + [ "_arax_assert_obj", "a01370.html#a27854e7c23d8cf99d4f5044d5a6c54f2", null ] +]; \ No newline at end of file diff --git a/a01370_a27854e7c23d8cf99d4f5044d5a6c54f2_cgraph.map b/a01370_a27854e7c23d8cf99d4f5044d5a6c54f2_cgraph.map new file mode 100644 index 00000000..e903415e --- /dev/null +++ b/a01370_a27854e7c23d8cf99d4f5044d5a6c54f2_cgraph.map @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01370_a27854e7c23d8cf99d4f5044d5a6c54f2_cgraph.md5 b/a01370_a27854e7c23d8cf99d4f5044d5a6c54f2_cgraph.md5 new file mode 100644 index 00000000..dc46524d --- /dev/null +++ b/a01370_a27854e7c23d8cf99d4f5044d5a6c54f2_cgraph.md5 @@ -0,0 +1 @@ +c4cf55cba838e57a5648f7649a0b1bd7 \ No newline at end of file diff --git a/a01370_a27854e7c23d8cf99d4f5044d5a6c54f2_cgraph.svg b/a01370_a27854e7c23d8cf99d4f5044d5a6c54f2_cgraph.svg new file mode 100644 index 00000000..b5386f73 --- /dev/null +++ b/a01370_a27854e7c23d8cf99d4f5044d5a6c54f2_cgraph.svg @@ -0,0 +1,1020 @@ + + + + + + +_arax_assert_obj + + +Node1 + + +_arax_assert_obj + + + + + +Node2 + + +arax_ptr_valid + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +_arax_init + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_pipe_get_available_size + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +arax_pipe_have_to_mmap + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +arax_pipe_init + + + + + +Node4->Node8 + + + + + + + + +Node24 + + +utils_config_alloc_path + + + + + +Node4->Node24 + + + + + + + + +Node27 + + +utils_config_get_bool + + + + + +Node4->Node27 + + + + + + + + +Node39 + + +arax_pipe_mmap_address + + + + + +Node4->Node39 + + + + + + + + +Node40 + + +async_condition_lock + + + + + +Node4->Node40 + + + + + + + + +Node42 + + +async_condition_unlock + + + + + +Node4->Node42 + + + + + + + + +Node43 + + +async_condition_wait + + + + + +Node4->Node43 + + + + + + + + +Node45 + + +async_meta_init_always + + + + + +Node4->Node45 + + + + + + + + +Node50 + + +utils_config_get_str + + + + + +Node4->Node50 + + + + + + + + +Node51 + + +system_mmap + + + + + +Node4->Node51 + + + + + + + + +Node52 + + +system_process_id + + + + + +Node4->Node52 + + + + + + + + +Node53 + + +system_total_memory + + + + + +Node4->Node53 + + + + + + + + +Node54 + + +utils_config_get_size + + + + + +Node4->Node54 + + + + + + + + +Node34 + + +utils_config_get_source + + + + + +Node4->Node34 + + + + + + + + +Node6 + + +arax_throttle_get_available_size + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +arax_object_repo_init + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +utils_list_init + + + + + +Node8->Node10 + + + + + + + + +Node12 + + +arax_pipe_add_process + + + + + +Node8->Node12 + + + + + + + + +Node13 + + +arax_throttle_init + + + + + +Node8->Node13 + + + + + + + + +Node14 + + +async_condition_init + + + + + +Node8->Node14 + + + + + + + + +Node20 + + +arch_alloc_init_always + + + + + +Node8->Node20 + + + + + + + + +Node21 + + +arch_alloc_init_once + + + + + +Node8->Node21 + + + + + + + + +Node23 + + +async_meta_init_once + + + + + +Node8->Node23 + + + + + + + + +Node38 + + +utils_kv_init + + + + + +Node8->Node38 + + + + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +utils_list_node_init + + + + + +Node10->Node11 + + + + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +async_completion_complete + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +async_completion_init + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +async_condition_unlock + + + + + +Node14->Node17 + + + + + + + + +Node19 + + +async_semaphore_init + + + + + +Node14->Node19 + + + + + + + + +Node22 + + +utils_bitmap_init + + + + + +Node21->Node22 + + + + + + + + +Node23->Node10 + + + + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +utils_config_free_path + + + + + +Node23->Node26 + + + + + + + + +Node23->Node27 + + + + + + + + +Node25 + + +system_home_path + + + + + +Node24->Node25 + + + + + + + + +Node28 + + +utils_config_get_int + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +utils_config_get_long + + + + + +Node28->Node29 + + + + + + + + +Node30 + + +_utils_config_get_str + + + + + +Node29->Node30 + + + + + + + + +Node41 + + +async_completion_wait + + + + + +Node40->Node41 + + + + + + + + +Node42->Node15 + + + + + + + + +Node43->Node15 + + + + + + + + +Node43->Node41 + + + + + + + + +Node44 + + +async_semaphore_dec + + + + + +Node43->Node44 + + + + + + + + +Node45->Node24 + + + + + + + + +Node45->Node26 + + + + + + + + +Node46 + + +async_thread + + + + + +Node45->Node46 + + + + + + + + +Node45->Node50 + + + + + + + + +Node47 + + +async_completion_check + + + + + +Node46->Node47 + + + + + + + + +Node48 + + +getVmID + + + + + +Node46->Node48 + + + + + + + + +Node49 + + +utils_list_del + + + + + +Node46->Node49 + + + + + + + + +Node50->Node30 + + + + + + + + +Node36 + + +utils_config_write_str + + + + + +Node50->Node36 + + + + + + + + +Node33 + + +system_file_size + + + + + +Node51->Node33 + + + + + + + + +Node54->Node29 + + + + + + + + +Node32 + + +system_env_var + + + + + +Node34->Node32 + + + + + + + + diff --git a/a01370_a2f4a6e64f2337b6493d4b4b45249290c_cgraph.map b/a01370_a2f4a6e64f2337b6493d4b4b45249290c_cgraph.map new file mode 100644 index 00000000..eb447e85 --- /dev/null +++ b/a01370_a2f4a6e64f2337b6493d4b4b45249290c_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01370_a2f4a6e64f2337b6493d4b4b45249290c_cgraph.md5 b/a01370_a2f4a6e64f2337b6493d4b4b45249290c_cgraph.md5 new file mode 100644 index 00000000..3f1c5555 --- /dev/null +++ b/a01370_a2f4a6e64f2337b6493d4b4b45249290c_cgraph.md5 @@ -0,0 +1 @@ +d23141a268e80632a56045f6c3f8888f \ No newline at end of file diff --git a/a01370_a2f4a6e64f2337b6493d4b4b45249290c_cgraph.svg b/a01370_a2f4a6e64f2337b6493d4b4b45249290c_cgraph.svg new file mode 100644 index 00000000..78d2ddb9 --- /dev/null +++ b/a01370_a2f4a6e64f2337b6493d4b4b45249290c_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +_arax_assert + + +Node1 + + +_arax_assert + + + + + +Node2 + + +system_backtrace + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +formatStackLine + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01370_source.html b/a01370_source.html new file mode 100644 index 00000000..093b511e --- /dev/null +++ b/a01370_source.html @@ -0,0 +1,127 @@ + + + + + + + +Arax: arax_assert.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_assert.h
+
+
+Go to the documentation of this file.
1#ifndef UTILS_ARAX_ASSERT_HEADER
+
2#define UTILS_ARAX_ASSERT_HEADER
+
3#include "compat.h"
+
4
+
5ARAX_CPP void _arax_assert(int fail, const char *expr, const char *file, int line);
+
6
+
7#define arax_assert(EXPR) \
+
8 _arax_assert(!(EXPR),#EXPR, __FILE__, __LINE__)
+
9
+
10ARAX_CPP void _arax_assert_obj(void *obj, int type);
+
11
+
12#define arax_assert_obj(OBJ, TYPE) \
+
13 ARAX_CPP void _arax_assert_obj(void *obj, int type);
+
14
+
15#endif // ifndef UTILS_ARAX_ASSERT_HEADER
+
ARAX_CPP void _arax_assert_obj(void *obj, int type)
Definition arax_assert.c:21
+
ARAX_CPP void _arax_assert(int fail, const char *expr, const char *file, int line)
Definition arax_assert.c:12
+ +
#define ARAX_CPP
Definition compat.h:24
+
+
+ + + + diff --git a/a01371.map b/a01371.map new file mode 100644 index 00000000..4ecf3b02 --- /dev/null +++ b/a01371.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01371.md5 b/a01371.md5 new file mode 100644 index 00000000..7e4212e9 --- /dev/null +++ b/a01371.md5 @@ -0,0 +1 @@ +17f7efb37921d170670c5095a4e4be58 \ No newline at end of file diff --git a/a01371.svg b/a01371.svg new file mode 100644 index 00000000..a09cc1dd --- /dev/null +++ b/a01371.svg @@ -0,0 +1,39 @@ + + + + + + +arax_assert.h + + +Node1 + + +arax_assert.h + + + + + +Node2 + + +compat.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01372.map b/a01372.map new file mode 100644 index 00000000..88653b6e --- /dev/null +++ b/a01372.map @@ -0,0 +1,94 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01372.md5 b/a01372.md5 new file mode 100644 index 00000000..76f67edd --- /dev/null +++ b/a01372.md5 @@ -0,0 +1 @@ +695765fe4958153080fa32082806917b \ No newline at end of file diff --git a/a01372.svg b/a01372.svg new file mode 100644 index 00000000..e5027196 --- /dev/null +++ b/a01372.svg @@ -0,0 +1,840 @@ + + + + + + +arax_assert.h + + +Node1 + + +arax_assert.h + + + + + +Node2 + + +arax_assert.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_throttle.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +config.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +queue.c + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +spinlock.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +Kv.h + + + + + +Node6->Node7 + + + + + + + + +Node19 + + +arax_object.h + + + + + +Node6->Node19 + + + + + + + + +Node33 + + +bitmap.h + + + + + +Node6->Node33 + + + + + + + + +Node37 + + +queue.h + + + + + +Node6->Node37 + + + + + + + + +Node8 + + +Kv.c + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_pipe.h + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_accel.c + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data.c + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +arax_object.c + + + + + +Node9->Node12 + + + + + + + + +Node13 + + +arax_pipe.c + + + + + +Node9->Node13 + + + + + + + + +Node14 + + +arax_plot.c + + + + + +Node9->Node14 + + + + + + + + +Node15 + + +arax_ptr.c + + + + + +Node9->Node15 + + + + + + + + +Node16 + + +arax_task.c + + + + + +Node9->Node16 + + + + + + + + +Node17 + + +arax_vaccel.c + + + + + +Node9->Node17 + + + + + + + + +Node18 + + +impl.c + + + + + +Node9->Node18 + + + + + + + + +Node19->Node2 + + + + + + + + +Node19->Node12 + + + + + + + + +Node20 + + +arax_data.h + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +arax_proc.h + + + + + +Node19->Node22 + + + + + + + + +Node25 + + +arax_vaccel.h + + + + + +Node19->Node25 + + + + + + + + +Node27 + + +async.h + + + + + +Node19->Node27 + + + + + + + + +Node29 + + +async.h + + + + + +Node19->Node29 + + + + + + + + +Node31 + + +async.h + + + + + +Node19->Node31 + + + + + + + + +Node20->Node11 + + + + + + + + +Node20->Node12 + + + + + + + + +Node20->Node16 + + + + + + + + +Node20->Node18 + + + + + + + + +Node21 + + +arax_data_private.h + + + + + +Node20->Node21 + + + + + + + + +Node21->Node11 + + + + + + + + +Node22->Node12 + + + + + + + + +Node23 + + +arax_proc.c + + + + + +Node22->Node23 + + + + + + + + +Node24 + + +arax_task.h + + + + + +Node22->Node24 + + + + + + + + +Node24->Node9 + + + + + + + + +Node24->Node11 + + + + + + + + +Node24->Node12 + + + + + + + + +Node26 + + +arax_accel.h + + + + + +Node25->Node26 + + + + + + + + +Node26->Node9 + + + + + + + + +Node26->Node12 + + + + + + + + +Node26->Node20 + + + + + + + + +Node26->Node25 + + + + + + + + +Node28 + + +async.c + + + + + +Node27->Node28 + + + + + + + + +Node30 + + +async.c + + + + + +Node29->Node30 + + + + + + + + +Node32 + + +async.c + + + + + +Node31->Node32 + + + + + + + + +Node34 + + +alloc.h + + + + + +Node33->Node34 + + + + + + + + +Node36 + + +bitmap.c + + + + + +Node33->Node36 + + + + + + + + +Node34->Node14 + + + + + + + + +Node35 + + +malloc.c + + + + + +Node34->Node35 + + + + + + + + +Node37->Node5 + + + + + + + + +Node37->Node9 + + + + + + + + +Node37->Node25 + + + + + + + + diff --git a/a01373.html b/a01373.html new file mode 100644 index 00000000..a231bc0f --- /dev/null +++ b/a01373.html @@ -0,0 +1,185 @@ + + + + + + + +Arax: arax_plot.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_plot.h File Reference
+
+
+
#include <stdint.h>
+#include <arax.h>
+
+ + Include dependency graph for arax_plot.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Functions

uint64_t * arax_plot_register_metric (const char *name, uint64_t *metric)
 
+

Function Documentation

+ +

◆ arax_plot_register_metric()

+ +
+
+ + + + + + + + + + + + + + + + + + +
uint64_t * arax_plot_register_metric (const char * name,
uint64_t * metric 
)
+
+

Register a new metric name and set/get the location where its value resides.

+

The value pointer metric can be null or a valid arax pointer. When null, the call will allocate space for the metric, and return the pointer. When given a pointer where arax_ptr_valid()==true, the provided pointer is used and returned.

+
Note
This should be called before starting the arax_plot executable.
+
Parameters
+ + + +
nameShort name of new metric.
metricNULL or pointer that has arax_ptr_valid()==true.
+
+
+
Returns
Pointer location of metric.
+ +

Definition at line 7 of file arax_plot.c.

+ +

References arax_pipe::allocator, arax_assert, arax_init(), arax_ptr_valid(), arch_alloc_allocate(), arax_pipe::metrics_kv, utils_kv_set(), and vpipe.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01373.js b/a01373.js new file mode 100644 index 00000000..6062d79e --- /dev/null +++ b/a01373.js @@ -0,0 +1,4 @@ +var a01373 = +[ + [ "arax_plot_register_metric", "a01373.html#a8a99bcb12e2ee55d68a029bfca9b6d51", null ] +]; \ No newline at end of file diff --git a/a01373_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.map b/a01373_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.map new file mode 100644 index 00000000..22be0130 --- /dev/null +++ b/a01373_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.map @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01373_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.md5 b/a01373_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.md5 new file mode 100644 index 00000000..cbd7739a --- /dev/null +++ b/a01373_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.md5 @@ -0,0 +1 @@ +eba59af43c3a556179df7fc1fe45eb0c \ No newline at end of file diff --git a/a01373_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.svg b/a01373_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.svg new file mode 100644 index 00000000..cf7d68e3 --- /dev/null +++ b/a01373_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.svg @@ -0,0 +1,1030 @@ + + + + + + +arax_plot_register_metric + + +Node1 + + +arax_plot_register +_metric + + + + + +Node2 + + +arax_init + + + + + +Node1->Node2 + + + + + + + + +Node54 + + +arax_ptr_valid + + + + + +Node1->Node54 + + + + + + + + +Node55 + + +arch_alloc_allocate + + + + + +Node1->Node55 + + + + + + + + +Node56 + + +utils_kv_set + + + + + +Node1->Node56 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_pipe_get_available_size + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +arax_pipe_have_to_mmap + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +arax_pipe_init + + + + + +Node3->Node7 + + + + + + + + +Node23 + + +utils_config_alloc_path + + + + + +Node3->Node23 + + + + + + + + +Node26 + + +utils_config_get_bool + + + + + +Node3->Node26 + + + + + + + + +Node38 + + +arax_pipe_mmap_address + + + + + +Node3->Node38 + + + + + + + + +Node39 + + +async_condition_lock + + + + + +Node3->Node39 + + + + + + + + +Node41 + + +async_condition_unlock + + + + + +Node3->Node41 + + + + + + + + +Node42 + + +async_condition_wait + + + + + +Node3->Node42 + + + + + + + + +Node44 + + +async_meta_init_always + + + + + +Node3->Node44 + + + + + + + + +Node49 + + +utils_config_get_str + + + + + +Node3->Node49 + + + + + + + + +Node50 + + +system_mmap + + + + + +Node3->Node50 + + + + + + + + +Node51 + + +system_process_id + + + + + +Node3->Node51 + + + + + + + + +Node52 + + +system_total_memory + + + + + +Node3->Node52 + + + + + + + + +Node53 + + +utils_config_get_size + + + + + +Node3->Node53 + + + + + + + + +Node33 + + +utils_config_get_source + + + + + +Node3->Node33 + + + + + + + + +Node5 + + +arax_throttle_get_available_size + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +arax_object_repo_init + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +utils_list_init + + + + + +Node7->Node9 + + + + + + + + +Node11 + + +arax_pipe_add_process + + + + + +Node7->Node11 + + + + + + + + +Node12 + + +arax_throttle_init + + + + + +Node7->Node12 + + + + + + + + +Node13 + + +async_condition_init + + + + + +Node7->Node13 + + + + + + + + +Node19 + + +arch_alloc_init_always + + + + + +Node7->Node19 + + + + + + + + +Node20 + + +arch_alloc_init_once + + + + + +Node7->Node20 + + + + + + + + +Node22 + + +async_meta_init_once + + + + + +Node7->Node22 + + + + + + + + +Node37 + + +utils_kv_init + + + + + +Node7->Node37 + + + + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +utils_list_node_init + + + + + +Node9->Node10 + + + + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +async_completion_complete + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +async_completion_init + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +async_condition_unlock + + + + + +Node13->Node16 + + + + + + + + +Node18 + + +async_semaphore_init + + + + + +Node13->Node18 + + + + + + + + +Node21 + + +utils_bitmap_init + + + + + +Node20->Node21 + + + + + + + + +Node22->Node9 + + + + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +utils_config_free_path + + + + + +Node22->Node25 + + + + + + + + +Node22->Node26 + + + + + + + + +Node24 + + +system_home_path + + + + + +Node23->Node24 + + + + + + + + +Node27 + + +utils_config_get_int + + + + + +Node26->Node27 + + + + + + + + +Node28 + + +utils_config_get_long + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +_utils_config_get_str + + + + + +Node28->Node29 + + + + + + + + +Node40 + + +async_completion_wait + + + + + +Node39->Node40 + + + + + + + + +Node41->Node14 + + + + + + + + +Node42->Node14 + + + + + + + + +Node42->Node40 + + + + + + + + +Node43 + + +async_semaphore_dec + + + + + +Node42->Node43 + + + + + + + + +Node44->Node23 + + + + + + + + +Node44->Node25 + + + + + + + + +Node45 + + +async_thread + + + + + +Node44->Node45 + + + + + + + + +Node44->Node49 + + + + + + + + +Node46 + + +async_completion_check + + + + + +Node45->Node46 + + + + + + + + +Node49->Node29 + + + + + + + + +Node35 + + +utils_config_write_str + + + + + +Node49->Node35 + + + + + + + + +Node32 + + +system_file_size + + + + + +Node50->Node32 + + + + + + + + +Node53->Node28 + + + + + + + + +Node31 + + +system_env_var + + + + + +Node33->Node31 + + + + + + + + +Node54->Node2 + + + + + + + + diff --git a/a01373_source.html b/a01373_source.html new file mode 100644 index 00000000..55eb7227 --- /dev/null +++ b/a01373_source.html @@ -0,0 +1,126 @@ + + + + + + + +Arax: arax_plot.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_plot.h
+
+
+Go to the documentation of this file.
1#ifndef UTILS_ARAX_PLOT_HEADER
+
2#define UTILS_ARAX_PLOT_HEADER
+
3#include <stdint.h>
+
4#include <arax.h>
+
5
+
6#ifdef __cplusplus
+
7extern "C" {
+
8#endif /* ifdef __cplusplus */
+
9
+
23uint64_t* arax_plot_register_metric(const char *name, uint64_t *metric);
+
24
+
25#ifdef __cplusplus
+
26}
+
27#endif /* ifdef __cplusplus */
+
28
+
29#endif // ifndef UTILS_ARAX_PLOT_HEADER
+ +
uint64_t * arax_plot_register_metric(const char *name, uint64_t *metric)
Definition arax_plot.c:7
+
+
+ + + + diff --git a/a01374.map b/a01374.map new file mode 100644 index 00000000..c50275ae --- /dev/null +++ b/a01374.map @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/a01374.md5 b/a01374.md5 new file mode 100644 index 00000000..5ba797e5 --- /dev/null +++ b/a01374.md5 @@ -0,0 +1 @@ +ada161b051b1483ff2b33b91f295331b \ No newline at end of file diff --git a/a01374.svg b/a01374.svg new file mode 100644 index 00000000..890042da --- /dev/null +++ b/a01374.svg @@ -0,0 +1,174 @@ + + + + + + +arax_plot.h + + +Node1 + + +arax_plot.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +stdio.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +stddef.h + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_types.h + + + + + +Node3->Node6 + + + + + + + + +Node9 + + +core/arax_accel_types.h + + + + + +Node3->Node9 + + + + + + + + +Node7 + + +sys/time.h + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +time.h + + + + + +Node6->Node8 + + + + + + + + +Node9->Node6 + + + + + + + + diff --git a/a01375.map b/a01375.map new file mode 100644 index 00000000..12acb27d --- /dev/null +++ b/a01375.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01375.md5 b/a01375.md5 new file mode 100644 index 00000000..ae5d9eb3 --- /dev/null +++ b/a01375.md5 @@ -0,0 +1 @@ +4ab9b1c0024389fe61da99df91f5f283 \ No newline at end of file diff --git a/a01375.svg b/a01375.svg new file mode 100644 index 00000000..3c54a12c --- /dev/null +++ b/a01375.svg @@ -0,0 +1,39 @@ + + + + + + +arax_plot.h + + +Node1 + + +arax_plot.h + + + + + +Node2 + + +arax_plot.c + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01376.html b/a01376.html new file mode 100644 index 00000000..175aa848 --- /dev/null +++ b/a01376.html @@ -0,0 +1,510 @@ + + + + + + + +Arax: bitmap.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
bitmap.h File Reference
+
+
+
#include "spinlock.h"
+#include <stddef.h>
+
+ + Include dependency graph for bitmap.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  utils_bitmap
 
+ + + + + +

+Macros

#define UTILS_BITMAP_CALC_BYTES(BITS)   ((sizeof(utils_bitmap_s) + sizeof(uint64_t) * ((BITS + 63) / 64)))
 
#define BITMAP_NOT_FOUND   ((size_t) -1)
 
+ + + +

+Typedefs

typedef struct utils_bitmap utils_bitmap_s
 
+ + + + + + + + + + + + + + + + + +

+Functions

utils_bitmap_sutils_bitmap_init (void *mem, size_t size_bits)
 
size_t utils_bitmap_size (utils_bitmap_s *bmp)
 
size_t utils_bitmap_used (utils_bitmap_s *bmp)
 
size_t utils_bitmap_free (utils_bitmap_s *bmp)
 
size_t utils_bitmap_alloc_bits (utils_bitmap_s *bmp, size_t bits)
 
void utils_bitmap_free_bits (utils_bitmap_s *bmp, size_t start, size_t bits)
 
size_t utils_bitmap_count_allocated (utils_bitmap_s *bmp)
 
void utils_bitmap_print_bits (utils_bitmap_s *bmp)
 
+

Macro Definition Documentation

+ +

◆ BITMAP_NOT_FOUND

+ +
+
+ + + + +
#define BITMAP_NOT_FOUND   ((size_t) -1)
+
+ +

Definition at line 18 of file bitmap.h.

+ +
+
+ +

◆ UTILS_BITMAP_CALC_BYTES

+ +
+
+ + + + + + + + +
#define UTILS_BITMAP_CALC_BYTES( BITS)   ((sizeof(utils_bitmap_s) + sizeof(uint64_t) * ((BITS + 63) / 64)))
+
+ +

Definition at line 16 of file bitmap.h.

+ +
+
+

Typedef Documentation

+ +

◆ utils_bitmap_s

+ +
+
+ + + + +
typedef struct utils_bitmap utils_bitmap_s
+
+ +
+
+

Function Documentation

+ +

◆ utils_bitmap_alloc_bits()

+ +
+
+ + + + + + + + + + + + + + + + + + +
size_t utils_bitmap_alloc_bits (utils_bitmap_sbmp,
size_t bits 
)
+
+

Allocate bits cotiguous bits from bmp and return index of first bit.

+

bmp An initialized utils_bitmap_s instance.

Returns
Bit index of allocation start.
+ +

Definition at line 217 of file bitmap.c.

+ +

References BITMAP_NOT_FOUND, utils_bitmap::bits, utils_bitmap::end, find_start(), utils_bitmap::free_p, utils_bitmap::lock, utils_bitmap_free(), utils_spinlock_lock, and utils_spinlock_unlock.

+ +

Referenced by arax_mmap().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_bitmap_count_allocated()

+ +
+
+ + + + + + + + +
size_t utils_bitmap_count_allocated (utils_bitmap_sbmp)
+
+

Count allocated bits of bmp.

+

Should always return the same value as utils_bitmap_used().

+
Note
This should only be used in tests, as it is very slow.
+

bmp An initialized utils_bitmap_s instance.

Returns
Bits allocated(set) in bits array of bmp
+ +

Definition at line 298 of file bitmap.c.

+ +

References utils_bitmap::bits, and utils_bitmap::size_bits.

+ +
+
+ +

◆ utils_bitmap_free()

+ +
+
+ + + + + + + + +
size_t utils_bitmap_free (utils_bitmap_sbmp)
+
+

Returns number of unused bits in bmp.

+
Note
This is utils_bitmap_size() - utils_bitmap_used()
+

bmp An initialized utils_bitmap_s instance.

Returns
Number of free bits in bmp.
+ +

Definition at line 53 of file bitmap.c.

+ +

References utils_bitmap::size_bits, and utils_bitmap::used_bits.

+ +

Referenced by utils_bitmap_alloc_bits().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_bitmap_free_bits()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void utils_bitmap_free_bits (utils_bitmap_sbmp,
size_t start,
size_t bits 
)
+
+

Free contiguous bits starting from start, from the bmp bitmap.

+

bmp An initialized utils_bitmap_s instance. start First bit index to be freed. bits Number of bits to free.

+ +

Definition at line 255 of file bitmap.c.

+ +

References arax_assert, BITMAP_NOT_FOUND, utils_bitmap::bits, utils_bitmap::lock, utils_bitmap::used_bits, utils_spinlock_lock, and utils_spinlock_unlock.

+ +

Referenced by arax_ummap().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_bitmap_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
utils_bitmap_s * utils_bitmap_init (void * mem,
size_t size_bits 
)
+
+

Initialize bitmap starting in mem, holding size_bits bits.

+
Note
Ensure mem is greater than or equal to UTILS_BITMAP_CALC_BYTES()
+
Parameters
+ + + +
memPointer to memory of UTILS_BITMAP_CALC_BYTES(size_bits) or more
size_bitsNumber of bits this bitmap will hold.
+
+
+
Returns
Returns mem on success, null otherwise.
+

A bit about the bitmap:

+

It is arranged in 'chunks' of uint64_t (8 bytes).

+

Initially all bits are 0, meaning free.

+

Allocation happens in squential order for chunks. First chunk[0] will be usedm then chunk[1], etc...

+

Inside a chunk bit allocation occurs in a lsb to msb order:

+

An initialy empty chunk: 0x0000 0000 0000 0000 After a 16bit allocation: 0x0000 0000 0000 000F After an 8bit allocation: 0x0000 0000 0000 008F

+ +

Definition at line 25 of file bitmap.c.

+ +

References utils_bitmap::bits, utils_bitmap::end, utils_bitmap::free_p, utils_bitmap::lock, utils_bitmap::size_bits, utils_bitmap::used_bits, and utils_spinlock_init.

+ +

Referenced by arch_alloc_init_once().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_bitmap_print_bits()

+ +
+
+ + + + + + + + +
void utils_bitmap_print_bits (utils_bitmap_sbmp)
+
+

Print the bitmap oc bmp, in stderr.

+
Note
Use this for debuging
+

bmp An initialized utils_bitmap_s instance.

+ +

Definition at line 311 of file bitmap.c.

+ +

References utils_bitmap::bits, and utils_bitmap::size_bits.

+ +
+
+ +

◆ utils_bitmap_size()

+ +
+
+ + + + + + + + +
size_t utils_bitmap_size (utils_bitmap_sbmp)
+
+

Returns number of bits bmp holds, same as the value given in utils_bitmap_init.

+

bmp An initialized utils_bitmap_s instance.

Returns
Bits contained in bmp
+ +

Definition at line 43 of file bitmap.c.

+ +

References utils_bitmap::size_bits.

+ +
+
+ +

◆ utils_bitmap_used()

+ +
+
+ + + + + + + + +
size_t utils_bitmap_used (utils_bitmap_sbmp)
+
+

Returns number of bits currently used in bmp.

+

bmp An initialized utils_bitmap_s instance.

Returns
Number of allocated bits in bmp.
+ +

Definition at line 48 of file bitmap.c.

+ +

References utils_bitmap::used_bits.

+ +
+
+
+
+ + + + diff --git a/a01376.js b/a01376.js new file mode 100644 index 00000000..af314eec --- /dev/null +++ b/a01376.js @@ -0,0 +1,15 @@ +var a01376 = +[ + [ "utils_bitmap", "a02294.html", "a02294" ], + [ "BITMAP_NOT_FOUND", "a01376.html#ad43f6b6827bef2f04fd86c5bc8d73805", null ], + [ "UTILS_BITMAP_CALC_BYTES", "a01376.html#ae52d40f9d43ef1bb41eede6788655038", null ], + [ "utils_bitmap_s", "a01376.html#a1c71fd5d84d31bccd193a226f60dbb3e", null ], + [ "utils_bitmap_alloc_bits", "a01376.html#a306b62b1bc50d56e80ba7b7adb02f961", null ], + [ "utils_bitmap_count_allocated", "a01376.html#a9959e03fdd8848c11ffd215dd8f59d14", null ], + [ "utils_bitmap_free", "a01376.html#a84bb16b03a95a60c4748c189dafa8a54", null ], + [ "utils_bitmap_free_bits", "a01376.html#a7e0e82902c3c17ef427f5876beb5a04e", null ], + [ "utils_bitmap_init", "a01376.html#a6699a24a46fb1be57ca21abf8bc61928", null ], + [ "utils_bitmap_print_bits", "a01376.html#af2ac1952df551f3bc3f3b14a3e2ac019", null ], + [ "utils_bitmap_size", "a01376.html#aabeb9bb5dd959f679552a4b446a1194f", null ], + [ "utils_bitmap_used", "a01376.html#aa705f02ae4c1ab0b9864dda0924dade1", null ] +]; \ No newline at end of file diff --git a/a01376_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.map b/a01376_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.map new file mode 100644 index 00000000..8aff1605 --- /dev/null +++ b/a01376_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/a01376_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.md5 b/a01376_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.md5 new file mode 100644 index 00000000..3d7a5b91 --- /dev/null +++ b/a01376_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.md5 @@ -0,0 +1 @@ +62d561c206321797229d434beabccb81 \ No newline at end of file diff --git a/a01376_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.svg b/a01376_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.svg new file mode 100644 index 00000000..19251f70 --- /dev/null +++ b/a01376_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.svg @@ -0,0 +1,120 @@ + + + + + + +utils_bitmap_alloc_bits + + +Node1 + + +utils_bitmap_alloc_bits + + + + + +Node2 + + +find_start + + + + + +Node1->Node2 + + + + + + + + +Node6 + + +utils_bitmap_free + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +find_start_big + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +find_start_small + + + + + +Node2->Node5 + + + + + + + + +Node4 + + +find_end_small + + + + + +Node3->Node4 + + + + + + + + +Node5->Node4 + + + + + + + + diff --git a/a01376_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.map b/a01376_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.map new file mode 100644 index 00000000..ce1c753d --- /dev/null +++ b/a01376_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01376_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.md5 b/a01376_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.md5 new file mode 100644 index 00000000..6b7effa4 --- /dev/null +++ b/a01376_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.md5 @@ -0,0 +1 @@ +b12f42881f4f49e8434de116f4acbafb \ No newline at end of file diff --git a/a01376_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.svg b/a01376_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.svg new file mode 100644 index 00000000..c760d876 --- /dev/null +++ b/a01376_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +utils_bitmap_alloc_bits + + +Node1 + + +utils_bitmap_alloc_bits + + + + + +Node2 + + +arax_mmap + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01376_a6699a24a46fb1be57ca21abf8bc61928_icgraph.map b/a01376_a6699a24a46fb1be57ca21abf8bc61928_icgraph.map new file mode 100644 index 00000000..06764ea9 --- /dev/null +++ b/a01376_a6699a24a46fb1be57ca21abf8bc61928_icgraph.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01376_a6699a24a46fb1be57ca21abf8bc61928_icgraph.md5 b/a01376_a6699a24a46fb1be57ca21abf8bc61928_icgraph.md5 new file mode 100644 index 00000000..5862ca6c --- /dev/null +++ b/a01376_a6699a24a46fb1be57ca21abf8bc61928_icgraph.md5 @@ -0,0 +1 @@ +e16f93e0049de46c67f289064fb2bca9 \ No newline at end of file diff --git a/a01376_a6699a24a46fb1be57ca21abf8bc61928_icgraph.svg b/a01376_a6699a24a46fb1be57ca21abf8bc61928_icgraph.svg new file mode 100644 index 00000000..3812792a --- /dev/null +++ b/a01376_a6699a24a46fb1be57ca21abf8bc61928_icgraph.svg @@ -0,0 +1,221 @@ + + + + + + +utils_bitmap_init + + +Node1 + + +utils_bitmap_init + + + + + +Node2 + + +arch_alloc_init_once + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +_arax_init + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_controller_init +_start + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_init + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_plot_register +_metric + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_ptr_valid + + + + + +Node6->Node8 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +_arax_assert_obj + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_data_ref + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +arax_data_ref_offset + + + + + +Node8->Node11 + + + + + + + + +Node10->Node11 + + + + + + + + diff --git a/a01376_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.map b/a01376_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.map new file mode 100644 index 00000000..f6794ab2 --- /dev/null +++ b/a01376_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01376_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.md5 b/a01376_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.md5 new file mode 100644 index 00000000..7adf6ead --- /dev/null +++ b/a01376_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.md5 @@ -0,0 +1 @@ +cf935d8eb110d5f31e62026ab46a10a6 \ No newline at end of file diff --git a/a01376_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.svg b/a01376_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.svg new file mode 100644 index 00000000..ca1a4ef9 --- /dev/null +++ b/a01376_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +utils_bitmap_free_bits + + +Node1 + + +utils_bitmap_free_bits + + + + + +Node2 + + +arax_ummap + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01376_a84bb16b03a95a60c4748c189dafa8a54_icgraph.map b/a01376_a84bb16b03a95a60c4748c189dafa8a54_icgraph.map new file mode 100644 index 00000000..db195728 --- /dev/null +++ b/a01376_a84bb16b03a95a60c4748c189dafa8a54_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01376_a84bb16b03a95a60c4748c189dafa8a54_icgraph.md5 b/a01376_a84bb16b03a95a60c4748c189dafa8a54_icgraph.md5 new file mode 100644 index 00000000..9e1b17f6 --- /dev/null +++ b/a01376_a84bb16b03a95a60c4748c189dafa8a54_icgraph.md5 @@ -0,0 +1 @@ +d1ae72c0b4a5d9aab570f56a4eb86db1 \ No newline at end of file diff --git a/a01376_a84bb16b03a95a60c4748c189dafa8a54_icgraph.svg b/a01376_a84bb16b03a95a60c4748c189dafa8a54_icgraph.svg new file mode 100644 index 00000000..b17bf6d5 --- /dev/null +++ b/a01376_a84bb16b03a95a60c4748c189dafa8a54_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +utils_bitmap_free + + +Node1 + + +utils_bitmap_free + + + + + +Node2 + + +utils_bitmap_alloc_bits + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_mmap + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01376_source.html b/a01376_source.html new file mode 100644 index 00000000..2efffbfa --- /dev/null +++ b/a01376_source.html @@ -0,0 +1,169 @@ + + + + + + + +Arax: bitmap.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
bitmap.h
+
+
+Go to the documentation of this file.
1#ifndef UTILS_BITMAP_HEADER
+
2#define UTILS_BITMAP_HEADER
+
3#include "spinlock.h"
+
4#include <stddef.h>
+
5
+
6typedef struct utils_bitmap
+
7{
+ +
9 uint64_t * free_p;
+
10 uint64_t * end;
+
11 size_t used_bits;
+
12 size_t size_bits;
+
13 uint64_t bits[];
+ +
15
+
16#define UTILS_BITMAP_CALC_BYTES(BITS) ((sizeof(utils_bitmap_s) + sizeof(uint64_t) * ((BITS + 63) / 64)))
+
17
+
18#define BITMAP_NOT_FOUND ((size_t) -1)
+
19
+
20#ifdef __cplusplus
+
21extern "C" {
+
22#endif /* ifdef __cplusplus */
+
23
+
33utils_bitmap_s* utils_bitmap_init(void *mem, size_t size_bits);
+
34
+ +
42
+ +
50
+ +
60
+
67size_t utils_bitmap_alloc_bits(utils_bitmap_s *bmp, size_t bits);
+
68
+
76void utils_bitmap_free_bits(utils_bitmap_s *bmp, size_t start, size_t bits);
+
77
+ +
89
+ +
98#ifdef __cplusplus
+
99}
+
100#endif /* ifdef __cplusplus */
+
101
+
102#endif // ifndef UTILS_BITMAP_HEADER
+
struct utils_bitmap utils_bitmap_s
+
size_t utils_bitmap_alloc_bits(utils_bitmap_s *bmp, size_t bits)
Definition bitmap.c:217
+
utils_bitmap_s * utils_bitmap_init(void *mem, size_t size_bits)
Definition bitmap.c:25
+
void utils_bitmap_free_bits(utils_bitmap_s *bmp, size_t start, size_t bits)
Definition bitmap.c:255
+
size_t utils_bitmap_free(utils_bitmap_s *bmp)
Definition bitmap.c:53
+
size_t utils_bitmap_count_allocated(utils_bitmap_s *bmp)
Definition bitmap.c:298
+
size_t utils_bitmap_used(utils_bitmap_s *bmp)
Definition bitmap.c:48
+
size_t utils_bitmap_size(utils_bitmap_s *bmp)
Definition bitmap.c:43
+
void utils_bitmap_print_bits(utils_bitmap_s *bmp)
Definition bitmap.c:311
+ +
volatile uint32_t utils_spinlock
Definition spinlock.h:10
+ +
uint64_t * end
Definition bitmap.h:10
+
utils_spinlock lock
Definition bitmap.h:8
+
size_t used_bits
Definition bitmap.h:11
+
size_t size_bits
Definition bitmap.h:12
+
uint64_t * free_p
Definition bitmap.h:9
+
uint64_t bits[]
Definition bitmap.h:13
+
+
+ + + + diff --git a/a01377.map b/a01377.map new file mode 100644 index 00000000..7cc8d96b --- /dev/null +++ b/a01377.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/a01377.md5 b/a01377.md5 new file mode 100644 index 00000000..b673bf0f --- /dev/null +++ b/a01377.md5 @@ -0,0 +1 @@ +1635da7f2e172cb7a2915585f795c85d \ No newline at end of file diff --git a/a01377.svg b/a01377.svg new file mode 100644 index 00000000..9d79d512 --- /dev/null +++ b/a01377.svg @@ -0,0 +1,111 @@ + + + + + + +bitmap.h + + +Node1 + + +bitmap.h + + + + + +Node2 + + +spinlock.h + + + + + +Node1->Node2 + + + + + + + + +Node6 + + +stddef.h + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +utils/arax_assert.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +compat.h + + + + + +Node4->Node5 + + + + + + + + diff --git a/a01378.map b/a01378.map new file mode 100644 index 00000000..7232397e --- /dev/null +++ b/a01378.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/a01378.md5 b/a01378.md5 new file mode 100644 index 00000000..0a293f87 --- /dev/null +++ b/a01378.md5 @@ -0,0 +1 @@ +52d8303dce058176c1fc7c152778e8e6 \ No newline at end of file diff --git a/a01378.svg b/a01378.svg new file mode 100644 index 00000000..9263727c --- /dev/null +++ b/a01378.svg @@ -0,0 +1,93 @@ + + + + + + +bitmap.h + + +Node1 + + +bitmap.h + + + + + +Node2 + + +alloc.h + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +bitmap.c + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +arax_plot.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +malloc.c + + + + + +Node2->Node4 + + + + + + + + diff --git a/a01379.html b/a01379.html new file mode 100644 index 00000000..6484c586 --- /dev/null +++ b/a01379.html @@ -0,0 +1,149 @@ + + + + + + + +Arax: compat.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
compat.h File Reference
+
+
+
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  utils_compat_empty_s
 
+ + + +

+Macros

#define ARAX_CPP
 
+

Macro Definition Documentation

+ +

◆ ARAX_CPP

+ +
+
+ + + + +
#define ARAX_CPP
+
+

Macro to allow the use of C linked functions from C++ code/programs.

+ +

Definition at line 24 of file compat.h.

+ +
+
+
+
+ + + + diff --git a/a01379.js b/a01379.js new file mode 100644 index 00000000..046d8dea --- /dev/null +++ b/a01379.js @@ -0,0 +1,5 @@ +var a01379 = +[ + [ "utils_compat_empty_s", "a02298.html", "a02298" ], + [ "ARAX_CPP", "a01379.html#a561daf1af853037d6dfd17c56251bb38", null ] +]; \ No newline at end of file diff --git a/a01379_source.html b/a01379_source.html new file mode 100644 index 00000000..d28cdddf --- /dev/null +++ b/a01379_source.html @@ -0,0 +1,125 @@ + + + + + + + +Arax: compat.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
compat.h
+
+
+Go to the documentation of this file.
1#ifndef UTILS_COMPAT_HEADER
+
2#define UTILS_COMPAT_HEADER
+
3
+
13typedef struct
+
14{
+
15 unsigned long nothing;
+ +
17
+
21#ifdef __cplusplus
+
22#define ARAX_CPP extern "C"
+
23#else
+
24#define ARAX_CPP
+
25#endif
+
26
+
27#endif // ifndef UTILS_COMPAT_HEADER
+ +
unsigned long nothing
Definition compat.h:15
+
+
+ + + + diff --git a/a01381.map b/a01381.map new file mode 100644 index 00000000..f179f91a --- /dev/null +++ b/a01381.map @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01381.md5 b/a01381.md5 new file mode 100644 index 00000000..ff382a47 --- /dev/null +++ b/a01381.md5 @@ -0,0 +1 @@ +5a27da2d654105a2b3ddcec65542f0d2 \ No newline at end of file diff --git a/a01381.svg b/a01381.svg new file mode 100644 index 00000000..15c6b812 --- /dev/null +++ b/a01381.svg @@ -0,0 +1,912 @@ + + + + + + +compat.h + + +Node1 + + +compat.h + + + + + +Node2 + + +arax_assert.h + + + + + +Node1->Node2 + + + + + + + + +Node39 + + +arax_ptr.h + + + + + +Node1->Node39 + + + + + + + + +Node3 + + +arax_assert.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_throttle.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +config.c + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +queue.c + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +spinlock.h + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +Kv.h + + + + + +Node7->Node8 + + + + + + + + +Node20 + + +arax_object.h + + + + + +Node7->Node20 + + + + + + + + +Node34 + + +bitmap.h + + + + + +Node7->Node34 + + + + + + + + +Node38 + + +queue.h + + + + + +Node7->Node38 + + + + + + + + +Node9 + + +Kv.c + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_pipe.h + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +arax_accel.c + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_data.c + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +arax_object.c + + + + + +Node10->Node13 + + + + + + + + +Node14 + + +arax_pipe.c + + + + + +Node10->Node14 + + + + + + + + +Node15 + + +arax_plot.c + + + + + +Node10->Node15 + + + + + + + + +Node16 + + +arax_ptr.c + + + + + +Node10->Node16 + + + + + + + + +Node17 + + +arax_task.c + + + + + +Node10->Node17 + + + + + + + + +Node18 + + +arax_vaccel.c + + + + + +Node10->Node18 + + + + + + + + +Node19 + + +impl.c + + + + + +Node10->Node19 + + + + + + + + +Node20->Node3 + + + + + + + + +Node20->Node13 + + + + + + + + +Node21 + + +arax_data.h + + + + + +Node20->Node21 + + + + + + + + +Node23 + + +arax_proc.h + + + + + +Node20->Node23 + + + + + + + + +Node26 + + +arax_vaccel.h + + + + + +Node20->Node26 + + + + + + + + +Node28 + + +async.h + + + + + +Node20->Node28 + + + + + + + + +Node30 + + +async.h + + + + + +Node20->Node30 + + + + + + + + +Node32 + + +async.h + + + + + +Node20->Node32 + + + + + + + + +Node21->Node12 + + + + + + + + +Node21->Node13 + + + + + + + + +Node21->Node17 + + + + + + + + +Node21->Node19 + + + + + + + + +Node22 + + +arax_data_private.h + + + + + +Node21->Node22 + + + + + + + + +Node22->Node12 + + + + + + + + +Node23->Node13 + + + + + + + + +Node24 + + +arax_proc.c + + + + + +Node23->Node24 + + + + + + + + +Node25 + + +arax_task.h + + + + + +Node23->Node25 + + + + + + + + +Node25->Node10 + + + + + + + + +Node25->Node12 + + + + + + + + +Node25->Node13 + + + + + + + + +Node27 + + +arax_accel.h + + + + + +Node26->Node27 + + + + + + + + +Node27->Node10 + + + + + + + + +Node27->Node13 + + + + + + + + +Node27->Node21 + + + + + + + + +Node27->Node26 + + + + + + + + +Node29 + + +async.c + + + + + +Node28->Node29 + + + + + + + + +Node31 + + +async.c + + + + + +Node30->Node31 + + + + + + + + +Node33 + + +async.c + + + + + +Node32->Node33 + + + + + + + + +Node35 + + +alloc.h + + + + + +Node34->Node35 + + + + + + + + +Node37 + + +bitmap.c + + + + + +Node34->Node37 + + + + + + + + +Node35->Node15 + + + + + + + + +Node36 + + +malloc.c + + + + + +Node35->Node36 + + + + + + + + +Node38->Node6 + + + + + + + + +Node38->Node10 + + + + + + + + +Node38->Node26 + + + + + + + + +Node39->Node3 + + + + + + + + +Node39->Node12 + + + + + + + + +Node39->Node15 + + + + + + + + +Node39->Node16 + + + + + + + + diff --git a/a01382.html b/a01382.html new file mode 100644 index 00000000..2e12a1cc --- /dev/null +++ b/a01382.html @@ -0,0 +1,677 @@ + + + + + + + +Arax: config.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
config.h File Reference
+
+
+
#include <stddef.h>
+
+ + Include dependency graph for config.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Enumerations

enum  utils_config_source { CONFIG_FILE +, CONFIG_ENV + }
 
+ + + + + + + + + + + + + + + + + +

+Functions

char * utils_config_alloc_path (const char *path)
 
void utils_config_free_path (char *path)
 
int utils_config_get_str (char *path, const char *key, char *value, size_t value_size, const char *def_val)
 
int utils_config_get_bool (char *path, const char *key, int *value, int def_val)
 
int utils_config_get_int (char *path, const char *key, int *value, int def_val)
 
int utils_config_get_long (char *path, const char *key, long *value, long def_val)
 
int utils_config_get_size (char *path, const char *key, size_t *value, size_t def_val)
 
enum utils_config_source utils_config_get_source ()
 
+

Detailed Description

+

Persistent configuration utility functions.

+

Configuration file format: Each line(terminated with a newline character
+) contains a single key value pair in the following format:

+

KEY VALUE
+ The key value can have any printable character except white space, it should not be larger than 32 characters. The value begins after KEY and any whites-pace after it. Value ends at the first newline character.

+ +

Definition in file config.h.

+

Enumeration Type Documentation

+ +

◆ utils_config_source

+ +
+
+ + + + +
enum utils_config_source
+
+ + + +
Enumerator
CONFIG_FILE 
CONFIG_ENV 
+ +

Definition at line 141 of file config.h.

+ +
+
+

Function Documentation

+ +

◆ utils_config_alloc_path()

+ +
+
+ + + + + + + + +
char * utils_config_alloc_path (const char * path)
+
+

Create configuration based on path

+

NOTE: free returned value with utils_config_free_path().

+

path is scanned for the following characters and replaced: ~:Gets replaced with users home path (e.g. /home/user)

+
Parameters
+ + +
path
+
+
+
Returns
NULL on failure
+ +

Definition at line 94 of file config.c.

+ +

References arax_assert, and system_home_path().

+ +

Referenced by _arax_init(), arax_clean(), async_meta_init_always(), and async_meta_init_once().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_config_free_path()

+ +
+
+ + + + + + + + +
void utils_config_free_path (char * path)
+
+

Free path allocated with utils_config_alloc_path.

+
Parameters
+ + +
pathReturn value of a utils_config_alloc_path invocation.
+
+
+ +

Definition at line 128 of file config.c.

+ +

Referenced by arax_clean(), arax_exit(), async_meta_init_always(), and async_meta_init_once().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_config_get_bool()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int utils_config_get_bool (char * path,
const char * key,
int * value,
int def_val 
)
+
+

Get value corresponding to key as a boolean (0,1)

+

Will search the path file for a key/value pair matching the key. If the value is not found 0 will be returned. If during the search any error occurs, 0 will be returned and a message will be printed on stderr. If the value is found and the value equals to 1 then *value will be assigned 1, otherwise *value will be set to 0.

Note
This is a very slow function, use it only during initialization.
+
Parameters
+ + + + + +
pathConfig path.
keyc style string, with the key of interest.
valuepointer to allocated array of size value_size.
def_valDefault value in case the key is not found.
+
+
+
Returns
Zero on failure.
+ +

Definition at line 178 of file config.c.

+ +

References utils_config_get_int().

+ +

Referenced by _arax_init(), and async_meta_init_once().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_config_get_int()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int utils_config_get_int (char * path,
const char * key,
int * value,
int def_val 
)
+
+

Get value corresponding to key as an integer

+

Will search the path file for a key/value pair matching the key. If during the search any error occurs, 0 will be returned and a message will be printed on stderr. If the value is found it will be converted to an integer using atoi() and the result will be assigned to val. If no value is found val will be assigned def_val and 0 will be returned.

Note
This is a very slow function, use it only during initialization.
+
Parameters
+ + + + + +
pathConfig path.
keyc style string string, with the key of interest.
valuepointer to allocated array of size value_size.
def_valDefault value in case the key is not found.
+
+
+
Returns
Zero on failure.
+ +

Definition at line 190 of file config.c.

+ +

References utils_config_get_long().

+ +

Referenced by utils_config_get_bool().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_config_get_long()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int utils_config_get_long (char * path,
const char * key,
long * value,
long def_val 
)
+
+

Get value corresponding to key as a long

+

Will search the path file for a key/value pair matching the key. If during the search any error occurs, 0 will be returned and a message will be printed on stderr. If the value is found it will be converted to a long using strtol() and the result will be assigned to val. If no value is found val will be assigned def_val and 0 will be returned.

Note
This is a very slow function, use it only during initialization.
+
Parameters
+ + + + + +
pathConfig path.
keyc style string string, with the key of interest.
valuepointer to allocated array of size value_size.
def_valDefault value in case the key is not found.
+
+
+
Returns
Zero on failure.
+ +

Definition at line 206 of file config.c.

+ +

References _utils_config_get_str(), and utils_config_write_long().

+ +

Referenced by utils_config_get_int(), and utils_config_get_size().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_config_get_size()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int utils_config_get_size (char * path,
const char * key,
size_t * value,
size_t def_val 
)
+
+

Get value corresponding to key as a size_t

+

Value is retrieved with utils_config_get_long(). If acquired value value is in [SIZE_MAX,0] it is assigned to val and 1 is returned.

+

Otherwise 0 is returned and val is assigned def_val.

+
Note
This function only works for numbers <= 2^63.
+
Parameters
+ + + + + +
pathConfig path.
keyc style string string, with the key of interest.
valuepointer to allocated array of size value_size.
def_valDefault value in case value was not found/appropriate.
+
+
+
Returns
Zero on failure.
+ +

Definition at line 226 of file config.c.

+ +

References utils_config_get_long().

+ +

Referenced by _arax_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_config_get_source()

+ +
+
+ + + + + + + +
enum utils_config_source utils_config_get_source ()
+
+

Return the current configuration source.

+
See also
utils_config_source
+ +

Definition at line 242 of file config.c.

+ +

References CONFIG_ENV, CONFIG_FILE, and system_env_var().

+ +

Referenced by _arax_init(), conf_get(), and conf_set().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_config_get_str()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int utils_config_get_str (char * path,
const char * key,
char * value,
size_t value_size,
const char * def_val 
)
+
+

Get value corresponding to key as a string

+

Will search the path file for a key/value pair matching the key. If the value is not found 0 will be returned. If during the search any error occurs, 0 will be returned and a message will be printed on stderr.

Note
This is a very slow function, use it only during initialization.
+
Parameters
+ + + + + + +
pathConfig path, returned by utils_config_alloc_path.
keyc style string string, with the key of interest.
valuepointer to allocated array of size value_size.
value_sizeSize of value array, in bytes.
def_valDefault value in case the key is not found.
+
+
+
Returns
Zero on failure.
+ +

Definition at line 164 of file config.c.

+ +

References _utils_config_get_str(), and utils_config_write_str().

+ +

Referenced by _arax_init(), arax_clean(), and async_meta_init_always().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01382.js b/a01382.js new file mode 100644 index 00000000..5365d9f8 --- /dev/null +++ b/a01382.js @@ -0,0 +1,15 @@ +var a01382 = +[ + [ "utils_config_source", "a01382.html#a4616ac612d0a2a45c511f61d0067c4d1", [ + [ "CONFIG_FILE", "a01382.html#a4616ac612d0a2a45c511f61d0067c4d1a412fc1f23a5704f2adcd28372e7d1cae", null ], + [ "CONFIG_ENV", "a01382.html#a4616ac612d0a2a45c511f61d0067c4d1ac4f16b8d6c7ae22fa2b62c2163edde95", null ] + ] ], + [ "utils_config_alloc_path", "a01382.html#aff9af0356940583dfe3045e693cc8a45", null ], + [ "utils_config_free_path", "a01382.html#a84f3886cdcb91a28bf13b07aae8b2285", null ], + [ "utils_config_get_bool", "a01382.html#aa7aa94ad075bf97a566f01f899fcd859", null ], + [ "utils_config_get_int", "a01382.html#a336fa8eefc3d744aa7248d6786cfee03", null ], + [ "utils_config_get_long", "a01382.html#a1a28ba7c7791236d03b1fa9f81aa6a71", null ], + [ "utils_config_get_size", "a01382.html#a4a525d89ade920512dc65409bc8e85d8", null ], + [ "utils_config_get_source", "a01382.html#a17713c8e9b90065e23b0ec1a225f79ab", null ], + [ "utils_config_get_str", "a01382.html#a1e8deff7c038efae14d1cc98e4ab109f", null ] +]; \ No newline at end of file diff --git a/a01382_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.map b/a01382_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.map new file mode 100644 index 00000000..9c7ab2d5 --- /dev/null +++ b/a01382_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01382_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.md5 b/a01382_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.md5 new file mode 100644 index 00000000..dd705222 --- /dev/null +++ b/a01382_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.md5 @@ -0,0 +1 @@ +e6c36367e0bf2690b400bd6357407a25 \ No newline at end of file diff --git a/a01382_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.svg b/a01382_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.svg new file mode 100644 index 00000000..4d6fa910 --- /dev/null +++ b/a01382_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +utils_config_get_source + + +Node1 + + +utils_config_get_source + + + + + +Node2 + + +system_env_var + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01382_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.map b/a01382_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.map new file mode 100644 index 00000000..d463d18e --- /dev/null +++ b/a01382_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.map @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01382_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.md5 b/a01382_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.md5 new file mode 100644 index 00000000..d8d1e94c --- /dev/null +++ b/a01382_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.md5 @@ -0,0 +1 @@ +5dd6d073c35afd38d96c771018b3c4b8 \ No newline at end of file diff --git a/a01382_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.svg b/a01382_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.svg new file mode 100644 index 00000000..ea4bfd6a --- /dev/null +++ b/a01382_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.svg @@ -0,0 +1,527 @@ + + + + + + +utils_config_get_source + + +Node1 + + +utils_config_get_source + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +conf_get + + + + + +Node1->Node10 + + + + + + + + +Node24 + + +conf_set + + + + + +Node1->Node24 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +_utils_config_get_str + + + + + +Node10->Node11 + + + + + + + + +Node22 + + +utils_config_write_str + + + + + +Node10->Node22 + + + + + + + + +Node12 + + +utils_config_get_long + + + + + +Node11->Node12 + + + + + + + + +Node18 + + +utils_config_get_str + + + + + +Node11->Node18 + + + + + + + + +Node13 + + +utils_config_get_int + + + + + +Node12->Node13 + + + + + + + + +Node17 + + +utils_config_get_size + + + + + +Node12->Node17 + + + + + + + + +Node14 + + +utils_config_get_bool + + + + + +Node13->Node14 + + + + + + + + +Node14->Node2 + + + + + + + + +Node15 + + +async_meta_init_once + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +arax_pipe_init + + + + + +Node15->Node16 + + + + + + + + +Node16->Node2 + + + + + + + + +Node17->Node2 + + + + + + + + +Node18->Node2 + + + + + + + + +Node19 + + +arax_clean + + + + + +Node18->Node19 + + + + + + + + +Node21 + + +async_meta_init_always + + + + + +Node18->Node21 + + + + + + + + +Node20 + + +arax_exit + + + + + +Node19->Node20 + + + + + + + + +Node21->Node2 + + + + + + + + +Node22->Node18 + + + + + + + + +Node23 + + +utils_config_write_long + + + + + +Node22->Node23 + + + + + + + + +Node23->Node12 + + + + + + + + +Node24->Node22 + + + + + + + + diff --git a/a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.map b/a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.map new file mode 100644 index 00000000..6cdf1929 --- /dev/null +++ b/a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.md5 b/a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.md5 new file mode 100644 index 00000000..fd3e9adc --- /dev/null +++ b/a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.md5 @@ -0,0 +1 @@ +413d3ce8fa7e2e82ddd4d377079f6503 \ No newline at end of file diff --git a/a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.svg b/a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.svg new file mode 100644 index 00000000..1f895e99 --- /dev/null +++ b/a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.svg @@ -0,0 +1,192 @@ + + + + + + +utils_config_get_long + + +Node1 + + +utils_config_get_long + + + + + +Node2 + + +_utils_config_get_str + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +utils_config_write_long + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +conf_get + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +system_env_var + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +system_file_size + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +utils_config_get_source + + + + + +Node3->Node6 + + + + + + + + +Node6->Node4 + + + + + + + + +Node8 + + +utils_config_write_str + + + + + +Node7->Node8 + + + + + + + + +Node8->Node3 + + + + + + + + +Node9 + + +conf_set + + + + + +Node8->Node9 + + + + + + + + +Node9->Node6 + + + + + + + + diff --git a/a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.map b/a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.map new file mode 100644 index 00000000..4f9e9a95 --- /dev/null +++ b/a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.map @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.md5 b/a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.md5 new file mode 100644 index 00000000..79bc68b4 --- /dev/null +++ b/a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.md5 @@ -0,0 +1 @@ +caecffbe0ec7d24b3d030ffc62b845f1 \ No newline at end of file diff --git a/a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.svg b/a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.svg new file mode 100644 index 00000000..c69f7191 --- /dev/null +++ b/a01382_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.svg @@ -0,0 +1,293 @@ + + + + + + +utils_config_get_long + + +Node1 + + +utils_config_get_long + + + + + +Node2 + + +utils_config_get_int + + + + + +Node1->Node2 + + + + + + + + +Node14 + + +utils_config_get_size + + + + + +Node1->Node14 + + + + + + + + +Node3 + + +utils_config_get_bool + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +_arax_init + + + + + +Node3->Node4 + + + + + + + + +Node12 + + +async_meta_init_once + + + + + +Node3->Node12 + + + + + + + + +Node5 + + +arax_controller_init +_start + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_init + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_plot_register +_metric + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_ptr_valid + + + + + +Node6->Node8 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +_arax_assert_obj + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_data_ref + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +arax_data_ref_offset + + + + + +Node8->Node11 + + + + + + + + +Node10->Node11 + + + + + + + + +Node13 + + +arax_pipe_init + + + + + +Node12->Node13 + + + + + + + + +Node13->Node4 + + + + + + + + +Node14->Node4 + + + + + + + + diff --git a/a01382_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.map b/a01382_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.map new file mode 100644 index 00000000..94bc06b4 --- /dev/null +++ b/a01382_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.map @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/a01382_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.md5 b/a01382_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.md5 new file mode 100644 index 00000000..ce6404f7 --- /dev/null +++ b/a01382_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.md5 @@ -0,0 +1 @@ +4ffcd141f42a9832a81d20a0647d16b4 \ No newline at end of file diff --git a/a01382_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.svg b/a01382_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.svg new file mode 100644 index 00000000..b001953c --- /dev/null +++ b/a01382_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.svg @@ -0,0 +1,174 @@ + + + + + + +utils_config_get_str + + +Node1 + + +utils_config_get_str + + + + + +Node2 + + +_utils_config_get_str + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +utils_config_write_str + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +conf_get + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +system_env_var + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +system_file_size + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +utils_config_get_source + + + + + +Node3->Node6 + + + + + + + + +Node6->Node4 + + + + + + + + +Node7->Node3 + + + + + + + + +Node8 + + +conf_set + + + + + +Node7->Node8 + + + + + + + + +Node8->Node6 + + + + + + + + diff --git a/a01382_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.map b/a01382_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.map new file mode 100644 index 00000000..471c882e --- /dev/null +++ b/a01382_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.map @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01382_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.md5 b/a01382_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.md5 new file mode 100644 index 00000000..9b15065e --- /dev/null +++ b/a01382_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.md5 @@ -0,0 +1 @@ +66cb35033e6ec3a07e661c5dbc5b99ae \ No newline at end of file diff --git a/a01382_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.svg b/a01382_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.svg new file mode 100644 index 00000000..7bb90552 --- /dev/null +++ b/a01382_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.svg @@ -0,0 +1,248 @@ + + + + + + +utils_config_get_str + + +Node1 + + +utils_config_get_str + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +arax_clean + + + + + +Node1->Node10 + + + + + + + + +Node12 + + +async_meta_init_always + + + + + +Node1->Node12 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +arax_exit + + + + + +Node10->Node11 + + + + + + + + +Node12->Node2 + + + + + + + + diff --git a/a01382_a336fa8eefc3d744aa7248d6786cfee03_cgraph.map b/a01382_a336fa8eefc3d744aa7248d6786cfee03_cgraph.map new file mode 100644 index 00000000..56ec660e --- /dev/null +++ b/a01382_a336fa8eefc3d744aa7248d6786cfee03_cgraph.map @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01382_a336fa8eefc3d744aa7248d6786cfee03_cgraph.md5 b/a01382_a336fa8eefc3d744aa7248d6786cfee03_cgraph.md5 new file mode 100644 index 00000000..63a739d4 --- /dev/null +++ b/a01382_a336fa8eefc3d744aa7248d6786cfee03_cgraph.md5 @@ -0,0 +1 @@ +e8c184b7acb935f525429a430af66585 \ No newline at end of file diff --git a/a01382_a336fa8eefc3d744aa7248d6786cfee03_cgraph.svg b/a01382_a336fa8eefc3d744aa7248d6786cfee03_cgraph.svg new file mode 100644 index 00000000..ac787e18 --- /dev/null +++ b/a01382_a336fa8eefc3d744aa7248d6786cfee03_cgraph.svg @@ -0,0 +1,210 @@ + + + + + + +utils_config_get_int + + +Node1 + + +utils_config_get_int + + + + + +Node2 + + +utils_config_get_long + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_utils_config_get_str + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +utils_config_write_long + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +conf_get + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +system_env_var + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +system_file_size + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +utils_config_get_source + + + + + +Node4->Node7 + + + + + + + + +Node7->Node5 + + + + + + + + +Node9 + + +utils_config_write_str + + + + + +Node8->Node9 + + + + + + + + +Node9->Node4 + + + + + + + + +Node10 + + +conf_set + + + + + +Node9->Node10 + + + + + + + + +Node10->Node7 + + + + + + + + diff --git a/a01382_a336fa8eefc3d744aa7248d6786cfee03_icgraph.map b/a01382_a336fa8eefc3d744aa7248d6786cfee03_icgraph.map new file mode 100644 index 00000000..ff4c2ee3 --- /dev/null +++ b/a01382_a336fa8eefc3d744aa7248d6786cfee03_icgraph.map @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01382_a336fa8eefc3d744aa7248d6786cfee03_icgraph.md5 b/a01382_a336fa8eefc3d744aa7248d6786cfee03_icgraph.md5 new file mode 100644 index 00000000..18978dd2 --- /dev/null +++ b/a01382_a336fa8eefc3d744aa7248d6786cfee03_icgraph.md5 @@ -0,0 +1 @@ +e6f904af3d8554980a3e4946a1284b91 \ No newline at end of file diff --git a/a01382_a336fa8eefc3d744aa7248d6786cfee03_icgraph.svg b/a01382_a336fa8eefc3d744aa7248d6786cfee03_icgraph.svg new file mode 100644 index 00000000..225aade6 --- /dev/null +++ b/a01382_a336fa8eefc3d744aa7248d6786cfee03_icgraph.svg @@ -0,0 +1,248 @@ + + + + + + +utils_config_get_int + + +Node1 + + +utils_config_get_int + + + + + +Node2 + + +utils_config_get_bool + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +async_meta_init_once + + + + + +Node2->Node11 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + +Node12 + + +arax_pipe_init + + + + + +Node11->Node12 + + + + + + + + +Node12->Node3 + + + + + + + + diff --git a/a01382_a4a525d89ade920512dc65409bc8e85d8_cgraph.map b/a01382_a4a525d89ade920512dc65409bc8e85d8_cgraph.map new file mode 100644 index 00000000..705fdcfc --- /dev/null +++ b/a01382_a4a525d89ade920512dc65409bc8e85d8_cgraph.map @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01382_a4a525d89ade920512dc65409bc8e85d8_cgraph.md5 b/a01382_a4a525d89ade920512dc65409bc8e85d8_cgraph.md5 new file mode 100644 index 00000000..863650ff --- /dev/null +++ b/a01382_a4a525d89ade920512dc65409bc8e85d8_cgraph.md5 @@ -0,0 +1 @@ +f62863ffd78f170eb700b71d5a0c13f3 \ No newline at end of file diff --git a/a01382_a4a525d89ade920512dc65409bc8e85d8_cgraph.svg b/a01382_a4a525d89ade920512dc65409bc8e85d8_cgraph.svg new file mode 100644 index 00000000..4ed520a1 --- /dev/null +++ b/a01382_a4a525d89ade920512dc65409bc8e85d8_cgraph.svg @@ -0,0 +1,210 @@ + + + + + + +utils_config_get_size + + +Node1 + + +utils_config_get_size + + + + + +Node2 + + +utils_config_get_long + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_utils_config_get_str + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +utils_config_write_long + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +conf_get + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +system_env_var + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +system_file_size + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +utils_config_get_source + + + + + +Node4->Node7 + + + + + + + + +Node7->Node5 + + + + + + + + +Node9 + + +utils_config_write_str + + + + + +Node8->Node9 + + + + + + + + +Node9->Node4 + + + + + + + + +Node10 + + +conf_set + + + + + +Node9->Node10 + + + + + + + + +Node10->Node7 + + + + + + + + diff --git a/a01382_a4a525d89ade920512dc65409bc8e85d8_icgraph.map b/a01382_a4a525d89ade920512dc65409bc8e85d8_icgraph.map new file mode 100644 index 00000000..19fe4901 --- /dev/null +++ b/a01382_a4a525d89ade920512dc65409bc8e85d8_icgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01382_a4a525d89ade920512dc65409bc8e85d8_icgraph.md5 b/a01382_a4a525d89ade920512dc65409bc8e85d8_icgraph.md5 new file mode 100644 index 00000000..b14c8d21 --- /dev/null +++ b/a01382_a4a525d89ade920512dc65409bc8e85d8_icgraph.md5 @@ -0,0 +1 @@ +a24ced9f1840ce0638cb9c7b7bc58bc9 \ No newline at end of file diff --git a/a01382_a4a525d89ade920512dc65409bc8e85d8_icgraph.svg b/a01382_a4a525d89ade920512dc65409bc8e85d8_icgraph.svg new file mode 100644 index 00000000..1dc4d6e5 --- /dev/null +++ b/a01382_a4a525d89ade920512dc65409bc8e85d8_icgraph.svg @@ -0,0 +1,185 @@ + + + + + + +utils_config_get_size + + +Node1 + + +utils_config_get_size + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01382_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.map b/a01382_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.map new file mode 100644 index 00000000..0a0c5399 --- /dev/null +++ b/a01382_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.map @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01382_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.md5 b/a01382_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.md5 new file mode 100644 index 00000000..dd34fb62 --- /dev/null +++ b/a01382_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.md5 @@ -0,0 +1 @@ +af51ded722fe30b2857fef9393b18477 \ No newline at end of file diff --git a/a01382_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.svg b/a01382_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.svg new file mode 100644 index 00000000..e1b365d4 --- /dev/null +++ b/a01382_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.svg @@ -0,0 +1,293 @@ + + + + + + +utils_config_free_path + + +Node1 + + +utils_config_free_path + + + + + +Node2 + + +arax_clean + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_exit + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +async_meta_init_always + + + + + +Node1->Node4 + + + + + + + + +Node13 + + +async_meta_init_once + + + + + +Node1->Node13 + + + + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +_arax_init + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_controller_init +_start + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_init + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +arax_plot_register +_metric + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_ptr_valid + + + + + +Node7->Node9 + + + + + + + + +Node9->Node8 + + + + + + + + +Node10 + + +_arax_assert_obj + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_ref + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +arax_data_ref_offset + + + + + +Node9->Node12 + + + + + + + + +Node11->Node12 + + + + + + + + +Node14 + + +arax_pipe_init + + + + + +Node13->Node14 + + + + + + + + +Node14->Node5 + + + + + + + + diff --git a/a01382_aa7aa94ad075bf97a566f01f899fcd859_cgraph.map b/a01382_aa7aa94ad075bf97a566f01f899fcd859_cgraph.map new file mode 100644 index 00000000..caa0caf5 --- /dev/null +++ b/a01382_aa7aa94ad075bf97a566f01f899fcd859_cgraph.map @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01382_aa7aa94ad075bf97a566f01f899fcd859_cgraph.md5 b/a01382_aa7aa94ad075bf97a566f01f899fcd859_cgraph.md5 new file mode 100644 index 00000000..2bc8681b --- /dev/null +++ b/a01382_aa7aa94ad075bf97a566f01f899fcd859_cgraph.md5 @@ -0,0 +1 @@ +9aec9110bbd0dad15815ad75747c6a5a \ No newline at end of file diff --git a/a01382_aa7aa94ad075bf97a566f01f899fcd859_cgraph.svg b/a01382_aa7aa94ad075bf97a566f01f899fcd859_cgraph.svg new file mode 100644 index 00000000..3474ae3d --- /dev/null +++ b/a01382_aa7aa94ad075bf97a566f01f899fcd859_cgraph.svg @@ -0,0 +1,228 @@ + + + + + + +utils_config_get_bool + + +Node1 + + +utils_config_get_bool + + + + + +Node2 + + +utils_config_get_int + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +utils_config_get_long + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +_utils_config_get_str + + + + + +Node3->Node4 + + + + + + + + +Node9 + + +utils_config_write_long + + + + + +Node3->Node9 + + + + + + + + +Node5 + + +conf_get + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +system_env_var + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +system_file_size + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +utils_config_get_source + + + + + +Node5->Node8 + + + + + + + + +Node8->Node6 + + + + + + + + +Node10 + + +utils_config_write_str + + + + + +Node9->Node10 + + + + + + + + +Node10->Node5 + + + + + + + + +Node11 + + +conf_set + + + + + +Node10->Node11 + + + + + + + + +Node11->Node8 + + + + + + + + diff --git a/a01382_aa7aa94ad075bf97a566f01f899fcd859_icgraph.map b/a01382_aa7aa94ad075bf97a566f01f899fcd859_icgraph.map new file mode 100644 index 00000000..cac0fdb0 --- /dev/null +++ b/a01382_aa7aa94ad075bf97a566f01f899fcd859_icgraph.map @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01382_aa7aa94ad075bf97a566f01f899fcd859_icgraph.md5 b/a01382_aa7aa94ad075bf97a566f01f899fcd859_icgraph.md5 new file mode 100644 index 00000000..a7223ba4 --- /dev/null +++ b/a01382_aa7aa94ad075bf97a566f01f899fcd859_icgraph.md5 @@ -0,0 +1 @@ +d04bbfe2cfa60ceb2c3a9fb5df8cafa5 \ No newline at end of file diff --git a/a01382_aa7aa94ad075bf97a566f01f899fcd859_icgraph.svg b/a01382_aa7aa94ad075bf97a566f01f899fcd859_icgraph.svg new file mode 100644 index 00000000..18ba1ce6 --- /dev/null +++ b/a01382_aa7aa94ad075bf97a566f01f899fcd859_icgraph.svg @@ -0,0 +1,230 @@ + + + + + + +utils_config_get_bool + + +Node1 + + +utils_config_get_bool + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +async_meta_init_once + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +arax_pipe_init + + + + + +Node10->Node11 + + + + + + + + +Node11->Node2 + + + + + + + + diff --git a/a01382_aff9af0356940583dfe3045e693cc8a45_cgraph.map b/a01382_aff9af0356940583dfe3045e693cc8a45_cgraph.map new file mode 100644 index 00000000..3a6cc5f3 --- /dev/null +++ b/a01382_aff9af0356940583dfe3045e693cc8a45_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01382_aff9af0356940583dfe3045e693cc8a45_cgraph.md5 b/a01382_aff9af0356940583dfe3045e693cc8a45_cgraph.md5 new file mode 100644 index 00000000..e0a3c650 --- /dev/null +++ b/a01382_aff9af0356940583dfe3045e693cc8a45_cgraph.md5 @@ -0,0 +1 @@ +c09a03fe99b3321166dc2d1eb8edf8fe \ No newline at end of file diff --git a/a01382_aff9af0356940583dfe3045e693cc8a45_cgraph.svg b/a01382_aff9af0356940583dfe3045e693cc8a45_cgraph.svg new file mode 100644 index 00000000..c3339ed3 --- /dev/null +++ b/a01382_aff9af0356940583dfe3045e693cc8a45_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +utils_config_alloc_path + + +Node1 + + +utils_config_alloc_path + + + + + +Node2 + + +system_home_path + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01382_aff9af0356940583dfe3045e693cc8a45_icgraph.map b/a01382_aff9af0356940583dfe3045e693cc8a45_icgraph.map new file mode 100644 index 00000000..b751b883 --- /dev/null +++ b/a01382_aff9af0356940583dfe3045e693cc8a45_icgraph.map @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01382_aff9af0356940583dfe3045e693cc8a45_icgraph.md5 b/a01382_aff9af0356940583dfe3045e693cc8a45_icgraph.md5 new file mode 100644 index 00000000..9d2e2ec4 --- /dev/null +++ b/a01382_aff9af0356940583dfe3045e693cc8a45_icgraph.md5 @@ -0,0 +1 @@ +514e0e596f500fdf6a95ec87ff0be997 \ No newline at end of file diff --git a/a01382_aff9af0356940583dfe3045e693cc8a45_icgraph.svg b/a01382_aff9af0356940583dfe3045e693cc8a45_icgraph.svg new file mode 100644 index 00000000..4601c4ea --- /dev/null +++ b/a01382_aff9af0356940583dfe3045e693cc8a45_icgraph.svg @@ -0,0 +1,293 @@ + + + + + + +utils_config_alloc_path + + +Node1 + + +utils_config_alloc_path + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +arax_clean + + + + + +Node1->Node10 + + + + + + + + +Node12 + + +async_meta_init_always + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +async_meta_init_once + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +arax_exit + + + + + +Node10->Node11 + + + + + + + + +Node12->Node2 + + + + + + + + +Node14 + + +arax_pipe_init + + + + + +Node13->Node14 + + + + + + + + +Node14->Node2 + + + + + + + + diff --git a/a01382_source.html b/a01382_source.html new file mode 100644 index 00000000..5955cb08 --- /dev/null +++ b/a01382_source.html @@ -0,0 +1,156 @@ + + + + + + + +Arax: config.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
config.h
+
+
+Go to the documentation of this file.
1
+
17#ifndef ARAX_CONFIG_HEADER
+
18#define ARAX_CONFIG_HEADER
+
19#include <stddef.h>
+
20
+
21#ifdef __cplusplus
+
22extern "C" {
+
23#endif /* ifdef __cplusplus */
+
24
+
25
+
37char* utils_config_alloc_path(const char *path);
+
38
+
44void utils_config_free_path(char *path);
+
45
+
62int utils_config_get_str(char *path, const char *key, char *value, size_t value_size, const char *def_val);
+
63
+
81int utils_config_get_bool(char *path, const char *key, int *value, int def_val);
+
82
+
101int utils_config_get_int(char *path, const char *key, int *value, int def_val);
+
102
+
121int utils_config_get_long(char *path, const char *key, long *value, long def_val);
+
122
+
139int utils_config_get_size(char *path, const char *key, size_t *value, size_t def_val);
+
140
+ +
142{
+
143 CONFIG_FILE, // < Uses ARAX_CONFIG_FILE
+
144 CONFIG_ENV // < Uses ARAX_CONF enviroment variable
+ +
146
+ +
153
+
154#ifdef __cplusplus
+
155}
+
156#endif /* ifdef __cplusplus */
+
157
+
158#endif /* ifndef ARAX_CONFIG_HEADER */
+
enum utils_config_source utils_config_get_source()
Definition config.c:242
+
int utils_config_get_long(char *path, const char *key, long *value, long def_val)
Definition config.c:206
+
int utils_config_get_str(char *path, const char *key, char *value, size_t value_size, const char *def_val)
Definition config.c:164
+
int utils_config_get_int(char *path, const char *key, int *value, int def_val)
Definition config.c:190
+
utils_config_source
Definition config.h:142
+
@ CONFIG_FILE
Definition config.h:143
+
@ CONFIG_ENV
Definition config.h:144
+
int utils_config_get_size(char *path, const char *key, size_t *value, size_t def_val)
Definition config.c:226
+
void utils_config_free_path(char *path)
Definition config.c:128
+
int utils_config_get_bool(char *path, const char *key, int *value, int def_val)
Definition config.c:178
+
char * utils_config_alloc_path(const char *path)
Definition config.c:94
+
+
+ + + + diff --git a/a01383.map b/a01383.map new file mode 100644 index 00000000..96c7cf88 --- /dev/null +++ b/a01383.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01383.md5 b/a01383.md5 new file mode 100644 index 00000000..1fd0381a --- /dev/null +++ b/a01383.md5 @@ -0,0 +1 @@ +977446487a5d9319960b6f5ebddb462c \ No newline at end of file diff --git a/a01383.svg b/a01383.svg new file mode 100644 index 00000000..93001159 --- /dev/null +++ b/a01383.svg @@ -0,0 +1,39 @@ + + + + + + +config.h + + +Node1 + + +config.h + + + + + +Node2 + + +stddef.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01384.map b/a01384.map new file mode 100644 index 00000000..ea2944b9 --- /dev/null +++ b/a01384.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a01384.md5 b/a01384.md5 new file mode 100644 index 00000000..bdd8ab7b --- /dev/null +++ b/a01384.md5 @@ -0,0 +1 @@ +c73a2f06daf8cf2d87508cfea3b955e9 \ No newline at end of file diff --git a/a01384.svg b/a01384.svg new file mode 100644 index 00000000..2bf56bce --- /dev/null +++ b/a01384.svg @@ -0,0 +1,75 @@ + + + + + + +config.h + + +Node1 + + +config.h + + + + + +Node2 + + +async.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +config.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +impl.c + + + + + +Node1->Node4 + + + + + + + + diff --git a/a01385.html b/a01385.html new file mode 100644 index 00000000..73a0ab61 --- /dev/null +++ b/a01385.html @@ -0,0 +1,671 @@ + + + + + + + +Arax: list.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
list.h File Reference
+
+
+
#include <stddef.h>
+#include <stdint.h>
+
+ + Include dependency graph for list.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + +

+Data Structures

struct  utils_list_node
 
struct  utils_list_s
 
+ + + + + + + +

+Macros

#define utils_list_for_each(list, itr)    for (itr = (list).head.next; itr != (void *) &list; itr = itr->next)
 
#define utils_list_for_each_safe(list, itr, tmp)    for (itr = (list).head.next; (itr != (void *) &list) && (tmp = itr->next); itr = tmp)
 
#define utils_list_for_each_reverse(list, itr)    for (itr = (list).head.prev; itr != (void *) &list; itr = itr->prev)
 
+ + + +

+Typedefs

typedef struct utils_list_node utils_list_node_s
 
+ + + + + + + + + + + + + + + + + +

+Functions

utils_list_sutils_list_init (void *mem)
 
void utils_list_add (utils_list_s *list, utils_list_node_s *node)
 
utils_list_node_sutils_list_del (utils_list_s *list, utils_list_node_s *node)
 
utils_list_node_sutils_list_pop_head (utils_list_s *list)
 
utils_list_node_sutils_list_pop_tail (utils_list_s *list)
 
size_t utils_list_to_array (utils_list_s *list, void **array)
 
void utils_list_node_init (utils_list_node_s *node, void *owner)
 
int utils_list_node_linked (utils_list_node_s *node)
 
+

Macro Definition Documentation

+ +

◆ utils_list_for_each

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define utils_list_for_each( list,
 itr 
)    for (itr = (list).head.next; itr != (void *) &list; itr = itr->next)
+
+

Iterate through a utils_list_s nodes.

+
Parameters
+ + + +
listPointer to a valid utils_list_s instance.
itrA utils_list_node_s* variable.
+
+
+ +

Definition at line 96 of file list.h.

+ +
+
+ +

◆ utils_list_for_each_reverse

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define utils_list_for_each_reverse( list,
 itr 
)    for (itr = (list).head.prev; itr != (void *) &list; itr = itr->prev)
+
+

Iterate through a utils_list_s nodes.

+
Parameters
+ + + +
listPointer to a valid utils_list_s instance.
itrA utils_list_node_s* variable.
+
+
+ +

Definition at line 115 of file list.h.

+ +
+
+ +

◆ utils_list_for_each_safe

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define utils_list_for_each_safe( list,
 itr,
 tmp 
)    for (itr = (list).head.next; (itr != (void *) &list) && (tmp = itr->next); itr = tmp)
+
+

Iterate through a utils_list_s nodes safely(can call utils_list_del).

+
Parameters
+ + + + +
listPointer to a valid utils_list_s instance.
itrA utils_list_node_s* variable pointing to the current element.
tmpA utils_list_node_s* variable pointing to the next element.
+
+
+ +

Definition at line 106 of file list.h.

+ +
+
+

Typedef Documentation

+ +

◆ utils_list_node_s

+ +
+
+ + + + +
typedef struct utils_list_node utils_list_node_s
+
+ +
+
+

Function Documentation

+ +

◆ utils_list_add()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void utils_list_add (utils_list_slist,
utils_list_node_snode 
)
+
+

Add node to list as the new head of the list.

+ +

Definition at line 20 of file list.c.

+ +

References utils_list_s::head, utils_list_s::length, and utils_list_node_add().

+ +

Referenced by _add_completion(), arax_accel_add_vaccel(), arax_object_register(), arax_pipe_add_orphan_vaccel(), and async_semaphore_dec().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_list_del()

+ +
+
+ + + + + + + + + + + + + + + + + + +
utils_list_node_s * utils_list_del (utils_list_slist,
utils_list_node_snode 
)
+
+

Delete node from list.

Returns
The deleted node, NULL on failure.
+ +

Definition at line 26 of file list.c.

+ +

References utils_list_s::length, utils_list_node::next, and utils_list_node::prev.

+ +

Referenced by arax_accel_del_vaccel(), arax_object_ref_dec(), arax_object_ref_dec_pre_locked(), arax_pipe_remove_orphan_vaccel(), async_semaphore_inc(), async_thread(), utils_list_pop_head(), and utils_list_pop_tail().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_list_init()

+ +
+
+ + + + + + + + +
utils_list_s * utils_list_init (void * mem)
+
+

Initialize a utils_list_s instance in node.

+
Parameters
+ + +
memAn allocated buffer of at least sizeof(utils_list_s) size.
+
+
+
Returns
Equal to mem if successful, NULL on failure.
+ +

Definition at line 3 of file list.c.

+ +

References utils_list_s::head, utils_list_s::length, and utils_list_node_init().

+ +

Referenced by arax_accel_init(), arax_object_repo_init(), arax_pipe_init(), async_meta_init_once(), and async_semaphore_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_list_node_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void utils_list_node_init (utils_list_node_snode,
void * owner 
)
+
+

Initialize a utils_list_node_s.

+
Parameters
+ + + +
nodeThe utils_list_node_s to be initialized.
ownerPointer to the node 'usefull' data
+
+
+ +

Definition at line 74 of file list.c.

+ +

References utils_list_node::next, utils_list_node::owner, and utils_list_node::prev.

+ +

Referenced by arax_object_register(), arax_vaccel_init(), async_completion_init(), and utils_list_init().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_list_node_linked()

+ +
+
+ + + + + + + + +
int utils_list_node_linked (utils_list_node_snode)
+
+

Return if node is part of some list.

+
Parameters
+ + +
nodeThe utils_list_node_s to be initialized.
+
+
+
Returns
0 if not is not part of a list, non zero if it is part of a list.
+ +

Definition at line 81 of file list.c.

+ +

References utils_list_node::next.

+ +

Referenced by arax_pipe_remove_orphan_vaccel().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_list_pop_head()

+ +
+
+ + + + + + + + +
utils_list_node_s * utils_list_pop_head (utils_list_slist)
+
+

Remove first node from list and return to caller.

+
Note
Not thread safe!
+
Parameters
+ + +
listA valid utils_list_s instance.
+
+
+
Returns
The node that was first in list, NULL if list was empty
+ +

Definition at line 36 of file list.c.

+ +

References utils_list_s::head, utils_list_s::length, utils_list_node::next, and utils_list_del().

+ +

Referenced by arax_pipe_get_orphan_vaccel().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_list_pop_tail()

+ +
+
+ + + + + + + + +
utils_list_node_s * utils_list_pop_tail (utils_list_slist)
+
+

Remove last node from list and return to caller.

+
Note
Not thread safe!
+
Parameters
+ + +
listA valid utils_list_s instance.
+
+
+
Returns
The node that was last in list, NULL if list was empty
+ +

Definition at line 47 of file list.c.

+ +

References utils_list_s::head, utils_list_s::length, utils_list_node::prev, and utils_list_del().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ utils_list_to_array()

+ +
+
+ + + + + + + + + + + + + + + + + + +
size_t utils_list_to_array (utils_list_slist,
void ** array 
)
+
+

Convert list to array and return number of entries.

+

If array is NULL just return the number of list node in list. If array is not NULL, fill array with the node->owner values of all nodes.

+
Parameters
+ + + +
listA valid utils_list_s instance.
arrayAn array of pointers to all node->owner.
+
+
+
Returns
Number of elements in list.
+ +

Definition at line 58 of file list.c.

+ +

References utils_list_s::length, utils_list_node::owner, and utils_list_for_each.

+ +

Referenced by arax_accel_get_assigned_vaccels().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01385.js b/a01385.js new file mode 100644 index 00000000..46cb9555 --- /dev/null +++ b/a01385.js @@ -0,0 +1,17 @@ +var a01385 = +[ + [ "utils_list_node", "a02310.html", "a02310" ], + [ "utils_list_s", "a02314.html", "a02314" ], + [ "utils_list_for_each", "a01385.html#afd43483bda7bea7f030b6a1cfa490b84", null ], + [ "utils_list_for_each_reverse", "a01385.html#a7ea6a1cb0b132f9485af3724cc193111", null ], + [ "utils_list_for_each_safe", "a01385.html#ae3c50c2a28a1714b41462bb3a6898248", null ], + [ "utils_list_node_s", "a01385.html#a79358272cbe50de37729ac492bc86999", null ], + [ "utils_list_add", "a01385.html#ae06a9e78e6a4f6c9c8afcf0f4862ce29", null ], + [ "utils_list_del", "a01385.html#a0c85e5516222ab7e7fc354c614760ec5", null ], + [ "utils_list_init", "a01385.html#ab36e49d2e694b1da49504a689ed48e4a", null ], + [ "utils_list_node_init", "a01385.html#a63f2791c9b5c8e2fa15967cfafb7ccbb", null ], + [ "utils_list_node_linked", "a01385.html#ab0c44e095ebfd8721de878c42abcbbdc", null ], + [ "utils_list_pop_head", "a01385.html#a4cace11e17315f11b44dd9e3eabbf72a", null ], + [ "utils_list_pop_tail", "a01385.html#a00a9ced40b89f30fa314c4534bfb0922", null ], + [ "utils_list_to_array", "a01385.html#ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d", null ] +]; \ No newline at end of file diff --git a/a01385_a00a9ced40b89f30fa314c4534bfb0922_cgraph.map b/a01385_a00a9ced40b89f30fa314c4534bfb0922_cgraph.map new file mode 100644 index 00000000..ec9628d4 --- /dev/null +++ b/a01385_a00a9ced40b89f30fa314c4534bfb0922_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01385_a00a9ced40b89f30fa314c4534bfb0922_cgraph.md5 b/a01385_a00a9ced40b89f30fa314c4534bfb0922_cgraph.md5 new file mode 100644 index 00000000..bf231089 --- /dev/null +++ b/a01385_a00a9ced40b89f30fa314c4534bfb0922_cgraph.md5 @@ -0,0 +1 @@ +479ed354e260321b82e11f67aa971340 \ No newline at end of file diff --git a/a01385_a00a9ced40b89f30fa314c4534bfb0922_cgraph.svg b/a01385_a00a9ced40b89f30fa314c4534bfb0922_cgraph.svg new file mode 100644 index 00000000..a853a953 --- /dev/null +++ b/a01385_a00a9ced40b89f30fa314c4534bfb0922_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +utils_list_pop_tail + + +Node1 + + +utils_list_pop_tail + + + + + +Node2 + + +utils_list_del + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01385_a0c85e5516222ab7e7fc354c614760ec5_icgraph.map b/a01385_a0c85e5516222ab7e7fc354c614760ec5_icgraph.map new file mode 100644 index 00000000..682a22dd --- /dev/null +++ b/a01385_a0c85e5516222ab7e7fc354c614760ec5_icgraph.map @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01385_a0c85e5516222ab7e7fc354c614760ec5_icgraph.md5 b/a01385_a0c85e5516222ab7e7fc354c614760ec5_icgraph.md5 new file mode 100644 index 00000000..619a5ebf --- /dev/null +++ b/a01385_a0c85e5516222ab7e7fc354c614760ec5_icgraph.md5 @@ -0,0 +1 @@ +64e3b994d7defaf8b8d99f7ce33a391e \ No newline at end of file diff --git a/a01385_a0c85e5516222ab7e7fc354c614760ec5_icgraph.svg b/a01385_a0c85e5516222ab7e7fc354c614760ec5_icgraph.svg new file mode 100644 index 00000000..60cbed1a --- /dev/null +++ b/a01385_a0c85e5516222ab7e7fc354c614760ec5_icgraph.svg @@ -0,0 +1,991 @@ + + + + + + +utils_list_del + + +Node1 + + +utils_list_del + + + + + +Node2 + + +arax_accel_del_vaccel + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +arax_object_ref_dec + + + + + +Node1->Node4 + + + + + + + + +Node25 + + +arax_object_ref_dec +_pre_locked + + + + + +Node1->Node25 + + + + + + + + +Node28 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node1->Node28 + + + + + + + + +Node35 + + +async_semaphore_inc + + + + + +Node1->Node35 + + + + + + + + +Node46 + + +async_thread + + + + + +Node1->Node46 + + + + + + + + +Node56 + + +utils_list_pop_head + + + + + +Node1->Node56 + + + + + + + + +Node58 + + +utils_list_pop_tail + + + + + +Node1->Node58 + + + + + + + + +Node3 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +arax_accel_list_free + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_accel_release + + + + + +Node4->Node6 + + + + + + + + +Node8 + + +arax_data_free + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +arax_data_migrate_accel + + + + + +Node4->Node9 + + + + + + + + +Node18 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node4->Node18 + + + + + + + + +Node21 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node4->Node21 + + + + + + + + +Node22 + + +arax_pipe_delete_accel + + + + + +Node4->Node22 + + + + + + + + +Node23 + + +arax_proc_put + + + + + +Node4->Node23 + + + + + + + + +Node24 + + +arax_task_free + + + + + +Node4->Node24 + + + + + + + + +Node7 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node6->Node7 + + + + + + + + +Node10 + + +arax_data_arg_init + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_input_init + + + + + +Node9->Node11 + + + + + + + + +Node20 + + +arax_data_output_init + + + + + +Node9->Node20 + + + + + + + + +Node12 + + +arax_task_alloc + + + + + +Node11->Node12 + + + + + + + + +Node20->Node12 + + + + + + + + +Node15 + + +arax_data_get + + + + + +Node23->Node15 + + + + + + + + +Node17 + + +arax_data_set + + + + + +Node23->Node17 + + + + + + + + +Node16 + + +arax_data_memcpy + + + + + +Node15->Node16 + + + + + + + + +Node17->Node16 + + + + + + + + +Node24->Node15 + + + + + + + + +Node14 + + +arax_data_allocate +_remote + + + + + +Node24->Node14 + + + + + + + + +Node19 + + +arax_task_issue_sync + + + + + +Node24->Node19 + + + + + + + + +Node26 + + +arax_accel_list_free +_pre_locked + + + + + +Node25->Node26 + + + + + + + + +Node27 + + +arax_accel_list + + + + + +Node26->Node27 + + + + + + + + +Node28->Node3 + + + + + + + + +Node29 + + +arax_accel_add_vaccel + + + + + +Node28->Node29 + + + + + + + + +Node30 + + +arax_accel_set_physical + + + + + +Node29->Node30 + + + + + + + + +Node31 + + +arax_vaccel_init + + + + + +Node29->Node31 + + + + + + + + +Node32 + + +arax_accel_acquire_phys + + + + + +Node31->Node32 + + + + + + + + +Node33 + + +arax_accel_acquire_type + + + + + +Node31->Node33 + + + + + + + + +Node34 + + +arax_accel_init + + + + + +Node31->Node34 + + + + + + + + +Node36 + + +async_condition_notify + + + + + +Node35->Node36 + + + + + + + + +Node36->Node2 + + + + + + + + +Node36->Node29 + + + + + + + + +Node37 + + +arax_accel_add_task + + + + + +Node36->Node37 + + + + + + + + +Node40 + + +arax_controller_init_done + + + + + +Node36->Node40 + + + + + + + + +Node41 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node36->Node41 + + + + + + + + +Node42 + + +arax_pipe_orphan_stop + + + + + +Node36->Node42 + + + + + + + + +Node43 + + +arax_throttle_size_inc + + + + + +Node36->Node43 + + + + + + + + +Node38 + + +arax_vaccel_add_task + + + + + +Node37->Node38 + + + + + + + + +Node41->Node31 + + + + + + + + +Node44 + + +arax_accel_size_inc + + + + + +Node43->Node44 + + + + + + + + +Node45 + + +arax_pipe_size_inc + + + + + +Node43->Node45 + + + + + + + + +Node45->Node4 + + + + + + + + +Node45->Node25 + + + + + + + + +Node47 + + +async_meta_init_always + + + + + +Node46->Node47 + + + + + + + + +Node48 + + +_arax_init + + + + + +Node47->Node48 + + + + + + + + +Node49 + + +arax_controller_init +_start + + + + + +Node48->Node49 + + + + + + + + +Node57 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node56->Node57 + + + + + + + + diff --git a/a01385_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.map b/a01385_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.map new file mode 100644 index 00000000..11f987b9 --- /dev/null +++ b/a01385_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01385_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.md5 b/a01385_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.md5 new file mode 100644 index 00000000..212afa1b --- /dev/null +++ b/a01385_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.md5 @@ -0,0 +1 @@ +1a7dd730f66f760b7e8d68b9c59ba61e \ No newline at end of file diff --git a/a01385_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.svg b/a01385_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.svg new file mode 100644 index 00000000..6e3b3aaf --- /dev/null +++ b/a01385_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +utils_list_pop_head + + +Node1 + + +utils_list_pop_head + + + + + +Node2 + + +utils_list_del + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01385_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.map b/a01385_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.map new file mode 100644 index 00000000..97acc152 --- /dev/null +++ b/a01385_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01385_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.md5 b/a01385_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.md5 new file mode 100644 index 00000000..6d298df3 --- /dev/null +++ b/a01385_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.md5 @@ -0,0 +1 @@ +4d0bace0f1bd3a1583b7199093a93f30 \ No newline at end of file diff --git a/a01385_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.svg b/a01385_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.svg new file mode 100644 index 00000000..e26482ca --- /dev/null +++ b/a01385_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.svg @@ -0,0 +1,40 @@ + + + + + + +utils_list_pop_head + + +Node1 + + +utils_list_pop_head + + + + + +Node2 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01385_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.map b/a01385_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.map new file mode 100644 index 00000000..6d2f9fa8 --- /dev/null +++ b/a01385_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.map @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01385_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.md5 b/a01385_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.md5 new file mode 100644 index 00000000..7191d57a --- /dev/null +++ b/a01385_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.md5 @@ -0,0 +1 @@ +433b9e258b453d788d3877451970fe49 \ No newline at end of file diff --git a/a01385_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.svg b/a01385_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.svg new file mode 100644 index 00000000..92163db1 --- /dev/null +++ b/a01385_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.svg @@ -0,0 +1,916 @@ + + + + + + +utils_list_node_init + + +Node1 + + +utils_list_node_init + + + + + +Node2 + + +arax_object_register + + + + + +Node1->Node2 + + + + + + + + +Node17 + + +arax_vaccel_init + + + + + +Node1->Node17 + + + + + + + + +Node20 + + +async_completion_init + + + + + +Node1->Node20 + + + + + + + + +Node39 + + +utils_list_init + + + + + +Node1->Node39 + + + + + + + + +Node3 + + +arax_accel_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_init_aligned + + + + + +Node2->Node4 + + + + + + + + +Node7 + + +arax_proc_init + + + + + +Node2->Node7 + + + + + + + + +Node9 + + +arax_task_alloc + + + + + +Node2->Node9 + + + + + + + + +Node2->Node17 + + + + + + + + +Node5 + + +arax_data_init + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +ARAX_BUFFER + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +arax_proc_register + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +arax_task_issue + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_allocate +_remote + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_data_get + + + + + +Node10->Node12 + + + + + + + + +Node14 + + +arax_data_set + + + + + +Node10->Node14 + + + + + + + + +Node15 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node10->Node15 + + + + + + + + +Node16 + + +arax_task_issue_sync + + + + + +Node10->Node16 + + + + + + + + +Node13 + + +arax_data_memcpy + + + + + +Node12->Node13 + + + + + + + + +Node14->Node13 + + + + + + + + +Node17->Node3 + + + + + + + + +Node18 + + +arax_accel_acquire_phys + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +arax_accel_acquire_type + + + + + +Node17->Node19 + + + + + + + + +Node20->Node9 + + + + + + + + +Node21 + + +async_condition_init + + + + + +Node20->Node21 + + + + + + + + +Node32 + + +async_semaphore_dec + + + + + +Node20->Node32 + + + + + + + + +Node21->Node3 + + + + + + + + +Node22 + + +arax_pipe_init + + + + + +Node21->Node22 + + + + + + + + +Node31 + + +arax_throttle_init + + + + + +Node21->Node31 + + + + + + + + +Node23 + + +_arax_init + + + + + +Node22->Node23 + + + + + + + + +Node24 + + +arax_controller_init +_start + + + + + +Node23->Node24 + + + + + + + + +Node25 + + +arax_init + + + + + +Node23->Node25 + + + + + + + + +Node26 + + +arax_plot_register +_metric + + + + + +Node25->Node26 + + + + + + + + +Node27 + + +arax_ptr_valid + + + + + +Node25->Node27 + + + + + + + + +Node27->Node26 + + + + + + + + +Node28 + + +_arax_assert_obj + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +arax_data_ref + + + + + +Node27->Node29 + + + + + + + + +Node30 + + +arax_data_ref_offset + + + + + +Node27->Node30 + + + + + + + + +Node29->Node30 + + + + + + + + +Node31->Node3 + + + + + + + + +Node31->Node22 + + + + + + + + +Node33 + + +async_condition_wait + + + + + +Node32->Node33 + + + + + + + + +Node33->Node23 + + + + + + + + +Node34 + + +arax_accel_wait_for_task + + + + + +Node33->Node34 + + + + + + + + +Node35 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node33->Node35 + + + + + + + + +Node36 + + +arax_throttle_size_dec + + + + + +Node33->Node36 + + + + + + + + +Node37 + + +arax_accel_size_dec + + + + + +Node36->Node37 + + + + + + + + +Node38 + + +arax_pipe_size_dec + + + + + +Node36->Node38 + + + + + + + + +Node37->Node11 + + + + + + + + +Node38->Node2 + + + + + + + + +Node39->Node3 + + + + + + + + +Node39->Node22 + + + + + + + + +Node40 + + +arax_object_repo_init + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +async_meta_init_once + + + + + +Node39->Node41 + + + + + + + + +Node42 + + +async_semaphore_init + + + + + +Node39->Node42 + + + + + + + + +Node40->Node22 + + + + + + + + +Node41->Node22 + + + + + + + + +Node42->Node21 + + + + + + + + diff --git a/a01385_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.map b/a01385_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.map new file mode 100644 index 00000000..0f6660d4 --- /dev/null +++ b/a01385_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/a01385_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.md5 b/a01385_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.md5 new file mode 100644 index 00000000..99ecec0e --- /dev/null +++ b/a01385_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.md5 @@ -0,0 +1 @@ +6048436c689ef069e5c0651573f2aca5 \ No newline at end of file diff --git a/a01385_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.svg b/a01385_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.svg new file mode 100644 index 00000000..9870d1d8 --- /dev/null +++ b/a01385_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.svg @@ -0,0 +1,166 @@ + + + + + + +utils_list_node_linked + + +Node1 + + +utils_list_node_linked + + + + + +Node2 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_add_vaccel + + + + + +Node2->Node3 + + + + + + + + +Node9 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +arax_accel_set_physical + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_vaccel_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_accel_acquire_phys + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_accel_acquire_type + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +arax_accel_init + + + + + +Node5->Node8 + + + + + + + + diff --git a/a01385_ab36e49d2e694b1da49504a689ed48e4a_cgraph.map b/a01385_ab36e49d2e694b1da49504a689ed48e4a_cgraph.map new file mode 100644 index 00000000..d810b3d4 --- /dev/null +++ b/a01385_ab36e49d2e694b1da49504a689ed48e4a_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01385_ab36e49d2e694b1da49504a689ed48e4a_cgraph.md5 b/a01385_ab36e49d2e694b1da49504a689ed48e4a_cgraph.md5 new file mode 100644 index 00000000..a616adf0 --- /dev/null +++ b/a01385_ab36e49d2e694b1da49504a689ed48e4a_cgraph.md5 @@ -0,0 +1 @@ +4179309071c4560f5db028bed95b07fd \ No newline at end of file diff --git a/a01385_ab36e49d2e694b1da49504a689ed48e4a_cgraph.svg b/a01385_ab36e49d2e694b1da49504a689ed48e4a_cgraph.svg new file mode 100644 index 00000000..3bbdffff --- /dev/null +++ b/a01385_ab36e49d2e694b1da49504a689ed48e4a_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +utils_list_init + + +Node1 + + +utils_list_init + + + + + +Node2 + + +utils_list_node_init + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01385_ab36e49d2e694b1da49504a689ed48e4a_icgraph.map b/a01385_ab36e49d2e694b1da49504a689ed48e4a_icgraph.map new file mode 100644 index 00000000..988d7fd2 --- /dev/null +++ b/a01385_ab36e49d2e694b1da49504a689ed48e4a_icgraph.map @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01385_ab36e49d2e694b1da49504a689ed48e4a_icgraph.md5 b/a01385_ab36e49d2e694b1da49504a689ed48e4a_icgraph.md5 new file mode 100644 index 00000000..26204852 --- /dev/null +++ b/a01385_ab36e49d2e694b1da49504a689ed48e4a_icgraph.md5 @@ -0,0 +1 @@ +fa268811e00e55a40b80f2cea14c5865 \ No newline at end of file diff --git a/a01385_ab36e49d2e694b1da49504a689ed48e4a_icgraph.svg b/a01385_ab36e49d2e694b1da49504a689ed48e4a_icgraph.svg new file mode 100644 index 00000000..3a3ba3ed --- /dev/null +++ b/a01385_ab36e49d2e694b1da49504a689ed48e4a_icgraph.svg @@ -0,0 +1,365 @@ + + + + + + +utils_list_init + + +Node1 + + +utils_list_init + + + + + +Node2 + + +arax_accel_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_object_repo_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_pipe_init + + + + + +Node1->Node4 + + + + + + + + +Node13 + + +async_meta_init_once + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +async_semaphore_init + + + + + +Node1->Node14 + + + + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +_arax_init + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_controller_init +_start + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_init + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +arax_plot_register +_metric + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_ptr_valid + + + + + +Node7->Node9 + + + + + + + + +Node9->Node8 + + + + + + + + +Node10 + + +_arax_assert_obj + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_ref + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +arax_data_ref_offset + + + + + +Node9->Node12 + + + + + + + + +Node11->Node12 + + + + + + + + +Node13->Node4 + + + + + + + + +Node15 + + +async_condition_init + + + + + +Node14->Node15 + + + + + + + + +Node15->Node2 + + + + + + + + +Node15->Node4 + + + + + + + + +Node16 + + +arax_throttle_init + + + + + +Node15->Node16 + + + + + + + + +Node16->Node2 + + + + + + + + +Node16->Node4 + + + + + + + + diff --git a/a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.map b/a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.map new file mode 100644 index 00000000..8889c606 --- /dev/null +++ b/a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.md5 b/a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.md5 new file mode 100644 index 00000000..e71eb317 --- /dev/null +++ b/a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.md5 @@ -0,0 +1 @@ +478b484785f58e7ec0efd718c122b94c \ No newline at end of file diff --git a/a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.svg b/a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.svg new file mode 100644 index 00000000..2a1571b5 --- /dev/null +++ b/a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +utils_list_add + + +Node1 + + +utils_list_add + + + + + +Node2 + + +utils_list_node_add + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.map b/a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.map new file mode 100644 index 00000000..576872b6 --- /dev/null +++ b/a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.map @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.md5 b/a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.md5 new file mode 100644 index 00000000..99a1ffad --- /dev/null +++ b/a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.md5 @@ -0,0 +1 @@ +01934466697c506d6a5a4d93c4785a91 \ No newline at end of file diff --git a/a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.svg b/a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.svg new file mode 100644 index 00000000..2a3f640f --- /dev/null +++ b/a01385_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.svg @@ -0,0 +1,1125 @@ + + + + + + +utils_list_add + + +Node1 + + +utils_list_add + + + + + +Node2 + + +_add_completion + + + + + +Node1->Node2 + + + + + + + + +Node25 + + +arax_accel_add_vaccel + + + + + +Node1->Node25 + + + + + + + + +Node36 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node1->Node36 + + + + + + + + +Node43 + + +arax_object_register + + + + + +Node1->Node43 + + + + + + + + +Node69 + + +async_semaphore_dec + + + + + +Node1->Node69 + + + + + + + + +Node3 + + +async_completion_wait + + + + + +Node2->Node3 + + + + + + + + +Node70 + + +async_semaphore_inc + + + + + +Node2->Node70 + + + + + + + + +Node4 + + +arax_task_wait_done + + + + + +Node3->Node4 + + + + + + + + +Node10 + + +async_condition_lock + + + + + +Node3->Node10 + + + + + + + + +Node68 + + +async_condition_wait + + + + + +Node3->Node68 + + + + + + + + +Node3->Node69 + + + + + + + + +Node5 + + +arax_task_wait + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_data_allocate +_remote + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_data_get + + + + + +Node5->Node7 + + + + + + + + +Node9 + + +arax_task_issue_sync + + + + + +Node5->Node9 + + + + + + + + +Node11 + + +_arax_init + + + + + +Node10->Node11 + + + + + + + + +Node19 + + +arax_accel_add_task + + + + + +Node10->Node19 + + + + + + + + +Node10->Node25 + + + + + + + + +Node31 + + +arax_accel_del_vaccel + + + + + +Node10->Node31 + + + + + + + + +Node33 + + +arax_accel_get_assigned +_vaccels + + + + + +Node10->Node33 + + + + + + + + +Node34 + + +arax_accel_wait_for_task + + + + + +Node10->Node34 + + + + + + + + +Node35 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node10->Node35 + + + + + + + + +Node10->Node36 + + + + + + + + +Node37 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node10->Node37 + + + + + + + + +Node38 + + +arax_pipe_orphan_stop + + + + + +Node10->Node38 + + + + + + + + +Node39 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node10->Node39 + + + + + + + + +Node40 + + +arax_throttle_size_dec + + + + + +Node10->Node40 + + + + + + + + +Node50 + + +arax_throttle_size_inc + + + + + +Node10->Node50 + + + + + + + + +Node12 + + +arax_controller_init +_start + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +arax_init + + + + + +Node11->Node13 + + + + + + + + +Node20 + + +arax_vaccel_add_task + + + + + +Node19->Node20 + + + + + + + + +Node26 + + +arax_accel_set_physical + + + + + +Node25->Node26 + + + + + + + + +Node27 + + +arax_vaccel_init + + + + + +Node25->Node27 + + + + + + + + +Node28 + + +arax_accel_acquire_phys + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +arax_accel_acquire_type + + + + + +Node27->Node29 + + + + + + + + +Node30 + + +arax_accel_init + + + + + +Node27->Node30 + + + + + + + + +Node32 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node31->Node32 + + + + + + + + +Node36->Node27 + + + + + + + + +Node39->Node25 + + + + + + + + +Node39->Node32 + + + + + + + + +Node41 + + +arax_accel_size_dec + + + + + +Node40->Node41 + + + + + + + + +Node42 + + +arax_pipe_size_dec + + + + + +Node40->Node42 + + + + + + + + +Node41->Node6 + + + + + + + + +Node42->Node43 + + + + + + + + +Node43->Node27 + + + + + + + + +Node43->Node30 + + + + + + + + +Node44 + + +arax_data_init_aligned + + + + + +Node43->Node44 + + + + + + + + +Node47 + + +arax_proc_init + + + + + +Node43->Node47 + + + + + + + + +Node49 + + +arax_task_alloc + + + + + +Node43->Node49 + + + + + + + + +Node45 + + +arax_data_init + + + + + +Node44->Node45 + + + + + + + + +Node46 + + +ARAX_BUFFER + + + + + +Node45->Node46 + + + + + + + + +Node48 + + +arax_proc_register + + + + + +Node47->Node48 + + + + + + + + +Node22 + + +arax_task_issue + + + + + +Node49->Node22 + + + + + + + + +Node22->Node6 + + + + + + + + +Node22->Node7 + + + + + + + + +Node22->Node9 + + + + + + + + +Node23 + + +arax_data_set + + + + + +Node22->Node23 + + + + + + + + +Node24 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node22->Node24 + + + + + + + + +Node51 + + +arax_accel_size_inc + + + + + +Node50->Node51 + + + + + + + + +Node52 + + +arax_pipe_size_inc + + + + + +Node50->Node52 + + + + + + + + +Node68->Node11 + + + + + + + + +Node68->Node34 + + + + + + + + +Node68->Node37 + + + + + + + + +Node68->Node40 + + + + + + + + +Node69->Node68 + + + + + + + + +Node71 + + +async_condition_notify + + + + + +Node70->Node71 + + + + + + + + +Node71->Node19 + + + + + + + + +Node71->Node25 + + + + + + + + +Node71->Node31 + + + + + + + + +Node71->Node36 + + + + + + + + +Node71->Node38 + + + + + + + + +Node71->Node50 + + + + + + + + +Node72 + + +arax_controller_init_done + + + + + +Node71->Node72 + + + + + + + + diff --git a/a01385_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.map b/a01385_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.map new file mode 100644 index 00000000..1ea34bee --- /dev/null +++ b/a01385_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01385_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.md5 b/a01385_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.md5 new file mode 100644 index 00000000..f3c3875e --- /dev/null +++ b/a01385_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.md5 @@ -0,0 +1 @@ +dd6488f9c3eb573dfe9552e799f46e28 \ No newline at end of file diff --git a/a01385_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.svg b/a01385_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.svg new file mode 100644 index 00000000..384bd3c2 --- /dev/null +++ b/a01385_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.svg @@ -0,0 +1,40 @@ + + + + + + +utils_list_to_array + + +Node1 + + +utils_list_to_array + + + + + +Node2 + + +arax_accel_get_assigned +_vaccels + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01385_source.html b/a01385_source.html new file mode 100644 index 00000000..8eacaf75 --- /dev/null +++ b/a01385_source.html @@ -0,0 +1,175 @@ + + + + + + + +Arax: list.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
list.h
+
+
+Go to the documentation of this file.
1#ifndef UTILS_LIST_HEADER
+
2#define UTILS_LIST_HEADER
+
3#include <stddef.h>
+
4#include <stdint.h>
+
5
+
6#ifdef __cplusplus
+
7extern "C" {
+
8#endif /* ifdef __cplusplus */
+
9
+
10typedef struct utils_list_node
+
11{
+ + +
14 void * owner;
+ +
16typedef struct
+
17{
+ +
19 size_t length;
+ +
21
+ +
29
+ +
34
+ +
40
+ +
50
+ +
60
+
72size_t utils_list_to_array(utils_list_s *list, void **array);
+
73
+ +
81
+ +
89
+
96#define utils_list_for_each(list, itr) \
+
97 for (itr = (list).head.next; itr != (void *) &list; itr = itr->next)
+
98
+
106#define utils_list_for_each_safe(list, itr, tmp) \
+
107 for (itr = (list).head.next; (itr != (void *) &list) && (tmp = itr->next); itr = tmp)
+
108
+
115#define utils_list_for_each_reverse(list, itr) \
+
116 for (itr = (list).head.prev; itr != (void *) &list; itr = itr->prev)
+
117
+
118#ifdef __cplusplus
+
119}
+
120#endif /* ifdef __cplusplus */
+
121
+
122#endif /* ifndef UTILS_LIST_HEADER */
+
utils_list_node_s * utils_list_pop_tail(utils_list_s *list)
Definition list.c:47
+
utils_list_node_s * utils_list_del(utils_list_s *list, utils_list_node_s *node)
Definition list.c:26
+
utils_list_node_s * utils_list_pop_head(utils_list_s *list)
Definition list.c:36
+
void utils_list_node_init(utils_list_node_s *node, void *owner)
Definition list.c:74
+
struct utils_list_node utils_list_node_s
+
int utils_list_node_linked(utils_list_node_s *node)
Definition list.c:81
+
utils_list_s * utils_list_init(void *mem)
Definition list.c:3
+
void utils_list_add(utils_list_s *list, utils_list_node_s *node)
Definition list.c:20
+
size_t utils_list_to_array(utils_list_s *list, void **array)
Definition list.c:58
+ +
struct utils_list_node * prev
Definition list.h:13
+
struct utils_list_node * next
Definition list.h:12
+
void * owner
Definition list.h:14
+ +
utils_list_node_s head
Definition list.h:18
+
size_t length
Definition list.h:19
+
+
+ + + + diff --git a/a01386.map b/a01386.map new file mode 100644 index 00000000..89c7f2c8 --- /dev/null +++ b/a01386.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01386.md5 b/a01386.md5 new file mode 100644 index 00000000..700c2018 --- /dev/null +++ b/a01386.md5 @@ -0,0 +1 @@ +c843c8b16401c5b17f3b4f5dffe55012 \ No newline at end of file diff --git a/a01386.svg b/a01386.svg new file mode 100644 index 00000000..0bff2eb9 --- /dev/null +++ b/a01386.svg @@ -0,0 +1,57 @@ + + + + + + +list.h + + +Node1 + + +list.h + + + + + +Node2 + + +stddef.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/a01387.map b/a01387.map new file mode 100644 index 00000000..46de5dc4 --- /dev/null +++ b/a01387.map @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01387.md5 b/a01387.md5 new file mode 100644 index 00000000..92e9db87 --- /dev/null +++ b/a01387.md5 @@ -0,0 +1 @@ +b7be22ef2aa35c7d12b90620fa0aa459 \ No newline at end of file diff --git a/a01387.svg b/a01387.svg new file mode 100644 index 00000000..f2659891 --- /dev/null +++ b/a01387.svg @@ -0,0 +1,615 @@ + + + + + + +list.h + + +Node1 + + +list.h + + + + + +Node2 + + +arax_object.h + + + + + +Node1->Node2 + + + + + + + + +Node21 + + +async.h + + + + + +Node1->Node21 + + + + + + + + +Node27 + + +list.c + + + + + +Node1->Node27 + + + + + + + + +Node3 + + +arax_assert.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data.h + + + + + +Node2->Node4 + + + + + + + + +Node7 + + +arax_object.c + + + + + +Node2->Node7 + + + + + + + + +Node10 + + +arax_proc.h + + + + + +Node2->Node10 + + + + + + + + +Node19 + + +arax_vaccel.h + + + + + +Node2->Node19 + + + + + + + + +Node2->Node21 + + + + + + + + +Node23 + + +async.h + + + + + +Node2->Node23 + + + + + + + + +Node25 + + +async.h + + + + + +Node2->Node25 + + + + + + + + +Node5 + + +arax_data.c + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_data_private.h + + + + + +Node4->Node6 + + + + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +arax_task.c + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +impl.c + + + + + +Node4->Node9 + + + + + + + + +Node6->Node5 + + + + + + + + +Node10->Node7 + + + + + + + + +Node11 + + +arax_proc.c + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_task.h + + + + + +Node10->Node12 + + + + + + + + +Node12->Node5 + + + + + + + + +Node12->Node7 + + + + + + + + +Node13 + + +arax_pipe.h + + + + + +Node12->Node13 + + + + + + + + +Node13->Node5 + + + + + + + + +Node13->Node7 + + + + + + + + +Node13->Node8 + + + + + + + + +Node13->Node9 + + + + + + + + +Node14 + + +arax_accel.c + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +arax_pipe.c + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +arax_plot.c + + + + + +Node13->Node16 + + + + + + + + +Node17 + + +arax_ptr.c + + + + + +Node13->Node17 + + + + + + + + +Node18 + + +arax_vaccel.c + + + + + +Node13->Node18 + + + + + + + + +Node20 + + +arax_accel.h + + + + + +Node19->Node20 + + + + + + + + +Node20->Node4 + + + + + + + + +Node20->Node7 + + + + + + + + +Node20->Node13 + + + + + + + + +Node20->Node19 + + + + + + + + +Node22 + + +async.c + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +async.c + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +async.c + + + + + +Node25->Node26 + + + + + + + + diff --git a/a01388.html b/a01388.html new file mode 100644 index 00000000..8d61170f --- /dev/null +++ b/a01388.html @@ -0,0 +1,408 @@ + + + + + + + +Arax: queue.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
queue.h File Reference
+
+
+
#include <stddef.h>
+#include <stdint.h>
+#include <conf.h>
+#include "spinlock.h"
+
+ + Include dependency graph for queue.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  queue
 
+ + + +

+Typedefs

typedef struct queue utils_queue_s
 
+ + + + + + + + + + + + + +

+Functions

struct queue __attribute__ ((aligned(CONF_CACHE_LINE)))
 
utils_queue_sutils_queue_init (void *buff)
 
unsigned int utils_queue_used_slots (utils_queue_s *q)
 
void * utils_queue_push (utils_queue_s *q, void *data)
 
void * utils_queue_pop (utils_queue_s *q)
 
void * utils_queue_peek (utils_queue_s *q)
 
+ + + +

+Variables

void * entries [UTILS_QUEUE_CAPACITY]
 
+

Typedef Documentation

+ +

◆ utils_queue_s

+ +
+
+ + + + +
typedef struct queue utils_queue_s
+
+ +

Definition at line 30 of file queue.h.

+ +
+
+

Function Documentation

+ +

◆ __attribute__()

+ +
+
+ + + + + + + + +
volatile uint16_t top __attribute__ ((aligned(CONF_CACHE_LINE)) )
+
+

Push here
+

+

Pop here

+ +
+
+ +

◆ utils_queue_init()

+ +
+
+ + + + + + + + +
utils_queue_s * utils_queue_init (void * buff)
+
+

Initialize a queue at the memory pointed by buff.

+
Parameters
+ + +
buffAllocated buffer.
+
+
+
Returns
queue instance.NULL on failure.
+ +

Definition at line 39 of file queue.c.

+ +

References arax_assert, and utils_spinlock_init.

+ +

Referenced by arax_vaccel_init().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_queue_peek()

+ +
+
+ + + + + + + + +
void * utils_queue_peek (utils_queue_sq)
+
+

Peek first element from queue if any

+
Parameters
+ + +
qValid queue instance pointer.
+
+
+
Returns
Data pointer, NULL on failure.
+ +

Definition at line 126 of file queue.c.

+ +

References queue::entries.

+ +
+
+ +

◆ utils_queue_pop()

+ +
+
+ + + + + + + + +
void * utils_queue_pop (utils_queue_sq)
+
+

Pop data from queue.

+
Parameters
+ + +
qValid queue instance pointer.
+
+
+
Returns
Data pointer, NULL on failure.
+ +

Definition at line 63 of file queue.c.

+ +

References arax_assert, and queue::entries.

+ +
+
+ +

◆ utils_queue_push()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void * utils_queue_push (utils_queue_sq,
void * data 
)
+
+

Add data to an queue

+
Parameters
+ + + +
qValid queue instance pointer.
dataNon NULL pointer to data.
+
+
+
Returns
Equal to data, NULL on failure.
+ +

Definition at line 89 of file queue.c.

+ +

References arax_assert, queue::entries, utils_spinlock_lock, and utils_spinlock_unlock.

+ +

Referenced by arax_vaccel_add_task().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_queue_used_slots()

+ +
+
+ + + + + + + + +
unsigned int utils_queue_used_slots (utils_queue_sq)
+
+

Return number of used slots in the queue.

+

NOTE: Since this is a concurrent queue the value returned by this function may not always reflect the true state of the queue

+
Parameters
+ + +
qValid queue instance pointer.
+
+
+
Returns
Number of used slots in queue.
+ +

Definition at line 51 of file queue.c.

+ +

Referenced by arax_vaccel_queue_size().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+

Variable Documentation

+ +

◆ entries

+ +
+
+ + + + +
void* entries[UTILS_QUEUE_CAPACITY]
+
+

Pointers to data.

+ +

Definition at line 1 of file queue.h.

+ +
+
+
+
+ + + + diff --git a/a01388.js b/a01388.js new file mode 100644 index 00000000..dd6c4734 --- /dev/null +++ b/a01388.js @@ -0,0 +1,12 @@ +var a01388 = +[ + [ "queue", "a02318.html", "a02318" ], + [ "utils_queue_s", "a01388.html#aeb72b8e73ce63c3fe515c30f9ee51cad", null ], + [ "__attribute__", "a01388.html#a22ce7d1481ed08520fb7502ee9434678", null ], + [ "utils_queue_init", "a01388.html#a49c353188156b1df4463a5fc7f7bc25e", null ], + [ "utils_queue_peek", "a01388.html#a88a8ed68fcdf9e38ebae44935d735c2d", null ], + [ "utils_queue_pop", "a01388.html#a8dee44046246efe133935d48d2cc387e", null ], + [ "utils_queue_push", "a01388.html#a9fae55b169121c4851bb7c0adf4eac47", null ], + [ "utils_queue_used_slots", "a01388.html#a5d84d59bded666fdcf1a8e949cb56a6a", null ], + [ "entries", "a01388.html#adec38c3b1601c7334cb62eb08a16bdef", null ] +]; \ No newline at end of file diff --git a/a01388_a49c353188156b1df4463a5fc7f7bc25e_icgraph.map b/a01388_a49c353188156b1df4463a5fc7f7bc25e_icgraph.map new file mode 100644 index 00000000..b6f31d60 --- /dev/null +++ b/a01388_a49c353188156b1df4463a5fc7f7bc25e_icgraph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/a01388_a49c353188156b1df4463a5fc7f7bc25e_icgraph.md5 b/a01388_a49c353188156b1df4463a5fc7f7bc25e_icgraph.md5 new file mode 100644 index 00000000..7f3234a4 --- /dev/null +++ b/a01388_a49c353188156b1df4463a5fc7f7bc25e_icgraph.md5 @@ -0,0 +1 @@ +eb8e38de84b34969e7cc55a152b3ad2e \ No newline at end of file diff --git a/a01388_a49c353188156b1df4463a5fc7f7bc25e_icgraph.svg b/a01388_a49c353188156b1df4463a5fc7f7bc25e_icgraph.svg new file mode 100644 index 00000000..07a48f3b --- /dev/null +++ b/a01388_a49c353188156b1df4463a5fc7f7bc25e_icgraph.svg @@ -0,0 +1,93 @@ + + + + + + +utils_queue_init + + +Node1 + + +utils_queue_init + + + + + +Node2 + + +arax_vaccel_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_acquire_phys + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_accel_acquire_type + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_accel_init + + + + + +Node2->Node5 + + + + + + + + diff --git a/a01388_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.map b/a01388_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.map new file mode 100644 index 00000000..a91cdfb3 --- /dev/null +++ b/a01388_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01388_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.md5 b/a01388_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.md5 new file mode 100644 index 00000000..dedbd03e --- /dev/null +++ b/a01388_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.md5 @@ -0,0 +1 @@ +cc567d3455e85722ecf1b6160de50177 \ No newline at end of file diff --git a/a01388_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.svg b/a01388_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.svg new file mode 100644 index 00000000..ffb9c020 --- /dev/null +++ b/a01388_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.svg @@ -0,0 +1,183 @@ + + + + + + +utils_queue_used_slots + + +Node1 + + +utils_queue_used_slots + + + + + +Node2 + + +arax_vaccel_queue_size + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_add_vaccel + + + + + +Node2->Node3 + + + + + + + + +Node9 + + +arax_accel_del_vaccel + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +arax_accel_set_physical + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_vaccel_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_accel_acquire_phys + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_accel_acquire_type + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +arax_accel_init + + + + + +Node5->Node8 + + + + + + + + +Node10 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01388_a9fae55b169121c4851bb7c0adf4eac47_icgraph.map b/a01388_a9fae55b169121c4851bb7c0adf4eac47_icgraph.map new file mode 100644 index 00000000..3a57baf7 --- /dev/null +++ b/a01388_a9fae55b169121c4851bb7c0adf4eac47_icgraph.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01388_a9fae55b169121c4851bb7c0adf4eac47_icgraph.md5 b/a01388_a9fae55b169121c4851bb7c0adf4eac47_icgraph.md5 new file mode 100644 index 00000000..4d128506 --- /dev/null +++ b/a01388_a9fae55b169121c4851bb7c0adf4eac47_icgraph.md5 @@ -0,0 +1 @@ +3b077a3794f5d582a7e47a4b510b2d4d \ No newline at end of file diff --git a/a01388_a9fae55b169121c4851bb7c0adf4eac47_icgraph.svg b/a01388_a9fae55b169121c4851bb7c0adf4eac47_icgraph.svg new file mode 100644 index 00000000..b4df1505 --- /dev/null +++ b/a01388_a9fae55b169121c4851bb7c0adf4eac47_icgraph.svg @@ -0,0 +1,193 @@ + + + + + + +utils_queue_push + + +Node1 + + +utils_queue_push + + + + + +Node2 + + +arax_vaccel_add_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_task_submit + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_task_issue + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data_allocate +_remote + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_data_get + + + + + +Node4->Node6 + + + + + + + + +Node8 + + +arax_data_set + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +arax_task_issue_sync + + + + + +Node4->Node10 + + + + + + + + +Node7 + + +arax_data_memcpy + + + + + +Node6->Node7 + + + + + + + + +Node8->Node7 + + + + + + + + diff --git a/a01388_source.html b/a01388_source.html new file mode 100644 index 00000000..a40862c8 --- /dev/null +++ b/a01388_source.html @@ -0,0 +1,160 @@ + + + + + + + +Arax: queue.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
queue.h
+
+
+Go to the documentation of this file.
1#ifndef UTILS_QUEUE_HEADER
+
2#define UTILS_QUEUE_HEADER
+
3#include <stddef.h>
+
4#include <stdint.h>
+
5#include <conf.h>
+
6#include "spinlock.h"
+
7
+
8#ifdef __cplusplus
+
9extern "C" {
+
10#endif /* ifdef __cplusplus */
+
11
+
15struct queue
+
16{
+
18 void * entries[UTILS_QUEUE_CAPACITY];
+
19
+
20 #ifdef UTILS_QUEUE_MPMC
+
21 utils_spinlock lock;
+
22 #endif
+
24 volatile uint16_t bottom __attribute__( ( aligned(CONF_CACHE_LINE) ) );
+
25
+
27 volatile uint16_t top __attribute__( ( aligned(CONF_CACHE_LINE) ) );
+
28} __attribute__( ( aligned(CONF_CACHE_LINE) ) );
+
29
+
30typedef struct queue utils_queue_s;
+
31
+ +
39
+ +
50
+
58void* utils_queue_push(utils_queue_s *q, void *data);
+
59
+ +
67
+ +
75#ifdef __cplusplus
+
76}
+
77#endif /* ifdef __cplusplus */
+
78
+
79#endif /* ifndef UTILS_QUEUE_HEADER */
+
struct queue __attribute__((aligned(CONF_CACHE_LINE)))
+
utils_queue_s * utils_queue_init(void *buff)
Definition queue.c:39
+
unsigned int utils_queue_used_slots(utils_queue_s *q)
Definition queue.c:51
+
void * utils_queue_peek(utils_queue_s *q)
Definition queue.c:126
+
void * utils_queue_pop(utils_queue_s *q)
Definition queue.c:63
+
void * utils_queue_push(utils_queue_s *q, void *data)
Definition queue.c:89
+ +
volatile uint32_t utils_spinlock
Definition spinlock.h:10
+ +
Definition queue.h:16
+
volatile uint16_t top __attribute__((aligned(CONF_CACHE_LINE)))
+
volatile uint16_t bottom __attribute__((aligned(CONF_CACHE_LINE)))
+
void * entries[UTILS_QUEUE_CAPACITY]
Definition queue.h:18
+
+
+ + + + diff --git a/a01389.map b/a01389.map new file mode 100644 index 00000000..3fb7a707 --- /dev/null +++ b/a01389.map @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/a01389.md5 b/a01389.md5 new file mode 100644 index 00000000..cf5f5589 --- /dev/null +++ b/a01389.md5 @@ -0,0 +1 @@ +d03909e5fe0d956f0c2f17810e16b309 \ No newline at end of file diff --git a/a01389.svg b/a01389.svg new file mode 100644 index 00000000..d4d358c9 --- /dev/null +++ b/a01389.svg @@ -0,0 +1,138 @@ + + + + + + +queue.h + + +Node1 + + +queue.h + + + + + +Node2 + + +stddef.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +conf.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +spinlock.h + + + + + +Node1->Node5 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6 + + +utils/arax_assert.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +compat.h + + + + + +Node6->Node7 + + + + + + + + diff --git a/a01390.map b/a01390.map new file mode 100644 index 00000000..319a3707 --- /dev/null +++ b/a01390.map @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01390.md5 b/a01390.md5 new file mode 100644 index 00000000..a847585d --- /dev/null +++ b/a01390.md5 @@ -0,0 +1 @@ +9d3307be0a343e0c9d42290246d73b65 \ No newline at end of file diff --git a/a01390.svg b/a01390.svg new file mode 100644 index 00000000..02be3811 --- /dev/null +++ b/a01390.svg @@ -0,0 +1,363 @@ + + + + + + +queue.h + + +Node1 + + +queue.h + + + + + +Node2 + + +arax_pipe.h + + + + + +Node1->Node2 + + + + + + + + +Node12 + + +arax_vaccel.h + + + + + +Node1->Node12 + + + + + + + + +Node16 + + +queue.c + + + + + +Node1->Node16 + + + + + + + + +Node3 + + +arax_accel.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data.c + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_object.c + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +arax_pipe.c + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +arax_plot.c + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +arax_ptr.c + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +arax_task.c + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +arax_vaccel.c + + + + + +Node2->Node10 + + + + + + + + +Node11 + + +impl.c + + + + + +Node2->Node11 + + + + + + + + +Node13 + + +arax_accel.h + + + + + +Node12->Node13 + + + + + + + + +Node13->Node2 + + + + + + + + +Node13->Node5 + + + + + + + + +Node13->Node12 + + + + + + + + +Node14 + + +arax_data.h + + + + + +Node13->Node14 + + + + + + + + +Node14->Node4 + + + + + + + + +Node14->Node5 + + + + + + + + +Node14->Node9 + + + + + + + + +Node14->Node11 + + + + + + + + +Node15 + + +arax_data_private.h + + + + + +Node14->Node15 + + + + + + + + +Node15->Node4 + + + + + + + + diff --git a/a01391.html b/a01391.html new file mode 100644 index 00000000..d0168ee3 --- /dev/null +++ b/a01391.html @@ -0,0 +1,270 @@ + + + + + + + +Arax: spinlock.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
spinlock.h File Reference
+
+
+
#include <stdint.h>
+#include "utils/arax_assert.h"
+
+ + Include dependency graph for spinlock.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Typedefs

typedef volatile uint32_t utils_spinlock
 
+ + + + + + + +

+Functions

static void utils_spinlock_init (utils_spinlock *lock)
 
static void utils_spinlock_lock (utils_spinlock *lock)
 
static void utils_spinlock_unlock (utils_spinlock *lock)
 
+

Typedef Documentation

+ +

◆ utils_spinlock

+ +
+
+ + + + +
typedef volatile uint32_t utils_spinlock
+
+ +

Definition at line 10 of file spinlock.h.

+ +
+
+

Function Documentation

+ +

◆ utils_spinlock_init()

+ +
+
+ + + + + +
+ + + + + + + + +
static void utils_spinlock_init (utils_spinlocklock)
+
+inlinestatic
+
+

Initialize lock as unlocked.

+
Parameters
+ + +
lockutils_spinlock to be initialized as unlocked.
+
+
+ +

Definition at line 19 of file spinlock.h.

+ +
+
+ +

◆ utils_spinlock_lock()

+ +
+
+ + + + + +
+ + + + + + + + +
static void utils_spinlock_lock (utils_spinlocklock)
+
+inlinestatic
+
+

Lock lock.

+

Will attempt to lock lock. Will spin until succesfull.

+
Parameters
+ + +
lockutils_spinlock instance to be locked.
+
+
+ +

Definition at line 32 of file spinlock.h.

+ +
+
+ +

◆ utils_spinlock_unlock()

+ +
+
+ + + + + +
+ + + + + + + + +
static void utils_spinlock_unlock (utils_spinlocklock)
+
+inlinestatic
+
+

Will unlock lock that was previously locked.

Note
Calling utils_spinlock_unlock on an unlocked utils_spinlock instance is an error.
+
Parameters
+ + +
lockutils_spinlock instance to be unlocked.
+
+
+ +

Definition at line 48 of file spinlock.h.

+ +

References arax_assert.

+ +
+
+
+
+ + + + diff --git a/a01391.js b/a01391.js new file mode 100644 index 00000000..031e14a4 --- /dev/null +++ b/a01391.js @@ -0,0 +1,7 @@ +var a01391 = +[ + [ "utils_spinlock", "a01391.html#ae6f2d470f2623f5dcb63ce56d50b815e", null ], + [ "utils_spinlock_init", "a01391.html#a4e53dedb4be075dc9c89468b377998d5", null ], + [ "utils_spinlock_lock", "a01391.html#aa44806e01b878d6508fd6d37495d3f78", null ], + [ "utils_spinlock_unlock", "a01391.html#a7005bc947de55764af4fd5b450d1109d", null ] +]; \ No newline at end of file diff --git a/a01391_source.html b/a01391_source.html new file mode 100644 index 00000000..092926c1 --- /dev/null +++ b/a01391_source.html @@ -0,0 +1,149 @@ + + + + + + + +Arax: spinlock.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
spinlock.h
+
+
+Go to the documentation of this file.
1#ifndef UTILS_SPINLOCK_HEADER
+
2#define UTILS_SPINLOCK_HEADER
+
3#include <stdint.h>
+
4#include "utils/arax_assert.h"
+
5
+
6#if __x86_64__
+
7typedef volatile uint64_t utils_spinlock;
+
8
+
9#else /* if __x86_64__ */
+
10typedef volatile uint32_t utils_spinlock;
+
11
+
12#endif /* if __x86_64__ */
+
13
+
19static inline void utils_spinlock_init(utils_spinlock *lock)
+
20{
+
21 *lock = 0;
+
22}
+
23
+
32static inline void utils_spinlock_lock(utils_spinlock *lock)
+
33{
+
34 do {
+
35 while (*lock)
+
36 ; /* Maybe add relax()? */
+
37 if (__sync_bool_compare_and_swap(lock, 0, 1) )
+
38 break; /* We got it */
+
39 } while (1); /* Try again */
+
40}
+
41
+
48static inline void utils_spinlock_unlock(utils_spinlock *lock)
+
49{
+
50 arax_assert(*lock); /* Attempting to unlock twice */
+
51 __sync_fetch_and_and(lock, 0);
+
52}
+
53
+
54#endif /* ifndef UTILS_SPINLOCK_HEADER */
+ +
#define arax_assert(EXPR)
Definition arax_assert.h:7
+
volatile uint32_t utils_spinlock
Definition spinlock.h:10
+
#define utils_spinlock_lock(V)
Definition queue.c:35
+
#define utils_spinlock_init(V)
Definition queue.c:34
+
#define utils_spinlock_unlock(V)
Definition queue.c:36
+
+
+ + + + diff --git a/a01392.map b/a01392.map new file mode 100644 index 00000000..acdebe7b --- /dev/null +++ b/a01392.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a01392.md5 b/a01392.md5 new file mode 100644 index 00000000..2290b826 --- /dev/null +++ b/a01392.md5 @@ -0,0 +1 @@ +9c897e803aa707b04749c7ccac72b489 \ No newline at end of file diff --git a/a01392.svg b/a01392.svg new file mode 100644 index 00000000..7ef97841 --- /dev/null +++ b/a01392.svg @@ -0,0 +1,75 @@ + + + + + + +spinlock.h + + +Node1 + + +spinlock.h + + + + + +Node2 + + +stdint.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +utils/arax_assert.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +compat.h + + + + + +Node3->Node4 + + + + + + + + diff --git a/a01393.map b/a01393.map new file mode 100644 index 00000000..24b536c0 --- /dev/null +++ b/a01393.map @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01393.md5 b/a01393.md5 new file mode 100644 index 00000000..a7057a25 --- /dev/null +++ b/a01393.md5 @@ -0,0 +1 @@ +dfb88c0bd91ce75839dedc52334dd6e9 \ No newline at end of file diff --git a/a01393.svg b/a01393.svg new file mode 100644 index 00000000..4d9ecb0a --- /dev/null +++ b/a01393.svg @@ -0,0 +1,768 @@ + + + + + + +spinlock.h + + +Node1 + + +spinlock.h + + + + + +Node2 + + +Kv.h + + + + + +Node1->Node2 + + + + + + + + +Node14 + + +arax_object.h + + + + + +Node1->Node14 + + + + + + + + +Node29 + + +bitmap.h + + + + + +Node1->Node29 + + + + + + + + +Node33 + + +queue.h + + + + + +Node1->Node33 + + + + + + + + +Node3 + + +Kv.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_pipe.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_accel.c + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_data.c + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_object.c + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +arax_pipe.c + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +arax_plot.c + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +arax_ptr.c + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +arax_task.c + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +arax_vaccel.c + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +impl.c + + + + + +Node4->Node13 + + + + + + + + +Node14->Node7 + + + + + + + + +Node15 + + +arax_assert.c + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +arax_data.h + + + + + +Node14->Node16 + + + + + + + + +Node18 + + +arax_proc.h + + + + + +Node14->Node18 + + + + + + + + +Node21 + + +arax_vaccel.h + + + + + +Node14->Node21 + + + + + + + + +Node23 + + +async.h + + + + + +Node14->Node23 + + + + + + + + +Node25 + + +async.h + + + + + +Node14->Node25 + + + + + + + + +Node27 + + +async.h + + + + + +Node14->Node27 + + + + + + + + +Node16->Node6 + + + + + + + + +Node16->Node7 + + + + + + + + +Node16->Node11 + + + + + + + + +Node16->Node13 + + + + + + + + +Node17 + + +arax_data_private.h + + + + + +Node16->Node17 + + + + + + + + +Node17->Node6 + + + + + + + + +Node18->Node7 + + + + + + + + +Node19 + + +arax_proc.c + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +arax_task.h + + + + + +Node18->Node20 + + + + + + + + +Node20->Node4 + + + + + + + + +Node20->Node6 + + + + + + + + +Node20->Node7 + + + + + + + + +Node22 + + +arax_accel.h + + + + + +Node21->Node22 + + + + + + + + +Node22->Node4 + + + + + + + + +Node22->Node7 + + + + + + + + +Node22->Node16 + + + + + + + + +Node22->Node21 + + + + + + + + +Node24 + + +async.c + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +async.c + + + + + +Node25->Node26 + + + + + + + + +Node28 + + +async.c + + + + + +Node27->Node28 + + + + + + + + +Node30 + + +alloc.h + + + + + +Node29->Node30 + + + + + + + + +Node32 + + +bitmap.c + + + + + +Node29->Node32 + + + + + + + + +Node30->Node9 + + + + + + + + +Node31 + + +malloc.c + + + + + +Node30->Node31 + + + + + + + + +Node33->Node4 + + + + + + + + +Node33->Node21 + + + + + + + + +Node34 + + +queue.c + + + + + +Node33->Node34 + + + + + + + + diff --git a/a01394.html b/a01394.html new file mode 100644 index 00000000..a92774c7 --- /dev/null +++ b/a01394.html @@ -0,0 +1,476 @@ + + + + + + + +Arax: system.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
system.h File Reference
+
+
+
#include <stddef.h>
+#include <sys/types.h>
+
+ + Include dependency graph for system.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + +

+Functions

char * system_home_path ()
 
const char * system_env_var (const char *var)
 
int system_mmap (void **base, int *fd, const char *file, size_t shm_size, size_t shm_off, int truncate)
 
size_t system_total_memory ()
 
off_t system_file_size (const char *file)
 
const char * system_exec_name ()
 
int system_process_id ()
 
int system_thread_id ()
 
const char * system_backtrace (unsigned int skip)
 
+

Function Documentation

+ +

◆ system_backtrace()

+ +
+
+ + + + + + + + +
const char * system_backtrace (unsigned int skip)
+
+

Get stack backtrace for calling thread. Returned string does not end with a new line.

+
Note
Do not free or modify returned value
+
Parameters
+ + +
skipNumber of functions to skip from trace.0 will show up to the caller.
+
+
+
Returns
formated acktrace
+ +

Definition at line 154 of file system.c.

+ +

References __backtraceStr, FMT, formatStackLine(), and MID.

+ +

Referenced by _arax_assert().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ system_env_var()

+ +
+
+ + + + + + + + +
const char * system_env_var (const char * var)
+
+

Get value of enviroment variable var. NULL if variable not set.

+
Note
Do NOT free returned pointer.
+
Returns
NULL terminated string with enviroment variable value.
+ +

Definition at line 32 of file system.c.

+ +

Referenced by conf_get(), and utils_config_get_source().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ system_exec_name()

+ +
+
+ + + + + + + +
const char * system_exec_name ()
+
+

Get current executable name

+ +

Definition at line 78 of file system.c.

+ +
+
+ +

◆ system_file_size()

+ +
+
+ + + + + + + + +
off_t system_file_size (const char * file)
+
+

Get size of file in bytes.

+
Returns
File size in bytes, 0 on failure.
+ +

Definition at line 68 of file system.c.

+ +

Referenced by conf_get(), and system_mmap().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ system_home_path()

+ +
+
+ + + + + + + +
char * system_home_path ()
+
+

Get current users home directory.

+
Note
Do NOT free returned pointer.
+
Returns
NULL terminated string with home path.
+ +

Definition at line 21 of file system.c.

+ +

Referenced by utils_config_alloc_path().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ system_mmap()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int system_mmap (void ** base,
int * fd,
const char * file,
size_t shm_size,
size_t shm_off,
int truncate 
)
+
+

Type to mmap file of size shm_size.

+
Parameters
+ + + + + + + +
baseIf succesfull will return mmap location, null otherwise. Initial value is used as a hint.
fdFile descriptor. If succesfull will be positive.Negative on failure.
fileLocation of mmap backing file.
shm_sizeSize of resulting mmap and file.
shm_offSkip bytes from the mmap of file.
truncateTruncate file to shm_size bytes.
+
+
+
Returns
0 on success, check base and fd to figure error.
+ +

Definition at line 37 of file system.c.

+ +

References fd, and system_file_size().

+ +

Referenced by _arax_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ system_process_id()

+ +
+
+ + + + + + + +
int system_process_id ()
+
+

Get PID of current process

+ +

Definition at line 91 of file system.c.

+ +

Referenced by _arax_init(), and arax_exit().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ system_thread_id()

+ +
+
+ + + + + + + +
int system_thread_id ()
+
+

Get thread id of current process thread

+ +

Definition at line 96 of file system.c.

+ +
+
+ +

◆ system_total_memory()

+ +
+
+ + + + + + + +
size_t system_total_memory ()
+
+

Return total memory in bytes.

+
Returns
Total memory in bytes.
+ +

Definition at line 13 of file system.c.

+ +

Referenced by _arax_init().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01394.js b/a01394.js new file mode 100644 index 00000000..726d03d5 --- /dev/null +++ b/a01394.js @@ -0,0 +1,12 @@ +var a01394 = +[ + [ "system_backtrace", "a01394.html#a086232272942235166bf349ef7aacf9d", null ], + [ "system_env_var", "a01394.html#acde493d3889d6f207d1e122cf4bb1b8c", null ], + [ "system_exec_name", "a01394.html#a36e65476d70ed717735bbcfa6c09b75d", null ], + [ "system_file_size", "a01394.html#a86c3bfbf6daaf8172e131aa23dc7393c", null ], + [ "system_home_path", "a01394.html#a0844807fe9679a9a5fbf1bfc9dd78dc6", null ], + [ "system_mmap", "a01394.html#ad8ca0aa2e50dbe9c1827c2d4da814cf6", null ], + [ "system_process_id", "a01394.html#a38809d11e47f180968c23903fed321ef", null ], + [ "system_thread_id", "a01394.html#a1fe891ca2eeb8a21c92ce9868d81ef69", null ], + [ "system_total_memory", "a01394.html#a54bd28e423e19877e5abcb1fe3d12c03", null ] +]; \ No newline at end of file diff --git a/a01394_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.map b/a01394_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.map new file mode 100644 index 00000000..6663ef83 --- /dev/null +++ b/a01394_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.map @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01394_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.md5 b/a01394_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.md5 new file mode 100644 index 00000000..ef9dfc81 --- /dev/null +++ b/a01394_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.md5 @@ -0,0 +1 @@ +bd91579883bbbaa2f6c0a9a96cce8d4b \ No newline at end of file diff --git a/a01394_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.svg b/a01394_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.svg new file mode 100644 index 00000000..84cdbd71 --- /dev/null +++ b/a01394_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.svg @@ -0,0 +1,311 @@ + + + + + + +system_home_path + + +Node1 + + +system_home_path + + + + + +Node2 + + +utils_config_alloc_path + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +arax_clean + + + + + +Node2->Node11 + + + + + + + + +Node13 + + +async_meta_init_always + + + + + +Node2->Node13 + + + + + + + + +Node14 + + +async_meta_init_once + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + +Node12 + + +arax_exit + + + + + +Node11->Node12 + + + + + + + + +Node13->Node3 + + + + + + + + +Node15 + + +arax_pipe_init + + + + + +Node14->Node15 + + + + + + + + +Node15->Node3 + + + + + + + + diff --git a/a01394_a086232272942235166bf349ef7aacf9d_cgraph.map b/a01394_a086232272942235166bf349ef7aacf9d_cgraph.map new file mode 100644 index 00000000..7b5f4bbe --- /dev/null +++ b/a01394_a086232272942235166bf349ef7aacf9d_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01394_a086232272942235166bf349ef7aacf9d_cgraph.md5 b/a01394_a086232272942235166bf349ef7aacf9d_cgraph.md5 new file mode 100644 index 00000000..83532637 --- /dev/null +++ b/a01394_a086232272942235166bf349ef7aacf9d_cgraph.md5 @@ -0,0 +1 @@ +bf984d20a404d32bb3052b0b4d892a2b \ No newline at end of file diff --git a/a01394_a086232272942235166bf349ef7aacf9d_cgraph.svg b/a01394_a086232272942235166bf349ef7aacf9d_cgraph.svg new file mode 100644 index 00000000..8d5b5801 --- /dev/null +++ b/a01394_a086232272942235166bf349ef7aacf9d_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +system_backtrace + + +Node1 + + +system_backtrace + + + + + +Node2 + + +formatStackLine + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01394_a086232272942235166bf349ef7aacf9d_icgraph.map b/a01394_a086232272942235166bf349ef7aacf9d_icgraph.map new file mode 100644 index 00000000..e6133157 --- /dev/null +++ b/a01394_a086232272942235166bf349ef7aacf9d_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01394_a086232272942235166bf349ef7aacf9d_icgraph.md5 b/a01394_a086232272942235166bf349ef7aacf9d_icgraph.md5 new file mode 100644 index 00000000..e0951625 --- /dev/null +++ b/a01394_a086232272942235166bf349ef7aacf9d_icgraph.md5 @@ -0,0 +1 @@ +42d7472d9b4682195ee7610a041582ad \ No newline at end of file diff --git a/a01394_a086232272942235166bf349ef7aacf9d_icgraph.svg b/a01394_a086232272942235166bf349ef7aacf9d_icgraph.svg new file mode 100644 index 00000000..8835ab90 --- /dev/null +++ b/a01394_a086232272942235166bf349ef7aacf9d_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +system_backtrace + + +Node1 + + +system_backtrace + + + + + +Node2 + + +_arax_assert + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01394_a38809d11e47f180968c23903fed321ef_icgraph.map b/a01394_a38809d11e47f180968c23903fed321ef_icgraph.map new file mode 100644 index 00000000..17f928c0 --- /dev/null +++ b/a01394_a38809d11e47f180968c23903fed321ef_icgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01394_a38809d11e47f180968c23903fed321ef_icgraph.md5 b/a01394_a38809d11e47f180968c23903fed321ef_icgraph.md5 new file mode 100644 index 00000000..c3da82a7 --- /dev/null +++ b/a01394_a38809d11e47f180968c23903fed321ef_icgraph.md5 @@ -0,0 +1 @@ +9d8b3e5fd0d39c3a4c42b11c3e71c63d \ No newline at end of file diff --git a/a01394_a38809d11e47f180968c23903fed321ef_icgraph.svg b/a01394_a38809d11e47f180968c23903fed321ef_icgraph.svg new file mode 100644 index 00000000..937e7a84 --- /dev/null +++ b/a01394_a38809d11e47f180968c23903fed321ef_icgraph.svg @@ -0,0 +1,203 @@ + + + + + + +system_process_id + + +Node1 + + +system_process_id + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +arax_exit + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01394_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.map b/a01394_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.map new file mode 100644 index 00000000..53e69bfc --- /dev/null +++ b/a01394_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01394_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.md5 b/a01394_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.md5 new file mode 100644 index 00000000..4ffbc601 --- /dev/null +++ b/a01394_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.md5 @@ -0,0 +1 @@ +f48f60553c5c0e8d0c28bee47c1749e0 \ No newline at end of file diff --git a/a01394_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.svg b/a01394_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.svg new file mode 100644 index 00000000..5fc49266 --- /dev/null +++ b/a01394_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.svg @@ -0,0 +1,185 @@ + + + + + + +system_total_memory + + +Node1 + + +system_total_memory + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01394_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.map b/a01394_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.map new file mode 100644 index 00000000..7aab62f0 --- /dev/null +++ b/a01394_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.map @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01394_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.md5 b/a01394_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.md5 new file mode 100644 index 00000000..c86ee096 --- /dev/null +++ b/a01394_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.md5 @@ -0,0 +1 @@ +c4066d9755561b07bac1175e30b8b5d3 \ No newline at end of file diff --git a/a01394_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.svg b/a01394_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.svg new file mode 100644 index 00000000..4fd3c7ca --- /dev/null +++ b/a01394_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.svg @@ -0,0 +1,518 @@ + + + + + + +system_file_size + + +Node1 + + +system_file_size + + + + + +Node2 + + +conf_get + + + + + +Node1->Node2 + + + + + + + + +Node24 + + +system_mmap + + + + + +Node1->Node24 + + + + + + + + +Node3 + + +_utils_config_get_str + + + + + +Node2->Node3 + + + + + + + + +Node22 + + +utils_config_write_str + + + + + +Node2->Node22 + + + + + + + + +Node4 + + +utils_config_get_long + + + + + +Node3->Node4 + + + + + + + + +Node18 + + +utils_config_get_str + + + + + +Node3->Node18 + + + + + + + + +Node5 + + +utils_config_get_int + + + + + +Node4->Node5 + + + + + + + + +Node17 + + +utils_config_get_size + + + + + +Node4->Node17 + + + + + + + + +Node6 + + +utils_config_get_bool + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +_arax_init + + + + + +Node6->Node7 + + + + + + + + +Node15 + + +async_meta_init_once + + + + + +Node6->Node15 + + + + + + + + +Node8 + + +arax_controller_init +_start + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_init + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_plot_register +_metric + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_ptr_valid + + + + + +Node9->Node11 + + + + + + + + +Node11->Node10 + + + + + + + + +Node12 + + +_arax_assert_obj + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +arax_data_ref + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +arax_data_ref_offset + + + + + +Node11->Node14 + + + + + + + + +Node13->Node14 + + + + + + + + +Node16 + + +arax_pipe_init + + + + + +Node15->Node16 + + + + + + + + +Node16->Node7 + + + + + + + + +Node17->Node7 + + + + + + + + +Node18->Node7 + + + + + + + + +Node19 + + +arax_clean + + + + + +Node18->Node19 + + + + + + + + +Node21 + + +async_meta_init_always + + + + + +Node18->Node21 + + + + + + + + +Node20 + + +arax_exit + + + + + +Node19->Node20 + + + + + + + + +Node21->Node7 + + + + + + + + +Node22->Node18 + + + + + + + + +Node23 + + +utils_config_write_long + + + + + +Node22->Node23 + + + + + + + + +Node23->Node4 + + + + + + + + +Node24->Node7 + + + + + + + + diff --git a/a01394_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.map b/a01394_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.map new file mode 100644 index 00000000..696d0b0e --- /dev/null +++ b/a01394_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.map @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01394_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.md5 b/a01394_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.md5 new file mode 100644 index 00000000..1704b446 --- /dev/null +++ b/a01394_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.md5 @@ -0,0 +1 @@ +6e58cd093c6143b2af6a624cebd92675 \ No newline at end of file diff --git a/a01394_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.svg b/a01394_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.svg new file mode 100644 index 00000000..eaba57bc --- /dev/null +++ b/a01394_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.svg @@ -0,0 +1,554 @@ + + + + + + +system_env_var + + +Node1 + + +system_env_var + + + + + +Node2 + + +conf_get + + + + + +Node1->Node2 + + + + + + + + +Node24 + + +utils_config_get_source + + + + + +Node1->Node24 + + + + + + + + +Node3 + + +_utils_config_get_str + + + + + +Node2->Node3 + + + + + + + + +Node22 + + +utils_config_write_str + + + + + +Node2->Node22 + + + + + + + + +Node4 + + +utils_config_get_long + + + + + +Node3->Node4 + + + + + + + + +Node18 + + +utils_config_get_str + + + + + +Node3->Node18 + + + + + + + + +Node5 + + +utils_config_get_int + + + + + +Node4->Node5 + + + + + + + + +Node17 + + +utils_config_get_size + + + + + +Node4->Node17 + + + + + + + + +Node6 + + +utils_config_get_bool + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +_arax_init + + + + + +Node6->Node7 + + + + + + + + +Node15 + + +async_meta_init_once + + + + + +Node6->Node15 + + + + + + + + +Node8 + + +arax_controller_init +_start + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_init + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_plot_register +_metric + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_ptr_valid + + + + + +Node9->Node11 + + + + + + + + +Node11->Node10 + + + + + + + + +Node12 + + +_arax_assert_obj + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +arax_data_ref + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +arax_data_ref_offset + + + + + +Node11->Node14 + + + + + + + + +Node13->Node14 + + + + + + + + +Node16 + + +arax_pipe_init + + + + + +Node15->Node16 + + + + + + + + +Node16->Node7 + + + + + + + + +Node17->Node7 + + + + + + + + +Node18->Node7 + + + + + + + + +Node19 + + +arax_clean + + + + + +Node18->Node19 + + + + + + + + +Node21 + + +async_meta_init_always + + + + + +Node18->Node21 + + + + + + + + +Node20 + + +arax_exit + + + + + +Node19->Node20 + + + + + + + + +Node21->Node7 + + + + + + + + +Node22->Node18 + + + + + + + + +Node23 + + +utils_config_write_long + + + + + +Node22->Node23 + + + + + + + + +Node23->Node4 + + + + + + + + +Node24->Node2 + + + + + + + + +Node24->Node7 + + + + + + + + +Node25 + + +conf_set + + + + + +Node24->Node25 + + + + + + + + +Node25->Node22 + + + + + + + + diff --git a/a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.map b/a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.map new file mode 100644 index 00000000..e2c2c441 --- /dev/null +++ b/a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.md5 b/a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.md5 new file mode 100644 index 00000000..63ec9086 --- /dev/null +++ b/a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.md5 @@ -0,0 +1 @@ +b9a81d31edfe3eca59c769845c394570 \ No newline at end of file diff --git a/a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.svg b/a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.svg new file mode 100644 index 00000000..c28a2867 --- /dev/null +++ b/a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +system_mmap + + +Node1 + + +system_mmap + + + + + +Node2 + + +system_file_size + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.map b/a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.map new file mode 100644 index 00000000..be27d5c6 --- /dev/null +++ b/a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.md5 b/a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.md5 new file mode 100644 index 00000000..e5852827 --- /dev/null +++ b/a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.md5 @@ -0,0 +1 @@ +aacae3cddf0829faeb76f52195061d3b \ No newline at end of file diff --git a/a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.svg b/a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.svg new file mode 100644 index 00000000..dd7d585c --- /dev/null +++ b/a01394_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.svg @@ -0,0 +1,185 @@ + + + + + + +system_mmap + + +Node1 + + +system_mmap + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01394_source.html b/a01394_source.html new file mode 100644 index 00000000..eda68c45 --- /dev/null +++ b/a01394_source.html @@ -0,0 +1,151 @@ + + + + + + + +Arax: system.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
system.h
+
+
+Go to the documentation of this file.
1#ifndef UTILS_SYSTEM_HEADER
+
2#define UTILS_SYSTEM_HEADER
+
3#include <stddef.h>
+
4#include <sys/types.h>
+
5
+
6#ifdef __cplusplus
+
7extern "C" {
+
8#endif /* ifdef __cplusplus */
+
9
+
17char* system_home_path();
+
18
+
27const char* system_env_var(const char *var);
+
28
+
40int system_mmap(void **base, int *fd, const char *file, size_t shm_size, size_t shm_off, int truncate);
+
41
+
47size_t system_total_memory();
+
48
+
54off_t system_file_size(const char *file);
+
55
+
59const char* system_exec_name();
+
60
+ +
65
+ +
70
+
80const char* system_backtrace(unsigned int skip);
+
81
+
82#ifdef __cplusplus
+
83}
+
84#endif /* ifdef __cplusplus */
+
85
+
86
+
87#endif /* ifndef UTILS_SYSTEM_HEADER */
+
char * system_home_path()
Definition system.c:21
+
const char * system_backtrace(unsigned int skip)
Definition system.c:154
+
int system_thread_id()
Definition system.c:96
+
const char * system_exec_name()
Definition system.c:78
+
int system_process_id()
Definition system.c:91
+
size_t system_total_memory()
Definition system.c:13
+
off_t system_file_size(const char *file)
Definition system.c:68
+
const char * system_env_var(const char *var)
Definition system.c:32
+
int system_mmap(void **base, int *fd, const char *file, size_t shm_size, size_t shm_off, int truncate)
Definition system.c:37
+
int fd
Definition impl.c:25
+
+
+ + + + diff --git a/a01395.map b/a01395.map new file mode 100644 index 00000000..df75daa8 --- /dev/null +++ b/a01395.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01395.md5 b/a01395.md5 new file mode 100644 index 00000000..6cb359f8 --- /dev/null +++ b/a01395.md5 @@ -0,0 +1 @@ +a9f433e77d341314374910d78088a6bb \ No newline at end of file diff --git a/a01395.svg b/a01395.svg new file mode 100644 index 00000000..391e18b2 --- /dev/null +++ b/a01395.svg @@ -0,0 +1,57 @@ + + + + + + +system.h + + +Node1 + + +system.h + + + + + +Node2 + + +stddef.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sys/types.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/a01396.map b/a01396.map new file mode 100644 index 00000000..e2bcaeb5 --- /dev/null +++ b/a01396.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/a01396.md5 b/a01396.md5 new file mode 100644 index 00000000..33131734 --- /dev/null +++ b/a01396.md5 @@ -0,0 +1 @@ +c683c13e59a9ea9ae8b9efc5fd954af2 \ No newline at end of file diff --git a/a01396.svg b/a01396.svg new file mode 100644 index 00000000..b1eb1385 --- /dev/null +++ b/a01396.svg @@ -0,0 +1,111 @@ + + + + + + +system.h + + +Node1 + + +system.h + + + + + +Node2 + + +arax_assert.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +config.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +impl.c + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +system.c + + + + + +Node1->Node6 + + + + + + + + diff --git a/a01397.html b/a01397.html new file mode 100644 index 00000000..8cb0feed --- /dev/null +++ b/a01397.html @@ -0,0 +1,570 @@ + + + + + + + +Arax: timer.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
timer.h File Reference
+
+
+
#include <arax.h>
+#include <unistd.h>
+
+ + Include dependency graph for timer.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define utils_timer_set(NAME, WHAT)   clock_gettime(CLOCK_REALTIME, &((NAME).WHAT))
 
#define utils_timer_get_raw(NAME, WHAT)   ((NAME).WHAT)
 
#define utils_timer_set_raw(NAME, WHAT, RAW)   (NAME).WHAT = RAW
 
#define UTILS_TIMER_MS   1000000
 
#define UTILS_TIMER_US   1000
 
#define UTILS_TIMER_NS   1
 
#define utils_timer_tv_time(TV, SCALE)    (((TV).tv_sec * (1000000000 / SCALE)) + (TV).tv_nsec / (SCALE))
 
#define utils_timer_get_time_us(NAME, WHAT)    utils_timer_tv_time((NAME).WHAT, UTILS_TIMER_US)
 
#define utils_timer_get_time_ns(NAME, WHAT)    utils_timer_tv_time((NAME).WHAT, UTILS_TIMER_NS)
 
#define utils_timer_get_duration_us(NAME)
 
#define utils_timer_get_duration_ns(NAME)
 
#define utils_timer_get_elapsed_us(NAME)
 
#define utils_timer_get_elapsed_ns(NAME)
 
+

Macro Definition Documentation

+ +

◆ utils_timer_get_duration_ns

+ +
+
+ + + + + + + + +
#define utils_timer_get_duration_ns( NAME)
+
+Value:
+
- utils_timer_tv_time((NAME).start, UTILS_TIMER_NS)) \
+
#define utils_timer_tv_time(TV, SCALE)
Definition timer.h:45
+
#define UTILS_TIMER_NS
Definition timer.h:37
+

Get the duration in nanoseconds of the NAME timer.

+
Parameters
+ + +
NAMEName of a utils_timer variable
+
+
+ +

Definition at line 82 of file timer.h.

+ +
+
+ +

◆ utils_timer_get_duration_us

+ +
+
+ + + + + + + + +
#define utils_timer_get_duration_us( NAME)
+
+Value:
+ +
#define UTILS_TIMER_US
Definition timer.h:35
+

Get the duration in microseconds of the NAME timer.

+
Parameters
+ + +
NAMEName of a utils_timer variable
+
+
+ +

Definition at line 73 of file timer.h.

+ +
+
+ +

◆ utils_timer_get_elapsed_ns

+ +
+
+ + + + + + + + +
#define utils_timer_get_elapsed_ns( NAME)
+
+Value:
({ \
+
struct timespec now; \
+
clock_gettime(CLOCK_REALTIME, &now); \
+
utils_timer_tv_time(now, UTILS_TIMER_NS) \
+
- utils_timer_get_time_ns(NAME, start); \
+
})
+
#define utils_timer_get_time_ns(NAME, WHAT)
Definition timer.h:65
+

Get the current elapsed time since timer start time in nanoseconds.

+
Parameters
+ + +
NAMEName of a utils_timer variable
+
+
+ +

Definition at line 105 of file timer.h.

+ +
+
+ +

◆ utils_timer_get_elapsed_us

+ +
+
+ + + + + + + + +
#define utils_timer_get_elapsed_us( NAME)
+
+Value:
({ \
+
struct timespec now; \
+
clock_gettime(CLOCK_REALTIME, &now); \
+
utils_timer_tv_time(now, UTILS_TIMER_US) \
+
- utils_timer_get_time_us(NAME, start); \
+
})
+
#define utils_timer_get_time_us(NAME, WHAT)
Definition timer.h:55
+

Get the current elapsed time since timer start time in microseconds.

+
Parameters
+ + +
NAMEName of a utils_timer variable
+
+
+ +

Definition at line 92 of file timer.h.

+ +
+
+ +

◆ utils_timer_get_raw

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define utils_timer_get_raw( NAME,
 WHAT 
)   ((NAME).WHAT)
+
+

Get the raw values of start/stop time of NAME timer.

+
Parameters
+ + + +
NAMEName of a utils_timer variable
WHATCan be start or stop
+
+
+ +

Definition at line 21 of file timer.h.

+ +
+
+ +

◆ utils_timer_get_time_ns

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define utils_timer_get_time_ns( NAME,
 WHAT 
)    utils_timer_tv_time((NAME).WHAT, UTILS_TIMER_NS)
+
+

Get the start/stop time in nanoseconds of the NAME timer.

+
Parameters
+ + + +
NAMEName of a utils_timer variable
WHATCan be start or stop
+
+
+
Returns
The requested timestamp in nanoseconds
+ +

Definition at line 65 of file timer.h.

+ +
+
+ +

◆ utils_timer_get_time_us

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define utils_timer_get_time_us( NAME,
 WHAT 
)    utils_timer_tv_time((NAME).WHAT, UTILS_TIMER_US)
+
+

Get the start/stop time in microseconds of the NAME timer.

+
Parameters
+ + + +
NAMEName of a utils_timer variable
WHATCan be start or stop
+
+
+
Returns
The requested timestamp in microseconds
+ +

Definition at line 55 of file timer.h.

+ +
+
+ +

◆ UTILS_TIMER_MS

+ +
+
+ + + + +
#define UTILS_TIMER_MS   1000000
+
+

Use with utils_timer_tv_time() to get time in milliseconds

+ +

Definition at line 33 of file timer.h.

+ +
+
+ +

◆ UTILS_TIMER_NS

+ +
+
+ + + + +
#define UTILS_TIMER_NS   1
+
+

Use with utils_timer_tv_time() to get time in nanoseconds

+ +

Definition at line 37 of file timer.h.

+ +
+
+ +

◆ utils_timer_set

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define utils_timer_set( NAME,
 WHAT 
)   clock_gettime(CLOCK_REALTIME, &((NAME).WHAT))
+
+

Set the start/stop time of NAME timer to the current time.

+
Parameters
+ + + +
NAMEName of a utils_timer variable
WHATCan be start or stop
+
+
+ +

Definition at line 13 of file timer.h.

+ +
+
+ +

◆ utils_timer_set_raw

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define utils_timer_set_raw( NAME,
 WHAT,
 RAW 
)   (NAME).WHAT = RAW
+
+

Set the start/stop time of NAME timer for the raw values RAW.

+
Parameters
+ + + + +
NAMEName of a utils_timer variable
WHATCan be start or stop
RAWRaw value of timer as returned by utils_timer_get_raw
+
+
+ +

Definition at line 30 of file timer.h.

+ +
+
+ +

◆ utils_timer_tv_time

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define utils_timer_tv_time( TV,
 SCALE 
)    (((TV).tv_sec * (1000000000 / SCALE)) + (TV).tv_nsec / (SCALE))
+
+

Convert TV struct to time in SCALE units.

+

SCALE = 1000 => microseconds SCALE = 1 => nanoseconds

+ +

Definition at line 45 of file timer.h.

+ +
+
+ +

◆ UTILS_TIMER_US

+ +
+
+ + + + +
#define UTILS_TIMER_US   1000
+
+

Use with utils_timer_tv_time() to get time in microseconds

+ +

Definition at line 35 of file timer.h.

+ +
+
+
+
+ + + + diff --git a/a01397.js b/a01397.js new file mode 100644 index 00000000..08f9ed22 --- /dev/null +++ b/a01397.js @@ -0,0 +1,16 @@ +var a01397 = +[ + [ "utils_timer_get_duration_ns", "a01397.html#a0781a7f43720006bcbb654144b9c3844", null ], + [ "utils_timer_get_duration_us", "a01397.html#a2aaf856e9d83a209d5acb56b22853b3e", null ], + [ "utils_timer_get_elapsed_ns", "a01397.html#a78eb4942d27543e9e6e8d4c4d4c3e402", null ], + [ "utils_timer_get_elapsed_us", "a01397.html#a2e0653385a30f5da81834c273ab20319", null ], + [ "utils_timer_get_raw", "a01397.html#a6003193f669d4324537ac2e71f4b6614", null ], + [ "utils_timer_get_time_ns", "a01397.html#a8554e6180aa56a77b9d42ca5ec5cb5fa", null ], + [ "utils_timer_get_time_us", "a01397.html#ab76e58716613aa078739a8260eee3812", null ], + [ "UTILS_TIMER_MS", "a01397.html#a6a22eb4fb5e9bf3a51091969152ed187", null ], + [ "UTILS_TIMER_NS", "a01397.html#adf999eaeac7a34369f6326298d10cf03", null ], + [ "utils_timer_set", "a01397.html#a2dcc750e82be4d90d85b5bc8e6269ed0", null ], + [ "utils_timer_set_raw", "a01397.html#a860533d5baf63026c56b45628f61dbb1", null ], + [ "utils_timer_tv_time", "a01397.html#a104417bc47f75bae6be9029a3df1df52", null ], + [ "UTILS_TIMER_US", "a01397.html#a8bb22df167993baa52787f96864db4b7", null ] +]; \ No newline at end of file diff --git a/a01397_source.html b/a01397_source.html new file mode 100644 index 00000000..f0332897 --- /dev/null +++ b/a01397_source.html @@ -0,0 +1,160 @@ + + + + + + + +Arax: timer.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
timer.h
+
+
+Go to the documentation of this file.
1#ifndef UTILS_TIMER_H
+
2#define UTILS_TIMER_H
+
3
+
4#include <arax.h>
+
5#include <unistd.h>
+
6
+
13#define utils_timer_set(NAME, WHAT) clock_gettime(CLOCK_REALTIME, &((NAME).WHAT))
+
14
+
21#define utils_timer_get_raw(NAME, WHAT) ((NAME).WHAT)
+
22
+
30#define utils_timer_set_raw(NAME, WHAT, RAW) (NAME).WHAT = RAW
+
31
+
33#define UTILS_TIMER_MS 1000000
+
35#define UTILS_TIMER_US 1000
+
37#define UTILS_TIMER_NS 1
+
38
+
45#define utils_timer_tv_time(TV, SCALE) \
+
46 (((TV).tv_sec * (1000000000 / SCALE)) + (TV).tv_nsec / (SCALE))
+
47
+
55#define utils_timer_get_time_us(NAME, WHAT) \
+
56 utils_timer_tv_time((NAME).WHAT, UTILS_TIMER_US)
+
57
+
65#define utils_timer_get_time_ns(NAME, WHAT) \
+
66 utils_timer_tv_time((NAME).WHAT, UTILS_TIMER_NS)
+
67
+
73#define utils_timer_get_duration_us(NAME) \
+
74 (utils_timer_tv_time((NAME).stop, UTILS_TIMER_US) \
+
75 - utils_timer_tv_time((NAME).start, UTILS_TIMER_US))
+
76
+
82#define utils_timer_get_duration_ns(NAME) \
+
83 (utils_timer_tv_time((NAME).stop, UTILS_TIMER_NS) \
+
84 - utils_timer_tv_time((NAME).start, UTILS_TIMER_NS)) \
+
85
+
86
+
92#define utils_timer_get_elapsed_us(NAME) \
+
93 ({ \
+
94 struct timespec now; \
+
95 clock_gettime(CLOCK_REALTIME, &now); \
+
96 utils_timer_tv_time(now, UTILS_TIMER_US) \
+
97 - utils_timer_get_time_us(NAME, start); \
+
98 })
+
99
+
105#define utils_timer_get_elapsed_ns(NAME) \
+
106 ({ \
+
107 struct timespec now; \
+
108 clock_gettime(CLOCK_REALTIME, &now); \
+
109 utils_timer_tv_time(now, UTILS_TIMER_NS) \
+
110 - utils_timer_get_time_ns(NAME, start); \
+
111 })
+
112
+
113#endif // ifndef UTILS_TIMER_H
+ +
+
+ + + + diff --git a/a01398.map b/a01398.map new file mode 100644 index 00000000..46bb996e --- /dev/null +++ b/a01398.map @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/a01398.md5 b/a01398.md5 new file mode 100644 index 00000000..2606ac30 --- /dev/null +++ b/a01398.md5 @@ -0,0 +1 @@ +9c8d7ce4a42781384784a5aa7765f396 \ No newline at end of file diff --git a/a01398.svg b/a01398.svg new file mode 100644 index 00000000..c5708227 --- /dev/null +++ b/a01398.svg @@ -0,0 +1,174 @@ + + + + + + +timer.h + + +Node1 + + +timer.h + + + + + +Node2 + + +arax.h + + + + + +Node1->Node2 + + + + + + + + +Node9 + + +unistd.h + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +stdio.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stddef.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_types.h + + + + + +Node2->Node5 + + + + + + + + +Node8 + + +core/arax_accel_types.h + + + + + +Node2->Node8 + + + + + + + + +Node6 + + +sys/time.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +time.h + + + + + +Node5->Node7 + + + + + + + + +Node8->Node5 + + + + + + + + diff --git a/a01399.map b/a01399.map new file mode 100644 index 00000000..a7062f5e --- /dev/null +++ b/a01399.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a01399.md5 b/a01399.md5 new file mode 100644 index 00000000..43fd2d5b --- /dev/null +++ b/a01399.md5 @@ -0,0 +1 @@ +fcc0322eee85abec3c1312713e56c7d2 \ No newline at end of file diff --git a/a01399.svg b/a01399.svg new file mode 100644 index 00000000..415ae208 --- /dev/null +++ b/a01399.svg @@ -0,0 +1,75 @@ + + + + + + +timer.h + + +Node1 + + +timer.h + + + + + +Node2 + + +alloc.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_task.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +impl.c + + + + + +Node1->Node4 + + + + + + + + diff --git a/a01400.html b/a01400.html new file mode 100644 index 00000000..9f4e1821 --- /dev/null +++ b/a01400.html @@ -0,0 +1,879 @@ + + + + + + + +Arax: arax_accel.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_accel.h File Reference
+
+
+
#include <arax.h>
+#include "async.h"
+#include "core/arax_vaccel.h"
+#include "core/arax_throttle.h"
+
+ + Include dependency graph for arax_accel.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  arax_accel_s
 
+ + + + + +

+Macros

#define ARAX_THROTTLE_DEBUG_ACCEL_PARAMS
 
#define ARAX_THROTTLE_DEBUG_ACCEL_FUNC(FUNC)   FUNC
 
+ + + +

+Typedefs

typedef struct arax_accel_s arax_accel_s
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

arax_accel_sarax_accel_init (arax_pipe_s *pipe, const char *name, arax_accel_type_e type, size_t size, size_t capacity)
 
void arax_accel_wait_for_task (arax_accel_s *accel)
 
void arax_accel_add_task (arax_accel_s *accel)
 
size_t arax_accel_pending_tasks (arax_accel_s *accel)
 
const char * arax_accel_get_name (arax_accel_s *accel)
 
arax_accel_state_e arax_accel_get_stat (arax_accel_s *accel, arax_accel_stats_s *stat)
 
void arax_accel_inc_revision (arax_accel_s *accel)
 
size_t arax_accel_get_revision (arax_accel_s *accel)
 
void ARAX_THROTTLE_DEBUG_ACCEL_FUNC() arax_accel_size_inc (arax_accel *accel, size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS)
 
void ARAX_THROTTLE_DEBUG_ACCEL_FUNC() arax_accel_size_dec (arax_accel *accel, size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS)
 
size_t arax_accel_get_available_size (arax_accel *accel)
 
size_t arax_accel_get_total_size (arax_accel *accel)
 
void arax_accel_add_vaccel (arax_accel_s *accel, arax_vaccel_s *vaccel)
 
size_t arax_accel_get_assigned_vaccels (arax_accel_s *accel, arax_vaccel_s ***vaccel)
 
void arax_accel_del_vaccel (arax_accel_s *accel, arax_vaccel_s *vaccel)
 
+

Macro Definition Documentation

+ +

◆ ARAX_THROTTLE_DEBUG_ACCEL_FUNC

+ +
+
+ + + + + + + + +
#define ARAX_THROTTLE_DEBUG_ACCEL_FUNC( FUNC)   FUNC
+
+ +

Definition at line 97 of file arax_accel.h.

+ +
+
+ +

◆ ARAX_THROTTLE_DEBUG_ACCEL_PARAMS

+ +
+
+ + + + +
#define ARAX_THROTTLE_DEBUG_ACCEL_PARAMS
+
+ +

Definition at line 96 of file arax_accel.h.

+ +
+
+

Typedef Documentation

+ +

◆ arax_accel_s

+ +
+
+ + + + +
typedef struct arax_accel_s arax_accel_s
+
+ +

Definition at line 4 of file arax_accel.h.

+ +
+
+

Function Documentation

+ +

◆ arax_accel_add_task()

+ +
+
+ + + + + + + + +
void arax_accel_add_task (arax_accel_saccel)
+
+

Increase the number of tasks of accel and notify blocked arax_accel_wait_for_task() callers.

+

This function increases the number of pending tasks of this arax_accel_s (arax_accel_s::tasks).

+ +

Definition at line 38 of file arax_accel.c.

+ +

References async_condition_lock(), async_condition_notify(), async_condition_unlock(), arax_accel_s::lock, and arax_accel_s::tasks.

+ +

Referenced by arax_vaccel_add_task().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_add_vaccel()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_accel_add_vaccel (arax_accel_saccel,
arax_vaccel_svaccel 
)
+
+

Add (register) a virtual accell vaccel to physical accelerator accel.

+

If vaccel is already assigned to accel, the function is no-op. If vaccel is not yet assigned to any accel, it will be assigned to accel. In any other behaviour is undefined.

+
Note
This call should be matched to calls of arax_accel_del_vaccel()
+
Parameters
+ + + +
accelA physical accelerator
vaccelA virtual accelerator to be linked with accel
+
+
+ +

Definition at line 108 of file arax_accel.c.

+ +

References arax_accel_inc_revision(), arax_assert, arax_assert_obj, arax_pipe_remove_orphan_vaccel(), ARAX_TYPE_PHYS_ACCEL, ARAX_TYPE_VIRT_ACCEL, arax_vaccel_queue_size(), async_condition_lock(), async_condition_notify(), async_condition_unlock(), arax_accel_s::lock, arax_vaccel_s::lock, arax_vaccel_s::obj, arax_vaccel_s::phys, arax_object_repo_s::pipe, arax_object_s::repo, arax_accel_s::tasks, utils_list_add(), utils_spinlock_lock, utils_spinlock_unlock, arax_accel_s::vaccels, and arax_vaccel_s::vaccels.

+ +

Referenced by arax_accel_set_physical(), and arax_vaccel_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_del_vaccel()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_accel_del_vaccel (arax_accel_saccel,
arax_vaccel_svaccel 
)
+
+

Delete (unregister) a virtual accell vaccel from physical accelerator accel.

+
Note
This call should be matched to calls of arax_accel_add_vaccel()
+
Parameters
+ + + +
accelA physical accelerator
vaccelA virtual accelerator to be unlinked from accel
+
+
+ +

Definition at line 156 of file arax_accel.c.

+ +

References arax_accel_inc_revision(), arax_assert, arax_assert_obj, ARAX_TYPE_PHYS_ACCEL, ARAX_TYPE_VIRT_ACCEL, arax_vaccel_queue_size(), async_condition_lock(), async_condition_notify(), async_condition_unlock(), arax_accel_s::lock, arax_vaccel_s::lock, arax_vaccel_s::phys, arax_accel_s::tasks, utils_list_del(), utils_spinlock_lock, utils_spinlock_unlock, arax_accel_s::vaccels, and arax_vaccel_s::vaccels.

+ +

Referenced by ARAX_OBJ_DTOR_DECL().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_get_assigned_vaccels()

+ +
+
+ + + + + + + + + + + + + + + + + + +
size_t arax_accel_get_assigned_vaccels (arax_accel_saccel,
arax_vaccel_s *** vaccel 
)
+
+

Return all arax_vaccel_s objects 'assigned' to accel.

+

The initial value of vaccel does not matter. The value of vaccel will be overwriten by a malloc call. After the call, the user is responsible for freeing vaccel using free().

+
Parameters
+ + +
vaccelPointer to unallocated array that will contain assigned arax_vaccel_sobjects.
+
+
+
Returns
Size of vaccel array, in number of objects/pointers.
+ +

Definition at line 143 of file arax_accel.c.

+ +

References async_condition_lock(), async_condition_unlock(), utils_list_s::length, arax_accel_s::lock, utils_list_to_array(), and arax_accel_s::vaccels.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_get_available_size()

+ +
+
+ + + + + + + + +
size_t arax_accel_get_available_size (arax_accelaccel)
+
+

Gets available size of GPU

+
Parameters
+ + +
accelA physical accelerator
+
+
+
Returns
Avaliable size of accelerator
+ +

Definition at line 67 of file arax_accel.c.

+ +

References arax_assert_obj, arax_throttle_get_available_size(), ARAX_TYPE_PHYS_ACCEL, and arax_accel_s::throttle.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_get_name()

+ +
+
+ + + + + + + + +
const char * arax_accel_get_name (arax_accel_saccel)
+
+

Get name.

+ +

Definition at line 83 of file arax_accel.c.

+ +

References arax_assert_obj, ARAX_TYPE_PHYS_ACCEL, arax_object_s::name, and arax_accel_s::obj.

+ +

Referenced by arax_pipe_find_accel().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_get_revision()

+ +
+
+ + + + + + + + +
size_t arax_accel_get_revision (arax_accel_saccel)
+
+

Get 'revision' of accelerator.

+
Parameters
+ + +
accelA physical accelerator
+
+
+
Returns
Revision
+ +

Definition at line 102 of file arax_accel.c.

+ +

References arax_assert_obj, ARAX_TYPE_PHYS_ACCEL, and arax_accel_s::revision.

+ +
+
+ +

◆ arax_accel_get_stat()

+ +
+
+ + + + + + + + + + + + + + + + + + +
arax_accel_state_e arax_accel_get_stat (arax_accel_saccel,
arax_accel_stats_sstat 
)
+
+

Get stats.

+
Parameters
+ + +
accelA physical accelerator
+
+
+ +

Definition at line 89 of file arax_accel.c.

+ +

References arax_assert_obj, ARAX_TYPE_PHYS_ACCEL, and arax_accel_s::state.

+ +

Referenced by arax_accel_stat(), and arax_vaccel_get_stat().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_get_total_size()

+ +
+
+ + + + + + + + +
size_t arax_accel_get_total_size (arax_accelaccel)
+
+

Gets available size of GPU

+
Parameters
+ + +
accelA physical accelerator
+
+
+
Returns
Total size of accelerator
+ +

Definition at line 75 of file arax_accel.c.

+ +

References arax_assert_obj, arax_throttle_get_total_size(), ARAX_TYPE_PHYS_ACCEL, and arax_accel_s::throttle.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_inc_revision()

+ +
+
+ + + + + + + + +
void arax_accel_inc_revision (arax_accel_saccel)
+
+

Increase 'revision' of accelerator.

+
Parameters
+ + +
accelA physical accelerator
+
+
+ +

Definition at line 96 of file arax_accel.c.

+ +

References arax_assert_obj, ARAX_TYPE_PHYS_ACCEL, and arax_accel_s::revision.

+ +

Referenced by arax_accel_add_vaccel(), and arax_accel_del_vaccel().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_init()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
arax_accel_s * arax_accel_init (arax_pipe_spipe,
const char * name,
arax_accel_type_e type,
size_t size,
size_t capacity 
)
+
+

Allocate and initialize a arax_accel descriptor with the provided arguments. @pipe A valid arax_pipe_s* instance. @pipe Name of new accelerator. @type Accelerator type/architecture. @size Available accelerator memory in bytes.

Returns
An initialized arax_accel instance on success, or NULL on failure.
+ +

Definition at line 5 of file arax_accel.c.

+ +

References accel_idle, arax_object_register(), arax_throttle_init(), ARAX_TYPE_PHYS_ACCEL, arax_vaccel_init(), arax_pipe::async, async_condition_init(), arax_accel_s::free_vaq, arax_accel_s::lock, arax_pipe::objs, arax_accel_s::revision, arax_accel_s::state, arax_accel_s::tasks, arax_accel_s::throttle, arax_accel_s::type, utils_list_init(), and arax_accel_s::vaccels.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_pending_tasks()

+ +
+
+ + + + + + + + +
size_t arax_accel_pending_tasks (arax_accel_saccel)
+
+

Return pending tasks for accel.

+ +

Definition at line 46 of file arax_accel.c.

+ +

References arax_accel_s::tasks.

+ +
+
+ +

◆ arax_accel_size_dec()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void ARAX_THROTTLE_DEBUG_ACCEL_FUNC() arax_accel_size_dec (arax_accelaccel,
size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS 
)
+
+

Decrements available size of gpu by sz

+
Parameters
+ + + +
accelA physical accelerator
szsize of removed data
+
+
+ +

Definition at line 59 of file arax_accel.c.

+ +

References arax_assert_obj, arax_throttle_size_dec(), ARAX_TYPE_PHYS_ACCEL, and arax_accel_s::throttle.

+ +

Referenced by arax_data_allocate_remote().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_size_inc()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void ARAX_THROTTLE_DEBUG_ACCEL_FUNC() arax_accel_size_inc (arax_accelaccel,
size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS 
)
+
+

Increments available size of accelerator by sz

+
Parameters
+ + + +
accelA physical accelerator
szSize of added data
+
+
+ +

Definition at line 51 of file arax_accel.c.

+ +

References arax_assert_obj, arax_throttle_size_inc(), ARAX_TYPE_PHYS_ACCEL, and arax_accel_s::throttle.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_wait_for_task()

+ +
+
+ + + + + + + + +
void arax_accel_wait_for_task (arax_accel_saccel)
+
+

Block until a task is added to any of the arax_vaccel_s assigned to accel.

+

This function reduces the number of pending tasks of this arax_accel_s (arax_accel_s::tasks).

+ +

Definition at line 26 of file arax_accel.c.

+ +

References async_condition_lock(), async_condition_unlock(), async_condition_wait(), arax_accel_s::lock, and arax_accel_s::tasks.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01400.js b/a01400.js new file mode 100644 index 00000000..065f9538 --- /dev/null +++ b/a01400.js @@ -0,0 +1,22 @@ +var a01400 = +[ + [ "arax_accel_s", "a02246.html", "a02246" ], + [ "ARAX_THROTTLE_DEBUG_ACCEL_FUNC", "a01400.html#ae4ce5e52f563dade368db32043faf8eb", null ], + [ "ARAX_THROTTLE_DEBUG_ACCEL_PARAMS", "a01400.html#ab84b3b9e634913cfb92095d873ba0036", null ], + [ "arax_accel_s", "a01400.html#a4d4e7f4befbde59dd89d2da3b59c88b0", null ], + [ "arax_accel_add_task", "a01400.html#ab6afd8cc035237c811ce6a1b7727acc3", null ], + [ "arax_accel_add_vaccel", "a01400.html#af0b933c02a24d69c1efa40179f60288f", null ], + [ "arax_accel_del_vaccel", "a01400.html#aa3f384ca4812e46dedce753be42654df", null ], + [ "arax_accel_get_assigned_vaccels", "a01400.html#aa164c99d44fec2d7296a76c8926eb585", null ], + [ "arax_accel_get_available_size", "a01400.html#a40082ae256676bd58f960128433237c1", null ], + [ "arax_accel_get_name", "a01400.html#a800ddc33d183998387064192c52d7ca5", null ], + [ "arax_accel_get_revision", "a01400.html#ae7bd1c4717b7a98611219be467eec092", null ], + [ "arax_accel_get_stat", "a01400.html#a73c0d51ef869f0cebc943169142626b6", null ], + [ "arax_accel_get_total_size", "a01400.html#a1c89dce1734d8093f7a443d71a5ebb94", null ], + [ "arax_accel_inc_revision", "a01400.html#aed864d2fab73a39a8c98356f7bca1304", null ], + [ "arax_accel_init", "a01400.html#a0706a66a62ca8710342ac1c097b703ed", null ], + [ "arax_accel_pending_tasks", "a01400.html#a213d2b8f851f79eb9216a34098da41b5", null ], + [ "arax_accel_size_dec", "a01400.html#a503b6bc6d5be49fd8715f62c7174c28e", null ], + [ "arax_accel_size_inc", "a01400.html#a9443355ad3d09b08427e538d75cab254", null ], + [ "arax_accel_wait_for_task", "a01400.html#a415e79d6e82e45f24bcd1742c146a0da", null ] +]; \ No newline at end of file diff --git a/a01400_a0706a66a62ca8710342ac1c097b703ed_cgraph.map b/a01400_a0706a66a62ca8710342ac1c097b703ed_cgraph.map new file mode 100644 index 00000000..12c2b9a5 --- /dev/null +++ b/a01400_a0706a66a62ca8710342ac1c097b703ed_cgraph.map @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01400_a0706a66a62ca8710342ac1c097b703ed_cgraph.md5 b/a01400_a0706a66a62ca8710342ac1c097b703ed_cgraph.md5 new file mode 100644 index 00000000..d796044f --- /dev/null +++ b/a01400_a0706a66a62ca8710342ac1c097b703ed_cgraph.md5 @@ -0,0 +1 @@ +4236a55798ecfc51d20a7a8d4de28499 \ No newline at end of file diff --git a/a01400_a0706a66a62ca8710342ac1c097b703ed_cgraph.svg b/a01400_a0706a66a62ca8710342ac1c097b703ed_cgraph.svg new file mode 100644 index 00000000..563c3c30 --- /dev/null +++ b/a01400_a0706a66a62ca8710342ac1c097b703ed_cgraph.svg @@ -0,0 +1,761 @@ + + + + + + +arax_accel_init + + +Node1 + + +arax_accel_init + + + + + +Node2 + + +arax_object_register + + + + + +Node1->Node2 + + + + + + + + +Node15 + + +arax_throttle_init + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +async_condition_init + + + + + +Node1->Node16 + + + + + + + + +Node21 + + +arax_vaccel_init + + + + + +Node1->Node21 + + + + + + + + +Node34 + + +utils_list_init + + + + + +Node1->Node34 + + + + + + + + +Node3 + + +arax_pipe_size_dec + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +arch_alloc_allocate + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +utils_list_add + + + + + +Node2->Node12 + + + + + + + + +Node14 + + +utils_list_node_init + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +arax_throttle_size_dec + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_condition_unlock + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +async_condition_wait + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_completion_complete + + + + + +Node7->Node8 + + + + + + + + +Node9->Node6 + + + + + + + + +Node9->Node8 + + + + + + + + +Node10 + + +async_semaphore_dec + + + + + +Node9->Node10 + + + + + + + + +Node13 + + +utils_list_node_add + + + + + +Node12->Node13 + + + + + + + + +Node15->Node16 + + + + + + + + +Node16->Node8 + + + + + + + + +Node17 + + +async_completion_init + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +async_condition_unlock + + + + + +Node16->Node18 + + + + + + + + +Node20 + + +async_semaphore_init + + + + + +Node16->Node20 + + + + + + + + +Node19 + + +async_completion_complete + + + + + +Node18->Node19 + + + + + + + + +Node21->Node2 + + + + + + + + +Node21->Node14 + + + + + + + + +Node22 + + +arax_accel_add_vaccel + + + + + +Node21->Node22 + + + + + + + + +Node32 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node21->Node32 + + + + + + + + +Node33 + + +utils_queue_init + + + + + +Node21->Node33 + + + + + + + + +Node22->Node5 + + + + + + + + +Node22->Node7 + + + + + + + + +Node22->Node12 + + + + + + + + +Node23 + + +arax_accel_inc_revision + + + + + +Node22->Node23 + + + + + + + + +Node24 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node22->Node24 + + + + + + + + +Node27 + + +arax_vaccel_queue_size + + + + + +Node22->Node27 + + + + + + + + +Node30 + + +async_condition_notify + + + + + +Node22->Node30 + + + + + + + + +Node24->Node5 + + + + + + + + +Node24->Node7 + + + + + + + + +Node25 + + +utils_list_del + + + + + +Node24->Node25 + + + + + + + + +Node26 + + +utils_list_node_linked + + + + + +Node24->Node26 + + + + + + + + +Node28 + + +arax_vaccel_queue + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +utils_queue_used_slots + + + + + +Node27->Node29 + + + + + + + + +Node31 + + +async_semaphore_inc + + + + + +Node30->Node31 + + + + + + + + +Node32->Node5 + + + + + + + + +Node32->Node7 + + + + + + + + +Node32->Node12 + + + + + + + + +Node32->Node30 + + + + + + + + +Node34->Node14 + + + + + + + + diff --git a/a01400_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.map b/a01400_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.map new file mode 100644 index 00000000..25384c17 --- /dev/null +++ b/a01400_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01400_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.md5 b/a01400_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.md5 new file mode 100644 index 00000000..1f254b8c --- /dev/null +++ b/a01400_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.md5 @@ -0,0 +1 @@ +cb67216becb922d13774495ca6d53c4b \ No newline at end of file diff --git a/a01400_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.svg b/a01400_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.svg new file mode 100644 index 00000000..59f09e71 --- /dev/null +++ b/a01400_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_accel_get_total_size + + +Node1 + + +arax_accel_get_total_size + + + + + +Node2 + + +arax_throttle_get_total_size + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01400_a40082ae256676bd58f960128433237c1_cgraph.map b/a01400_a40082ae256676bd58f960128433237c1_cgraph.map new file mode 100644 index 00000000..8a5a84f3 --- /dev/null +++ b/a01400_a40082ae256676bd58f960128433237c1_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01400_a40082ae256676bd58f960128433237c1_cgraph.md5 b/a01400_a40082ae256676bd58f960128433237c1_cgraph.md5 new file mode 100644 index 00000000..b7f5c71f --- /dev/null +++ b/a01400_a40082ae256676bd58f960128433237c1_cgraph.md5 @@ -0,0 +1 @@ +3d5a53b6bf48d1909c13e76c408f3fe6 \ No newline at end of file diff --git a/a01400_a40082ae256676bd58f960128433237c1_cgraph.svg b/a01400_a40082ae256676bd58f960128433237c1_cgraph.svg new file mode 100644 index 00000000..e5e96bc1 --- /dev/null +++ b/a01400_a40082ae256676bd58f960128433237c1_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_accel_get_available_size + + +Node1 + + +arax_accel_get_available_size + + + + + +Node2 + + +arax_throttle_get_available_size + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01400_a415e79d6e82e45f24bcd1742c146a0da_cgraph.map b/a01400_a415e79d6e82e45f24bcd1742c146a0da_cgraph.map new file mode 100644 index 00000000..b19551c8 --- /dev/null +++ b/a01400_a415e79d6e82e45f24bcd1742c146a0da_cgraph.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/a01400_a415e79d6e82e45f24bcd1742c146a0da_cgraph.md5 b/a01400_a415e79d6e82e45f24bcd1742c146a0da_cgraph.md5 new file mode 100644 index 00000000..62484a45 --- /dev/null +++ b/a01400_a415e79d6e82e45f24bcd1742c146a0da_cgraph.md5 @@ -0,0 +1 @@ +72dfa1bd6b5371ab74887be991aeefcf \ No newline at end of file diff --git a/a01400_a415e79d6e82e45f24bcd1742c146a0da_cgraph.svg b/a01400_a415e79d6e82e45f24bcd1742c146a0da_cgraph.svg new file mode 100644 index 00000000..7d3e88f9 --- /dev/null +++ b/a01400_a415e79d6e82e45f24bcd1742c146a0da_cgraph.svg @@ -0,0 +1,147 @@ + + + + + + +arax_accel_wait_for_task + + +Node1 + + +arax_accel_wait_for_task + + + + + +Node2 + + +async_condition_lock + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +async_condition_unlock + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +async_condition_wait + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +async_completion_wait + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_completion_complete + + + + + +Node4->Node5 + + + + + + + + +Node6->Node3 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +async_semaphore_dec + + + + + +Node6->Node7 + + + + + + + + diff --git a/a01400_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.map b/a01400_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.map new file mode 100644 index 00000000..66e09716 --- /dev/null +++ b/a01400_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/a01400_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.md5 b/a01400_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.md5 new file mode 100644 index 00000000..b1448627 --- /dev/null +++ b/a01400_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.md5 @@ -0,0 +1 @@ +01bd71686b7cf1db96ad9a5ec76b0c1b \ No newline at end of file diff --git a/a01400_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.svg b/a01400_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.svg new file mode 100644 index 00000000..2d40ea62 --- /dev/null +++ b/a01400_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.svg @@ -0,0 +1,165 @@ + + + + + + +arax_accel_size_dec + + +Node1 + + +arax_accel_size_dec + + + + + +Node2 + + +arax_throttle_size_dec + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_condition_lock + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_condition_unlock + + + + + +Node2->Node5 + + + + + + + + +Node7 + + +async_condition_wait + + + + + +Node2->Node7 + + + + + + + + +Node4 + + +async_completion_wait + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +async_completion_complete + + + + + +Node5->Node6 + + + + + + + + +Node7->Node4 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +async_semaphore_dec + + + + + +Node7->Node8 + + + + + + + + diff --git a/a01400_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.map b/a01400_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.map new file mode 100644 index 00000000..b2c8d3ea --- /dev/null +++ b/a01400_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01400_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.md5 b/a01400_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.md5 new file mode 100644 index 00000000..fa80577e --- /dev/null +++ b/a01400_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.md5 @@ -0,0 +1 @@ +9eaf680f0d564dec7c4870eae4998c44 \ No newline at end of file diff --git a/a01400_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.svg b/a01400_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.svg new file mode 100644 index 00000000..10c5d745 --- /dev/null +++ b/a01400_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.svg @@ -0,0 +1,40 @@ + + + + + + +arax_accel_size_dec + + +Node1 + + +arax_accel_size_dec + + + + + +Node2 + + +arax_data_allocate +_remote + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01400_a73c0d51ef869f0cebc943169142626b6_icgraph.map b/a01400_a73c0d51ef869f0cebc943169142626b6_icgraph.map new file mode 100644 index 00000000..2ddd2950 --- /dev/null +++ b/a01400_a73c0d51ef869f0cebc943169142626b6_icgraph.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/a01400_a73c0d51ef869f0cebc943169142626b6_icgraph.md5 b/a01400_a73c0d51ef869f0cebc943169142626b6_icgraph.md5 new file mode 100644 index 00000000..5da5da10 --- /dev/null +++ b/a01400_a73c0d51ef869f0cebc943169142626b6_icgraph.md5 @@ -0,0 +1 @@ +7cb1bdcdd6ceba965016536a403be355 \ No newline at end of file diff --git a/a01400_a73c0d51ef869f0cebc943169142626b6_icgraph.svg b/a01400_a73c0d51ef869f0cebc943169142626b6_icgraph.svg new file mode 100644 index 00000000..bec0af05 --- /dev/null +++ b/a01400_a73c0d51ef869f0cebc943169142626b6_icgraph.svg @@ -0,0 +1,66 @@ + + + + + + +arax_accel_get_stat + + +Node1 + + +arax_accel_get_stat + + + + + +Node2 + + +arax_accel_stat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_vaccel_get_stat + + + + + +Node1->Node3 + + + + + + + + +Node3->Node2 + + + + + + + + diff --git a/a01400_a800ddc33d183998387064192c52d7ca5_icgraph.map b/a01400_a800ddc33d183998387064192c52d7ca5_icgraph.map new file mode 100644 index 00000000..a8313b6a --- /dev/null +++ b/a01400_a800ddc33d183998387064192c52d7ca5_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01400_a800ddc33d183998387064192c52d7ca5_icgraph.md5 b/a01400_a800ddc33d183998387064192c52d7ca5_icgraph.md5 new file mode 100644 index 00000000..568698e1 --- /dev/null +++ b/a01400_a800ddc33d183998387064192c52d7ca5_icgraph.md5 @@ -0,0 +1 @@ +ca778358083193765ea260589b72afb0 \ No newline at end of file diff --git a/a01400_a800ddc33d183998387064192c52d7ca5_icgraph.svg b/a01400_a800ddc33d183998387064192c52d7ca5_icgraph.svg new file mode 100644 index 00000000..95562744 --- /dev/null +++ b/a01400_a800ddc33d183998387064192c52d7ca5_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_accel_get_name + + +Node1 + + +arax_accel_get_name + + + + + +Node2 + + +arax_pipe_find_accel + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01400_a9443355ad3d09b08427e538d75cab254_cgraph.map b/a01400_a9443355ad3d09b08427e538d75cab254_cgraph.map new file mode 100644 index 00000000..410dc8fe --- /dev/null +++ b/a01400_a9443355ad3d09b08427e538d75cab254_cgraph.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/a01400_a9443355ad3d09b08427e538d75cab254_cgraph.md5 b/a01400_a9443355ad3d09b08427e538d75cab254_cgraph.md5 new file mode 100644 index 00000000..15eb5728 --- /dev/null +++ b/a01400_a9443355ad3d09b08427e538d75cab254_cgraph.md5 @@ -0,0 +1 @@ +852f3a77922860144b95c2b90d9530a2 \ No newline at end of file diff --git a/a01400_a9443355ad3d09b08427e538d75cab254_cgraph.svg b/a01400_a9443355ad3d09b08427e538d75cab254_cgraph.svg new file mode 100644 index 00000000..8ac053ef --- /dev/null +++ b/a01400_a9443355ad3d09b08427e538d75cab254_cgraph.svg @@ -0,0 +1,147 @@ + + + + + + +arax_accel_size_inc + + +Node1 + + +arax_accel_size_inc + + + + + +Node2 + + +arax_throttle_size_inc + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_condition_lock + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_condition_notify + + + + + +Node2->Node5 + + + + + + + + +Node7 + + +async_condition_unlock + + + + + +Node2->Node7 + + + + + + + + +Node4 + + +async_completion_wait + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +async_semaphore_inc + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_completion_complete + + + + + +Node7->Node8 + + + + + + + + diff --git a/a01400_aa164c99d44fec2d7296a76c8926eb585_cgraph.map b/a01400_aa164c99d44fec2d7296a76c8926eb585_cgraph.map new file mode 100644 index 00000000..309ef65f --- /dev/null +++ b/a01400_aa164c99d44fec2d7296a76c8926eb585_cgraph.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/a01400_aa164c99d44fec2d7296a76c8926eb585_cgraph.md5 b/a01400_aa164c99d44fec2d7296a76c8926eb585_cgraph.md5 new file mode 100644 index 00000000..487b57c6 --- /dev/null +++ b/a01400_aa164c99d44fec2d7296a76c8926eb585_cgraph.md5 @@ -0,0 +1 @@ +cd5cf629c09a284ad700051121597370 \ No newline at end of file diff --git a/a01400_aa164c99d44fec2d7296a76c8926eb585_cgraph.svg b/a01400_aa164c99d44fec2d7296a76c8926eb585_cgraph.svg new file mode 100644 index 00000000..3718c523 --- /dev/null +++ b/a01400_aa164c99d44fec2d7296a76c8926eb585_cgraph.svg @@ -0,0 +1,112 @@ + + + + + + +arax_accel_get_assigned_vaccels + + +Node1 + + +arax_accel_get_assigned +_vaccels + + + + + +Node2 + + +async_condition_lock + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +async_condition_unlock + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +utils_list_to_array + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +async_completion_wait + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_completion_complete + + + + + +Node4->Node5 + + + + + + + + diff --git a/a01400_aa3f384ca4812e46dedce753be42654df_cgraph.map b/a01400_aa3f384ca4812e46dedce753be42654df_cgraph.map new file mode 100644 index 00000000..8b1bf80e --- /dev/null +++ b/a01400_aa3f384ca4812e46dedce753be42654df_cgraph.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01400_aa3f384ca4812e46dedce753be42654df_cgraph.md5 b/a01400_aa3f384ca4812e46dedce753be42654df_cgraph.md5 new file mode 100644 index 00000000..1108bf46 --- /dev/null +++ b/a01400_aa3f384ca4812e46dedce753be42654df_cgraph.md5 @@ -0,0 +1 @@ +4bba2fd0b9eed89ea5944e25f0659b7f \ No newline at end of file diff --git a/a01400_aa3f384ca4812e46dedce753be42654df_cgraph.svg b/a01400_aa3f384ca4812e46dedce753be42654df_cgraph.svg new file mode 100644 index 00000000..9fc68cec --- /dev/null +++ b/a01400_aa3f384ca4812e46dedce753be42654df_cgraph.svg @@ -0,0 +1,219 @@ + + + + + + +arax_accel_del_vaccel + + +Node1 + + +arax_accel_del_vaccel + + + + + +Node2 + + +arax_accel_inc_revision + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_vaccel_queue_size + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +async_condition_lock + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +async_condition_notify + + + + + +Node1->Node8 + + + + + + + + +Node10 + + +async_condition_unlock + + + + + +Node1->Node10 + + + + + + + + +Node12 + + +utils_list_del + + + + + +Node1->Node12 + + + + + + + + +Node4 + + +arax_vaccel_queue + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +utils_queue_used_slots + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +async_completion_wait + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_semaphore_inc + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +async_completion_complete + + + + + +Node10->Node11 + + + + + + + + diff --git a/a01400_aa3f384ca4812e46dedce753be42654df_icgraph.map b/a01400_aa3f384ca4812e46dedce753be42654df_icgraph.map new file mode 100644 index 00000000..6a536201 --- /dev/null +++ b/a01400_aa3f384ca4812e46dedce753be42654df_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01400_aa3f384ca4812e46dedce753be42654df_icgraph.md5 b/a01400_aa3f384ca4812e46dedce753be42654df_icgraph.md5 new file mode 100644 index 00000000..ddfda3e7 --- /dev/null +++ b/a01400_aa3f384ca4812e46dedce753be42654df_icgraph.md5 @@ -0,0 +1 @@ +e299000e4143118a99eaf1eb659fcd53 \ No newline at end of file diff --git a/a01400_aa3f384ca4812e46dedce753be42654df_icgraph.svg b/a01400_aa3f384ca4812e46dedce753be42654df_icgraph.svg new file mode 100644 index 00000000..f2180aa3 --- /dev/null +++ b/a01400_aa3f384ca4812e46dedce753be42654df_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_accel_del_vaccel + + +Node1 + + +arax_accel_del_vaccel + + + + + +Node2 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01400_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.map b/a01400_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.map new file mode 100644 index 00000000..6dc4b9af --- /dev/null +++ b/a01400_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/a01400_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.md5 b/a01400_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.md5 new file mode 100644 index 00000000..49914a55 --- /dev/null +++ b/a01400_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.md5 @@ -0,0 +1 @@ +983fb83d1d493823fffe0a57c94d48e1 \ No newline at end of file diff --git a/a01400_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.svg b/a01400_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.svg new file mode 100644 index 00000000..afcf27f0 --- /dev/null +++ b/a01400_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.svg @@ -0,0 +1,129 @@ + + + + + + +arax_accel_add_task + + +Node1 + + +arax_accel_add_task + + + + + +Node2 + + +async_condition_lock + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +async_condition_notify + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +async_condition_unlock + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +async_completion_wait + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_semaphore_inc + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_completion_complete + + + + + +Node6->Node7 + + + + + + + + diff --git a/a01400_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.map b/a01400_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.map new file mode 100644 index 00000000..d1a4c0f3 --- /dev/null +++ b/a01400_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01400_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.md5 b/a01400_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.md5 new file mode 100644 index 00000000..35d010ab --- /dev/null +++ b/a01400_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.md5 @@ -0,0 +1 @@ +375b1e2bd414d28c6a507e0eee55f395 \ No newline at end of file diff --git a/a01400_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.svg b/a01400_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.svg new file mode 100644 index 00000000..3e94b375 --- /dev/null +++ b/a01400_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.svg @@ -0,0 +1,193 @@ + + + + + + +arax_accel_add_task + + +Node1 + + +arax_accel_add_task + + + + + +Node2 + + +arax_vaccel_add_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_task_submit + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_task_issue + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data_allocate +_remote + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_data_get + + + + + +Node4->Node6 + + + + + + + + +Node8 + + +arax_data_set + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +arax_task_issue_sync + + + + + +Node4->Node10 + + + + + + + + +Node7 + + +arax_data_memcpy + + + + + +Node6->Node7 + + + + + + + + +Node8->Node7 + + + + + + + + diff --git a/a01400_aed864d2fab73a39a8c98356f7bca1304_icgraph.map b/a01400_aed864d2fab73a39a8c98356f7bca1304_icgraph.map new file mode 100644 index 00000000..25a91400 --- /dev/null +++ b/a01400_aed864d2fab73a39a8c98356f7bca1304_icgraph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/a01400_aed864d2fab73a39a8c98356f7bca1304_icgraph.md5 b/a01400_aed864d2fab73a39a8c98356f7bca1304_icgraph.md5 new file mode 100644 index 00000000..f765c0d8 --- /dev/null +++ b/a01400_aed864d2fab73a39a8c98356f7bca1304_icgraph.md5 @@ -0,0 +1 @@ +1ee1acb1ca89ff1f045abfc96686dc8a \ No newline at end of file diff --git a/a01400_aed864d2fab73a39a8c98356f7bca1304_icgraph.svg b/a01400_aed864d2fab73a39a8c98356f7bca1304_icgraph.svg new file mode 100644 index 00000000..28aaa125 --- /dev/null +++ b/a01400_aed864d2fab73a39a8c98356f7bca1304_icgraph.svg @@ -0,0 +1,165 @@ + + + + + + +arax_accel_inc_revision + + +Node1 + + +arax_accel_inc_revision + + + + + +Node2 + + +arax_accel_add_vaccel + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +arax_accel_del_vaccel + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +arax_accel_set_physical + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_vaccel_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_accel_acquire_phys + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_accel_acquire_type + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_accel_init + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01400_af0b933c02a24d69c1efa40179f60288f_cgraph.map b/a01400_af0b933c02a24d69c1efa40179f60288f_cgraph.map new file mode 100644 index 00000000..4489e701 --- /dev/null +++ b/a01400_af0b933c02a24d69c1efa40179f60288f_cgraph.map @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01400_af0b933c02a24d69c1efa40179f60288f_cgraph.md5 b/a01400_af0b933c02a24d69c1efa40179f60288f_cgraph.md5 new file mode 100644 index 00000000..c6cc8865 --- /dev/null +++ b/a01400_af0b933c02a24d69c1efa40179f60288f_cgraph.md5 @@ -0,0 +1 @@ +574963a77945763d672509daa5dc7c24 \ No newline at end of file diff --git a/a01400_af0b933c02a24d69c1efa40179f60288f_cgraph.svg b/a01400_af0b933c02a24d69c1efa40179f60288f_cgraph.svg new file mode 100644 index 00000000..3eac4759 --- /dev/null +++ b/a01400_af0b933c02a24d69c1efa40179f60288f_cgraph.svg @@ -0,0 +1,310 @@ + + + + + + +arax_accel_add_vaccel + + +Node1 + + +arax_accel_add_vaccel + + + + + +Node2 + + +arax_accel_inc_revision + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +async_condition_lock + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +async_condition_unlock + + + + + +Node1->Node6 + + + + + + + + +Node10 + + +arax_vaccel_queue_size + + + + + +Node1->Node10 + + + + + + + + +Node13 + + +async_condition_notify + + + + + +Node1->Node13 + + + + + + + + +Node15 + + +utils_list_add + + + + + +Node1->Node15 + + + + + + + + +Node3->Node4 + + + + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +utils_list_del + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +utils_list_node_linked + + + + + +Node3->Node9 + + + + + + + + +Node5 + + +async_completion_wait + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_completion_complete + + + + + +Node6->Node7 + + + + + + + + +Node11 + + +arax_vaccel_queue + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +utils_queue_used_slots + + + + + +Node10->Node12 + + + + + + + + +Node14 + + +async_semaphore_inc + + + + + +Node13->Node14 + + + + + + + + +Node16 + + +utils_list_node_add + + + + + +Node15->Node16 + + + + + + + + diff --git a/a01400_af0b933c02a24d69c1efa40179f60288f_icgraph.map b/a01400_af0b933c02a24d69c1efa40179f60288f_icgraph.map new file mode 100644 index 00000000..4af22b58 --- /dev/null +++ b/a01400_af0b933c02a24d69c1efa40179f60288f_icgraph.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/a01400_af0b933c02a24d69c1efa40179f60288f_icgraph.md5 b/a01400_af0b933c02a24d69c1efa40179f60288f_icgraph.md5 new file mode 100644 index 00000000..9831e84a --- /dev/null +++ b/a01400_af0b933c02a24d69c1efa40179f60288f_icgraph.md5 @@ -0,0 +1 @@ +e445c4c04a1062652c16bdf1243f542f \ No newline at end of file diff --git a/a01400_af0b933c02a24d69c1efa40179f60288f_icgraph.svg b/a01400_af0b933c02a24d69c1efa40179f60288f_icgraph.svg new file mode 100644 index 00000000..7c3d942e --- /dev/null +++ b/a01400_af0b933c02a24d69c1efa40179f60288f_icgraph.svg @@ -0,0 +1,111 @@ + + + + + + +arax_accel_add_vaccel + + +Node1 + + +arax_accel_add_vaccel + + + + + +Node2 + + +arax_accel_set_physical + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_vaccel_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_accel_acquire_phys + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_accel_acquire_type + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_accel_init + + + + + +Node3->Node6 + + + + + + + + diff --git a/a01400_source.html b/a01400_source.html new file mode 100644 index 00000000..fdc26a51 --- /dev/null +++ b/a01400_source.html @@ -0,0 +1,226 @@ + + + + + + + +Arax: arax_accel.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_accel.h
+
+
+Go to the documentation of this file.
1#ifndef ARAX_ACCEL_HEADER
+
2#define ARAX_ACCEL_HEADER
+
3#include <arax.h>
+ +
5
+
6#include "async.h"
+
7#include "core/arax_vaccel.h"
+ +
9
+
10#ifdef __cplusplus
+
11extern "C" {
+
12#endif /* ifdef __cplusplus */
+
13
+ +
15{
+ + + +
19 async_condition_s lock; /* protect vaccels & tasks */
+ +
21 size_t tasks;
+
22 size_t revision;
+ + + +
26 /* To add more as needed */
+
27};
+
28
+
37arax_accel_s* arax_accel_init(arax_pipe_s *pipe, const char *name,
+
38 arax_accel_type_e type, size_t size, size_t capacity);
+
39
+ +
47
+ +
56
+ +
61
+
65const char* arax_accel_get_name(arax_accel_s *accel);
+
66
+ +
73
+ +
80
+ +
88
+
89
+
90#ifdef ARAX_THROTTLE_DEBUG
+
91#define ARAX_THROTTLE_DEBUG_ACCEL_PARAMS , const char *parent
+
92#define ARAX_THROTTLE_DEBUG_ACCEL_FUNC(FUNC) __ ## FUNC
+
93#define arax_accel_size_inc(vac, sz) __arax_accel_size_inc(vac, sz, __func__)
+
94#define arax_accel_size_dec(vac, sz) __arax_accel_size_dec(vac, sz, __func__)
+
95#else
+
96#define ARAX_THROTTLE_DEBUG_ACCEL_PARAMS
+
97#define ARAX_THROTTLE_DEBUG_ACCEL_FUNC(FUNC) FUNC
+
98#endif
+
99
+ + +
108
+ + +
117
+ +
125
+ +
133
+ +
147
+ +
159
+ +
169
+
170#ifdef __cplusplus
+
171}
+
172#endif /* ifdef __cplusplus */
+
173
+
174#endif /* ifndef ARAX_ACCEL_HEADER */
+ +
enum arax_accel_state arax_accel_state_e
+
void arax_accel
Definition arax_types.h:9
+
enum arax_accel_type arax_accel_type_e
+
arax_accel_s * arax_accel_init(arax_pipe_s *pipe, const char *name, arax_accel_type_e type, size_t size, size_t capacity)
Definition arax_accel.c:5
+
size_t arax_accel_get_total_size(arax_accel *accel)
Definition arax_accel.c:75
+
size_t arax_accel_pending_tasks(arax_accel_s *accel)
Definition arax_accel.c:46
+
size_t arax_accel_get_available_size(arax_accel *accel)
Definition arax_accel.c:67
+
void arax_accel_wait_for_task(arax_accel_s *accel)
Definition arax_accel.c:26
+
void ARAX_THROTTLE_DEBUG_ACCEL_FUNC() arax_accel_size_dec(arax_accel *accel, size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS)
Definition arax_accel.c:59
+
arax_accel_state_e arax_accel_get_stat(arax_accel_s *accel, arax_accel_stats_s *stat)
Definition arax_accel.c:89
+
const char * arax_accel_get_name(arax_accel_s *accel)
Definition arax_accel.c:83
+
void ARAX_THROTTLE_DEBUG_ACCEL_FUNC() arax_accel_size_inc(arax_accel *accel, size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS)
Definition arax_accel.c:51
+
size_t arax_accel_get_assigned_vaccels(arax_accel_s *accel, arax_vaccel_s ***vaccel)
Definition arax_accel.c:143
+
void arax_accel_del_vaccel(arax_accel_s *accel, arax_vaccel_s *vaccel)
Definition arax_accel.c:156
+
void arax_accel_add_task(arax_accel_s *accel)
Definition arax_accel.c:38
+
#define ARAX_THROTTLE_DEBUG_ACCEL_PARAMS
Definition arax_accel.h:96
+
#define ARAX_THROTTLE_DEBUG_ACCEL_FUNC(FUNC)
Definition arax_accel.h:97
+
size_t arax_accel_get_revision(arax_accel_s *accel)
Definition arax_accel.c:102
+
void arax_accel_inc_revision(arax_accel_s *accel)
Definition arax_accel.c:96
+
void arax_accel_add_vaccel(arax_accel_s *accel, arax_vaccel_s *vaccel)
Definition arax_accel.c:108
+ + + + +
size_t tasks
Definition arax_accel.h:21
+
arax_throttle_s throttle
Definition arax_accel.h:23
+
utils_list_s vaccels
Definition arax_accel.h:20
+
async_condition_s lock
Definition arax_accel.h:19
+
arax_object_s obj
Definition arax_accel.h:16
+
arax_accel_state_e state
Definition arax_accel.h:18
+
arax_accel_stats_s stats
Definition arax_accel.h:24
+
arax_accel_type_e type
Definition arax_accel.h:17
+
arax_vaccel_s * free_vaq
Definition arax_accel.h:25
+
size_t revision
Definition arax_accel.h:22
+ + + + + + +
+
+ + + + diff --git a/a01401.map b/a01401.map new file mode 100644 index 00000000..e45dbe81 --- /dev/null +++ b/a01401.map @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01401.md5 b/a01401.md5 new file mode 100644 index 00000000..6bbc5d79 --- /dev/null +++ b/a01401.md5 @@ -0,0 +1 @@ +9350a99b30ff91c41d2140b943f74eb1 \ No newline at end of file diff --git a/a01401.svg b/a01401.svg new file mode 100644 index 00000000..8de12c24 --- /dev/null +++ b/a01401.svg @@ -0,0 +1,444 @@ + + + + + + +arax_accel.h + + +Node1 + + +arax_accel.h + + + + + +Node2 + + +arax.h + + + + + +Node1->Node2 + + + + + + + + +Node9 + + +async.h + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +core/arax_vaccel.h + + + + + +Node1->Node10 + + + + + + + + +Node20 + + +core/arax_throttle.h + + + + + +Node1->Node20 + + + + + + + + +Node3 + + +stdio.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stddef.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_types.h + + + + + +Node2->Node5 + + + + + + + + +Node8 + + +core/arax_accel_types.h + + + + + +Node2->Node8 + + + + + + + + +Node6 + + +sys/time.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +time.h + + + + + +Node5->Node7 + + + + + + + + +Node8->Node5 + + + + + + + + +Node10->Node1 + + + + + + + + +Node10->Node9 + + + + + + + + +Node11 + + +core/arax_object.h + + + + + +Node10->Node11 + + + + + + + + +Node18 + + +utils/queue.h + + + + + +Node10->Node18 + + + + + + + + +Node12 + + +utils/list.h + + + + + +Node11->Node12 + + + + + + + + +Node14 + + +utils/spinlock.h + + + + + +Node11->Node14 + + + + + + + + +Node17 + + +arch/alloc.h + + + + + +Node11->Node17 + + + + + + + + +Node12->Node4 + + + + + + + + +Node13 + + +stdint.h + + + + + +Node12->Node13 + + + + + + + + +Node14->Node13 + + + + + + + + +Node15 + + +utils/arax_assert.h + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +compat.h + + + + + +Node15->Node16 + + + + + + + + +Node18->Node4 + + + + + + + + +Node18->Node13 + + + + + + + + +Node18->Node14 + + + + + + + + +Node19 + + +conf.h + + + + + +Node18->Node19 + + + + + + + + +Node20->Node9 + + + + + + + + diff --git a/a01402.map b/a01402.map new file mode 100644 index 00000000..2b55fc86 --- /dev/null +++ b/a01402.map @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01402.md5 b/a01402.md5 new file mode 100644 index 00000000..b515c56d --- /dev/null +++ b/a01402.md5 @@ -0,0 +1 @@ +d6d117c68bfe3a101fce5aea0f3d3537 \ No newline at end of file diff --git a/a01402.svg b/a01402.svg new file mode 100644 index 00000000..7748cde8 --- /dev/null +++ b/a01402.svg @@ -0,0 +1,318 @@ + + + + + + +arax_accel.h + + +Node1 + + +arax_accel.h + + + + + +Node2 + + +arax_data.h + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +arax_object.c + + + + + +Node1->Node5 + + + + + + + + +Node8 + + +arax_pipe.h + + + + + +Node1->Node8 + + + + + + + + +Node14 + + +arax_vaccel.h + + + + + +Node1->Node14 + + + + + + + + +Node3 + + +arax_data.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_private.h + + + + + +Node2->Node4 + + + + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +arax_task.c + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +impl.c + + + + + +Node2->Node7 + + + + + + + + +Node4->Node3 + + + + + + + + +Node8->Node3 + + + + + + + + +Node8->Node5 + + + + + + + + +Node8->Node6 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +arax_accel.c + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_pipe.c + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +arax_plot.c + + + + + +Node8->Node11 + + + + + + + + +Node12 + + +arax_ptr.c + + + + + +Node8->Node12 + + + + + + + + +Node13 + + +arax_vaccel.c + + + + + +Node8->Node13 + + + + + + + + +Node14->Node1 + + + + + + + + diff --git a/a01403.html b/a01403.html new file mode 100644 index 00000000..ed2ef630 --- /dev/null +++ b/a01403.html @@ -0,0 +1,233 @@ + + + + + + + +Arax: arax_accel_types.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_accel_types.h File Reference
+
+
+
#include "arax_types.h"
+
+ + Include dependency graph for arax_accel_types.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + +

+Functions

int arax_accel_valid_type (arax_accel_type_e type)
 
const char * arax_accel_type_to_str (arax_accel_type_e type)
 
arax_accel_type_e arax_accel_type_from_str (const char *type)
 
+

Function Documentation

+ +

◆ arax_accel_type_from_str()

+ +
+
+ + + + + + + + +
arax_accel_type_e arax_accel_type_from_str (const char * type)
+
+

Convert a string to the matching arax_accel_type_e value. type will be compared ignoring capitalization with the string in types_map variable in arax_accel_types.c.

+

NOTE: This function should not be used in critical paths!

+
Returns
A value from arax_accel_type_e, if no match is found returns ARAX_ACCEL_TYPES
+ +

Definition at line 35 of file arax_accel_types.c.

+ +

References ANY, ARAX_ACCEL_TYPES, arax_accel_type_map::str, arax_accel_type_map::type, and types_map.

+ +
+
+ +

◆ arax_accel_type_to_str()

+ +
+
+ + + + + + + + +
const char * arax_accel_type_to_str (arax_accel_type_e type)
+
+

Convert a arax_accel_type_e value to a human readable string. If type not a valid arax_accel_type_e value NULL is returned. NOTE: This function should not be used in critical paths!

+
Returns
A character representation for the given type,NULL on error.
+ +

Definition at line 27 of file arax_accel_types.c.

+ +

References arax_accel_valid_type(), arax_accel_type_map::str, arax_accel_type_map::type, and types_map.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_valid_type()

+ +
+
+ + + + + + + + +
int arax_accel_valid_type (arax_accel_type_e type)
+
+

Test type, to ensure it is a valid arax_accel_type_e value.

+
Parameters
+ + +
typeValue to be checked.
+
+
+
Returns
1 if type is a valid arax_accel_type_e value, 0 otherwise.
+ +

Definition at line 22 of file arax_accel_types.c.

+ +

References ARAX_ACCEL_TYPES, and arax_accel_type_map::type.

+ +

Referenced by arax_accel_type_to_str(), arax_proc_can_run_at(), and arax_proc_get_functor().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01403.js b/a01403.js new file mode 100644 index 00000000..0e552dce --- /dev/null +++ b/a01403.js @@ -0,0 +1,6 @@ +var a01403 = +[ + [ "arax_accel_type_from_str", "a01403.html#ac8636df4c6e6f00739caad9910698f3c", null ], + [ "arax_accel_type_to_str", "a01403.html#aadc678cace81fa112fa6baad1c190539", null ], + [ "arax_accel_valid_type", "a01403.html#a18229452e0f07cdd4b0b06fbdc2a5d61", null ] +]; \ No newline at end of file diff --git a/a01403_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.map b/a01403_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.map new file mode 100644 index 00000000..51c8c9f7 --- /dev/null +++ b/a01403_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/a01403_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.md5 b/a01403_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.md5 new file mode 100644 index 00000000..8b8d4e61 --- /dev/null +++ b/a01403_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.md5 @@ -0,0 +1 @@ +efc1b354885b71c142d02d4b46c8bf76 \ No newline at end of file diff --git a/a01403_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.svg b/a01403_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.svg new file mode 100644 index 00000000..ddd4fe7f --- /dev/null +++ b/a01403_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.svg @@ -0,0 +1,93 @@ + + + + + + +arax_accel_valid_type + + +Node1 + + +arax_accel_valid_type + + + + + +Node2 + + +arax_accel_type_to_str + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_proc_can_run_at + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_proc_get_functor + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +arax_proc_set_functor + + + + + +Node4->Node5 + + + + + + + + diff --git a/a01403_aadc678cace81fa112fa6baad1c190539_cgraph.map b/a01403_aadc678cace81fa112fa6baad1c190539_cgraph.map new file mode 100644 index 00000000..801ff6ac --- /dev/null +++ b/a01403_aadc678cace81fa112fa6baad1c190539_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01403_aadc678cace81fa112fa6baad1c190539_cgraph.md5 b/a01403_aadc678cace81fa112fa6baad1c190539_cgraph.md5 new file mode 100644 index 00000000..112871d2 --- /dev/null +++ b/a01403_aadc678cace81fa112fa6baad1c190539_cgraph.md5 @@ -0,0 +1 @@ +ef47c85140db192acae745a68a59baff \ No newline at end of file diff --git a/a01403_aadc678cace81fa112fa6baad1c190539_cgraph.svg b/a01403_aadc678cace81fa112fa6baad1c190539_cgraph.svg new file mode 100644 index 00000000..e9a61ff6 --- /dev/null +++ b/a01403_aadc678cace81fa112fa6baad1c190539_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_accel_type_to_str + + +Node1 + + +arax_accel_type_to_str + + + + + +Node2 + + +arax_accel_valid_type + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01403_source.html b/a01403_source.html new file mode 100644 index 00000000..effe9858 --- /dev/null +++ b/a01403_source.html @@ -0,0 +1,131 @@ + + + + + + + +Arax: arax_accel_types.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_accel_types.h
+
+
+Go to the documentation of this file.
1#ifndef ARAX_ACCEL_TYPES_HEADER
+
2#define ARAX_ACCEL_TYPES_HEADER
+
3#include "arax_types.h"
+
4#ifdef __cplusplus
+
5extern "C" {
+
6#endif /* ifdef __cplusplus */
+
7
+ +
16
+ +
25
+ +
37
+
38#ifdef __cplusplus
+
39}
+
40#endif /* ifdef __cplusplus */
+
41
+
42#endif // ifndef ARAX_ACCEL_TYPES_HEADER
+ +
enum arax_accel_type arax_accel_type_e
+
int arax_accel_valid_type(arax_accel_type_e type)
+
const char * arax_accel_type_to_str(arax_accel_type_e type)
+
arax_accel_type_e arax_accel_type_from_str(const char *type)
+
+
+ + + + diff --git a/a01404.map b/a01404.map new file mode 100644 index 00000000..a2c2ec8b --- /dev/null +++ b/a01404.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a01404.md5 b/a01404.md5 new file mode 100644 index 00000000..a675b817 --- /dev/null +++ b/a01404.md5 @@ -0,0 +1 @@ +32206303ceed89b56e608f00bd049423 \ No newline at end of file diff --git a/a01404.svg b/a01404.svg new file mode 100644 index 00000000..05d2ae85 --- /dev/null +++ b/a01404.svg @@ -0,0 +1,75 @@ + + + + + + +arax_accel_types.h + + +Node1 + + +arax_accel_types.h + + + + + +Node2 + + +arax_types.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sys/time.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +time.h + + + + + +Node2->Node4 + + + + + + + + diff --git a/a01405.map b/a01405.map new file mode 100644 index 00000000..ed0deae5 --- /dev/null +++ b/a01405.map @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01405.md5 b/a01405.md5 new file mode 100644 index 00000000..0ea930ab --- /dev/null +++ b/a01405.md5 @@ -0,0 +1 @@ +0ed2fb92be06a5233b784f82ad172424 \ No newline at end of file diff --git a/a01405.svg b/a01405.svg new file mode 100644 index 00000000..750424d8 --- /dev/null +++ b/a01405.svg @@ -0,0 +1,561 @@ + + + + + + +arax_accel_types.h + + +Node1 + + +arax_accel_types.h + + + + + +Node2 + + +arax.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data.h + + + + + +Node2->Node4 + + + + + + + + +Node8 + + +arax_task.c + + + + + +Node2->Node8 + + + + + + + + +Node9 + + +impl.c + + + + + +Node2->Node9 + + + + + + + + +Node10 + + +arax_pipe.h + + + + + +Node2->Node10 + + + + + + + + +Node17 + + +arax_plot.h + + + + + +Node2->Node17 + + + + + + + + +Node18 + + +arax_proc.h + + + + + +Node2->Node18 + + + + + + + + +Node21 + + +timer.h + + + + + +Node2->Node21 + + + + + + + + +Node3->Node4 + + + + + + + + +Node7 + + +arax_object.c + + + + + +Node3->Node7 + + + + + + + + +Node3->Node10 + + + + + + + + +Node16 + + +arax_vaccel.h + + + + + +Node3->Node16 + + + + + + + + +Node5 + + +arax_data.c + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_data_private.h + + + + + +Node4->Node6 + + + + + + + + +Node4->Node7 + + + + + + + + +Node4->Node8 + + + + + + + + +Node4->Node9 + + + + + + + + +Node6->Node5 + + + + + + + + +Node10->Node5 + + + + + + + + +Node10->Node7 + + + + + + + + +Node10->Node8 + + + + + + + + +Node10->Node9 + + + + + + + + +Node11 + + +arax_accel.c + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_pipe.c + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +arax_plot.c + + + + + +Node10->Node13 + + + + + + + + +Node14 + + +arax_ptr.c + + + + + +Node10->Node14 + + + + + + + + +Node15 + + +arax_vaccel.c + + + + + +Node10->Node15 + + + + + + + + +Node16->Node3 + + + + + + + + +Node17->Node13 + + + + + + + + +Node18->Node7 + + + + + + + + +Node19 + + +arax_proc.c + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +arax_task.h + + + + + +Node18->Node20 + + + + + + + + +Node20->Node5 + + + + + + + + +Node20->Node7 + + + + + + + + +Node20->Node10 + + + + + + + + +Node21->Node8 + + + + + + + + +Node21->Node9 + + + + + + + + +Node22 + + +alloc.c + + + + + +Node21->Node22 + + + + + + + + diff --git a/a01406.html b/a01406.html new file mode 100644 index 00000000..79005e00 --- /dev/null +++ b/a01406.html @@ -0,0 +1,1041 @@ + + + + + + + +Arax: arax_data.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_data.h File Reference
+
+
+
#include <arax.h>
+#include "core/arax_object.h"
+#include "async.h"
+#include <conf.h>
+#include "core/arax_accel.h"
+
+ + Include dependency graph for arax_data.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + +

+Data Structures

struct  arax_data_s
 
struct  arax_data_dtr
 
+ + + + + + + + + +

+Macros

#define ARAX_BUFF_ALLOC_SIZE(SIZE, ALIGN)   ( (SIZE) + (ALIGN) + sizeof(size_t *) )
 
#define ARAX_DATA_ALLOC_SIZE(DATA)
 
#define arax_data_stat(DATA)   arax_data_stat(DATA, __FILE__, __LINE__);
 
#define arax_data_annotate(DATA, ...)
 
+ + + + + + + + + +

+Typedefs

typedef enum arax_data_flags arax_data_flags_e
 
typedef struct arax_data_s arax_data_s
 
typedef int() arax_data_sync_fn(arax_data_s *)
 
typedef struct arax_data_dtr arax_data_dtr
 
+ + + +

+Enumerations

enum  arax_data_flags { OTHR_REMT = 4 + }
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

arax_data_sarax_data_init (arax_pipe_s *vpipe, size_t size)
 
arax_data_sarax_data_init_aligned (arax_pipe_s *vpipe, size_t size, size_t align)
 
void arax_data_get (arax_data *data, void *user)
 
void arax_data_set_remote (arax_data_s *data, arax_accel *accel, void *remt)
 
void arax_data_set_accel (arax_data_s *data, arax_accel *accel)
 
void arax_data_set (arax_data *data, arax_accel *accel, const void *user)
 
void arax_data_memcpy (arax_accel *accel, arax_data_s *dst, arax_data_s *src, int block)
 
void arax_data_arg_init (arax_data_s *data, arax_accel *accel)
 
void arax_data_input_init (arax_data_s *data, arax_accel *accel)
 
void arax_data_output_init (arax_data_s *data, arax_accel *accel)
 
size_t arax_data_size (arax_data *data)
 
void arax_data_free (arax_data *data)
 
void arax_data_stat (arax_data *data, const char *file, size_t line)
 
+

Macro Definition Documentation

+ +

◆ ARAX_BUFF_ALLOC_SIZE

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define ARAX_BUFF_ALLOC_SIZE( SIZE,
 ALIGN 
)   ( (SIZE) + (ALIGN) + sizeof(size_t *) )
+
+

Calculate allocation size for a buffer of size SIZE and alignment ALIGN.

+ +

Definition at line 16 of file arax_data.h.

+ +
+
+ +

◆ ARAX_DATA_ALLOC_SIZE

+ +
+
+ + + + + + + + +
#define ARAX_DATA_ALLOC_SIZE( DATA)
+
+Value:
+
( arax_data_size(DATA) ), \
+
(((arax_data_s *) (DATA))->align) \
+
)
+
size_t arax_data_size(arax_data *data)
Definition arax_data.c:251
+
#define ARAX_BUFF_ALLOC_SIZE(SIZE, ALIGN)
Definition arax_data.h:16
+ +

Calculate allocation size for arax_data_s DATA.

+ +

Definition at line 21 of file arax_data.h.

+ +
+
+ +

◆ arax_data_annotate

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define arax_data_annotate( DATA,
 ... 
)
+
+ +

Definition at line 158 of file arax_data.h.

+ +
+
+ +

◆ arax_data_stat

+ +
+
+ + + + + + + + +
#define arax_data_stat( DATA)   arax_data_stat(DATA, __FILE__, __LINE__);
+
+ +

Definition at line 152 of file arax_data.h.

+ +
+
+

Typedef Documentation

+ +

◆ arax_data_dtr

+ +
+
+ + + + +
typedef struct arax_data_dtr arax_data_dtr
+
+ +

Definition at line 53 of file arax_data.h.

+ +
+
+ +

◆ arax_data_flags_e

+ +
+
+ + + + +
typedef enum arax_data_flags arax_data_flags_e
+
+ +
+
+ +

◆ arax_data_s

+ +
+
+ + + + +
typedef struct arax_data_s arax_data_s
+
+ +

Definition at line 32 of file arax_data.h.

+ +
+
+ +

◆ arax_data_sync_fn

+ +
+
+ + + + +
typedef int() arax_data_sync_fn(arax_data_s *)
+
+ +

Definition at line 34 of file arax_data.h.

+ +
+
+

Enumeration Type Documentation

+ +

◆ arax_data_flags

+ +
+
+ + + + +
enum arax_data_flags
+
+ + +
Enumerator
OTHR_REMT 
+ +

Definition at line 27 of file arax_data.h.

+ +
+
+

Function Documentation

+ +

◆ arax_data_arg_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_data_arg_init (arax_data_sdata,
arax_accelaccel 
)
+
+ +

Definition at line 220 of file arax_data.c.

+ +

References arax_assert, arax_assert_obj, arax_data_migrate_accel(), and ARAX_TYPE_DATA.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_free()

+ +
+
+ + + + + + + + +
void arax_data_free (arax_datadata)
+
+

Mark data for deletion.

+ +

Definition at line 325 of file arax_data.c.

+ +

References arax_assert_obj, arax_object_ref_dec(), ARAX_TYPE_DATA, and arax_data_s::obj.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_get()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_data_get (arax_datadata,
void * user 
)
+
+

Get the data of data, and copy them to user.

+
Note
This is a blocking call.
+
Parameters
+ + + +
dataA valid arax_data_s instance.
userAn allocated memory of at least arax_data_size() bytes.
+
+
+ +

Definition at line 52 of file arax_data.c.

+ +

References arax_data_s::accel, arax_assert, arax_assert_obj, arax_data_size(), arax_proc_get(), arax_proc_put(), arax_task_free(), arax_task_host_data(), arax_task_issue(), arax_task_wait(), ARAX_TYPE_DATA, and task_completed.

+ +

Referenced by arax_data_memcpy().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
arax_data_s * arax_data_init (arax_pipe_svpipe,
size_t size 
)
+
+

Initialize a new arax_data_s object.

Parameters
+ + + +
vpipeValid arax_pipe_s instance.
sizeSize of data in bytes.
+
+
+ +

Definition at line 16 of file arax_data.c.

+ +

References arax_data_init_aligned(), and vpipe.

+ +

Referenced by ARAX_BUFFER().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_init_aligned()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
arax_data_s * arax_data_init_aligned (arax_pipe_svpipe,
size_t size,
size_t align 
)
+
+

Initialize a new arax_data_s object, with an aligned buffer.

Parameters
+ + + + +
vpipeValid arax_pipe_s instance.
sizeSize of data in bytes.
alignalignment of buffer in bytes, power of two.
+
+
+ +

Definition at line 21 of file arax_data.c.

+ +

References arax_data_s::align, arax_assert, ARAX_BUFF_ALLOC_SIZE, arax_object_register(), ARAX_TYPE_DATA, arax_data_s::buffer, arax_data_s::flags, arax_pipe::objs, arax_data_s::phys, arax_data_s::size, and vpipe.

+ +

Referenced by arax_data_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_input_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_data_input_init (arax_data_sdata,
arax_accelaccel 
)
+
+ +

Definition at line 229 of file arax_data.c.

+ +

References arax_assert, arax_assert_obj, arax_data_migrate_accel(), arax_object_ref_inc(), ARAX_TYPE_DATA, and arax_data_s::obj.

+ +

Referenced by arax_task_alloc().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_memcpy()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void arax_data_memcpy (arax_accelaccel,
arax_data_sdst,
arax_data_ssrc,
int block 
)
+
+

Copy data of src to dst.

+

@Note src and dst must have the same size. @Note If src and dst are the same, function is no-op.

+
Parameters
+ + + + + +
accelAccelerator/fifo to use.
dstDestination buffer.
srcSource buffer.
blockIf true function returns only when copy has completed.
+
+
+ +

Definition at line 95 of file arax_data.c.

+ +

References arax_assert, arax_assert_obj, arax_data_deref(), arax_data_get(), arax_data_set(), arax_data_size(), ARAX_TYPE_DATA, and arax_data_s::flags.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_output_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_data_output_init (arax_data_sdata,
arax_accelaccel 
)
+
+ +

Definition at line 240 of file arax_data.c.

+ +

References arax_assert, arax_assert_obj, arax_data_migrate_accel(), arax_object_ref_inc(), ARAX_TYPE_DATA, and arax_data_s::obj.

+ +

Referenced by arax_task_alloc().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_set()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void arax_data_set (arax_datadata,
arax_accelaccel,
const void * user 
)
+
+

Copy data from user to 'c data.

+
Note
This is a NON blocking call.
+
Parameters
+ + + + +
dataA valid arax_data_s instance.
accelAccelerator/fifo to use.
userAn allocated memory of at least arax_data_size() bytes.
+
+
+ +

Definition at line 75 of file arax_data.c.

+ +

References arax_data_s::accel, arax_assert, arax_assert_obj, arax_data_size(), arax_object_ref_inc(), arax_proc_get(), arax_proc_put(), arax_task_issue(), and ARAX_TYPE_DATA.

+ +

Referenced by arax_data_memcpy().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_set_accel()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_data_set_accel (arax_data_sdata,
arax_accelaccel 
)
+
+

Set accelerator to data and increment reference counters.

Parameters
+ + + +
dataA valid arax_data_s instance.
accelAccelerator/fifo to use.
+
+
+ +

Definition at line 195 of file arax_data.c.

+ +

References arax_data_s::accel, arax_assert_obj, arax_object_ref_inc(), ARAX_TYPE_DATA, and ARAX_TYPE_VIRT_ACCEL.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_set_remote()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void arax_data_set_remote (arax_data_sdata,
arax_accelaccel,
void * remt 
)
+
+

Set data remote (accelerator) buffer to point to remt, owned by accel.

Note
This call only be called for arax_data that have no alocated remote buffers (i.e. arax_data_has_remote() returns 0)
+
Parameters
+ + +
dataArax data.
+
+
+ +

Definition at line 206 of file arax_data.c.

+ +

References arax_data_s::accel, arax_assert, arax_assert_obj, arax_object_ref_inc(), ARAX_TYPE_DATA, ARAX_TYPE_VIRT_ACCEL, CPU, arax_data_s::flags, OTHR_REMT, and arax_data_s::remote.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_size()

+ +
+
+ + + + + + + + +
size_t arax_data_size (arax_datadata)
+
+

Return size of provided arax_data object.

Parameters
+ + +
dataValid arax_data pointer.
+
+
+
Returns
Return size of data of provided arax_data object.
+ +

Definition at line 251 of file arax_data.c.

+ +

References arax_assert_obj, ARAX_TYPE_DATA, and arax_data_s::size.

+ +

Referenced by arax_data_allocate_remote(), arax_data_get(), arax_data_memcpy(), arax_data_ref_offset(), arax_data_set(), arax_data_stat(), and ARAX_OBJ_DTOR_DECL().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_stat()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void arax_data_stat (arax_datadata,
const char * file,
size_t line 
)
+
+

Print debug info for 'c data.

+ +

Definition at line 346 of file arax_data.c.

+ +

References arax_assert_obj, arax_data_deref(), arax_data_size(), ARAX_TYPE_DATA, arax_data_s::flags, and OTHR_REMT.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01406.js b/a01406.js new file mode 100644 index 00000000..fcde285c --- /dev/null +++ b/a01406.js @@ -0,0 +1,29 @@ +var a01406 = +[ + [ "arax_data_s", "a02254.html", "a02254" ], + [ "arax_data_dtr", "a02258.html", "a02258" ], + [ "ARAX_BUFF_ALLOC_SIZE", "a01406.html#a4ec860605b4f22db15821234f03aaca9", null ], + [ "ARAX_DATA_ALLOC_SIZE", "a01406.html#ac7f1c7bb862980e737a78cc91063fba2", null ], + [ "arax_data_annotate", "a01406.html#a8d5dc5b9cf973b9caf8358852c87dab3", null ], + [ "arax_data_stat", "a01406.html#a3a9bbde83a12e6b20bb9614ec1e1e6ea", null ], + [ "arax_data_dtr", "a01406.html#a44b9d6945066a3282c399e79df572f19", null ], + [ "arax_data_flags_e", "a01406.html#ae350a1d92282cad3ea15ab5801eea195", null ], + [ "arax_data_s", "a01406.html#ac4d9e4d43b25ad5d153d6628df1ece77", null ], + [ "arax_data_sync_fn", "a01406.html#ad1ae99a2dc4af447f066237dc4cba5ab", null ], + [ "arax_data_flags", "a01406.html#a0268385e5173da0946f2c426484cb783", [ + [ "OTHR_REMT", "a01406.html#a0268385e5173da0946f2c426484cb783a999a6541c43a1dd6bed021bc096b13ec", null ] + ] ], + [ "arax_data_arg_init", "a01406.html#a113a3c52b0c3b4f3b390921ee4c5022e", null ], + [ "arax_data_free", "a01406.html#a96e0520e5569748ce1172bafca24fafe", null ], + [ "arax_data_get", "a01406.html#a696bc4319d0f6c6baa7d797a8df6b56f", null ], + [ "arax_data_init", "a01406.html#aeefe449d4a278e9fc4b9c5f7e31000a1", null ], + [ "arax_data_init_aligned", "a01406.html#a526989df37e605824d846b7ba54b43ea", null ], + [ "arax_data_input_init", "a01406.html#a1dc669466d6f52d5be8af2d991512ac2", null ], + [ "arax_data_memcpy", "a01406.html#a7d8356bd5c8b6a8d7dffc6ba94cc22e5", null ], + [ "arax_data_output_init", "a01406.html#a18d07d808917e0b971d46332e9e64da4", null ], + [ "arax_data_set", "a01406.html#a8995f71dba475975efc37756783cfce9", null ], + [ "arax_data_set_accel", "a01406.html#ad4f10e1a58d989e93ad8d6318f9d4162", null ], + [ "arax_data_set_remote", "a01406.html#aca0dcc5fe70fd3aa9aa77ee4b8b9aac1", null ], + [ "arax_data_size", "a01406.html#a369e660e3e344bc697d98174059ead3c", null ], + [ "arax_data_stat", "a01406.html#a6c43ea323f2de1675b00e48330a12e2a", null ] +]; \ No newline at end of file diff --git a/a01406_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.map b/a01406_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.map new file mode 100644 index 00000000..95fb2804 --- /dev/null +++ b/a01406_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.map @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01406_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.md5 b/a01406_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.md5 new file mode 100644 index 00000000..10b8d061 --- /dev/null +++ b/a01406_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.md5 @@ -0,0 +1 @@ +4f5f5377cbfe8e5494849e2b64d3157b \ No newline at end of file diff --git a/a01406_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.svg b/a01406_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.svg new file mode 100644 index 00000000..85ae31a4 --- /dev/null +++ b/a01406_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.svg @@ -0,0 +1,255 @@ + + + + + + +arax_data_arg_init + + +Node1 + + +arax_data_arg_init + + + + + +Node2 + + +arax_data_migrate_accel + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_object_ref_dec + + + + + +Node2->Node3 + + + + + + + + +Node13 + + +arax_object_ref_inc + + + + + +Node2->Node13 + + + + + + + + +Node14 + + +arax_object_type_to_str + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +arax_pipe_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node12 + + +utils_list_del + + + + + +Node3->Node12 + + + + + + + + +Node5 + + +arax_throttle_size_inc + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +async_condition_lock + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_condition_notify + + + + + +Node5->Node8 + + + + + + + + +Node10 + + +async_condition_unlock + + + + + +Node5->Node10 + + + + + + + + +Node7 + + +async_completion_wait + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_semaphore_inc + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +async_completion_complete + + + + + +Node10->Node11 + + + + + + + + diff --git a/a01406_a18d07d808917e0b971d46332e9e64da4_cgraph.map b/a01406_a18d07d808917e0b971d46332e9e64da4_cgraph.map new file mode 100644 index 00000000..e77199f5 --- /dev/null +++ b/a01406_a18d07d808917e0b971d46332e9e64da4_cgraph.map @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01406_a18d07d808917e0b971d46332e9e64da4_cgraph.md5 b/a01406_a18d07d808917e0b971d46332e9e64da4_cgraph.md5 new file mode 100644 index 00000000..8a0e733e --- /dev/null +++ b/a01406_a18d07d808917e0b971d46332e9e64da4_cgraph.md5 @@ -0,0 +1 @@ +349aceec2b22340368f573f67cb5da5c \ No newline at end of file diff --git a/a01406_a18d07d808917e0b971d46332e9e64da4_cgraph.svg b/a01406_a18d07d808917e0b971d46332e9e64da4_cgraph.svg new file mode 100644 index 00000000..a9902295 --- /dev/null +++ b/a01406_a18d07d808917e0b971d46332e9e64da4_cgraph.svg @@ -0,0 +1,264 @@ + + + + + + +arax_data_output_init + + +Node1 + + +arax_data_output_init + + + + + +Node2 + + +arax_data_migrate_accel + + + + + +Node1->Node2 + + + + + + + + +Node13 + + +arax_object_ref_inc + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +arax_object_ref_dec + + + + + +Node2->Node3 + + + + + + + + +Node2->Node13 + + + + + + + + +Node14 + + +arax_object_type_to_str + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +arax_pipe_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node12 + + +utils_list_del + + + + + +Node3->Node12 + + + + + + + + +Node5 + + +arax_throttle_size_inc + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +async_condition_lock + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_condition_notify + + + + + +Node5->Node8 + + + + + + + + +Node10 + + +async_condition_unlock + + + + + +Node5->Node10 + + + + + + + + +Node7 + + +async_completion_wait + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_semaphore_inc + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +async_completion_complete + + + + + +Node10->Node11 + + + + + + + + diff --git a/a01406_a18d07d808917e0b971d46332e9e64da4_icgraph.map b/a01406_a18d07d808917e0b971d46332e9e64da4_icgraph.map new file mode 100644 index 00000000..32fcd460 --- /dev/null +++ b/a01406_a18d07d808917e0b971d46332e9e64da4_icgraph.map @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/a01406_a18d07d808917e0b971d46332e9e64da4_icgraph.md5 b/a01406_a18d07d808917e0b971d46332e9e64da4_icgraph.md5 new file mode 100644 index 00000000..8044a1d5 --- /dev/null +++ b/a01406_a18d07d808917e0b971d46332e9e64da4_icgraph.md5 @@ -0,0 +1 @@ +f758d2fc3f307e59b263edda2a298d2d \ No newline at end of file diff --git a/a01406_a18d07d808917e0b971d46332e9e64da4_icgraph.svg b/a01406_a18d07d808917e0b971d46332e9e64da4_icgraph.svg new file mode 100644 index 00000000..29499f6e --- /dev/null +++ b/a01406_a18d07d808917e0b971d46332e9e64da4_icgraph.svg @@ -0,0 +1,175 @@ + + + + + + +arax_data_output_init + + +Node1 + + +arax_data_output_init + + + + + +Node2 + + +arax_task_alloc + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_task_issue + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_allocate +_remote + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data_get + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +arax_data_set + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +arax_task_issue_sync + + + + + +Node3->Node9 + + + + + + + + +Node6 + + +arax_data_memcpy + + + + + +Node5->Node6 + + + + + + + + +Node7->Node6 + + + + + + + + diff --git a/a01406_a1dc669466d6f52d5be8af2d991512ac2_cgraph.map b/a01406_a1dc669466d6f52d5be8af2d991512ac2_cgraph.map new file mode 100644 index 00000000..7dd9fb50 --- /dev/null +++ b/a01406_a1dc669466d6f52d5be8af2d991512ac2_cgraph.map @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01406_a1dc669466d6f52d5be8af2d991512ac2_cgraph.md5 b/a01406_a1dc669466d6f52d5be8af2d991512ac2_cgraph.md5 new file mode 100644 index 00000000..f69cd49b --- /dev/null +++ b/a01406_a1dc669466d6f52d5be8af2d991512ac2_cgraph.md5 @@ -0,0 +1 @@ +4a99b9f675bff967d1695651ff825bf6 \ No newline at end of file diff --git a/a01406_a1dc669466d6f52d5be8af2d991512ac2_cgraph.svg b/a01406_a1dc669466d6f52d5be8af2d991512ac2_cgraph.svg new file mode 100644 index 00000000..892db0a4 --- /dev/null +++ b/a01406_a1dc669466d6f52d5be8af2d991512ac2_cgraph.svg @@ -0,0 +1,264 @@ + + + + + + +arax_data_input_init + + +Node1 + + +arax_data_input_init + + + + + +Node2 + + +arax_data_migrate_accel + + + + + +Node1->Node2 + + + + + + + + +Node13 + + +arax_object_ref_inc + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +arax_object_ref_dec + + + + + +Node2->Node3 + + + + + + + + +Node2->Node13 + + + + + + + + +Node14 + + +arax_object_type_to_str + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +arax_pipe_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node12 + + +utils_list_del + + + + + +Node3->Node12 + + + + + + + + +Node5 + + +arax_throttle_size_inc + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +async_condition_lock + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_condition_notify + + + + + +Node5->Node8 + + + + + + + + +Node10 + + +async_condition_unlock + + + + + +Node5->Node10 + + + + + + + + +Node7 + + +async_completion_wait + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_semaphore_inc + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +async_completion_complete + + + + + +Node10->Node11 + + + + + + + + diff --git a/a01406_a1dc669466d6f52d5be8af2d991512ac2_icgraph.map b/a01406_a1dc669466d6f52d5be8af2d991512ac2_icgraph.map new file mode 100644 index 00000000..6a36f34a --- /dev/null +++ b/a01406_a1dc669466d6f52d5be8af2d991512ac2_icgraph.map @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/a01406_a1dc669466d6f52d5be8af2d991512ac2_icgraph.md5 b/a01406_a1dc669466d6f52d5be8af2d991512ac2_icgraph.md5 new file mode 100644 index 00000000..32fa753e --- /dev/null +++ b/a01406_a1dc669466d6f52d5be8af2d991512ac2_icgraph.md5 @@ -0,0 +1 @@ +7698d0ac21708e95bef5c90dc93e963b \ No newline at end of file diff --git a/a01406_a1dc669466d6f52d5be8af2d991512ac2_icgraph.svg b/a01406_a1dc669466d6f52d5be8af2d991512ac2_icgraph.svg new file mode 100644 index 00000000..52a74c8b --- /dev/null +++ b/a01406_a1dc669466d6f52d5be8af2d991512ac2_icgraph.svg @@ -0,0 +1,175 @@ + + + + + + +arax_data_input_init + + +Node1 + + +arax_data_input_init + + + + + +Node2 + + +arax_task_alloc + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_task_issue + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_allocate +_remote + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data_get + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +arax_data_set + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +arax_task_issue_sync + + + + + +Node3->Node9 + + + + + + + + +Node6 + + +arax_data_memcpy + + + + + +Node5->Node6 + + + + + + + + +Node7->Node6 + + + + + + + + diff --git a/a01406_a369e660e3e344bc697d98174059ead3c_icgraph.map b/a01406_a369e660e3e344bc697d98174059ead3c_icgraph.map new file mode 100644 index 00000000..49d5c523 --- /dev/null +++ b/a01406_a369e660e3e344bc697d98174059ead3c_icgraph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/a01406_a369e660e3e344bc697d98174059ead3c_icgraph.md5 b/a01406_a369e660e3e344bc697d98174059ead3c_icgraph.md5 new file mode 100644 index 00000000..84f24238 --- /dev/null +++ b/a01406_a369e660e3e344bc697d98174059ead3c_icgraph.md5 @@ -0,0 +1 @@ +e973fabdc4495c216a0f756d0338c1fb \ No newline at end of file diff --git a/a01406_a369e660e3e344bc697d98174059ead3c_icgraph.svg b/a01406_a369e660e3e344bc697d98174059ead3c_icgraph.svg new file mode 100644 index 00000000..9bd70a83 --- /dev/null +++ b/a01406_a369e660e3e344bc697d98174059ead3c_icgraph.svg @@ -0,0 +1,166 @@ + + + + + + +arax_data_size + + +Node1 + + +arax_data_size + + + + + +Node2 + + +arax_data_allocate +_remote + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_get + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_data_memcpy + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +arax_data_ref_offset + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +arax_data_set + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +arax_data_stat + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node1->Node8 + + + + + + + + +Node3->Node4 + + + + + + + + +Node6->Node4 + + + + + + + + diff --git a/a01406_a526989df37e605824d846b7ba54b43ea_cgraph.map b/a01406_a526989df37e605824d846b7ba54b43ea_cgraph.map new file mode 100644 index 00000000..60c779cc --- /dev/null +++ b/a01406_a526989df37e605824d846b7ba54b43ea_cgraph.map @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01406_a526989df37e605824d846b7ba54b43ea_cgraph.md5 b/a01406_a526989df37e605824d846b7ba54b43ea_cgraph.md5 new file mode 100644 index 00000000..d1f6ff58 --- /dev/null +++ b/a01406_a526989df37e605824d846b7ba54b43ea_cgraph.md5 @@ -0,0 +1 @@ +6370fcebc524f43a1000bf0118d8a62c \ No newline at end of file diff --git a/a01406_a526989df37e605824d846b7ba54b43ea_cgraph.svg b/a01406_a526989df37e605824d846b7ba54b43ea_cgraph.svg new file mode 100644 index 00000000..5a341e81 --- /dev/null +++ b/a01406_a526989df37e605824d846b7ba54b43ea_cgraph.svg @@ -0,0 +1,273 @@ + + + + + + +arax_data_init_aligned + + +Node1 + + +arax_data_init_aligned + + + + + +Node2 + + +arax_object_register + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_size_dec + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +arch_alloc_allocate + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +utils_list_add + + + + + +Node2->Node12 + + + + + + + + +Node14 + + +utils_list_node_init + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +arax_throttle_size_dec + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_condition_unlock + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +async_condition_wait + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_completion_complete + + + + + +Node7->Node8 + + + + + + + + +Node9->Node6 + + + + + + + + +Node9->Node8 + + + + + + + + +Node10 + + +async_semaphore_dec + + + + + +Node9->Node10 + + + + + + + + +Node13 + + +utils_list_node_add + + + + + +Node12->Node13 + + + + + + + + diff --git a/a01406_a526989df37e605824d846b7ba54b43ea_icgraph.map b/a01406_a526989df37e605824d846b7ba54b43ea_icgraph.map new file mode 100644 index 00000000..bd62ecec --- /dev/null +++ b/a01406_a526989df37e605824d846b7ba54b43ea_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01406_a526989df37e605824d846b7ba54b43ea_icgraph.md5 b/a01406_a526989df37e605824d846b7ba54b43ea_icgraph.md5 new file mode 100644 index 00000000..2a001463 --- /dev/null +++ b/a01406_a526989df37e605824d846b7ba54b43ea_icgraph.md5 @@ -0,0 +1 @@ +088af034490305d61b739ffb33136e64 \ No newline at end of file diff --git a/a01406_a526989df37e605824d846b7ba54b43ea_icgraph.svg b/a01406_a526989df37e605824d846b7ba54b43ea_icgraph.svg new file mode 100644 index 00000000..f22ad4ba --- /dev/null +++ b/a01406_a526989df37e605824d846b7ba54b43ea_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_data_init_aligned + + +Node1 + + +arax_data_init_aligned + + + + + +Node2 + + +arax_data_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ARAX_BUFFER + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01406_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.map b/a01406_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.map new file mode 100644 index 00000000..2ce32a21 --- /dev/null +++ b/a01406_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.map @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01406_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.md5 b/a01406_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.md5 new file mode 100644 index 00000000..5209a4f8 --- /dev/null +++ b/a01406_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.md5 @@ -0,0 +1 @@ +7db1285fcbbe13db4fd13f5329a201fe \ No newline at end of file diff --git a/a01406_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.svg b/a01406_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.svg new file mode 100644 index 00000000..ddaba9b5 --- /dev/null +++ b/a01406_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.svg @@ -0,0 +1,984 @@ + + + + + + +arax_data_get + + +Node1 + + +arax_data_get + + + + + +Node2 + + +arax_data_size + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_proc_get + + + + + +Node1->Node3 + + + + + + + + +Node8 + + +arax_proc_put + + + + + +Node1->Node8 + + + + + + + + +Node19 + + +arax_task_free + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +arax_task_host_data + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +arax_task_issue + + + + + +Node1->Node21 + + + + + + + + +Node42 + + +arax_task_wait + + + + + +Node1->Node42 + + + + + + + + +Node4 + + +arax_object_ref_inc + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_pipe_find_proc + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_object_list_lock + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_object_list_unlock + + + + + +Node5->Node7 + + + + + + + + +Node9 + + +arax_object_ref_dec + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_pipe_size_inc + + + + + +Node9->Node10 + + + + + + + + +Node18 + + +utils_list_del + + + + + +Node9->Node18 + + + + + + + + +Node11 + + +arax_throttle_size_inc + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +async_condition_lock + + + + + +Node11->Node12 + + + + + + + + +Node14 + + +async_condition_notify + + + + + +Node11->Node14 + + + + + + + + +Node16 + + +async_condition_unlock + + + + + +Node11->Node16 + + + + + + + + +Node13 + + +async_completion_wait + + + + + +Node12->Node13 + + + + + + + + +Node15 + + +async_semaphore_inc + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +async_completion_complete + + + + + +Node16->Node17 + + + + + + + + +Node19->Node9 + + + + + + + + +Node21->Node20 + + + + + + + + +Node22 + + +arax_task_alloc + + + + + +Node21->Node22 + + + + + + + + +Node37 + + +arax_task_submit + + + + + +Node21->Node37 + + + + + + + + +Node41 + + +check_semantics + + + + + +Node21->Node41 + + + + + + + + +Node23 + + +arax_data_input_init + + + + + +Node22->Node23 + + + + + + + + +Node26 + + +arax_data_output_init + + + + + +Node22->Node26 + + + + + + + + +Node27 + + +arax_object_register + + + + + +Node22->Node27 + + + + + + + + +Node36 + + +async_completion_init + + + + + +Node22->Node36 + + + + + + + + +Node23->Node4 + + + + + + + + +Node24 + + +arax_data_migrate_accel + + + + + +Node23->Node24 + + + + + + + + +Node24->Node4 + + + + + + + + +Node24->Node9 + + + + + + + + +Node25 + + +arax_object_type_to_str + + + + + +Node24->Node25 + + + + + + + + +Node26->Node4 + + + + + + + + +Node26->Node24 + + + + + + + + +Node28 + + +arax_pipe_size_dec + + + + + +Node27->Node28 + + + + + + + + +Node32 + + +arch_alloc_allocate + + + + + +Node27->Node32 + + + + + + + + +Node33 + + +utils_list_add + + + + + +Node27->Node33 + + + + + + + + +Node35 + + +utils_list_node_init + + + + + +Node27->Node35 + + + + + + + + +Node29 + + +arax_throttle_size_dec + + + + + +Node28->Node29 + + + + + + + + +Node29->Node12 + + + + + + + + +Node29->Node16 + + + + + + + + +Node30 + + +async_condition_wait + + + + + +Node29->Node30 + + + + + + + + +Node30->Node13 + + + + + + + + +Node30->Node17 + + + + + + + + +Node31 + + +async_semaphore_dec + + + + + +Node30->Node31 + + + + + + + + +Node34 + + +utils_list_node_add + + + + + +Node33->Node34 + + + + + + + + +Node36->Node35 + + + + + + + + +Node37->Node4 + + + + + + + + +Node38 + + +arax_vaccel_add_task + + + + + +Node37->Node38 + + + + + + + + +Node39 + + +arax_accel_add_task + + + + + +Node38->Node39 + + + + + + + + +Node40 + + +utils_queue_push + + + + + +Node38->Node40 + + + + + + + + +Node39->Node12 + + + + + + + + +Node39->Node14 + + + + + + + + +Node39->Node16 + + + + + + + + +Node43 + + +arax_task_wait_done + + + + + +Node42->Node43 + + + + + + + + +Node44 + + +async_completion_wait + + + + + +Node43->Node44 + + + + + + + + +Node45 + + +_add_completion + + + + + +Node44->Node45 + + + + + + + + +Node46 + + +getVmID + + + + + +Node44->Node46 + + + + + + + + +Node45->Node33 + + + + + + + + diff --git a/a01406_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.map b/a01406_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.map new file mode 100644 index 00000000..9fba639e --- /dev/null +++ b/a01406_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01406_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.md5 b/a01406_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.md5 new file mode 100644 index 00000000..2247560d --- /dev/null +++ b/a01406_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.md5 @@ -0,0 +1 @@ +75307463b3f2d082c5b8d362bc4f5c23 \ No newline at end of file diff --git a/a01406_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.svg b/a01406_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.svg new file mode 100644 index 00000000..045adbe0 --- /dev/null +++ b/a01406_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_data_get + + +Node1 + + +arax_data_get + + + + + +Node2 + + +arax_data_memcpy + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01406_a6c43ea323f2de1675b00e48330a12e2a_cgraph.map b/a01406_a6c43ea323f2de1675b00e48330a12e2a_cgraph.map new file mode 100644 index 00000000..2a6d5d0b --- /dev/null +++ b/a01406_a6c43ea323f2de1675b00e48330a12e2a_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01406_a6c43ea323f2de1675b00e48330a12e2a_cgraph.md5 b/a01406_a6c43ea323f2de1675b00e48330a12e2a_cgraph.md5 new file mode 100644 index 00000000..fa7aadb1 --- /dev/null +++ b/a01406_a6c43ea323f2de1675b00e48330a12e2a_cgraph.md5 @@ -0,0 +1 @@ +d00fc64f08de3fdc5744ed86b617fe5a \ No newline at end of file diff --git a/a01406_a6c43ea323f2de1675b00e48330a12e2a_cgraph.svg b/a01406_a6c43ea323f2de1675b00e48330a12e2a_cgraph.svg new file mode 100644 index 00000000..66133e08 --- /dev/null +++ b/a01406_a6c43ea323f2de1675b00e48330a12e2a_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_data_stat + + +Node1 + + +arax_data_stat + + + + + +Node2 + + +arax_data_deref + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_size + + + + + +Node1->Node3 + + + + + + + + diff --git a/a01406_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.map b/a01406_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.map new file mode 100644 index 00000000..98fec6f6 --- /dev/null +++ b/a01406_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.map @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01406_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.md5 b/a01406_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.md5 new file mode 100644 index 00000000..60e446c2 --- /dev/null +++ b/a01406_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.md5 @@ -0,0 +1 @@ +254ee6d713c0d121a94c98dc654c6d43 \ No newline at end of file diff --git a/a01406_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.svg b/a01406_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.svg new file mode 100644 index 00000000..05684adc --- /dev/null +++ b/a01406_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.svg @@ -0,0 +1,1092 @@ + + + + + + +arax_data_memcpy + + +Node1 + + +arax_data_memcpy + + + + + +Node2 + + +arax_data_deref + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_get + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_data_size + + + + + +Node1->Node4 + + + + + + + + +Node49 + + +arax_data_set + + + + + +Node1->Node49 + + + + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_proc_get + + + + + +Node3->Node5 + + + + + + + + +Node10 + + +arax_proc_put + + + + + +Node3->Node10 + + + + + + + + +Node21 + + +arax_task_free + + + + + +Node3->Node21 + + + + + + + + +Node22 + + +arax_task_host_data + + + + + +Node3->Node22 + + + + + + + + +Node23 + + +arax_task_issue + + + + + +Node3->Node23 + + + + + + + + +Node44 + + +arax_task_wait + + + + + +Node3->Node44 + + + + + + + + +Node6 + + +arax_object_ref_inc + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_pipe_find_proc + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +arax_object_list_lock + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_object_list_unlock + + + + + +Node7->Node9 + + + + + + + + +Node11 + + +arax_object_ref_dec + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_pipe_size_inc + + + + + +Node11->Node12 + + + + + + + + +Node20 + + +utils_list_del + + + + + +Node11->Node20 + + + + + + + + +Node13 + + +arax_throttle_size_inc + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +async_condition_lock + + + + + +Node13->Node14 + + + + + + + + +Node16 + + +async_condition_notify + + + + + +Node13->Node16 + + + + + + + + +Node18 + + +async_condition_unlock + + + + + +Node13->Node18 + + + + + + + + +Node15 + + +async_completion_wait + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +async_semaphore_inc + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +async_completion_complete + + + + + +Node18->Node19 + + + + + + + + +Node21->Node11 + + + + + + + + +Node23->Node22 + + + + + + + + +Node24 + + +arax_task_alloc + + + + + +Node23->Node24 + + + + + + + + +Node39 + + +arax_task_submit + + + + + +Node23->Node39 + + + + + + + + +Node43 + + +check_semantics + + + + + +Node23->Node43 + + + + + + + + +Node25 + + +arax_data_input_init + + + + + +Node24->Node25 + + + + + + + + +Node28 + + +arax_data_output_init + + + + + +Node24->Node28 + + + + + + + + +Node29 + + +arax_object_register + + + + + +Node24->Node29 + + + + + + + + +Node38 + + +async_completion_init + + + + + +Node24->Node38 + + + + + + + + +Node25->Node6 + + + + + + + + +Node26 + + +arax_data_migrate_accel + + + + + +Node25->Node26 + + + + + + + + +Node26->Node6 + + + + + + + + +Node26->Node11 + + + + + + + + +Node27 + + +arax_object_type_to_str + + + + + +Node26->Node27 + + + + + + + + +Node28->Node6 + + + + + + + + +Node28->Node26 + + + + + + + + +Node30 + + +arax_pipe_size_dec + + + + + +Node29->Node30 + + + + + + + + +Node34 + + +arch_alloc_allocate + + + + + +Node29->Node34 + + + + + + + + +Node35 + + +utils_list_add + + + + + +Node29->Node35 + + + + + + + + +Node37 + + +utils_list_node_init + + + + + +Node29->Node37 + + + + + + + + +Node31 + + +arax_throttle_size_dec + + + + + +Node30->Node31 + + + + + + + + +Node31->Node14 + + + + + + + + +Node31->Node18 + + + + + + + + +Node32 + + +async_condition_wait + + + + + +Node31->Node32 + + + + + + + + +Node32->Node15 + + + + + + + + +Node32->Node19 + + + + + + + + +Node33 + + +async_semaphore_dec + + + + + +Node32->Node33 + + + + + + + + +Node36 + + +utils_list_node_add + + + + + +Node35->Node36 + + + + + + + + +Node38->Node37 + + + + + + + + +Node39->Node6 + + + + + + + + +Node40 + + +arax_vaccel_add_task + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +arax_accel_add_task + + + + + +Node40->Node41 + + + + + + + + +Node42 + + +utils_queue_push + + + + + +Node40->Node42 + + + + + + + + +Node41->Node14 + + + + + + + + +Node41->Node16 + + + + + + + + +Node41->Node18 + + + + + + + + +Node45 + + +arax_task_wait_done + + + + + +Node44->Node45 + + + + + + + + +Node46 + + +async_completion_wait + + + + + +Node45->Node46 + + + + + + + + +Node47 + + +_add_completion + + + + + +Node46->Node47 + + + + + + + + +Node48 + + +getVmID + + + + + +Node46->Node48 + + + + + + + + +Node47->Node35 + + + + + + + + +Node49->Node4 + + + + + + + + +Node49->Node5 + + + + + + + + +Node49->Node6 + + + + + + + + +Node49->Node10 + + + + + + + + +Node49->Node23 + + + + + + + + diff --git a/a01406_a8995f71dba475975efc37756783cfce9_cgraph.map b/a01406_a8995f71dba475975efc37756783cfce9_cgraph.map new file mode 100644 index 00000000..1ddef1db --- /dev/null +++ b/a01406_a8995f71dba475975efc37756783cfce9_cgraph.map @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01406_a8995f71dba475975efc37756783cfce9_cgraph.md5 b/a01406_a8995f71dba475975efc37756783cfce9_cgraph.md5 new file mode 100644 index 00000000..de604ffd --- /dev/null +++ b/a01406_a8995f71dba475975efc37756783cfce9_cgraph.md5 @@ -0,0 +1 @@ +6dc87b7f1795ccb7abd8d18a537955ca \ No newline at end of file diff --git a/a01406_a8995f71dba475975efc37756783cfce9_cgraph.svg b/a01406_a8995f71dba475975efc37756783cfce9_cgraph.svg new file mode 100644 index 00000000..9a72327a --- /dev/null +++ b/a01406_a8995f71dba475975efc37756783cfce9_cgraph.svg @@ -0,0 +1,858 @@ + + + + + + +arax_data_set + + +Node1 + + +arax_data_set + + + + + +Node2 + + +arax_data_size + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_object_ref_inc + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_proc_get + + + + + +Node1->Node4 + + + + + + + + +Node8 + + +arax_proc_put + + + + + +Node1->Node8 + + + + + + + + +Node19 + + +arax_task_issue + + + + + +Node1->Node19 + + + + + + + + +Node4->Node3 + + + + + + + + +Node5 + + +arax_pipe_find_proc + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_object_list_lock + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_object_list_unlock + + + + + +Node5->Node7 + + + + + + + + +Node9 + + +arax_object_ref_dec + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_pipe_size_inc + + + + + +Node9->Node10 + + + + + + + + +Node18 + + +utils_list_del + + + + + +Node9->Node18 + + + + + + + + +Node11 + + +arax_throttle_size_inc + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +async_condition_lock + + + + + +Node11->Node12 + + + + + + + + +Node14 + + +async_condition_notify + + + + + +Node11->Node14 + + + + + + + + +Node16 + + +async_condition_unlock + + + + + +Node11->Node16 + + + + + + + + +Node13 + + +async_completion_wait + + + + + +Node12->Node13 + + + + + + + + +Node15 + + +async_semaphore_inc + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +async_completion_complete + + + + + +Node16->Node17 + + + + + + + + +Node20 + + +arax_task_alloc + + + + + +Node19->Node20 + + + + + + + + +Node35 + + +arax_task_host_data + + + + + +Node19->Node35 + + + + + + + + +Node36 + + +arax_task_submit + + + + + +Node19->Node36 + + + + + + + + +Node40 + + +check_semantics + + + + + +Node19->Node40 + + + + + + + + +Node21 + + +arax_data_input_init + + + + + +Node20->Node21 + + + + + + + + +Node24 + + +arax_data_output_init + + + + + +Node20->Node24 + + + + + + + + +Node25 + + +arax_object_register + + + + + +Node20->Node25 + + + + + + + + +Node34 + + +async_completion_init + + + + + +Node20->Node34 + + + + + + + + +Node21->Node3 + + + + + + + + +Node22 + + +arax_data_migrate_accel + + + + + +Node21->Node22 + + + + + + + + +Node22->Node3 + + + + + + + + +Node22->Node9 + + + + + + + + +Node23 + + +arax_object_type_to_str + + + + + +Node22->Node23 + + + + + + + + +Node24->Node3 + + + + + + + + +Node24->Node22 + + + + + + + + +Node26 + + +arax_pipe_size_dec + + + + + +Node25->Node26 + + + + + + + + +Node30 + + +arch_alloc_allocate + + + + + +Node25->Node30 + + + + + + + + +Node31 + + +utils_list_add + + + + + +Node25->Node31 + + + + + + + + +Node33 + + +utils_list_node_init + + + + + +Node25->Node33 + + + + + + + + +Node27 + + +arax_throttle_size_dec + + + + + +Node26->Node27 + + + + + + + + +Node27->Node12 + + + + + + + + +Node27->Node16 + + + + + + + + +Node28 + + +async_condition_wait + + + + + +Node27->Node28 + + + + + + + + +Node28->Node13 + + + + + + + + +Node28->Node17 + + + + + + + + +Node29 + + +async_semaphore_dec + + + + + +Node28->Node29 + + + + + + + + +Node32 + + +utils_list_node_add + + + + + +Node31->Node32 + + + + + + + + +Node34->Node33 + + + + + + + + +Node36->Node3 + + + + + + + + +Node37 + + +arax_vaccel_add_task + + + + + +Node36->Node37 + + + + + + + + +Node38 + + +arax_accel_add_task + + + + + +Node37->Node38 + + + + + + + + +Node39 + + +utils_queue_push + + + + + +Node37->Node39 + + + + + + + + +Node38->Node12 + + + + + + + + +Node38->Node14 + + + + + + + + +Node38->Node16 + + + + + + + + diff --git a/a01406_a8995f71dba475975efc37756783cfce9_icgraph.map b/a01406_a8995f71dba475975efc37756783cfce9_icgraph.map new file mode 100644 index 00000000..ee6583c1 --- /dev/null +++ b/a01406_a8995f71dba475975efc37756783cfce9_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01406_a8995f71dba475975efc37756783cfce9_icgraph.md5 b/a01406_a8995f71dba475975efc37756783cfce9_icgraph.md5 new file mode 100644 index 00000000..959171c0 --- /dev/null +++ b/a01406_a8995f71dba475975efc37756783cfce9_icgraph.md5 @@ -0,0 +1 @@ +9000b2f00ebf8d914c378dc45f9dd6bb \ No newline at end of file diff --git a/a01406_a8995f71dba475975efc37756783cfce9_icgraph.svg b/a01406_a8995f71dba475975efc37756783cfce9_icgraph.svg new file mode 100644 index 00000000..835a3947 --- /dev/null +++ b/a01406_a8995f71dba475975efc37756783cfce9_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_data_set + + +Node1 + + +arax_data_set + + + + + +Node2 + + +arax_data_memcpy + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01406_a96e0520e5569748ce1172bafca24fafe_cgraph.map b/a01406_a96e0520e5569748ce1172bafca24fafe_cgraph.map new file mode 100644 index 00000000..aaccfa76 --- /dev/null +++ b/a01406_a96e0520e5569748ce1172bafca24fafe_cgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01406_a96e0520e5569748ce1172bafca24fafe_cgraph.md5 b/a01406_a96e0520e5569748ce1172bafca24fafe_cgraph.md5 new file mode 100644 index 00000000..a7d90bec --- /dev/null +++ b/a01406_a96e0520e5569748ce1172bafca24fafe_cgraph.md5 @@ -0,0 +1 @@ +81372d58cdcfadd5bc0b2ff731fab00f \ No newline at end of file diff --git a/a01406_a96e0520e5569748ce1172bafca24fafe_cgraph.svg b/a01406_a96e0520e5569748ce1172bafca24fafe_cgraph.svg new file mode 100644 index 00000000..9b41e6ba --- /dev/null +++ b/a01406_a96e0520e5569748ce1172bafca24fafe_cgraph.svg @@ -0,0 +1,201 @@ + + + + + + +arax_data_free + + +Node1 + + +arax_data_free + + + + + +Node2 + + +arax_object_ref_dec + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_size_inc + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +utils_list_del + + + + + +Node2->Node11 + + + + + + + + +Node4 + + +arax_throttle_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_condition_notify + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +async_condition_unlock + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_semaphore_inc + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +async_completion_complete + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01406_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.map b/a01406_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.map new file mode 100644 index 00000000..acf6a150 --- /dev/null +++ b/a01406_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01406_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.md5 b/a01406_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.md5 new file mode 100644 index 00000000..0f627316 --- /dev/null +++ b/a01406_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.md5 @@ -0,0 +1 @@ +a787945afd506bd8568f33af83f19d8d \ No newline at end of file diff --git a/a01406_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.svg b/a01406_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.svg new file mode 100644 index 00000000..fdcffef1 --- /dev/null +++ b/a01406_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_data_set_remote + + +Node1 + + +arax_data_set_remote + + + + + +Node2 + + +arax_object_ref_inc + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01406_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.map b/a01406_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.map new file mode 100644 index 00000000..884f178c --- /dev/null +++ b/a01406_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01406_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.md5 b/a01406_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.md5 new file mode 100644 index 00000000..0a8ee05d --- /dev/null +++ b/a01406_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.md5 @@ -0,0 +1 @@ +8f2d09624d2878a3365d90bd3206ad6e \ No newline at end of file diff --git a/a01406_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.svg b/a01406_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.svg new file mode 100644 index 00000000..a1ee97c7 --- /dev/null +++ b/a01406_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_data_set_accel + + +Node1 + + +arax_data_set_accel + + + + + +Node2 + + +arax_object_ref_inc + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.map b/a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.map new file mode 100644 index 00000000..493ed4e8 --- /dev/null +++ b/a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.map @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.md5 b/a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.md5 new file mode 100644 index 00000000..69b348f4 --- /dev/null +++ b/a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.md5 @@ -0,0 +1 @@ +9640d5e2c0ef38887e908e5ae48f8475 \ No newline at end of file diff --git a/a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.svg b/a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.svg new file mode 100644 index 00000000..83987bde --- /dev/null +++ b/a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.svg @@ -0,0 +1,291 @@ + + + + + + +arax_data_init + + +Node1 + + +arax_data_init + + + + + +Node2 + + +arax_data_init_aligned + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_object_register + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_pipe_size_dec + + + + + +Node3->Node4 + + + + + + + + +Node12 + + +arch_alloc_allocate + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +utils_list_add + + + + + +Node3->Node13 + + + + + + + + +Node15 + + +utils_list_node_init + + + + + +Node3->Node15 + + + + + + + + +Node5 + + +arax_throttle_size_dec + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +async_condition_lock + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_condition_unlock + + + + + +Node5->Node8 + + + + + + + + +Node10 + + +async_condition_wait + + + + + +Node5->Node10 + + + + + + + + +Node7 + + +async_completion_wait + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_completion_complete + + + + + +Node8->Node9 + + + + + + + + +Node10->Node7 + + + + + + + + +Node10->Node9 + + + + + + + + +Node11 + + +async_semaphore_dec + + + + + +Node10->Node11 + + + + + + + + +Node14 + + +utils_list_node_add + + + + + +Node13->Node14 + + + + + + + + diff --git a/a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.map b/a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.map new file mode 100644 index 00000000..5293aaac --- /dev/null +++ b/a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.md5 b/a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.md5 new file mode 100644 index 00000000..bcf26240 --- /dev/null +++ b/a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.md5 @@ -0,0 +1 @@ +ecb68866981c392db7373311b8e86d2d \ No newline at end of file diff --git a/a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.svg b/a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.svg new file mode 100644 index 00000000..8e877929 --- /dev/null +++ b/a01406_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_data_init + + +Node1 + + +arax_data_init + + + + + +Node2 + + +ARAX_BUFFER + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01406_source.html b/a01406_source.html new file mode 100644 index 00000000..6bc6728d --- /dev/null +++ b/a01406_source.html @@ -0,0 +1,246 @@ + + + + + + + +Arax: arax_data.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_data.h
+
+
+Go to the documentation of this file.
1#ifndef ARAX_DATA_HEADER
+
2#define ARAX_DATA_HEADER
+
3#include <arax.h>
+
4#include "core/arax_object.h"
+
5#include "async.h"
+
6#include <conf.h>
+
7#include "core/arax_accel.h"
+
8
+
9#ifdef __cplusplus
+
10extern "C" {
+
11#endif /* ifdef __cplusplus */
+
12
+
16#define ARAX_BUFF_ALLOC_SIZE(SIZE, ALIGN) ( (SIZE) + (ALIGN) + sizeof(size_t *) )
+
17
+
21#define ARAX_DATA_ALLOC_SIZE(DATA) \
+
22 ARAX_BUFF_ALLOC_SIZE( \
+
23 ( arax_data_size(DATA) ), \
+
24 (((arax_data_s *) (DATA))->align) \
+
25 )
+
26
+
27typedef enum arax_data_flags
+
28{
+ + +
31
+
32typedef struct arax_data_s arax_data_s;
+
33
+ +
35
+ +
37{
+
38 arax_object_s obj; /* Might make this optional (for perf
+
39 * reasons) */
+
40 void * remote;
+
41 void * accel_meta;
+ +
43 size_t size;
+
44 size_t align;
+
45 size_t flags;
+
46 void * buffer;
+ +
48 #ifdef ARAX_DATA_TRACK
+
49 char * alloc_track;
+
50 #endif
+
51};
+
52
+ +
54
+ +
56{
+
57 void * remote;
+
58 size_t size;
+
59 void * phys;
+
60};
+
61
+ +
68
+
75arax_data_s* arax_data_init_aligned(arax_pipe_s *vpipe, size_t size, size_t align);
+
76
+
85void arax_data_get(arax_data *data, void *user);
+
86
+
94void arax_data_set_remote(arax_data_s *data, arax_accel *accel, void *remt);
+
95
+
101void arax_data_set_accel(arax_data_s *data, arax_accel *accel);
+
102
+
112void arax_data_set(arax_data *data, arax_accel *accel, const void *user);
+
113
+
125void arax_data_memcpy(arax_accel *accel, arax_data_s *dst, arax_data_s *src, int block);
+
126
+
127#ifndef DOXYGEN_SHOULD_SKIP_THIS
+
128void arax_data_arg_init(arax_data_s *data, arax_accel *accel);
+
129
+ +
131
+ +
133#endif
+
134
+
140size_t arax_data_size(arax_data *data);
+
141
+
145void arax_data_free(arax_data *data);
+
146
+
150void arax_data_stat(arax_data *data, const char *file, size_t line);
+
151
+
152#define arax_data_stat(DATA) arax_data_stat(DATA, __FILE__, __LINE__);
+
153
+
154#ifdef ARAX_DATA_ANNOTATE
+
155#define arax_data_annotate(DATA, ...) \
+
156 arax_object_rename((arax_object_s *) DATA, __VA_ARGS__)
+
157#else
+
158#define arax_data_annotate(DATA, ...)
+
159#endif
+
160
+
161#ifdef __cplusplus
+
162}
+
163#endif /* ifdef __cplusplus */
+
164
+
165#endif /* ifndef ARAX_DATA_HEADER */
+ +
void arax_accel
Definition arax_types.h:9
+
void arax_data
Definition arax_types.h:56
+ +
arax_data_flags
Definition arax_data.h:28
+
@ OTHR_REMT
Definition arax_data.h:29
+
void arax_data_arg_init(arax_data_s *data, arax_accel *accel)
Definition arax_data.c:220
+
void arax_data_output_init(arax_data_s *data, arax_accel *accel)
Definition arax_data.c:240
+
void arax_data_input_init(arax_data_s *data, arax_accel *accel)
Definition arax_data.c:229
+
size_t arax_data_size(arax_data *data)
Definition arax_data.c:251
+
#define arax_data_stat(DATA)
Definition arax_data.h:152
+
arax_data_s * arax_data_init_aligned(arax_pipe_s *vpipe, size_t size, size_t align)
Definition arax_data.c:21
+
void arax_data_get(arax_data *data, void *user)
Definition arax_data.c:52
+
void arax_data_memcpy(arax_accel *accel, arax_data_s *dst, arax_data_s *src, int block)
Definition arax_data.c:95
+
void arax_data_set(arax_data *data, arax_accel *accel, const void *user)
Definition arax_data.c:75
+
void arax_data_free(arax_data *data)
Definition arax_data.c:325
+
void arax_data_set_remote(arax_data_s *data, arax_accel *accel, void *remt)
Definition arax_data.c:206
+
int() arax_data_sync_fn(arax_data_s *)
Definition arax_data.h:34
+
void arax_data_set_accel(arax_data_s *data, arax_accel *accel)
Definition arax_data.c:195
+
enum arax_data_flags arax_data_flags_e
+
arax_data_s * arax_data_init(arax_pipe_s *vpipe, size_t size)
Definition arax_data.c:16
+ + +
arax_pipe_s * vpipe
Definition impl.c:17
+ + +
void * accel_meta
Definition arax_data.h:41
+
void * buffer
Definition arax_data.h:46
+
arax_object_s obj
Definition arax_data.h:38
+
size_t size
Definition arax_data.h:43
+
void * remote
Definition arax_data.h:40
+
arax_accel * accel
Definition arax_data.h:42
+
arax_accel_s * phys
Definition arax_data.h:47
+
size_t align
Definition arax_data.h:44
+
size_t flags
Definition arax_data.h:45
+ +
void * phys
Definition arax_data.h:59
+
size_t size
Definition arax_data.h:58
+
void * remote
Definition arax_data.h:57
+ + +
+
+ + + + diff --git a/a01407.map b/a01407.map new file mode 100644 index 00000000..2f0ff874 --- /dev/null +++ b/a01407.map @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01407.md5 b/a01407.md5 new file mode 100644 index 00000000..2b240e5a --- /dev/null +++ b/a01407.md5 @@ -0,0 +1 @@ +f07eb68e9d78ad8a9dbab307e1d8e36c \ No newline at end of file diff --git a/a01407.svg b/a01407.svg new file mode 100644 index 00000000..3e6cc4c2 --- /dev/null +++ b/a01407.svg @@ -0,0 +1,498 @@ + + + + + + +arax_data.h + + +Node1 + + +arax_data.h + + + + + +Node2 + + +arax.h + + + + + +Node1->Node2 + + + + + + + + +Node9 + + +core/arax_object.h + + + + + +Node1->Node9 + + + + + + + + +Node16 + + +async.h + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +conf.h + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +core/arax_accel.h + + + + + +Node1->Node18 + + + + + + + + +Node3 + + +stdio.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stddef.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_types.h + + + + + +Node2->Node5 + + + + + + + + +Node8 + + +core/arax_accel_types.h + + + + + +Node2->Node8 + + + + + + + + +Node6 + + +sys/time.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +time.h + + + + + +Node5->Node7 + + + + + + + + +Node8->Node5 + + + + + + + + +Node10 + + +utils/list.h + + + + + +Node9->Node10 + + + + + + + + +Node12 + + +utils/spinlock.h + + + + + +Node9->Node12 + + + + + + + + +Node15 + + +arch/alloc.h + + + + + +Node9->Node15 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdint.h + + + + + +Node10->Node11 + + + + + + + + +Node12->Node11 + + + + + + + + +Node13 + + +utils/arax_assert.h + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +compat.h + + + + + +Node13->Node14 + + + + + + + + +Node18->Node2 + + + + + + + + +Node18->Node16 + + + + + + + + +Node19 + + +core/arax_vaccel.h + + + + + +Node18->Node19 + + + + + + + + +Node21 + + +core/arax_throttle.h + + + + + +Node18->Node21 + + + + + + + + +Node19->Node9 + + + + + + + + +Node19->Node16 + + + + + + + + +Node19->Node18 + + + + + + + + +Node20 + + +utils/queue.h + + + + + +Node19->Node20 + + + + + + + + +Node20->Node4 + + + + + + + + +Node20->Node11 + + + + + + + + +Node20->Node12 + + + + + + + + +Node20->Node17 + + + + + + + + +Node21->Node16 + + + + + + + + diff --git a/a01408.map b/a01408.map new file mode 100644 index 00000000..d359b1d7 --- /dev/null +++ b/a01408.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/a01408.md5 b/a01408.md5 new file mode 100644 index 00000000..d728cb65 --- /dev/null +++ b/a01408.md5 @@ -0,0 +1 @@ +a0877ed74749ae2ff3f3571d3efdf196 \ No newline at end of file diff --git a/a01408.svg b/a01408.svg new file mode 100644 index 00000000..af9638ca --- /dev/null +++ b/a01408.svg @@ -0,0 +1,120 @@ + + + + + + +arax_data.h + + +Node1 + + +arax_data.h + + + + + +Node2 + + +arax_data.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_private.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_object.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +arax_task.c + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +impl.c + + + + + +Node1->Node6 + + + + + + + + +Node3->Node2 + + + + + + + + diff --git a/a01409.html b/a01409.html new file mode 100644 index 00000000..9226ea4b --- /dev/null +++ b/a01409.html @@ -0,0 +1,439 @@ + + + + + + + +Arax: arax_data_private.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_data_private.h File Reference
+
+
+
#include "arax_data.h"
+
+ + Include dependency graph for arax_data_private.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + +

+Functions

void arax_data_shm_sync (arax_accel *accel, const char *func, arax_data_s *data, int block)
 
void arax_data_migrate_accel (arax_data_s *data, arax_accel *accel)
 
void arax_data_allocate_remote (arax_data_s *data, arax_accel *accel)
 
void * arax_data_deref (arax_data *data)
 
arax_dataarax_data_ref (void *data)
 
arax_dataarax_data_ref_offset (arax_pipe_s *vpipe, void *data)
 
int arax_data_has_remote (arax_data *data)
 
+

Function Documentation

+ +

◆ arax_data_allocate_remote()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_data_allocate_remote (arax_data_sdata,
arax_accelaccel 
)
+
+

Initialize data remote (accelerator) buffer.

Parameters
+ + +
dataArax data.
+
+
+ +

Definition at line 162 of file arax_data.c.

+ +

References arax_data_s::accel, arax_accel_size_dec(), arax_assert, arax_assert_obj, arax_data_size(), arax_object_ref_inc(), arax_proc_get(), arax_task_free(), arax_task_issue(), arax_task_wait(), ARAX_THROTTLE_DEBUG_PRINT, ARAX_TYPE_DATA, ARAX_TYPE_VIRT_ACCEL, CPU, arax_data_s::remote, and task_completed.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_deref()

+ +
+
+ + + + + + + + +
void * arax_data_deref (arax_datadata)
+
+

Get pointer to buffer for use from CPU.

+
Parameters
+ + +
dataValid arax_data pointer.
+
+
+
Returns
Ram point to arax_data buffer.NULL on failure.
+ +

Definition at line 260 of file arax_data.c.

+ +

References arax_assert_obj, ARAX_THROTTLE_DEBUG_PRINT, ARAX_TYPE_DATA, and arax_data_s::buffer.

+ +

Referenced by arax_data_memcpy(), arax_data_ref_offset(), and arax_data_stat().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_has_remote()

+ +
+
+ + + + + + + + +
int arax_data_has_remote (arax_datadata)
+
+

Returns true if data has been allocated on the remote accelerator.

+
Parameters
+ + +
dataData to be queried.
+
+
+
Returns
1 if data has a remote accelerator allocation, 0 otherwise.
+ +

Definition at line 334 of file arax_data.c.

+ +

References arax_assert_obj, ARAX_TYPE_DATA, and arax_data_s::remote.

+ +
+
+ +

◆ arax_data_migrate_accel()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_data_migrate_accel (arax_data_sdata,
arax_accelaccel 
)
+
+

Migrate data accelerator location to accel.

+

\NOTE: Does not yet support migration across physical devices.

+ +

Definition at line 117 of file arax_data.c.

+ +

References arax_data_s::accel, arax_assert, arax_assert_obj, arax_object_ref_dec(), arax_object_ref_inc(), arax_object_type_to_str(), ARAX_TYPE_DATA, ARAX_TYPE_VIRT_ACCEL, arax_vaccel_s::phys, arax_data_s::remote, and TYPE_MASK.

+ +

Referenced by arax_data_arg_init(), arax_data_input_init(), and arax_data_output_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_ref()

+ +
+
+ + + + + + + + +
arax_data * arax_data_ref (void * data)
+
+

Get pointer to arax_data object from related CPU buffer data. Undefined behaviour if data is not a value returned by arax_data_deref.

Returns
pointer to arax_data.NULL on failure.
+ +

Definition at line 274 of file arax_data.c.

+ +

References arax_assert, arax_ptr_valid(), ARAX_TYPE_DATA, arax_data_s::obj, arax_object_s::type, and VD_BUFF_OWNER.

+ +

Referenced by arax_data_ref_offset().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_ref_offset()

+ +
+
+ + + + + + + + + + + + + + + + + + +
arax_data * arax_data_ref_offset (arax_pipe_svpipe,
void * data 
)
+
+

Get pointer to arax_data object from data that points 'inside' related CPU buffer .

Returns
pointer to arax_data.NULL on failure.
+ +

Definition at line 295 of file arax_data.c.

+ +

References arax_assert, arax_data_deref(), arax_data_ref(), arax_data_size(), arax_object_list_lock(), arax_object_list_unlock(), arax_ptr_valid(), ARAX_TYPE_DATA, arax_pipe::objs, utils_list_node::owner, utils_list_for_each, and vpipe.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_shm_sync()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void arax_data_shm_sync (arax_accelaccel,
const char * func,
arax_data_sdata,
int block 
)
+
+

Transfer data between shm and remote.

+
Parameters
+ + + + + +
accelAccelerator/fifo to use.
funcSync function to use. Can be "syncTo" or "syncFrom"
dataData to be moved with func.
blockIf !=0 this call will block until data are moved.
+
+
+ +
+
+
+
+ + + + diff --git a/a01409.js b/a01409.js new file mode 100644 index 00000000..d8b9b529 --- /dev/null +++ b/a01409.js @@ -0,0 +1,10 @@ +var a01409 = +[ + [ "arax_data_allocate_remote", "a01409.html#af8ede6fc8d207004035f45d945688d2c", null ], + [ "arax_data_deref", "a01409.html#a1c74d47b5c2c866aa3a61bec0dde4e0d", null ], + [ "arax_data_has_remote", "a01409.html#a63f5c3c2031eba8a556afffda63f1528", null ], + [ "arax_data_migrate_accel", "a01409.html#a4b65f90a821aca384f0ca1cff7bd1846", null ], + [ "arax_data_ref", "a01409.html#afeaab7d93372f0752d59c70d9c5940e7", null ], + [ "arax_data_ref_offset", "a01409.html#ac1f7fb20b3a23b388bea24f1b46a33a8", null ], + [ "arax_data_shm_sync", "a01409.html#a0c926f777113efda665dddaa5185474b", null ] +]; \ No newline at end of file diff --git a/a01409_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.map b/a01409_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.map new file mode 100644 index 00000000..246380bf --- /dev/null +++ b/a01409_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a01409_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.md5 b/a01409_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.md5 new file mode 100644 index 00000000..f17093db --- /dev/null +++ b/a01409_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.md5 @@ -0,0 +1 @@ +74626b0c67cacc511963de54dad2dde4 \ No newline at end of file diff --git a/a01409_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.svg b/a01409_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.svg new file mode 100644 index 00000000..8430f92d --- /dev/null +++ b/a01409_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.svg @@ -0,0 +1,75 @@ + + + + + + +arax_data_deref + + +Node1 + + +arax_data_deref + + + + + +Node2 + + +arax_data_memcpy + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_ref_offset + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_data_stat + + + + + +Node1->Node4 + + + + + + + + diff --git a/a01409_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.map b/a01409_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.map new file mode 100644 index 00000000..7f9c2dc7 --- /dev/null +++ b/a01409_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.map @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01409_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.md5 b/a01409_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.md5 new file mode 100644 index 00000000..95de1ba3 --- /dev/null +++ b/a01409_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.md5 @@ -0,0 +1 @@ +a16db108056366e8bebd3f8cab4f3d85 \ No newline at end of file diff --git a/a01409_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.svg b/a01409_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.svg new file mode 100644 index 00000000..b2d9e22a --- /dev/null +++ b/a01409_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.svg @@ -0,0 +1,237 @@ + + + + + + +arax_data_migrate_accel + + +Node1 + + +arax_data_migrate_accel + + + + + +Node2 + + +arax_object_ref_dec + + + + + +Node1->Node2 + + + + + + + + +Node12 + + +arax_object_ref_inc + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +arax_object_type_to_str + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +arax_pipe_size_inc + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +utils_list_del + + + + + +Node2->Node11 + + + + + + + + +Node4 + + +arax_throttle_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_condition_notify + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +async_condition_unlock + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_semaphore_inc + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +async_completion_complete + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01409_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.map b/a01409_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.map new file mode 100644 index 00000000..e563b2b6 --- /dev/null +++ b/a01409_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.map @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01409_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.md5 b/a01409_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.md5 new file mode 100644 index 00000000..907b6cfe --- /dev/null +++ b/a01409_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.md5 @@ -0,0 +1 @@ +e1531c654049759163197c0835400b15 \ No newline at end of file diff --git a/a01409_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.svg b/a01409_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.svg new file mode 100644 index 00000000..c23f88be --- /dev/null +++ b/a01409_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.svg @@ -0,0 +1,238 @@ + + + + + + +arax_data_migrate_accel + + +Node1 + + +arax_data_migrate_accel + + + + + +Node2 + + +arax_data_arg_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_input_init + + + + + +Node1->Node3 + + + + + + + + +Node12 + + +arax_data_output_init + + + + + +Node1->Node12 + + + + + + + + +Node4 + + +arax_task_alloc + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_task_issue + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_data_allocate +_remote + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_data_get + + + + + +Node5->Node7 + + + + + + + + +Node9 + + +arax_data_set + + + + + +Node5->Node9 + + + + + + + + +Node10 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node5->Node10 + + + + + + + + +Node11 + + +arax_task_issue_sync + + + + + +Node5->Node11 + + + + + + + + +Node8 + + +arax_data_memcpy + + + + + +Node7->Node8 + + + + + + + + +Node9->Node8 + + + + + + + + +Node12->Node4 + + + + + + + + diff --git a/a01409_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.map b/a01409_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.map new file mode 100644 index 00000000..9d67fa4f --- /dev/null +++ b/a01409_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.map @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01409_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.md5 b/a01409_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.md5 new file mode 100644 index 00000000..3117ce6f --- /dev/null +++ b/a01409_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.md5 @@ -0,0 +1 @@ +e5d80e0a41e7cffe2131e7a3f45110c3 \ No newline at end of file diff --git a/a01409_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.svg b/a01409_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.svg new file mode 100644 index 00000000..f077d45c --- /dev/null +++ b/a01409_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.svg @@ -0,0 +1,1029 @@ + + + + + + +arax_data_ref_offset + + +Node1 + + +arax_data_ref_offset + + + + + +Node2 + + +arax_data_deref + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_ref + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_ptr_valid + + + + + +Node1->Node4 + + + + + + + + +Node57 + + +arax_data_size + + + + + +Node1->Node57 + + + + + + + + +Node58 + + +arax_object_list_lock + + + + + +Node1->Node58 + + + + + + + + +Node59 + + +arax_object_list_unlock + + + + + +Node1->Node59 + + + + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +_arax_init + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_pipe_get_available_size + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +arax_pipe_have_to_mmap + + + + + +Node6->Node9 + + + + + + + + +Node10 + + +arax_pipe_init + + + + + +Node6->Node10 + + + + + + + + +Node26 + + +utils_config_alloc_path + + + + + +Node6->Node26 + + + + + + + + +Node29 + + +utils_config_get_bool + + + + + +Node6->Node29 + + + + + + + + +Node41 + + +arax_pipe_mmap_address + + + + + +Node6->Node41 + + + + + + + + +Node42 + + +async_condition_lock + + + + + +Node6->Node42 + + + + + + + + +Node44 + + +async_condition_unlock + + + + + +Node6->Node44 + + + + + + + + +Node45 + + +async_condition_wait + + + + + +Node6->Node45 + + + + + + + + +Node47 + + +async_meta_init_always + + + + + +Node6->Node47 + + + + + + + + +Node52 + + +utils_config_get_str + + + + + +Node6->Node52 + + + + + + + + +Node53 + + +system_mmap + + + + + +Node6->Node53 + + + + + + + + +Node54 + + +system_process_id + + + + + +Node6->Node54 + + + + + + + + +Node55 + + +system_total_memory + + + + + +Node6->Node55 + + + + + + + + +Node56 + + +utils_config_get_size + + + + + +Node6->Node56 + + + + + + + + +Node36 + + +utils_config_get_source + + + + + +Node6->Node36 + + + + + + + + +Node8 + + +arax_throttle_get_available_size + + + + + +Node7->Node8 + + + + + + + + +Node11 + + +arax_object_repo_init + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +utils_list_init + + + + + +Node10->Node12 + + + + + + + + +Node14 + + +arax_pipe_add_process + + + + + +Node10->Node14 + + + + + + + + +Node15 + + +arax_throttle_init + + + + + +Node10->Node15 + + + + + + + + +Node16 + + +async_condition_init + + + + + +Node10->Node16 + + + + + + + + +Node22 + + +arch_alloc_init_always + + + + + +Node10->Node22 + + + + + + + + +Node23 + + +arch_alloc_init_once + + + + + +Node10->Node23 + + + + + + + + +Node25 + + +async_meta_init_once + + + + + +Node10->Node25 + + + + + + + + +Node40 + + +utils_kv_init + + + + + +Node10->Node40 + + + + + + + + +Node11->Node12 + + + + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +async_completion_complete + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +async_completion_init + + + + + +Node16->Node18 + + + + + + + + +Node19 + + +async_condition_unlock + + + + + +Node16->Node19 + + + + + + + + +Node24 + + +utils_bitmap_init + + + + + +Node23->Node24 + + + + + + + + +Node25->Node12 + + + + + + + + +Node25->Node26 + + + + + + + + +Node28 + + +utils_config_free_path + + + + + +Node25->Node28 + + + + + + + + +Node25->Node29 + + + + + + + + +Node27 + + +system_home_path + + + + + +Node26->Node27 + + + + + + + + +Node30 + + +utils_config_get_int + + + + + +Node29->Node30 + + + + + + + + +Node31 + + +utils_config_get_long + + + + + +Node30->Node31 + + + + + + + + +Node32 + + +_utils_config_get_str + + + + + +Node31->Node32 + + + + + + + + +Node43 + + +async_completion_wait + + + + + +Node42->Node43 + + + + + + + + +Node44->Node17 + + + + + + + + +Node45->Node17 + + + + + + + + +Node45->Node43 + + + + + + + + +Node46 + + +async_semaphore_dec + + + + + +Node45->Node46 + + + + + + + + +Node47->Node26 + + + + + + + + +Node47->Node28 + + + + + + + + +Node48 + + +async_thread + + + + + +Node47->Node48 + + + + + + + + +Node47->Node52 + + + + + + + + +Node52->Node32 + + + + + + + + +Node38 + + +utils_config_write_str + + + + + +Node52->Node38 + + + + + + + + +Node35 + + +system_file_size + + + + + +Node53->Node35 + + + + + + + + +Node56->Node31 + + + + + + + + +Node34 + + +system_env_var + + + + + +Node36->Node34 + + + + + + + + diff --git a/a01409_af8ede6fc8d207004035f45d945688d2c_cgraph.map b/a01409_af8ede6fc8d207004035f45d945688d2c_cgraph.map new file mode 100644 index 00000000..00007375 --- /dev/null +++ b/a01409_af8ede6fc8d207004035f45d945688d2c_cgraph.map @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01409_af8ede6fc8d207004035f45d945688d2c_cgraph.md5 b/a01409_af8ede6fc8d207004035f45d945688d2c_cgraph.md5 new file mode 100644 index 00000000..a89bd9b4 --- /dev/null +++ b/a01409_af8ede6fc8d207004035f45d945688d2c_cgraph.md5 @@ -0,0 +1 @@ +919fbe290348dfca0f3ff5dd95c467d7 \ No newline at end of file diff --git a/a01409_af8ede6fc8d207004035f45d945688d2c_cgraph.svg b/a01409_af8ede6fc8d207004035f45d945688d2c_cgraph.svg new file mode 100644 index 00000000..bda59c33 --- /dev/null +++ b/a01409_af8ede6fc8d207004035f45d945688d2c_cgraph.svg @@ -0,0 +1,985 @@ + + + + + + +arax_data_allocate_remote + + +Node1 + + +arax_data_allocate +_remote + + + + + +Node2 + + +arax_accel_size_dec + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +arax_data_size + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +arax_object_ref_inc + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +arax_proc_get + + + + + +Node1->Node12 + + + + + + + + +Node16 + + +arax_task_free + + + + + +Node1->Node16 + + + + + + + + +Node23 + + +arax_task_issue + + + + + +Node1->Node23 + + + + + + + + +Node42 + + +arax_task_wait + + + + + +Node1->Node42 + + + + + + + + +Node3 + + +arax_throttle_size_dec + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +async_condition_lock + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +async_condition_unlock + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +async_condition_wait + + + + + +Node3->Node8 + + + + + + + + +Node5 + + +async_completion_wait + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_completion_complete + + + + + +Node6->Node7 + + + + + + + + +Node8->Node5 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +async_semaphore_dec + + + + + +Node8->Node9 + + + + + + + + +Node12->Node11 + + + + + + + + +Node13 + + +arax_pipe_find_proc + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +arax_object_list_lock + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +arax_object_list_unlock + + + + + +Node13->Node15 + + + + + + + + +Node17 + + +arax_object_ref_dec + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +arax_pipe_size_inc + + + + + +Node17->Node18 + + + + + + + + +Node22 + + +utils_list_del + + + + + +Node17->Node22 + + + + + + + + +Node19 + + +arax_throttle_size_inc + + + + + +Node18->Node19 + + + + + + + + +Node19->Node4 + + + + + + + + +Node19->Node6 + + + + + + + + +Node20 + + +async_condition_notify + + + + + +Node19->Node20 + + + + + + + + +Node21 + + +async_semaphore_inc + + + + + +Node20->Node21 + + + + + + + + +Node24 + + +arax_task_alloc + + + + + +Node23->Node24 + + + + + + + + +Node36 + + +arax_task_host_data + + + + + +Node23->Node36 + + + + + + + + +Node37 + + +arax_task_submit + + + + + +Node23->Node37 + + + + + + + + +Node41 + + +check_semantics + + + + + +Node23->Node41 + + + + + + + + +Node25 + + +arax_data_input_init + + + + + +Node24->Node25 + + + + + + + + +Node28 + + +arax_data_output_init + + + + + +Node24->Node28 + + + + + + + + +Node29 + + +arax_object_register + + + + + +Node24->Node29 + + + + + + + + +Node35 + + +async_completion_init + + + + + +Node24->Node35 + + + + + + + + +Node25->Node11 + + + + + + + + +Node26 + + +arax_data_migrate_accel + + + + + +Node25->Node26 + + + + + + + + +Node26->Node11 + + + + + + + + +Node26->Node17 + + + + + + + + +Node27 + + +arax_object_type_to_str + + + + + +Node26->Node27 + + + + + + + + +Node28->Node11 + + + + + + + + +Node28->Node26 + + + + + + + + +Node30 + + +arax_pipe_size_dec + + + + + +Node29->Node30 + + + + + + + + +Node31 + + +arch_alloc_allocate + + + + + +Node29->Node31 + + + + + + + + +Node32 + + +utils_list_add + + + + + +Node29->Node32 + + + + + + + + +Node34 + + +utils_list_node_init + + + + + +Node29->Node34 + + + + + + + + +Node30->Node3 + + + + + + + + +Node33 + + +utils_list_node_add + + + + + +Node32->Node33 + + + + + + + + +Node35->Node34 + + + + + + + + +Node37->Node11 + + + + + + + + +Node38 + + +arax_vaccel_add_task + + + + + +Node37->Node38 + + + + + + + + +Node39 + + +arax_accel_add_task + + + + + +Node38->Node39 + + + + + + + + +Node40 + + +utils_queue_push + + + + + +Node38->Node40 + + + + + + + + +Node39->Node4 + + + + + + + + +Node39->Node6 + + + + + + + + +Node39->Node20 + + + + + + + + +Node43 + + +arax_task_wait_done + + + + + +Node42->Node43 + + + + + + + + +Node44 + + +async_completion_wait + + + + + +Node43->Node44 + + + + + + + + +Node45 + + +_add_completion + + + + + +Node44->Node45 + + + + + + + + +Node46 + + +getVmID + + + + + +Node44->Node46 + + + + + + + + +Node45->Node32 + + + + + + + + diff --git a/a01409_afeaab7d93372f0752d59c70d9c5940e7_cgraph.map b/a01409_afeaab7d93372f0752d59c70d9c5940e7_cgraph.map new file mode 100644 index 00000000..fc8a5015 --- /dev/null +++ b/a01409_afeaab7d93372f0752d59c70d9c5940e7_cgraph.map @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01409_afeaab7d93372f0752d59c70d9c5940e7_cgraph.md5 b/a01409_afeaab7d93372f0752d59c70d9c5940e7_cgraph.md5 new file mode 100644 index 00000000..7edb6f95 --- /dev/null +++ b/a01409_afeaab7d93372f0752d59c70d9c5940e7_cgraph.md5 @@ -0,0 +1 @@ +548879cb3c149d0f0235f78ca799dade \ No newline at end of file diff --git a/a01409_afeaab7d93372f0752d59c70d9c5940e7_cgraph.svg b/a01409_afeaab7d93372f0752d59c70d9c5940e7_cgraph.svg new file mode 100644 index 00000000..436448c6 --- /dev/null +++ b/a01409_afeaab7d93372f0752d59c70d9c5940e7_cgraph.svg @@ -0,0 +1,1020 @@ + + + + + + +arax_data_ref + + +Node1 + + +arax_data_ref + + + + + +Node2 + + +arax_ptr_valid + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +_arax_init + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_pipe_get_available_size + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +arax_pipe_have_to_mmap + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +arax_pipe_init + + + + + +Node4->Node8 + + + + + + + + +Node24 + + +utils_config_alloc_path + + + + + +Node4->Node24 + + + + + + + + +Node27 + + +utils_config_get_bool + + + + + +Node4->Node27 + + + + + + + + +Node39 + + +arax_pipe_mmap_address + + + + + +Node4->Node39 + + + + + + + + +Node40 + + +async_condition_lock + + + + + +Node4->Node40 + + + + + + + + +Node42 + + +async_condition_unlock + + + + + +Node4->Node42 + + + + + + + + +Node43 + + +async_condition_wait + + + + + +Node4->Node43 + + + + + + + + +Node45 + + +async_meta_init_always + + + + + +Node4->Node45 + + + + + + + + +Node50 + + +utils_config_get_str + + + + + +Node4->Node50 + + + + + + + + +Node51 + + +system_mmap + + + + + +Node4->Node51 + + + + + + + + +Node52 + + +system_process_id + + + + + +Node4->Node52 + + + + + + + + +Node53 + + +system_total_memory + + + + + +Node4->Node53 + + + + + + + + +Node54 + + +utils_config_get_size + + + + + +Node4->Node54 + + + + + + + + +Node34 + + +utils_config_get_source + + + + + +Node4->Node34 + + + + + + + + +Node6 + + +arax_throttle_get_available_size + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +arax_object_repo_init + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +utils_list_init + + + + + +Node8->Node10 + + + + + + + + +Node12 + + +arax_pipe_add_process + + + + + +Node8->Node12 + + + + + + + + +Node13 + + +arax_throttle_init + + + + + +Node8->Node13 + + + + + + + + +Node14 + + +async_condition_init + + + + + +Node8->Node14 + + + + + + + + +Node20 + + +arch_alloc_init_always + + + + + +Node8->Node20 + + + + + + + + +Node21 + + +arch_alloc_init_once + + + + + +Node8->Node21 + + + + + + + + +Node23 + + +async_meta_init_once + + + + + +Node8->Node23 + + + + + + + + +Node38 + + +utils_kv_init + + + + + +Node8->Node38 + + + + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +utils_list_node_init + + + + + +Node10->Node11 + + + + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +async_completion_complete + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +async_completion_init + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +async_condition_unlock + + + + + +Node14->Node17 + + + + + + + + +Node19 + + +async_semaphore_init + + + + + +Node14->Node19 + + + + + + + + +Node22 + + +utils_bitmap_init + + + + + +Node21->Node22 + + + + + + + + +Node23->Node10 + + + + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +utils_config_free_path + + + + + +Node23->Node26 + + + + + + + + +Node23->Node27 + + + + + + + + +Node25 + + +system_home_path + + + + + +Node24->Node25 + + + + + + + + +Node28 + + +utils_config_get_int + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +utils_config_get_long + + + + + +Node28->Node29 + + + + + + + + +Node30 + + +_utils_config_get_str + + + + + +Node29->Node30 + + + + + + + + +Node41 + + +async_completion_wait + + + + + +Node40->Node41 + + + + + + + + +Node42->Node15 + + + + + + + + +Node43->Node15 + + + + + + + + +Node43->Node41 + + + + + + + + +Node44 + + +async_semaphore_dec + + + + + +Node43->Node44 + + + + + + + + +Node45->Node24 + + + + + + + + +Node45->Node26 + + + + + + + + +Node46 + + +async_thread + + + + + +Node45->Node46 + + + + + + + + +Node45->Node50 + + + + + + + + +Node47 + + +async_completion_check + + + + + +Node46->Node47 + + + + + + + + +Node48 + + +getVmID + + + + + +Node46->Node48 + + + + + + + + +Node49 + + +utils_list_del + + + + + +Node46->Node49 + + + + + + + + +Node50->Node30 + + + + + + + + +Node36 + + +utils_config_write_str + + + + + +Node50->Node36 + + + + + + + + +Node33 + + +system_file_size + + + + + +Node51->Node33 + + + + + + + + +Node54->Node29 + + + + + + + + +Node32 + + +system_env_var + + + + + +Node34->Node32 + + + + + + + + diff --git a/a01409_afeaab7d93372f0752d59c70d9c5940e7_icgraph.map b/a01409_afeaab7d93372f0752d59c70d9c5940e7_icgraph.map new file mode 100644 index 00000000..b62c55cc --- /dev/null +++ b/a01409_afeaab7d93372f0752d59c70d9c5940e7_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01409_afeaab7d93372f0752d59c70d9c5940e7_icgraph.md5 b/a01409_afeaab7d93372f0752d59c70d9c5940e7_icgraph.md5 new file mode 100644 index 00000000..682e70dd --- /dev/null +++ b/a01409_afeaab7d93372f0752d59c70d9c5940e7_icgraph.md5 @@ -0,0 +1 @@ +2498ba139a761df34f5f0a446277ea50 \ No newline at end of file diff --git a/a01409_afeaab7d93372f0752d59c70d9c5940e7_icgraph.svg b/a01409_afeaab7d93372f0752d59c70d9c5940e7_icgraph.svg new file mode 100644 index 00000000..494be1b9 --- /dev/null +++ b/a01409_afeaab7d93372f0752d59c70d9c5940e7_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_data_ref + + +Node1 + + +arax_data_ref + + + + + +Node2 + + +arax_data_ref_offset + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01409_source.html b/a01409_source.html new file mode 100644 index 00000000..420d70b8 --- /dev/null +++ b/a01409_source.html @@ -0,0 +1,148 @@ + + + + + + + +Arax: arax_data_private.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_data_private.h
+
+
+Go to the documentation of this file.
1#ifndef ARAX_DATA_PRIVATE_HEADER
+
2#define ARAX_DATA_PRIVATE_HEADER
+
3#include "arax_data.h"
+
4
+
5#ifdef __cplusplus
+
6extern "C" {
+
7#endif /* ifdef __cplusplus */
+
8
+
17void arax_data_shm_sync(arax_accel *accel, const char *func, arax_data_s *data, int block);
+
18
+ +
25
+ +
31
+
38void* arax_data_deref(arax_data *data);
+
39
+
45arax_data* arax_data_ref(void *data);
+
46
+ +
52
+ +
60
+
61#ifdef __cplusplus
+
62}
+
63#endif /* ifdef __cplusplus */
+
64
+
65#endif // ifndef ARAX_DATA_PRIVATE_HEADER
+
void arax_accel
Definition arax_types.h:9
+
void arax_data
Definition arax_types.h:56
+ +
void arax_data_shm_sync(arax_accel *accel, const char *func, arax_data_s *data, int block)
+
void * arax_data_deref(arax_data *data)
Definition arax_data.c:260
+
void arax_data_migrate_accel(arax_data_s *data, arax_accel *accel)
Definition arax_data.c:117
+
int arax_data_has_remote(arax_data *data)
Definition arax_data.c:334
+
arax_data * arax_data_ref_offset(arax_pipe_s *vpipe, void *data)
Definition arax_data.c:295
+
void arax_data_allocate_remote(arax_data_s *data, arax_accel *accel)
Definition arax_data.c:162
+
arax_data * arax_data_ref(void *data)
Definition arax_data.c:274
+
arax_pipe_s * vpipe
Definition impl.c:17
+ + +
+
+ + + + diff --git a/a01410.map b/a01410.map new file mode 100644 index 00000000..4d58d891 --- /dev/null +++ b/a01410.map @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01410.md5 b/a01410.md5 new file mode 100644 index 00000000..3c39d125 --- /dev/null +++ b/a01410.md5 @@ -0,0 +1 @@ +13e8030bd99017c40aec680abdb46aaf \ No newline at end of file diff --git a/a01410.svg b/a01410.svg new file mode 100644 index 00000000..91b720f7 --- /dev/null +++ b/a01410.svg @@ -0,0 +1,516 @@ + + + + + + +arax_data_private.h + + +Node1 + + +arax_data_private.h + + + + + +Node2 + + +arax_data.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax.h + + + + + +Node2->Node3 + + + + + + + + +Node10 + + +core/arax_object.h + + + + + +Node2->Node10 + + + + + + + + +Node17 + + +async.h + + + + + +Node2->Node17 + + + + + + + + +Node18 + + +conf.h + + + + + +Node2->Node18 + + + + + + + + +Node19 + + +core/arax_accel.h + + + + + +Node2->Node19 + + + + + + + + +Node4 + + +stdio.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +stddef.h + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_types.h + + + + + +Node3->Node6 + + + + + + + + +Node9 + + +core/arax_accel_types.h + + + + + +Node3->Node9 + + + + + + + + +Node7 + + +sys/time.h + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +time.h + + + + + +Node6->Node8 + + + + + + + + +Node9->Node6 + + + + + + + + +Node11 + + +utils/list.h + + + + + +Node10->Node11 + + + + + + + + +Node13 + + +utils/spinlock.h + + + + + +Node10->Node13 + + + + + + + + +Node16 + + +arch/alloc.h + + + + + +Node10->Node16 + + + + + + + + +Node11->Node5 + + + + + + + + +Node12 + + +stdint.h + + + + + +Node11->Node12 + + + + + + + + +Node13->Node12 + + + + + + + + +Node14 + + +utils/arax_assert.h + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +compat.h + + + + + +Node14->Node15 + + + + + + + + +Node19->Node3 + + + + + + + + +Node19->Node17 + + + + + + + + +Node20 + + +core/arax_vaccel.h + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +core/arax_throttle.h + + + + + +Node19->Node22 + + + + + + + + +Node20->Node10 + + + + + + + + +Node20->Node17 + + + + + + + + +Node20->Node19 + + + + + + + + +Node21 + + +utils/queue.h + + + + + +Node20->Node21 + + + + + + + + +Node21->Node5 + + + + + + + + +Node21->Node12 + + + + + + + + +Node21->Node13 + + + + + + + + +Node21->Node18 + + + + + + + + +Node22->Node17 + + + + + + + + diff --git a/a01411.map b/a01411.map new file mode 100644 index 00000000..ad5ded17 --- /dev/null +++ b/a01411.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01411.md5 b/a01411.md5 new file mode 100644 index 00000000..6157565d --- /dev/null +++ b/a01411.md5 @@ -0,0 +1 @@ +28b81f023f85779f671da67738b04423 \ No newline at end of file diff --git a/a01411.svg b/a01411.svg new file mode 100644 index 00000000..a434bcc0 --- /dev/null +++ b/a01411.svg @@ -0,0 +1,39 @@ + + + + + + +arax_data_private.h + + +Node1 + + +arax_data_private.h + + + + + +Node2 + + +arax_data.c + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01412.html b/a01412.html new file mode 100644 index 00000000..9f6408e2 --- /dev/null +++ b/a01412.html @@ -0,0 +1,795 @@ + + + + + + + +Arax: arax_object.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_object.h File Reference
+
+
+
#include "utils/list.h"
+#include "utils/spinlock.h"
+#include "arch/alloc.h"
+
+ + Include dependency graph for arax_object.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + +

+Data Structures

struct  arax_object_repo_s
 
struct  arax_object_s
 
+ + + + + +

+Macros

#define ARAX_OBJ_DTOR_DECL(TYPE)   void __dtor_ ## TYPE(arax_pipe_s * pipe, arax_object_s * obj)
 
#define ARAX_OBJ_DTOR_USE(TYPE)   __dtor_ ## TYPE
 
+ + + +

+Typedefs

typedef enum arax_object_type arax_object_type_e
 
+ + + +

+Enumerations

enum  arax_object_type {
+  ARAX_TYPE_PHYS_ACCEL +, ARAX_TYPE_VIRT_ACCEL +, ARAX_TYPE_PROC +, ARAX_TYPE_DATA +,
+  ARAX_TYPE_TASK +, ARAX_TYPE_COUNT +
+ }
 
+ + + + + + + + + + + + + + + + + + + + + + + +

+Functions

void arax_object_repo_init (arax_object_repo_s *repo, arax_pipe_s *pipe)
 
int arax_object_repo_exit (arax_object_repo_s *repo)
 
const char * arax_object_type_to_str (arax_object_type_e type)
 
arax_object_sarax_object_register (arax_object_repo_s *repo, arax_object_type_e type, const char *name, size_t size, const int ref_count)
 
void arax_object_rename (arax_object_s *obj, const char *fmt,...)
 
void arax_object_ref_inc (arax_object_s *obj)
 
int arax_object_ref_dec (arax_object_s *obj)
 
int arax_object_ref_dec_pre_locked (arax_object_s *obj)
 
int arax_object_refs (arax_object_s *obj)
 
utils_list_sarax_object_list_lock (arax_object_repo_s *repo, arax_object_type_e type)
 
void arax_object_list_unlock (arax_object_repo_s *repo, arax_object_type_e type)
 
+

Macro Definition Documentation

+ +

◆ ARAX_OBJ_DTOR_DECL

+ +
+
+ + + + + + + + +
#define ARAX_OBJ_DTOR_DECL( TYPE)   void __dtor_ ## TYPE(arax_pipe_s * pipe, arax_object_s * obj)
+
+ +

Definition at line 152 of file arax_object.h.

+ +
+
+ +

◆ ARAX_OBJ_DTOR_USE

+ +
+
+ + + + + + + + +
#define ARAX_OBJ_DTOR_USE( TYPE)   __dtor_ ## TYPE
+
+ +

Definition at line 153 of file arax_object.h.

+ +
+
+

Typedef Documentation

+ +

◆ arax_object_type_e

+ +
+
+ + + + +
typedef enum arax_object_type arax_object_type_e
+
+

Enumeration with available Arax Object Types.

+ +
+
+

Enumeration Type Documentation

+ +

◆ arax_object_type

+ +
+
+ + + + +
enum arax_object_type
+
+

Enumeration with available Arax Object Types.

+ + + + + + + +
Enumerator
ARAX_TYPE_PHYS_ACCEL 
ARAX_TYPE_VIRT_ACCEL 
ARAX_TYPE_PROC 
ARAX_TYPE_DATA 
ARAX_TYPE_TASK 
ARAX_TYPE_COUNT 
+ +

Definition at line 14 of file arax_object.h.

+ +
+
+

Function Documentation

+ +

◆ arax_object_list_lock()

+ +
+
+ + + + + + + + + + + + + + + + + + +
utils_list_s * arax_object_list_lock (arax_object_repo_srepo,
arax_object_type_e type 
)
+
+

Get a locked utils_list_s for traversing all objects of type.

+
Parameters
+ + + +
repoA valid arax_object_repo_s instance.
typeType of objects contained in list.
+
+
+ +

Definition at line 248 of file arax_object.c.

+ +

References arax_object_repo_s::list, arax_object_repo_s::lock, arax_object_repo_s::repo, and utils_spinlock_lock.

+ +

Referenced by arax_accel_list(), arax_data_ref_offset(), arax_pipe_delete_accel(), arax_pipe_find_accel(), and arax_pipe_find_proc().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_object_list_unlock()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_object_list_unlock (arax_object_repo_srepo,
arax_object_type_e type 
)
+
+

Unlock previously locked list. Parameters should be the same with the previous arax_object_list_locked() invocation.

+
Parameters
+ + + +
repoA valid arax_object_repo_s instance.
typeType of objects contained in list.
+
+
+ +

Definition at line 255 of file arax_object.c.

+ +

References arax_object_repo_s::lock, arax_object_repo_s::repo, and utils_spinlock_unlock.

+ +

Referenced by arax_accel_list(), arax_data_ref_offset(), arax_pipe_delete_accel(), arax_pipe_find_accel(), and arax_pipe_find_proc().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_object_ref_dec()

+ +
+
+ + + + + + + + +
int arax_object_ref_dec (arax_object_sobj)
+
+

Decrease reference count of obj.

+
Parameters
+ + +
objA valid arax_object_s instance.
+
+
+
Returns
Reference count after decreasing, 0 means object was reclaimed
+ +

Definition at line 161 of file arax_object.c.

+ +

References arax_object_s::alloc_size, arax_pipe::allocator, arax_assert, arax_pipe_size_inc(), ARAX_TYPE_COUNT, arch_alloc_free, dtor_table, arax_object_repo_s::list, arax_object_s::list, arax_object_repo_s::lock, arax_object_s::name, arax_object_repo_s::pipe, PRINT_REFS, arax_object_s::ref_count, arax_object_repo_s::repo, arax_object_s::repo, arax_object_s::type, utils_list_del(), utils_spinlock_lock, and utils_spinlock_unlock.

+ +

Referenced by arax_accel_list_free(), arax_accel_release(), arax_data_free(), arax_data_migrate_accel(), ARAX_OBJ_DTOR_DECL(), ARAX_OBJ_DTOR_DECL(), arax_pipe_delete_accel(), arax_proc_put(), and arax_task_free().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_object_ref_dec_pre_locked()

+ +
+
+ + + + + + + + +
int arax_object_ref_dec_pre_locked (arax_object_sobj)
+
+

Decrease reference count of obj.

Note
Assumes object repo lock is held.
+
Parameters
+ + +
objA valid arax_object_s instance.
+
+
+
Returns
Reference count after decreasing, 0 means object was reclaimed
+ +

Definition at line 211 of file arax_object.c.

+ +

References arax_object_s::alloc_size, arax_pipe::allocator, arax_assert, arax_pipe_size_inc(), arch_alloc_free, dtor_table, arax_object_repo_s::list, arax_object_s::list, arax_object_s::name, arax_object_repo_s::pipe, arax_object_s::ref_count, arax_object_repo_s::repo, arax_object_s::repo, arax_object_s::type, and utils_list_del().

+ +

Referenced by arax_accel_list_free_pre_locked().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_object_ref_inc()

+ +
+
+ + + + + + + + +
void arax_object_ref_inc (arax_object_sobj)
+
+

Increase reference count of obj.

+
Parameters
+ + +
objA valid arax_object_s instance.
+
+
+ +

Definition at line 145 of file arax_object.c.

+ +

References arax_assert, ARAX_TYPE_COUNT, PRINT_REFS, arax_object_s::ref_count, and arax_object_s::type.

+ +

Referenced by arax_accel_list(), arax_data_allocate_remote(), arax_data_input_init(), arax_data_migrate_accel(), arax_data_output_init(), arax_data_set(), arax_data_set_accel(), arax_data_set_remote(), arax_proc_get(), and arax_task_submit().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_object_refs()

+ +
+
+ + + + + + + + +
int arax_object_refs (arax_object_sobj)
+
+

Returns obj current reference count.

+
Parameters
+ + +
objA valid arax_object_s instance.
+
+
+ +

Definition at line 237 of file arax_object.c.

+ +

References arax_object_s::ref_count.

+ +
+
+ +

◆ arax_object_register()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
arax_object_s * arax_object_register (arax_object_repo_srepo,
arax_object_type_e type,
const char * name,
size_t size,
const int ref_count 
)
+
+

Arax Object 'Constructor'

+

Register obj at repo.

+

Note: Sets reference count to 1

+
Parameters
+ + + + + + +
repoA valid arax_object_repo_s instance.
typeType of the new arax_object.
nameThe name on the new arax_object.
sizeThe size of the new object (sizeof(struct)).
ref_countInitialize ref count
+
+
+ +

Definition at line 98 of file arax_object.c.

+ +

References arax_object_s::alloc_size, arax_pipe::allocator, arax_pipe_size_dec(), arch_alloc_allocate(), arax_object_repo_s::list, arax_object_s::list, arax_object_repo_s::lock, arax_object_s::name, arax_object_repo_s::pipe, arax_object_s::ref_count, arax_object_repo_s::repo, arax_object_s::repo, arax_object_s::type, utils_list_add(), utils_list_node_init(), utils_spinlock_lock, and utils_spinlock_unlock.

+ +

Referenced by arax_accel_init(), arax_data_init_aligned(), arax_proc_init(), arax_task_alloc(), and arax_vaccel_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_object_rename()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void arax_object_rename (arax_object_sobj,
const char * fmt,
 ... 
)
+
+

Change name of obj to printf like format fmt

+
Parameters
+ + + + +
objA valid arax_object_s instance.
fmtprintf style format string
...Args matching fmt
+
+
+ +

Definition at line 128 of file arax_object.c.

+ +

References arax_pipe::allocator, arch_alloc_allocate(), arch_alloc_free, arax_object_s::name, arax_object_repo_s::pipe, and arax_object_s::repo.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_object_repo_exit()

+ +
+
+ + + + + + + + +
int arax_object_repo_exit (arax_object_repo_srepo)
+
+

Perform cleanup and exit time checks.

+

Prints on stderr, the Objects still registered and thus considered as leaks.

+
Parameters
+ + +
repoA valid arax_object_repo_s instance.
+
+
+
Returns
Number of 'leaked' Arax Objects.
+ +

Definition at line 71 of file arax_object.c.

+ +

References ARAX_TYPE_COUNT, utils_list_s::length, arax_object_repo_s::list, arax_object_repo_s::repo, and type2str.

+ +

Referenced by arax_pipe_exit().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_object_repo_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_object_repo_init (arax_object_repo_srepo,
arax_pipe_spipe 
)
+
+

Initialize an arax_object_repo_s instance on allocated pointer repo.

+
Parameters
+ + + +
repoAn at least sizeof(arax_object_repo_s) big buffer.
pipearax_pipe_s owning all objects.
+
+
+ +

Definition at line 60 of file arax_object.c.

+ +

References ARAX_TYPE_COUNT, arax_object_repo_s::list, arax_object_repo_s::lock, arax_object_repo_s::pipe, arax_object_repo_s::repo, utils_list_init(), and utils_spinlock_init.

+ +

Referenced by arax_pipe_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_object_type_to_str()

+ +
+
+ + + + + + + + +
const char * arax_object_type_to_str (arax_object_type_e type)
+
+

Convert a arax_object_type_e value to a human readable string. If type is not a valid arax_object_type_e, then NULL is returned.

+
Returns
Returns the string representation of type
+ +

Definition at line 90 of file arax_object.c.

+ +

References ARAX_TYPE_COUNT, and type2str.

+ +

Referenced by arax_data_migrate_accel().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01412.js b/a01412.js new file mode 100644 index 00000000..078141b8 --- /dev/null +++ b/a01412.js @@ -0,0 +1,27 @@ +var a01412 = +[ + [ "arax_object_repo_s", "a02266.html", "a02266" ], + [ "arax_object_s", "a02274.html", "a02274" ], + [ "ARAX_OBJ_DTOR_DECL", "a01412.html#af9661fe34e3c0d9e8f8f8a775c5037fc", null ], + [ "ARAX_OBJ_DTOR_USE", "a01412.html#acda98fecf80b82bd01409193d3f86dda", null ], + [ "arax_object_type_e", "a01412.html#a0e8ae0b95bec3f8515286382c11206a5", null ], + [ "arax_object_type", "a01412.html#a1e76ab10a5b400f89cb267a6d49da972", [ + [ "ARAX_TYPE_PHYS_ACCEL", "a01412.html#a1e76ab10a5b400f89cb267a6d49da972af95f33c3aea3579c2bdc610c4f5833d2", null ], + [ "ARAX_TYPE_VIRT_ACCEL", "a01412.html#a1e76ab10a5b400f89cb267a6d49da972a7aa91e9b9aceac970e886e03c2fbcaf9", null ], + [ "ARAX_TYPE_PROC", "a01412.html#a1e76ab10a5b400f89cb267a6d49da972ab37376a90211399e64589e9958cd26da", null ], + [ "ARAX_TYPE_DATA", "a01412.html#a1e76ab10a5b400f89cb267a6d49da972a4d278fd6dc9fbae63e4bbb3208efe1dd", null ], + [ "ARAX_TYPE_TASK", "a01412.html#a1e76ab10a5b400f89cb267a6d49da972af3518fbc60e4e416554725b59a5f4432", null ], + [ "ARAX_TYPE_COUNT", "a01412.html#a1e76ab10a5b400f89cb267a6d49da972a5115924eacbea77a748d1489f148ed47", null ] + ] ], + [ "arax_object_list_lock", "a01412.html#aa750d1c54fe430c1294b9c8a9d3e1466", null ], + [ "arax_object_list_unlock", "a01412.html#abb03d3cde2d1354544cd082482c3f185", null ], + [ "arax_object_ref_dec", "a01412.html#afe7e4a63c40fbcaae742b8de8693483f", null ], + [ "arax_object_ref_dec_pre_locked", "a01412.html#a0a0b147b7fc892c291afe60cb0fa2c1c", null ], + [ "arax_object_ref_inc", "a01412.html#a9255b8011e6d7c9b28c7df40065efb28", null ], + [ "arax_object_refs", "a01412.html#a6d73dfc133ab87bb357df5cd76df556f", null ], + [ "arax_object_register", "a01412.html#a402bbd6fa197c2c48d527325e5e2cf5b", null ], + [ "arax_object_rename", "a01412.html#a6c73bee66b4cb5a64d949b6fbbd64498", null ], + [ "arax_object_repo_exit", "a01412.html#a305682d9ee7b1c993dbf64d4f3de2d9f", null ], + [ "arax_object_repo_init", "a01412.html#a86352ba91ba482c6688b7364d10bf956", null ], + [ "arax_object_type_to_str", "a01412.html#a668fd893484b6e2d67d8b372b508d14f", null ] +]; \ No newline at end of file diff --git a/a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.map b/a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.map new file mode 100644 index 00000000..46b6631c --- /dev/null +++ b/a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.md5 b/a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.md5 new file mode 100644 index 00000000..c633d424 --- /dev/null +++ b/a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.md5 @@ -0,0 +1 @@ +bba9726835366d1e57b045f046cbd323 \ No newline at end of file diff --git a/a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.svg b/a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.svg new file mode 100644 index 00000000..68dc0ea1 --- /dev/null +++ b/a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.svg @@ -0,0 +1,184 @@ + + + + + + +arax_object_ref_dec_pre_locked + + +Node1 + + +arax_object_ref_dec +_pre_locked + + + + + +Node2 + + +arax_pipe_size_inc + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +utils_list_del + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +arax_throttle_size_inc + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +async_condition_lock + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +async_condition_notify + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +async_condition_unlock + + + + + +Node3->Node8 + + + + + + + + +Node5 + + +async_completion_wait + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_semaphore_inc + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_completion_complete + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.map b/a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.map new file mode 100644 index 00000000..a65c4cce --- /dev/null +++ b/a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.md5 b/a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.md5 new file mode 100644 index 00000000..a81960cb --- /dev/null +++ b/a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.md5 @@ -0,0 +1 @@ +0212e50e301e2e31e452ef6bdc822bb8 \ No newline at end of file diff --git a/a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.svg b/a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.svg new file mode 100644 index 00000000..71778089 --- /dev/null +++ b/a01412_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.svg @@ -0,0 +1,59 @@ + + + + + + +arax_object_ref_dec_pre_locked + + +Node1 + + +arax_object_ref_dec +_pre_locked + + + + + +Node2 + + +arax_accel_list_free +_pre_locked + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_list + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01412_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.map b/a01412_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.map new file mode 100644 index 00000000..2c965034 --- /dev/null +++ b/a01412_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01412_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.md5 b/a01412_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.md5 new file mode 100644 index 00000000..8848035d --- /dev/null +++ b/a01412_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.md5 @@ -0,0 +1 @@ +de5d95384d5de9b089356b94c458d6f4 \ No newline at end of file diff --git a/a01412_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.svg b/a01412_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.svg new file mode 100644 index 00000000..08bfb8c3 --- /dev/null +++ b/a01412_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_object_repo_exit + + +Node1 + + +arax_object_repo_exit + + + + + +Node2 + + +arax_pipe_exit + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_exit + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01412_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.map b/a01412_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.map new file mode 100644 index 00000000..7e198613 --- /dev/null +++ b/a01412_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.map @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01412_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.md5 b/a01412_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.md5 new file mode 100644 index 00000000..65adfc14 --- /dev/null +++ b/a01412_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.md5 @@ -0,0 +1 @@ +dfa4224015204d7e849bf3848826117c \ No newline at end of file diff --git a/a01412_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.svg b/a01412_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.svg new file mode 100644 index 00000000..df61fba5 --- /dev/null +++ b/a01412_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.svg @@ -0,0 +1,255 @@ + + + + + + +arax_object_register + + +Node1 + + +arax_object_register + + + + + +Node2 + + +arax_pipe_size_dec + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +arch_alloc_allocate + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +utils_list_add + + + + + +Node1->Node11 + + + + + + + + +Node13 + + +utils_list_node_init + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +arax_throttle_size_dec + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +async_condition_lock + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +async_condition_unlock + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +async_condition_wait + + + + + +Node3->Node8 + + + + + + + + +Node5 + + +async_completion_wait + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_completion_complete + + + + + +Node6->Node7 + + + + + + + + +Node8->Node5 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +async_semaphore_dec + + + + + +Node8->Node9 + + + + + + + + +Node12 + + +utils_list_node_add + + + + + +Node11->Node12 + + + + + + + + diff --git a/a01412_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.map b/a01412_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.map new file mode 100644 index 00000000..98f9b31e --- /dev/null +++ b/a01412_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.map @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01412_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.md5 b/a01412_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.md5 new file mode 100644 index 00000000..bea3ff3a --- /dev/null +++ b/a01412_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.md5 @@ -0,0 +1 @@ +cfe37f9269b69ae2797146bcc0a6d04f \ No newline at end of file diff --git a/a01412_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.svg b/a01412_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.svg new file mode 100644 index 00000000..9e983cb1 --- /dev/null +++ b/a01412_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.svg @@ -0,0 +1,346 @@ + + + + + + +arax_object_register + + +Node1 + + +arax_object_register + + + + + +Node2 + + +arax_accel_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_init_aligned + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +arax_proc_init + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +arax_task_alloc + + + + + +Node1->Node8 + + + + + + + + +Node16 + + +arax_vaccel_init + + + + + +Node1->Node16 + + + + + + + + +Node4 + + +arax_data_init + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +ARAX_BUFFER + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +arax_proc_register + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +arax_task_issue + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_data_allocate +_remote + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_get + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +arax_data_set + + + + + +Node9->Node13 + + + + + + + + +Node14 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node9->Node14 + + + + + + + + +Node15 + + +arax_task_issue_sync + + + + + +Node9->Node15 + + + + + + + + +Node12 + + +arax_data_memcpy + + + + + +Node11->Node12 + + + + + + + + +Node13->Node12 + + + + + + + + +Node16->Node2 + + + + + + + + +Node17 + + +arax_accel_acquire_phys + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +arax_accel_acquire_type + + + + + +Node16->Node18 + + + + + + + + diff --git a/a01412_a668fd893484b6e2d67d8b372b508d14f_icgraph.map b/a01412_a668fd893484b6e2d67d8b372b508d14f_icgraph.map new file mode 100644 index 00000000..586d8082 --- /dev/null +++ b/a01412_a668fd893484b6e2d67d8b372b508d14f_icgraph.map @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01412_a668fd893484b6e2d67d8b372b508d14f_icgraph.md5 b/a01412_a668fd893484b6e2d67d8b372b508d14f_icgraph.md5 new file mode 100644 index 00000000..378278eb --- /dev/null +++ b/a01412_a668fd893484b6e2d67d8b372b508d14f_icgraph.md5 @@ -0,0 +1 @@ +42fdeb356a5b0b612d55065744636de2 \ No newline at end of file diff --git a/a01412_a668fd893484b6e2d67d8b372b508d14f_icgraph.svg b/a01412_a668fd893484b6e2d67d8b372b508d14f_icgraph.svg new file mode 100644 index 00000000..bbad6dba --- /dev/null +++ b/a01412_a668fd893484b6e2d67d8b372b508d14f_icgraph.svg @@ -0,0 +1,256 @@ + + + + + + +arax_object_type_to_str + + +Node1 + + +arax_object_type_to_str + + + + + +Node2 + + +arax_data_migrate_accel + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_arg_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_input_init + + + + + +Node2->Node4 + + + + + + + + +Node13 + + +arax_data_output_init + + + + + +Node2->Node13 + + + + + + + + +Node5 + + +arax_task_alloc + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_task_issue + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_data_allocate +_remote + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_get + + + + + +Node6->Node8 + + + + + + + + +Node10 + + +arax_data_set + + + + + +Node6->Node10 + + + + + + + + +Node11 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node6->Node11 + + + + + + + + +Node12 + + +arax_task_issue_sync + + + + + +Node6->Node12 + + + + + + + + +Node9 + + +arax_data_memcpy + + + + + +Node8->Node9 + + + + + + + + +Node10->Node9 + + + + + + + + +Node13->Node5 + + + + + + + + diff --git a/a01412_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.map b/a01412_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.map new file mode 100644 index 00000000..25909682 --- /dev/null +++ b/a01412_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01412_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.md5 b/a01412_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.md5 new file mode 100644 index 00000000..93b36e9f --- /dev/null +++ b/a01412_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.md5 @@ -0,0 +1 @@ +c8e0723a8c58366045f3b805c8650cb0 \ No newline at end of file diff --git a/a01412_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.svg b/a01412_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.svg new file mode 100644 index 00000000..a5167445 --- /dev/null +++ b/a01412_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_object_rename + + +Node1 + + +arax_object_rename + + + + + +Node2 + + +arch_alloc_allocate + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01412_a86352ba91ba482c6688b7364d10bf956_cgraph.map b/a01412_a86352ba91ba482c6688b7364d10bf956_cgraph.map new file mode 100644 index 00000000..347fd023 --- /dev/null +++ b/a01412_a86352ba91ba482c6688b7364d10bf956_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01412_a86352ba91ba482c6688b7364d10bf956_cgraph.md5 b/a01412_a86352ba91ba482c6688b7364d10bf956_cgraph.md5 new file mode 100644 index 00000000..468f42db --- /dev/null +++ b/a01412_a86352ba91ba482c6688b7364d10bf956_cgraph.md5 @@ -0,0 +1 @@ +fe0973e4c40efebc4865be28b008099b \ No newline at end of file diff --git a/a01412_a86352ba91ba482c6688b7364d10bf956_cgraph.svg b/a01412_a86352ba91ba482c6688b7364d10bf956_cgraph.svg new file mode 100644 index 00000000..91d3eb34 --- /dev/null +++ b/a01412_a86352ba91ba482c6688b7364d10bf956_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_object_repo_init + + +Node1 + + +arax_object_repo_init + + + + + +Node2 + + +utils_list_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +utils_list_node_init + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01412_a86352ba91ba482c6688b7364d10bf956_icgraph.map b/a01412_a86352ba91ba482c6688b7364d10bf956_icgraph.map new file mode 100644 index 00000000..b5f09563 --- /dev/null +++ b/a01412_a86352ba91ba482c6688b7364d10bf956_icgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01412_a86352ba91ba482c6688b7364d10bf956_icgraph.md5 b/a01412_a86352ba91ba482c6688b7364d10bf956_icgraph.md5 new file mode 100644 index 00000000..1cd5149f --- /dev/null +++ b/a01412_a86352ba91ba482c6688b7364d10bf956_icgraph.md5 @@ -0,0 +1 @@ +48f4c8d5b1506154676a84462b64d7f7 \ No newline at end of file diff --git a/a01412_a86352ba91ba482c6688b7364d10bf956_icgraph.svg b/a01412_a86352ba91ba482c6688b7364d10bf956_icgraph.svg new file mode 100644 index 00000000..df031e0a --- /dev/null +++ b/a01412_a86352ba91ba482c6688b7364d10bf956_icgraph.svg @@ -0,0 +1,203 @@ + + + + + + +arax_object_repo_init + + +Node1 + + +arax_object_repo_init + + + + + +Node2 + + +arax_pipe_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01412_a9255b8011e6d7c9b28c7df40065efb28_icgraph.map b/a01412_a9255b8011e6d7c9b28c7df40065efb28_icgraph.map new file mode 100644 index 00000000..ed8b4504 --- /dev/null +++ b/a01412_a9255b8011e6d7c9b28c7df40065efb28_icgraph.map @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01412_a9255b8011e6d7c9b28c7df40065efb28_icgraph.md5 b/a01412_a9255b8011e6d7c9b28c7df40065efb28_icgraph.md5 new file mode 100644 index 00000000..aaad5b21 --- /dev/null +++ b/a01412_a9255b8011e6d7c9b28c7df40065efb28_icgraph.md5 @@ -0,0 +1 @@ +65b362f24dd00c4a09e7b6116ab08e41 \ No newline at end of file diff --git a/a01412_a9255b8011e6d7c9b28c7df40065efb28_icgraph.svg b/a01412_a9255b8011e6d7c9b28c7df40065efb28_icgraph.svg new file mode 100644 index 00000000..bf026e77 --- /dev/null +++ b/a01412_a9255b8011e6d7c9b28c7df40065efb28_icgraph.svg @@ -0,0 +1,427 @@ + + + + + + +arax_object_ref_inc + + +Node1 + + +arax_object_ref_inc + + + + + +Node2 + + +arax_accel_list + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_allocate +_remote + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_data_input_init + + + + + +Node1->Node4 + + + + + + + + +Node9 + + +arax_data_set + + + + + +Node1->Node9 + + + + + + + + +Node12 + + +arax_data_migrate_accel + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +arax_data_output_init + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +arax_data_set_accel + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +arax_data_set_remote + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +arax_proc_get + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +arax_task_submit + + + + + +Node1->Node18 + + + + + + + + +Node5 + + +arax_task_alloc + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_task_issue + + + + + +Node5->Node6 + + + + + + + + +Node6->Node3 + + + + + + + + +Node7 + + +arax_data_get + + + + + +Node6->Node7 + + + + + + + + +Node6->Node9 + + + + + + + + +Node10 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node6->Node10 + + + + + + + + +Node11 + + +arax_task_issue_sync + + + + + +Node6->Node11 + + + + + + + + +Node8 + + +arax_data_memcpy + + + + + +Node7->Node8 + + + + + + + + +Node9->Node8 + + + + + + + + +Node12->Node4 + + + + + + + + +Node13 + + +arax_data_arg_init + + + + + +Node12->Node13 + + + + + + + + +Node12->Node14 + + + + + + + + +Node14->Node5 + + + + + + + + +Node17->Node3 + + + + + + + + +Node17->Node7 + + + + + + + + +Node17->Node9 + + + + + + + + +Node17->Node10 + + + + + + + + +Node18->Node6 + + + + + + + + diff --git a/a01412_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.map b/a01412_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.map new file mode 100644 index 00000000..28c30678 --- /dev/null +++ b/a01412_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.map @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01412_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.md5 b/a01412_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.md5 new file mode 100644 index 00000000..b1a8009a --- /dev/null +++ b/a01412_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.md5 @@ -0,0 +1 @@ +b69447862501137039d07e3f2d980f1d \ No newline at end of file diff --git a/a01412_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.svg b/a01412_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.svg new file mode 100644 index 00000000..a4c811cc --- /dev/null +++ b/a01412_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.svg @@ -0,0 +1,247 @@ + + + + + + +arax_object_list_lock + + +Node1 + + +arax_object_list_lock + + + + + +Node2 + + +arax_accel_list + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_ref_offset + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_pipe_delete_accel + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +arax_pipe_find_accel + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +arax_pipe_find_proc + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +arax_proc_get + + + + + +Node6->Node7 + + + + + + + + +Node13 + + +arax_proc_register + + + + + +Node6->Node13 + + + + + + + + +Node8 + + +arax_data_allocate +_remote + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_get + + + + + +Node7->Node9 + + + + + + + + +Node11 + + +arax_data_set + + + + + +Node7->Node11 + + + + + + + + +Node12 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node7->Node12 + + + + + + + + +Node10 + + +arax_data_memcpy + + + + + +Node9->Node10 + + + + + + + + +Node11->Node10 + + + + + + + + diff --git a/a01412_abb03d3cde2d1354544cd082482c3f185_icgraph.map b/a01412_abb03d3cde2d1354544cd082482c3f185_icgraph.map new file mode 100644 index 00000000..3a49bbef --- /dev/null +++ b/a01412_abb03d3cde2d1354544cd082482c3f185_icgraph.map @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01412_abb03d3cde2d1354544cd082482c3f185_icgraph.md5 b/a01412_abb03d3cde2d1354544cd082482c3f185_icgraph.md5 new file mode 100644 index 00000000..eafca76c --- /dev/null +++ b/a01412_abb03d3cde2d1354544cd082482c3f185_icgraph.md5 @@ -0,0 +1 @@ +5d17bd29dbbcbf3921532d3a95487149 \ No newline at end of file diff --git a/a01412_abb03d3cde2d1354544cd082482c3f185_icgraph.svg b/a01412_abb03d3cde2d1354544cd082482c3f185_icgraph.svg new file mode 100644 index 00000000..6c13b613 --- /dev/null +++ b/a01412_abb03d3cde2d1354544cd082482c3f185_icgraph.svg @@ -0,0 +1,247 @@ + + + + + + +arax_object_list_unlock + + +Node1 + + +arax_object_list_unlock + + + + + +Node2 + + +arax_accel_list + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_ref_offset + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_pipe_delete_accel + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +arax_pipe_find_accel + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +arax_pipe_find_proc + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +arax_proc_get + + + + + +Node6->Node7 + + + + + + + + +Node13 + + +arax_proc_register + + + + + +Node6->Node13 + + + + + + + + +Node8 + + +arax_data_allocate +_remote + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_get + + + + + +Node7->Node9 + + + + + + + + +Node11 + + +arax_data_set + + + + + +Node7->Node11 + + + + + + + + +Node12 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node7->Node12 + + + + + + + + +Node10 + + +arax_data_memcpy + + + + + +Node9->Node10 + + + + + + + + +Node11->Node10 + + + + + + + + diff --git a/a01412_afe7e4a63c40fbcaae742b8de8693483f_cgraph.map b/a01412_afe7e4a63c40fbcaae742b8de8693483f_cgraph.map new file mode 100644 index 00000000..ce157ad4 --- /dev/null +++ b/a01412_afe7e4a63c40fbcaae742b8de8693483f_cgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01412_afe7e4a63c40fbcaae742b8de8693483f_cgraph.md5 b/a01412_afe7e4a63c40fbcaae742b8de8693483f_cgraph.md5 new file mode 100644 index 00000000..ba2b33de --- /dev/null +++ b/a01412_afe7e4a63c40fbcaae742b8de8693483f_cgraph.md5 @@ -0,0 +1 @@ +4959d158748106a2696055c3cadd1b7d \ No newline at end of file diff --git a/a01412_afe7e4a63c40fbcaae742b8de8693483f_cgraph.svg b/a01412_afe7e4a63c40fbcaae742b8de8693483f_cgraph.svg new file mode 100644 index 00000000..2d610557 --- /dev/null +++ b/a01412_afe7e4a63c40fbcaae742b8de8693483f_cgraph.svg @@ -0,0 +1,183 @@ + + + + + + +arax_object_ref_dec + + +Node1 + + +arax_object_ref_dec + + + + + +Node2 + + +arax_pipe_size_inc + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +utils_list_del + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +arax_throttle_size_inc + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +async_condition_lock + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +async_condition_notify + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +async_condition_unlock + + + + + +Node3->Node8 + + + + + + + + +Node5 + + +async_completion_wait + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_semaphore_inc + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_completion_complete + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01412_afe7e4a63c40fbcaae742b8de8693483f_icgraph.map b/a01412_afe7e4a63c40fbcaae742b8de8693483f_icgraph.map new file mode 100644 index 00000000..6f9aa995 --- /dev/null +++ b/a01412_afe7e4a63c40fbcaae742b8de8693483f_icgraph.map @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01412_afe7e4a63c40fbcaae742b8de8693483f_icgraph.md5 b/a01412_afe7e4a63c40fbcaae742b8de8693483f_icgraph.md5 new file mode 100644 index 00000000..c28a20a7 --- /dev/null +++ b/a01412_afe7e4a63c40fbcaae742b8de8693483f_icgraph.md5 @@ -0,0 +1 @@ +f39d7cc219f5899a7fee3a10aa85d272 \ No newline at end of file diff --git a/a01412_afe7e4a63c40fbcaae742b8de8693483f_icgraph.svg b/a01412_afe7e4a63c40fbcaae742b8de8693483f_icgraph.svg new file mode 100644 index 00000000..71c84e2d --- /dev/null +++ b/a01412_afe7e4a63c40fbcaae742b8de8693483f_icgraph.svg @@ -0,0 +1,454 @@ + + + + + + +arax_object_ref_dec + + +Node1 + + +arax_object_ref_dec + + + + + +Node2 + + +arax_accel_list_free + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_release + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +arax_data_free + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +arax_data_migrate_accel + + + + + +Node1->Node6 + + + + + + + + +Node15 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node1->Node15 + + + + + + + + +Node18 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +arax_pipe_delete_accel + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +arax_proc_put + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +arax_task_free + + + + + +Node1->Node21 + + + + + + + + +Node4 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node3->Node4 + + + + + + + + +Node7 + + +arax_data_arg_init + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_input_init + + + + + +Node6->Node8 + + + + + + + + +Node17 + + +arax_data_output_init + + + + + +Node6->Node17 + + + + + + + + +Node9 + + +arax_task_alloc + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_task_issue + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_allocate +_remote + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_data_get + + + + + +Node10->Node12 + + + + + + + + +Node14 + + +arax_data_set + + + + + +Node10->Node14 + + + + + + + + +Node10->Node15 + + + + + + + + +Node16 + + +arax_task_issue_sync + + + + + +Node10->Node16 + + + + + + + + +Node13 + + +arax_data_memcpy + + + + + +Node12->Node13 + + + + + + + + +Node14->Node13 + + + + + + + + +Node17->Node9 + + + + + + + + +Node20->Node12 + + + + + + + + +Node20->Node14 + + + + + + + + +Node21->Node11 + + + + + + + + +Node21->Node12 + + + + + + + + +Node21->Node16 + + + + + + + + diff --git a/a01412_source.html b/a01412_source.html new file mode 100644 index 00000000..048dd0ac --- /dev/null +++ b/a01412_source.html @@ -0,0 +1,216 @@ + + + + + + + +Arax: arax_object.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_object.h
+
+
+Go to the documentation of this file.
1#ifndef ARAX_OBJECT_HEADER
+
2#define ARAX_OBJECT_HEADER
+
3#include "utils/list.h"
+
4#include "utils/spinlock.h"
+
5#include "arch/alloc.h"
+
6
+
7#ifdef __cplusplus
+
8extern "C" {
+
9#endif /* ifdef __cplusplus */
+
10
+
14typedef enum arax_object_type
+
15{
+
16 ARAX_TYPE_PHYS_ACCEL, /* Physical Accelerator */
+
17 ARAX_TYPE_VIRT_ACCEL, /* Virtual Accelerator */
+
18 ARAX_TYPE_PROC, /* Procedure */
+
19 ARAX_TYPE_DATA, /* Data Allocation */
+
20 ARAX_TYPE_TASK, /* Task */
+
21 ARAX_TYPE_COUNT /* Number of types */
+ +
23
+
27typedef struct
+
28{
+ +
30 struct
+
31 {
+ + + + +
36
+
40typedef struct
+
41{
+ + +
44 size_t alloc_size;
+ +
46 volatile int ref_count;
+
47 char * name;
+ +
49
+ +
57
+ +
68
+ +
76
+ +
91 arax_object_type_e type, const char *name, size_t size, const int ref_count);
+
92
+
100void arax_object_rename(arax_object_s *obj, const char *fmt, ...);
+
101
+ +
108
+ +
116
+ +
125
+ +
132
+ +
140 arax_object_type_e type);
+
141
+ +
151
+
152#define ARAX_OBJ_DTOR_DECL(TYPE) void __dtor_ ## TYPE(arax_pipe_s * pipe, arax_object_s * obj)
+
153#define ARAX_OBJ_DTOR_USE(TYPE) __dtor_ ## TYPE
+
154
+
155#ifdef __cplusplus
+
156}
+
157#endif /* ifdef __cplusplus */
+
158
+
159#endif /* ifndef ARAX_OBJECT_HEADER */
+ + +
volatile uint32_t utils_spinlock
Definition spinlock.h:10
+
int arax_object_ref_dec_pre_locked(arax_object_s *obj)
+
enum arax_object_type arax_object_type_e
+
arax_object_type
Definition arax_object.h:15
+
@ ARAX_TYPE_DATA
Definition arax_object.h:19
+
@ ARAX_TYPE_COUNT
Definition arax_object.h:21
+
@ ARAX_TYPE_VIRT_ACCEL
Definition arax_object.h:17
+
@ ARAX_TYPE_PROC
Definition arax_object.h:18
+
@ ARAX_TYPE_TASK
Definition arax_object.h:20
+
@ ARAX_TYPE_PHYS_ACCEL
Definition arax_object.h:16
+
int arax_object_repo_exit(arax_object_repo_s *repo)
Definition arax_object.c:71
+
arax_object_s * arax_object_register(arax_object_repo_s *repo, arax_object_type_e type, const char *name, size_t size, const int ref_count)
Definition arax_object.c:98
+
const char * arax_object_type_to_str(arax_object_type_e type)
Definition arax_object.c:90
+
void arax_object_rename(arax_object_s *obj, const char *fmt,...)
+
int arax_object_refs(arax_object_s *obj)
+
void arax_object_repo_init(arax_object_repo_s *repo, arax_pipe_s *pipe)
Definition arax_object.c:60
+
void arax_object_ref_inc(arax_object_s *obj)
+
utils_list_s * arax_object_list_lock(arax_object_repo_s *repo, arax_object_type_e type)
+
void arax_object_list_unlock(arax_object_repo_s *repo, arax_object_type_e type)
+
int arax_object_ref_dec(arax_object_s *obj)
+ +
utils_spinlock lock
Definition arax_object.h:33
+
arax_pipe_s * pipe
Definition arax_object.h:29
+
utils_list_s list
Definition arax_object.h:32
+ +
size_t alloc_size
Definition arax_object.h:44
+
volatile int ref_count
Definition arax_object.h:46
+
arax_object_type_e type
Definition arax_object.h:45
+ +
arax_object_repo_s * repo
Definition arax_object.h:42
+
utils_list_node_s list
Definition arax_object.h:43
+ + + +
+
+ + + + diff --git a/a01413.map b/a01413.map new file mode 100644 index 00000000..63b1c294 --- /dev/null +++ b/a01413.map @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/a01413.md5 b/a01413.md5 new file mode 100644 index 00000000..1e05eedf --- /dev/null +++ b/a01413.md5 @@ -0,0 +1 @@ +f39eec4e365b8ea2b072b1acf11d1956 \ No newline at end of file diff --git a/a01413.svg b/a01413.svg new file mode 100644 index 00000000..a2323897 --- /dev/null +++ b/a01413.svg @@ -0,0 +1,156 @@ + + + + + + +arax_object.h + + +Node1 + + +arax_object.h + + + + + +Node2 + + +utils/list.h + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +utils/spinlock.h + + + + + +Node1->Node5 + + + + + + + + +Node8 + + +arch/alloc.h + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +stddef.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node2->Node4 + + + + + + + + +Node5->Node4 + + + + + + + + +Node6 + + +utils/arax_assert.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +compat.h + + + + + +Node6->Node7 + + + + + + + + diff --git a/a01414.map b/a01414.map new file mode 100644 index 00000000..68dd77b3 --- /dev/null +++ b/a01414.map @@ -0,0 +1,64 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01414.md5 b/a01414.md5 new file mode 100644 index 00000000..3a5d21a9 --- /dev/null +++ b/a01414.md5 @@ -0,0 +1 @@ +daeea69230e8ab5640a3b47eada19068 \ No newline at end of file diff --git a/a01414.svg b/a01414.svg new file mode 100644 index 00000000..0b0b47b9 --- /dev/null +++ b/a01414.svg @@ -0,0 +1,570 @@ + + + + + + +arax_object.h + + +Node1 + + +arax_object.h + + + + + +Node2 + + +arax_assert.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data.h + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +arax_object.c + + + + + +Node1->Node6 + + + + + + + + +Node9 + + +arax_proc.h + + + + + +Node1->Node9 + + + + + + + + +Node18 + + +arax_vaccel.h + + + + + +Node1->Node18 + + + + + + + + +Node20 + + +async.h + + + + + +Node1->Node20 + + + + + + + + +Node22 + + +async.h + + + + + +Node1->Node22 + + + + + + + + +Node24 + + +async.h + + + + + +Node1->Node24 + + + + + + + + +Node4 + + +arax_data.c + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data_private.h + + + + + +Node3->Node5 + + + + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +arax_task.c + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +impl.c + + + + + +Node3->Node8 + + + + + + + + +Node5->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10 + + +arax_proc.c + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_task.h + + + + + +Node9->Node11 + + + + + + + + +Node11->Node4 + + + + + + + + +Node11->Node6 + + + + + + + + +Node12 + + +arax_pipe.h + + + + + +Node11->Node12 + + + + + + + + +Node12->Node4 + + + + + + + + +Node12->Node6 + + + + + + + + +Node12->Node7 + + + + + + + + +Node12->Node8 + + + + + + + + +Node13 + + +arax_accel.c + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +arax_pipe.c + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +arax_plot.c + + + + + +Node12->Node15 + + + + + + + + +Node16 + + +arax_ptr.c + + + + + +Node12->Node16 + + + + + + + + +Node17 + + +arax_vaccel.c + + + + + +Node12->Node17 + + + + + + + + +Node19 + + +arax_accel.h + + + + + +Node18->Node19 + + + + + + + + +Node19->Node3 + + + + + + + + +Node19->Node6 + + + + + + + + +Node19->Node12 + + + + + + + + +Node19->Node18 + + + + + + + + +Node21 + + +async.c + + + + + +Node20->Node21 + + + + + + + + +Node23 + + +async.c + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +async.c + + + + + +Node24->Node25 + + + + + + + + diff --git a/a01415.html b/a01415.html new file mode 100644 index 00000000..6a1a3d13 --- /dev/null +++ b/a01415.html @@ -0,0 +1,356 @@ + + + + + + + +Arax: arax_proc.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_proc.h File Reference
+
+
+
#include <arax.h>
+#include "core/arax_object.h"
+
+ + Include dependency graph for arax_proc.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  arax_proc_s
 
+ + + + + + + + + +

+Functions

arax_proc_sarax_proc_init (arax_object_repo_s *repo, const char *name)
 
AraxFunctorarax_proc_get_functor (arax_proc_s *proc, arax_accel_type_e type)
 
AraxFunctorarax_proc_set_functor (arax_proc_s *proc, arax_accel_type_e type, AraxFunctor *vfn)
 
int arax_proc_can_run_at (arax_proc_s *proc, arax_accel_type_e type)
 
+

Function Documentation

+ +

◆ arax_proc_can_run_at()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int arax_proc_can_run_at (arax_proc_sproc,
arax_accel_type_e type 
)
+
+

Returns if proc can 'run' in an accelerator of type.

+
Note
type has to be different than ANY.
+
Parameters
+ + + +
procAn initialized arax_proc_s instance.
typeAccelerator type to check against.
+
+
+
Returns
0 if type can not execute proc. Non zero otherwise.
+ +

Definition at line 33 of file arax_proc.c.

+ +

References ANY, arax_accel_valid_type(), arax_assert, and arax_proc_s::canrun.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_proc_get_functor()

+ +
+
+ + + + + + + + + + + + + + + + + + +
AraxFunctor * arax_proc_get_functor (arax_proc_sproc,
arax_accel_type_e type 
)
+
+

Return proc functor pointer for provided type.

Returns
Pointer to functor, null is returned if no functior is set for given type.
+ +

Definition at line 16 of file arax_proc.c.

+ +

References arax_accel_valid_type(), arax_assert, and arax_proc_s::functors.

+ +

Referenced by arax_proc_set_functor().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_proc_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
arax_proc_s * arax_proc_init (arax_object_repo_srepo,
const char * name 
)
+
+

Initialize a arax_proc at the memory pointed by mem.

+
Parameters
+ + + +
repoThe arax_object_repo_s that will track the initialized procedure.
nameNULL terminated string, will be copied to private buffer.
+
+
+
Returns
An initialized instance of arax_proc_s, NULL on failure.
+ +

Definition at line 4 of file arax_proc.c.

+ +

References arax_object_register(), and ARAX_TYPE_PROC.

+ +

Referenced by arax_proc_register().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_proc_set_functor()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
AraxFunctor * arax_proc_set_functor (arax_proc_sproc,
arax_accel_type_e type,
AraxFunctorvfn 
)
+
+

Set the AraxFunctor of proc for the provided type.

Parameters
+ + + + +
procAn initialized arax_proc_s instance.
typeAccelerator type for provided functor.
vfnFunctor pointer, can be null.
+
+
+
Returns
Returns previous value of proc, just as arax_proc_get_functor() would return.
+ +

Definition at line 22 of file arax_proc.c.

+ +

References arax_proc_get_functor(), arax_proc_s::canrun, and arax_proc_s::functors.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01415.js b/a01415.js new file mode 100644 index 00000000..f40778d5 --- /dev/null +++ b/a01415.js @@ -0,0 +1,8 @@ +var a01415 = +[ + [ "arax_proc_s", "a02278.html", "a02278" ], + [ "arax_proc_can_run_at", "a01415.html#ab52a257305ef35f9fb9ebc0fdfe4b81c", null ], + [ "arax_proc_get_functor", "a01415.html#a30352290ef80c644620afca91f719cfe", null ], + [ "arax_proc_init", "a01415.html#a86ac572ea8f5f613129192c47d598818", null ], + [ "arax_proc_set_functor", "a01415.html#ae67ebc6d04dedfc104b4a61233d6eab4", null ] +]; \ No newline at end of file diff --git a/a01415_a30352290ef80c644620afca91f719cfe_cgraph.map b/a01415_a30352290ef80c644620afca91f719cfe_cgraph.map new file mode 100644 index 00000000..98a196d8 --- /dev/null +++ b/a01415_a30352290ef80c644620afca91f719cfe_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01415_a30352290ef80c644620afca91f719cfe_cgraph.md5 b/a01415_a30352290ef80c644620afca91f719cfe_cgraph.md5 new file mode 100644 index 00000000..6aae4dc6 --- /dev/null +++ b/a01415_a30352290ef80c644620afca91f719cfe_cgraph.md5 @@ -0,0 +1 @@ +8ec6333eb8cfe08e8ede4972f362d04d \ No newline at end of file diff --git a/a01415_a30352290ef80c644620afca91f719cfe_cgraph.svg b/a01415_a30352290ef80c644620afca91f719cfe_cgraph.svg new file mode 100644 index 00000000..a23160b0 --- /dev/null +++ b/a01415_a30352290ef80c644620afca91f719cfe_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_proc_get_functor + + +Node1 + + +arax_proc_get_functor + + + + + +Node2 + + +arax_accel_valid_type + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01415_a30352290ef80c644620afca91f719cfe_icgraph.map b/a01415_a30352290ef80c644620afca91f719cfe_icgraph.map new file mode 100644 index 00000000..78586cca --- /dev/null +++ b/a01415_a30352290ef80c644620afca91f719cfe_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01415_a30352290ef80c644620afca91f719cfe_icgraph.md5 b/a01415_a30352290ef80c644620afca91f719cfe_icgraph.md5 new file mode 100644 index 00000000..91f68c2f --- /dev/null +++ b/a01415_a30352290ef80c644620afca91f719cfe_icgraph.md5 @@ -0,0 +1 @@ +162007c4b5ea95964fbc833b431aa849 \ No newline at end of file diff --git a/a01415_a30352290ef80c644620afca91f719cfe_icgraph.svg b/a01415_a30352290ef80c644620afca91f719cfe_icgraph.svg new file mode 100644 index 00000000..74fcd7f0 --- /dev/null +++ b/a01415_a30352290ef80c644620afca91f719cfe_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_proc_get_functor + + +Node1 + + +arax_proc_get_functor + + + + + +Node2 + + +arax_proc_set_functor + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01415_a86ac572ea8f5f613129192c47d598818_cgraph.map b/a01415_a86ac572ea8f5f613129192c47d598818_cgraph.map new file mode 100644 index 00000000..66d51432 --- /dev/null +++ b/a01415_a86ac572ea8f5f613129192c47d598818_cgraph.map @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01415_a86ac572ea8f5f613129192c47d598818_cgraph.md5 b/a01415_a86ac572ea8f5f613129192c47d598818_cgraph.md5 new file mode 100644 index 00000000..2c366af3 --- /dev/null +++ b/a01415_a86ac572ea8f5f613129192c47d598818_cgraph.md5 @@ -0,0 +1 @@ +59b63e427bb7cc237f7522e366bdaf8b \ No newline at end of file diff --git a/a01415_a86ac572ea8f5f613129192c47d598818_cgraph.svg b/a01415_a86ac572ea8f5f613129192c47d598818_cgraph.svg new file mode 100644 index 00000000..8f9f5756 --- /dev/null +++ b/a01415_a86ac572ea8f5f613129192c47d598818_cgraph.svg @@ -0,0 +1,273 @@ + + + + + + +arax_proc_init + + +Node1 + + +arax_proc_init + + + + + +Node2 + + +arax_object_register + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_size_dec + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +arch_alloc_allocate + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +utils_list_add + + + + + +Node2->Node12 + + + + + + + + +Node14 + + +utils_list_node_init + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +arax_throttle_size_dec + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_condition_unlock + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +async_condition_wait + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_completion_complete + + + + + +Node7->Node8 + + + + + + + + +Node9->Node6 + + + + + + + + +Node9->Node8 + + + + + + + + +Node10 + + +async_semaphore_dec + + + + + +Node9->Node10 + + + + + + + + +Node13 + + +utils_list_node_add + + + + + +Node12->Node13 + + + + + + + + diff --git a/a01415_a86ac572ea8f5f613129192c47d598818_icgraph.map b/a01415_a86ac572ea8f5f613129192c47d598818_icgraph.map new file mode 100644 index 00000000..63445513 --- /dev/null +++ b/a01415_a86ac572ea8f5f613129192c47d598818_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01415_a86ac572ea8f5f613129192c47d598818_icgraph.md5 b/a01415_a86ac572ea8f5f613129192c47d598818_icgraph.md5 new file mode 100644 index 00000000..dc7aa409 --- /dev/null +++ b/a01415_a86ac572ea8f5f613129192c47d598818_icgraph.md5 @@ -0,0 +1 @@ +fad0e7a5e71865049bcb06b6164d6995 \ No newline at end of file diff --git a/a01415_a86ac572ea8f5f613129192c47d598818_icgraph.svg b/a01415_a86ac572ea8f5f613129192c47d598818_icgraph.svg new file mode 100644 index 00000000..d80084e3 --- /dev/null +++ b/a01415_a86ac572ea8f5f613129192c47d598818_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_proc_init + + +Node1 + + +arax_proc_init + + + + + +Node2 + + +arax_proc_register + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01415_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.map b/a01415_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.map new file mode 100644 index 00000000..8d43ccb2 --- /dev/null +++ b/a01415_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01415_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.md5 b/a01415_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.md5 new file mode 100644 index 00000000..10a84636 --- /dev/null +++ b/a01415_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.md5 @@ -0,0 +1 @@ +6c099e083544f804a93e5e03f913bcf3 \ No newline at end of file diff --git a/a01415_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.svg b/a01415_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.svg new file mode 100644 index 00000000..bb57e41f --- /dev/null +++ b/a01415_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_proc_can_run_at + + +Node1 + + +arax_proc_can_run_at + + + + + +Node2 + + +arax_accel_valid_type + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01415_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.map b/a01415_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.map new file mode 100644 index 00000000..af492b9a --- /dev/null +++ b/a01415_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01415_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.md5 b/a01415_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.md5 new file mode 100644 index 00000000..eb7b162a --- /dev/null +++ b/a01415_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.md5 @@ -0,0 +1 @@ +83b53a3c3c4dd98d58bfd42d131a2db0 \ No newline at end of file diff --git a/a01415_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.svg b/a01415_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.svg new file mode 100644 index 00000000..4c2443ad --- /dev/null +++ b/a01415_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_proc_set_functor + + +Node1 + + +arax_proc_set_functor + + + + + +Node2 + + +arax_proc_get_functor + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_valid_type + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01415_source.html b/a01415_source.html new file mode 100644 index 00000000..a6f407b1 --- /dev/null +++ b/a01415_source.html @@ -0,0 +1,157 @@ + + + + + + + +Arax: arax_proc.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_proc.h
+
+
+Go to the documentation of this file.
1#ifndef ARAX_PROC_HEADER
+
2#define ARAX_PROC_HEADER
+
3#include <arax.h>
+
4#include "core/arax_object.h"
+
5
+
6#ifdef __cplusplus
+
7extern "C" {
+
8#endif /* ifdef __cplusplus */
+
9
+
10#if ARAX_ACCEL_TYPES > 64
+
11#error More accel types, than can fit in arax_proc_s.canrun
+
12#endif
+
13
+
14
+
15typedef struct
+
16{
+ +
18 uint64_t canrun; // < One bit set for each ARAX_ACCEL_TYPE that has a functor
+ +
20 /* To add more as needed */
+ +
22
+
30arax_proc_s* arax_proc_init(arax_object_repo_s *repo, const char *name);
+
31
+ +
37
+ +
46
+ +
57
+
58#ifdef __cplusplus
+
59}
+
60#endif /* ifdef __cplusplus */
+
61
+
62#endif /* ifndef ARAX_PROC_HEADER */
+ +
arax_task_state_e() AraxFunctor(arax_task *)
Definition arax_types.h:108
+
enum arax_accel_type arax_accel_type_e
+
@ ARAX_ACCEL_TYPES
Definition arax_types.h:93
+ +
AraxFunctor * arax_proc_get_functor(arax_proc_s *proc, arax_accel_type_e type)
Definition arax_proc.c:16
+
arax_proc_s * arax_proc_init(arax_object_repo_s *repo, const char *name)
Definition arax_proc.c:4
+
int arax_proc_can_run_at(arax_proc_s *proc, arax_accel_type_e type)
Definition arax_proc.c:33
+
AraxFunctor * arax_proc_set_functor(arax_proc_s *proc, arax_accel_type_e type, AraxFunctor *vfn)
Definition arax_proc.c:22
+ + + +
uint64_t canrun
Definition arax_proc.h:18
+
arax_object_s obj
Definition arax_proc.h:17
+
+
+ + + + diff --git a/a01416.map b/a01416.map new file mode 100644 index 00000000..cd37a0aa --- /dev/null +++ b/a01416.map @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01416.md5 b/a01416.md5 new file mode 100644 index 00000000..d28705c7 --- /dev/null +++ b/a01416.md5 @@ -0,0 +1 @@ +fadbac65f57e223f040db525ab602110 \ No newline at end of file diff --git a/a01416.svg b/a01416.svg new file mode 100644 index 00000000..62fa2dc9 --- /dev/null +++ b/a01416.svg @@ -0,0 +1,300 @@ + + + + + + +arax_proc.h + + +Node1 + + +arax_proc.h + + + + + +Node2 + + +arax.h + + + + + +Node1->Node2 + + + + + + + + +Node9 + + +core/arax_object.h + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +stdio.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stddef.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_types.h + + + + + +Node2->Node5 + + + + + + + + +Node8 + + +core/arax_accel_types.h + + + + + +Node2->Node8 + + + + + + + + +Node6 + + +sys/time.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +time.h + + + + + +Node5->Node7 + + + + + + + + +Node8->Node5 + + + + + + + + +Node10 + + +utils/list.h + + + + + +Node9->Node10 + + + + + + + + +Node12 + + +utils/spinlock.h + + + + + +Node9->Node12 + + + + + + + + +Node15 + + +arch/alloc.h + + + + + +Node9->Node15 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +stdint.h + + + + + +Node10->Node11 + + + + + + + + +Node12->Node11 + + + + + + + + +Node13 + + +utils/arax_assert.h + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +compat.h + + + + + +Node13->Node14 + + + + + + + + diff --git a/a01417.map b/a01417.map new file mode 100644 index 00000000..80e19e79 --- /dev/null +++ b/a01417.map @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01417.md5 b/a01417.md5 new file mode 100644 index 00000000..15fbca5d --- /dev/null +++ b/a01417.md5 @@ -0,0 +1 @@ +9f7685bebf89beb6280de479cd1c7941 \ No newline at end of file diff --git a/a01417.svg b/a01417.svg new file mode 100644 index 00000000..18dbb95c --- /dev/null +++ b/a01417.svg @@ -0,0 +1,264 @@ + + + + + + +arax_proc.h + + +Node1 + + +arax_proc.h + + + + + +Node2 + + +arax_object.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_proc.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_task.h + + + + + +Node1->Node4 + + + + + + + + +Node4->Node2 + + + + + + + + +Node5 + + +arax_data.c + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_pipe.h + + + + + +Node4->Node6 + + + + + + + + +Node6->Node2 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +arax_accel.c + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_pipe.c + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_plot.c + + + + + +Node6->Node9 + + + + + + + + +Node10 + + +arax_ptr.c + + + + + +Node6->Node10 + + + + + + + + +Node11 + + +arax_task.c + + + + + +Node6->Node11 + + + + + + + + +Node12 + + +arax_vaccel.c + + + + + +Node6->Node12 + + + + + + + + +Node13 + + +impl.c + + + + + +Node6->Node13 + + + + + + + + diff --git a/a01418.html b/a01418.html new file mode 100644 index 00000000..434a2aaf --- /dev/null +++ b/a01418.html @@ -0,0 +1,173 @@ + + + + + + + +Arax: arax_ptr.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_ptr.h File Reference
+
+
+
#include "utils/compat.h"
+
+ + Include dependency graph for arax_ptr.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Functions

ARAX_CPP int arax_ptr_valid (const void *ptr)
 
+

Function Documentation

+ +

◆ arax_ptr_valid()

+ +
+
+ + + + + + + + +
ARAX_CPP int arax_ptr_valid (const void * ptr)
+
+

Return true if ptr is 'inside' the shared segment ranges.

+ +

Definition at line 4 of file arax_ptr.c.

+ +

References arax_init(), and arax_pipe::shm_size.

+ +

Referenced by _arax_assert_obj(), arax_data_ref(), arax_data_ref_offset(), and arax_plot_register_metric().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01418.js b/a01418.js new file mode 100644 index 00000000..3a21e8d0 --- /dev/null +++ b/a01418.js @@ -0,0 +1,4 @@ +var a01418 = +[ + [ "arax_ptr_valid", "a01418.html#a639e69ccc46ae7f3d6b9992866040bf9", null ] +]; \ No newline at end of file diff --git a/a01418_a639e69ccc46ae7f3d6b9992866040bf9_cgraph.map b/a01418_a639e69ccc46ae7f3d6b9992866040bf9_cgraph.map new file mode 100644 index 00000000..097b698d --- /dev/null +++ b/a01418_a639e69ccc46ae7f3d6b9992866040bf9_cgraph.map @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01418_a639e69ccc46ae7f3d6b9992866040bf9_cgraph.md5 b/a01418_a639e69ccc46ae7f3d6b9992866040bf9_cgraph.md5 new file mode 100644 index 00000000..d105e366 --- /dev/null +++ b/a01418_a639e69ccc46ae7f3d6b9992866040bf9_cgraph.md5 @@ -0,0 +1 @@ +122cfc17b7acf408d6fec557bda9981a \ No newline at end of file diff --git a/a01418_a639e69ccc46ae7f3d6b9992866040bf9_cgraph.svg b/a01418_a639e69ccc46ae7f3d6b9992866040bf9_cgraph.svg new file mode 100644 index 00000000..5717f370 --- /dev/null +++ b/a01418_a639e69ccc46ae7f3d6b9992866040bf9_cgraph.svg @@ -0,0 +1,1029 @@ + + + + + + +arax_ptr_valid + + +Node1 + + +arax_ptr_valid + + + + + +Node2 + + +arax_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_pipe_get_available_size + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +arax_pipe_have_to_mmap + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +arax_pipe_init + + + + + +Node3->Node7 + + + + + + + + +Node23 + + +utils_config_alloc_path + + + + + +Node3->Node23 + + + + + + + + +Node26 + + +utils_config_get_bool + + + + + +Node3->Node26 + + + + + + + + +Node38 + + +arax_pipe_mmap_address + + + + + +Node3->Node38 + + + + + + + + +Node39 + + +async_condition_lock + + + + + +Node3->Node39 + + + + + + + + +Node41 + + +async_condition_unlock + + + + + +Node3->Node41 + + + + + + + + +Node42 + + +async_condition_wait + + + + + +Node3->Node42 + + + + + + + + +Node44 + + +async_meta_init_always + + + + + +Node3->Node44 + + + + + + + + +Node49 + + +utils_config_get_str + + + + + +Node3->Node49 + + + + + + + + +Node50 + + +system_mmap + + + + + +Node3->Node50 + + + + + + + + +Node51 + + +system_process_id + + + + + +Node3->Node51 + + + + + + + + +Node52 + + +system_total_memory + + + + + +Node3->Node52 + + + + + + + + +Node53 + + +utils_config_get_size + + + + + +Node3->Node53 + + + + + + + + +Node33 + + +utils_config_get_source + + + + + +Node3->Node33 + + + + + + + + +Node5 + + +arax_throttle_get_available_size + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +arax_object_repo_init + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +utils_list_init + + + + + +Node7->Node9 + + + + + + + + +Node11 + + +arax_pipe_add_process + + + + + +Node7->Node11 + + + + + + + + +Node12 + + +arax_throttle_init + + + + + +Node7->Node12 + + + + + + + + +Node13 + + +async_condition_init + + + + + +Node7->Node13 + + + + + + + + +Node19 + + +arch_alloc_init_always + + + + + +Node7->Node19 + + + + + + + + +Node20 + + +arch_alloc_init_once + + + + + +Node7->Node20 + + + + + + + + +Node22 + + +async_meta_init_once + + + + + +Node7->Node22 + + + + + + + + +Node37 + + +utils_kv_init + + + + + +Node7->Node37 + + + + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +utils_list_node_init + + + + + +Node9->Node10 + + + + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +async_completion_complete + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +async_completion_init + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +async_condition_unlock + + + + + +Node13->Node16 + + + + + + + + +Node18 + + +async_semaphore_init + + + + + +Node13->Node18 + + + + + + + + +Node21 + + +utils_bitmap_init + + + + + +Node20->Node21 + + + + + + + + +Node22->Node9 + + + + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +utils_config_free_path + + + + + +Node22->Node25 + + + + + + + + +Node22->Node26 + + + + + + + + +Node24 + + +system_home_path + + + + + +Node23->Node24 + + + + + + + + +Node27 + + +utils_config_get_int + + + + + +Node26->Node27 + + + + + + + + +Node28 + + +utils_config_get_long + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +_utils_config_get_str + + + + + +Node28->Node29 + + + + + + + + +Node34 + + +utils_config_write_long + + + + + +Node28->Node34 + + + + + + + + +Node35 + + +utils_config_write_str + + + + + +Node34->Node35 + + + + + + + + +Node40 + + +async_completion_wait + + + + + +Node39->Node40 + + + + + + + + +Node41->Node14 + + + + + + + + +Node42->Node14 + + + + + + + + +Node42->Node40 + + + + + + + + +Node43 + + +async_semaphore_dec + + + + + +Node42->Node43 + + + + + + + + +Node44->Node23 + + + + + + + + +Node44->Node25 + + + + + + + + +Node45 + + +async_thread + + + + + +Node44->Node45 + + + + + + + + +Node44->Node49 + + + + + + + + +Node46 + + +async_completion_check + + + + + +Node45->Node46 + + + + + + + + +Node47 + + +getVmID + + + + + +Node45->Node47 + + + + + + + + +Node48 + + +utils_list_del + + + + + +Node45->Node48 + + + + + + + + +Node49->Node29 + + + + + + + + +Node49->Node35 + + + + + + + + +Node32 + + +system_file_size + + + + + +Node50->Node32 + + + + + + + + +Node53->Node28 + + + + + + + + +Node31 + + +system_env_var + + + + + +Node33->Node31 + + + + + + + + diff --git a/a01418_a639e69ccc46ae7f3d6b9992866040bf9_icgraph.map b/a01418_a639e69ccc46ae7f3d6b9992866040bf9_icgraph.map new file mode 100644 index 00000000..6063def3 --- /dev/null +++ b/a01418_a639e69ccc46ae7f3d6b9992866040bf9_icgraph.map @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/a01418_a639e69ccc46ae7f3d6b9992866040bf9_icgraph.md5 b/a01418_a639e69ccc46ae7f3d6b9992866040bf9_icgraph.md5 new file mode 100644 index 00000000..5ea38297 --- /dev/null +++ b/a01418_a639e69ccc46ae7f3d6b9992866040bf9_icgraph.md5 @@ -0,0 +1 @@ +9f450a2e84596379d3bdadfb988d46f9 \ No newline at end of file diff --git a/a01418_a639e69ccc46ae7f3d6b9992866040bf9_icgraph.svg b/a01418_a639e69ccc46ae7f3d6b9992866040bf9_icgraph.svg new file mode 100644 index 00000000..62f4cce9 --- /dev/null +++ b/a01418_a639e69ccc46ae7f3d6b9992866040bf9_icgraph.svg @@ -0,0 +1,103 @@ + + + + + + +arax_ptr_valid + + +Node1 + + +arax_ptr_valid + + + + + +Node2 + + +_arax_assert_obj + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_ref + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_data_ref_offset + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node1->Node5 + + + + + + + + +Node3->Node4 + + + + + + + + diff --git a/a01418_source.html b/a01418_source.html new file mode 100644 index 00000000..10fe32dc --- /dev/null +++ b/a01418_source.html @@ -0,0 +1,117 @@ + + + + + + + +Arax: arax_ptr.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_ptr.h
+
+
+Go to the documentation of this file.
1#ifndef ARAX_PTR_HEADER
+
2#define ARAX_PTR_HEADER
+
3#include "utils/compat.h"
+
4
+
8ARAX_CPP int arax_ptr_valid(const void *ptr);
+
9#endif
+ +
#define ARAX_CPP
Definition compat.h:24
+
ARAX_CPP int arax_ptr_valid(const void *ptr)
Definition arax_ptr.c:4
+
+
+ + + + diff --git a/a01419.map b/a01419.map new file mode 100644 index 00000000..ccfedfce --- /dev/null +++ b/a01419.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01419.md5 b/a01419.md5 new file mode 100644 index 00000000..0d8fd060 --- /dev/null +++ b/a01419.md5 @@ -0,0 +1 @@ +3b288d51f6958e2b1502d546fc0ec466 \ No newline at end of file diff --git a/a01419.svg b/a01419.svg new file mode 100644 index 00000000..ccf082fa --- /dev/null +++ b/a01419.svg @@ -0,0 +1,39 @@ + + + + + + +arax_ptr.h + + +Node1 + + +arax_ptr.h + + + + + +Node2 + + +utils/compat.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01420.map b/a01420.map new file mode 100644 index 00000000..86850de4 --- /dev/null +++ b/a01420.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/a01420.md5 b/a01420.md5 new file mode 100644 index 00000000..1ad0586f --- /dev/null +++ b/a01420.md5 @@ -0,0 +1 @@ +fc897a3fefdc17bc35e0e0805a7b0198 \ No newline at end of file diff --git a/a01420.svg b/a01420.svg new file mode 100644 index 00000000..a3ad9cd4 --- /dev/null +++ b/a01420.svg @@ -0,0 +1,93 @@ + + + + + + +arax_ptr.h + + +Node1 + + +arax_ptr.h + + + + + +Node2 + + +arax_assert.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_plot.c + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +arax_ptr.c + + + + + +Node1->Node5 + + + + + + + + diff --git a/a01421.html b/a01421.html new file mode 100644 index 00000000..b816b683 --- /dev/null +++ b/a01421.html @@ -0,0 +1,433 @@ + + + + + + + +Arax: arax_task.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_task.h File Reference
+
+
+
#include "core/arax_proc.h"
+#include "async.h"
+
+ + Include dependency graph for arax_task.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  arax_task_msg
 
+ + + +

+Typedefs

typedef struct arax_task_msg arax_task_msg_s
 
+ + + + + + + + + + + +

+Functions

arax_task_msg_sarax_task_alloc (arax_pipe_s *vpipe, arax_accel *accel, arax_proc *proc, size_t host_size, int ins, arax_data **dev_in, int outs, arax_data **dev_out)
 
void * arax_task_host_data (arax_task_msg_s *task, size_t size)
 
void arax_task_submit (arax_task_msg_s *task)
 
void arax_task_wait_done (arax_task_msg_s *msg)
 
void arax_task_mark_done (arax_task_msg_s *msg, arax_task_state_e state)
 
+

Typedef Documentation

+ +

◆ arax_task_msg_s

+ +
+
+ + + + +
typedef struct arax_task_msg arax_task_msg_s
+
+

Arax Task message.

+ +
+
+

Function Documentation

+ +

◆ arax_task_alloc()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
arax_task_msg_s * arax_task_alloc (arax_pipe_svpipe,
arax_accelaccel,
arax_procproc,
size_t host_size,
int ins,
arax_data ** dev_in,
int outs,
arax_data ** dev_out 
)
+
+

Allocates a arax_task_msg_s object.

+
Parameters
+ + + + + + + + + +
vpipeA valid arax_pipe_s instance.
accelarax_accel instance
pricarax_proc instance
host_sizebytes to reserve for the tasks host_data.
insnumber of inputs
dev_inarray of arax_data pointers with input data.
outsnumber of outputs
dev_outarray of arax_data pointers with output data.
+
+
+ +

Definition at line 7 of file arax_task.c.

+ +

References arax_task_msg::accel, arax_assert, arax_data_annotate, arax_data_input_init(), arax_data_output_init(), arax_object_register(), ARAX_TYPE_TASK, arax_pipe::async, async_completion_init(), arax_task_msg::done, arax_task_msg::host_size, arax_task_msg::in_count, arax_task_msg::io, arax_pipe::objs, arax_task_msg::out_count, arax_task_msg::pipe, arax_task_msg::proc, and vpipe.

+ +

Referenced by arax_task_issue().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_task_host_data()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void * arax_task_host_data (arax_task_msg_stask,
size_t size 
)
+
+

Returns start of host data of task.

+
Parameters
+ + + +
taskA valid arax_task_msg_s
sizeSize of the host_data, this has to match the host_size given to arax_task_alloc()/arax_task_issue() \return Pointer to scalars if host_size > 0, null otherwise.
+
+
+ +

Definition at line 51 of file arax_task.c.

+ +

References arax_assert, arax_assert_obj, ARAX_TYPE_TASK, arax_task_msg::host_size, arax_task_msg::in_count, and arax_task_msg::out_count.

+ +

Referenced by arax_data_get(), and arax_task_issue().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_task_mark_done()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_task_mark_done (arax_task_msg_smsg,
arax_task_state_e state 
)
+
+ +

Definition at line 83 of file arax_task.c.

+ +

References async_completion_complete(), arax_task_msg::done, and arax_task_msg::state.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_task_submit()

+ +
+
+ + + + + + + + +
void arax_task_submit (arax_task_msg_stask)
+
+ +

Definition at line 64 of file arax_task.c.

+ +

References arax_task_msg::accel, arax_assert_obj, arax_object_ref_inc(), ARAX_TYPE_VIRT_ACCEL, arax_vaccel_add_task(), arax_task_msg::state, arax_task_msg::stats, arax_task_stats::task_duration, task_issued, and utils_timer_set.

+ +

Referenced by arax_task_issue().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_task_wait_done()

+ +
+
+ + + + + + + + +
void arax_task_wait_done (arax_task_msg_smsg)
+
+ +

Definition at line 77 of file arax_task.c.

+ +

References arax_assert, async_completion_wait(), arax_task_msg::done, arax_task_msg::state, task_completed, and task_issued.

+ +

Referenced by arax_task_wait().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01421.js b/a01421.js new file mode 100644 index 00000000..fa542062 --- /dev/null +++ b/a01421.js @@ -0,0 +1,10 @@ +var a01421 = +[ + [ "arax_task_msg", "a02282.html", "a02282" ], + [ "arax_task_msg_s", "a01421.html#a6085aeac5d5e9a91971f4d9ce80b7d92", null ], + [ "arax_task_alloc", "a01421.html#a27bee94f7a23281c8b2b72ec433f6059", null ], + [ "arax_task_host_data", "a01421.html#aa3cb73b347940187fb3399f51b1a55b7", null ], + [ "arax_task_mark_done", "a01421.html#a46456b4307a70983ebe554fa712d856e", null ], + [ "arax_task_submit", "a01421.html#ace08f924cb86d1310099621564536657", null ], + [ "arax_task_wait_done", "a01421.html#a0d3707df989265f8cf380acdef95eb02", null ] +]; \ No newline at end of file diff --git a/a01421_a0d3707df989265f8cf380acdef95eb02_cgraph.map b/a01421_a0d3707df989265f8cf380acdef95eb02_cgraph.map new file mode 100644 index 00000000..0783828f --- /dev/null +++ b/a01421_a0d3707df989265f8cf380acdef95eb02_cgraph.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/a01421_a0d3707df989265f8cf380acdef95eb02_cgraph.md5 b/a01421_a0d3707df989265f8cf380acdef95eb02_cgraph.md5 new file mode 100644 index 00000000..495be063 --- /dev/null +++ b/a01421_a0d3707df989265f8cf380acdef95eb02_cgraph.md5 @@ -0,0 +1 @@ +cb310a851627f5387a9b827dc938b2da \ No newline at end of file diff --git a/a01421_a0d3707df989265f8cf380acdef95eb02_cgraph.svg b/a01421_a0d3707df989265f8cf380acdef95eb02_cgraph.svg new file mode 100644 index 00000000..8aa445ed --- /dev/null +++ b/a01421_a0d3707df989265f8cf380acdef95eb02_cgraph.svg @@ -0,0 +1,111 @@ + + + + + + +arax_task_wait_done + + +Node1 + + +arax_task_wait_done + + + + + +Node2 + + +async_completion_wait + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_add_completion + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +getVmID + + + + + +Node2->Node6 + + + + + + + + +Node4 + + +utils_list_add + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +utils_list_node_add + + + + + +Node4->Node5 + + + + + + + + diff --git a/a01421_a0d3707df989265f8cf380acdef95eb02_icgraph.map b/a01421_a0d3707df989265f8cf380acdef95eb02_icgraph.map new file mode 100644 index 00000000..0a353b60 --- /dev/null +++ b/a01421_a0d3707df989265f8cf380acdef95eb02_icgraph.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/a01421_a0d3707df989265f8cf380acdef95eb02_icgraph.md5 b/a01421_a0d3707df989265f8cf380acdef95eb02_icgraph.md5 new file mode 100644 index 00000000..64761b73 --- /dev/null +++ b/a01421_a0d3707df989265f8cf380acdef95eb02_icgraph.md5 @@ -0,0 +1 @@ +e80ea01d298cbb8e673b27d93d25e1a9 \ No newline at end of file diff --git a/a01421_a0d3707df989265f8cf380acdef95eb02_icgraph.svg b/a01421_a0d3707df989265f8cf380acdef95eb02_icgraph.svg new file mode 100644 index 00000000..d52a2f5d --- /dev/null +++ b/a01421_a0d3707df989265f8cf380acdef95eb02_icgraph.svg @@ -0,0 +1,112 @@ + + + + + + +arax_task_wait_done + + +Node1 + + +arax_task_wait_done + + + + + +Node2 + + +arax_task_wait + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_allocate +_remote + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_get + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +arax_task_issue_sync + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +arax_data_memcpy + + + + + +Node4->Node5 + + + + + + + + diff --git a/a01421_a27bee94f7a23281c8b2b72ec433f6059_cgraph.map b/a01421_a27bee94f7a23281c8b2b72ec433f6059_cgraph.map new file mode 100644 index 00000000..ed497fba --- /dev/null +++ b/a01421_a27bee94f7a23281c8b2b72ec433f6059_cgraph.map @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01421_a27bee94f7a23281c8b2b72ec433f6059_cgraph.md5 b/a01421_a27bee94f7a23281c8b2b72ec433f6059_cgraph.md5 new file mode 100644 index 00000000..8614a598 --- /dev/null +++ b/a01421_a27bee94f7a23281c8b2b72ec433f6059_cgraph.md5 @@ -0,0 +1 @@ +4b0d8d828ebca14df3bf635dee217a55 \ No newline at end of file diff --git a/a01421_a27bee94f7a23281c8b2b72ec433f6059_cgraph.svg b/a01421_a27bee94f7a23281c8b2b72ec433f6059_cgraph.svg new file mode 100644 index 00000000..eceac43d --- /dev/null +++ b/a01421_a27bee94f7a23281c8b2b72ec433f6059_cgraph.svg @@ -0,0 +1,543 @@ + + + + + + +arax_task_alloc + + +Node1 + + +arax_task_alloc + + + + + +Node2 + + +arax_data_input_init + + + + + +Node1->Node2 + + + + + + + + +Node16 + + +arax_data_output_init + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +arax_object_register + + + + + +Node1->Node17 + + + + + + + + +Node26 + + +async_completion_init + + + + + +Node1->Node26 + + + + + + + + +Node3 + + +arax_data_migrate_accel + + + + + +Node2->Node3 + + + + + + + + +Node14 + + +arax_object_ref_inc + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +arax_object_ref_dec + + + + + +Node3->Node4 + + + + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +arax_object_type_to_str + + + + + +Node3->Node15 + + + + + + + + +Node5 + + +arax_pipe_size_inc + + + + + +Node4->Node5 + + + + + + + + +Node13 + + +utils_list_del + + + + + +Node4->Node13 + + + + + + + + +Node6 + + +arax_throttle_size_inc + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +async_condition_lock + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_condition_notify + + + + + +Node6->Node9 + + + + + + + + +Node11 + + +async_condition_unlock + + + + + +Node6->Node11 + + + + + + + + +Node8 + + +async_completion_wait + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +async_semaphore_inc + + + + + +Node9->Node10 + + + + + + + + +Node12 + + +async_completion_complete + + + + + +Node11->Node12 + + + + + + + + +Node16->Node3 + + + + + + + + +Node16->Node14 + + + + + + + + +Node18 + + +arax_pipe_size_dec + + + + + +Node17->Node18 + + + + + + + + +Node22 + + +arch_alloc_allocate + + + + + +Node17->Node22 + + + + + + + + +Node23 + + +utils_list_add + + + + + +Node17->Node23 + + + + + + + + +Node25 + + +utils_list_node_init + + + + + +Node17->Node25 + + + + + + + + +Node19 + + +arax_throttle_size_dec + + + + + +Node18->Node19 + + + + + + + + +Node19->Node7 + + + + + + + + +Node19->Node11 + + + + + + + + +Node20 + + +async_condition_wait + + + + + +Node19->Node20 + + + + + + + + +Node20->Node8 + + + + + + + + +Node20->Node12 + + + + + + + + +Node21 + + +async_semaphore_dec + + + + + +Node20->Node21 + + + + + + + + +Node24 + + +utils_list_node_add + + + + + +Node23->Node24 + + + + + + + + +Node26->Node25 + + + + + + + + diff --git a/a01421_a27bee94f7a23281c8b2b72ec433f6059_icgraph.map b/a01421_a27bee94f7a23281c8b2b72ec433f6059_icgraph.map new file mode 100644 index 00000000..03390655 --- /dev/null +++ b/a01421_a27bee94f7a23281c8b2b72ec433f6059_icgraph.map @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/a01421_a27bee94f7a23281c8b2b72ec433f6059_icgraph.md5 b/a01421_a27bee94f7a23281c8b2b72ec433f6059_icgraph.md5 new file mode 100644 index 00000000..f4382633 --- /dev/null +++ b/a01421_a27bee94f7a23281c8b2b72ec433f6059_icgraph.md5 @@ -0,0 +1 @@ +801914fc09985af31217274b660ce395 \ No newline at end of file diff --git a/a01421_a27bee94f7a23281c8b2b72ec433f6059_icgraph.svg b/a01421_a27bee94f7a23281c8b2b72ec433f6059_icgraph.svg new file mode 100644 index 00000000..e1f1ba31 --- /dev/null +++ b/a01421_a27bee94f7a23281c8b2b72ec433f6059_icgraph.svg @@ -0,0 +1,157 @@ + + + + + + +arax_task_alloc + + +Node1 + + +arax_task_alloc + + + + + +Node2 + + +arax_task_issue + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_allocate +_remote + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_get + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +arax_data_set + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +arax_task_issue_sync + + + + + +Node2->Node8 + + + + + + + + +Node5 + + +arax_data_memcpy + + + + + +Node4->Node5 + + + + + + + + +Node6->Node5 + + + + + + + + diff --git a/a01421_a46456b4307a70983ebe554fa712d856e_cgraph.map b/a01421_a46456b4307a70983ebe554fa712d856e_cgraph.map new file mode 100644 index 00000000..fba0e26c --- /dev/null +++ b/a01421_a46456b4307a70983ebe554fa712d856e_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01421_a46456b4307a70983ebe554fa712d856e_cgraph.md5 b/a01421_a46456b4307a70983ebe554fa712d856e_cgraph.md5 new file mode 100644 index 00000000..4256a9f8 --- /dev/null +++ b/a01421_a46456b4307a70983ebe554fa712d856e_cgraph.md5 @@ -0,0 +1 @@ +9ca5503691c2e2c0e05d9cc3d5522627 \ No newline at end of file diff --git a/a01421_a46456b4307a70983ebe554fa712d856e_cgraph.svg b/a01421_a46456b4307a70983ebe554fa712d856e_cgraph.svg new file mode 100644 index 00000000..62095b8d --- /dev/null +++ b/a01421_a46456b4307a70983ebe554fa712d856e_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_task_mark_done + + +Node1 + + +arax_task_mark_done + + + + + +Node2 + + +async_completion_complete + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +wakeupVm + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01421_aa3cb73b347940187fb3399f51b1a55b7_icgraph.map b/a01421_aa3cb73b347940187fb3399f51b1a55b7_icgraph.map new file mode 100644 index 00000000..0483f9a7 --- /dev/null +++ b/a01421_aa3cb73b347940187fb3399f51b1a55b7_icgraph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/a01421_aa3cb73b347940187fb3399f51b1a55b7_icgraph.md5 b/a01421_aa3cb73b347940187fb3399f51b1a55b7_icgraph.md5 new file mode 100644 index 00000000..35a31856 --- /dev/null +++ b/a01421_aa3cb73b347940187fb3399f51b1a55b7_icgraph.md5 @@ -0,0 +1 @@ +e184a8e6750e0a0c1cdfc834a98d0478 \ No newline at end of file diff --git a/a01421_aa3cb73b347940187fb3399f51b1a55b7_icgraph.svg b/a01421_aa3cb73b347940187fb3399f51b1a55b7_icgraph.svg new file mode 100644 index 00000000..af2a2639 --- /dev/null +++ b/a01421_aa3cb73b347940187fb3399f51b1a55b7_icgraph.svg @@ -0,0 +1,166 @@ + + + + + + +arax_task_host_data + + +Node1 + + +arax_task_host_data + + + + + +Node2 + + +arax_data_get + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +arax_task_issue + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +arax_data_memcpy + + + + + +Node2->Node3 + + + + + + + + +Node4->Node2 + + + + + + + + +Node5 + + +arax_data_allocate +_remote + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_data_set + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +arax_task_issue_sync + + + + + +Node4->Node8 + + + + + + + + +Node6->Node3 + + + + + + + + diff --git a/a01421_ace08f924cb86d1310099621564536657_cgraph.map b/a01421_ace08f924cb86d1310099621564536657_cgraph.map new file mode 100644 index 00000000..f156d172 --- /dev/null +++ b/a01421_ace08f924cb86d1310099621564536657_cgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01421_ace08f924cb86d1310099621564536657_cgraph.md5 b/a01421_ace08f924cb86d1310099621564536657_cgraph.md5 new file mode 100644 index 00000000..95d0b5ad --- /dev/null +++ b/a01421_ace08f924cb86d1310099621564536657_cgraph.md5 @@ -0,0 +1 @@ +d6139410489206dcd1782ec6484110d6 \ No newline at end of file diff --git a/a01421_ace08f924cb86d1310099621564536657_cgraph.svg b/a01421_ace08f924cb86d1310099621564536657_cgraph.svg new file mode 100644 index 00000000..bd385135 --- /dev/null +++ b/a01421_ace08f924cb86d1310099621564536657_cgraph.svg @@ -0,0 +1,201 @@ + + + + + + +arax_task_submit + + +Node1 + + +arax_task_submit + + + + + +Node2 + + +arax_object_ref_inc + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_vaccel_add_task + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_accel_add_task + + + + + +Node3->Node4 + + + + + + + + +Node11 + + +utils_queue_push + + + + + +Node3->Node11 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_condition_notify + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +async_condition_unlock + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_semaphore_inc + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +async_completion_complete + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01421_ace08f924cb86d1310099621564536657_icgraph.map b/a01421_ace08f924cb86d1310099621564536657_icgraph.map new file mode 100644 index 00000000..8b6e1975 --- /dev/null +++ b/a01421_ace08f924cb86d1310099621564536657_icgraph.map @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/a01421_ace08f924cb86d1310099621564536657_icgraph.md5 b/a01421_ace08f924cb86d1310099621564536657_icgraph.md5 new file mode 100644 index 00000000..781e58ba --- /dev/null +++ b/a01421_ace08f924cb86d1310099621564536657_icgraph.md5 @@ -0,0 +1 @@ +981848ccf3080c177c5109214f88dbb0 \ No newline at end of file diff --git a/a01421_ace08f924cb86d1310099621564536657_icgraph.svg b/a01421_ace08f924cb86d1310099621564536657_icgraph.svg new file mode 100644 index 00000000..aab81404 --- /dev/null +++ b/a01421_ace08f924cb86d1310099621564536657_icgraph.svg @@ -0,0 +1,157 @@ + + + + + + +arax_task_submit + + +Node1 + + +arax_task_submit + + + + + +Node2 + + +arax_task_issue + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_allocate +_remote + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_get + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +arax_data_set + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +arax_task_issue_sync + + + + + +Node2->Node8 + + + + + + + + +Node5 + + +arax_data_memcpy + + + + + +Node4->Node5 + + + + + + + + +Node6->Node5 + + + + + + + + diff --git a/a01421_source.html b/a01421_source.html new file mode 100644 index 00000000..20488648 --- /dev/null +++ b/a01421_source.html @@ -0,0 +1,178 @@ + + + + + + + +Arax: arax_task.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_task.h
+
+
+Go to the documentation of this file.
1#ifndef ARAX_TASK_HEADER
+
2#define ARAX_TASK_HEADER
+
3#include "core/arax_proc.h"
+
4#include "async.h"
+
5
+
9typedef struct arax_task_msg
+
10{
+ + + + +
15 size_t host_size;
+ + + + + + + + +
24
+
25#ifdef __cplusplus
+
26extern "C" {
+
27#endif /* ifdef __cplusplus */
+
28
+
41arax_task_msg_s* arax_task_alloc(arax_pipe_s *vpipe, arax_accel *accel, arax_proc *proc, size_t host_size, int ins,
+
42 arax_data **dev_in, int outs, arax_data **dev_out);
+
43
+
51void* arax_task_host_data(arax_task_msg_s *task, size_t size);
+
52
+ +
54
+ +
56
+ +
58#ifdef __cplusplus
+
59}
+
60#endif /* ifdef __cplusplus */
+
61
+
62#endif // ifndef ARAX_TASK_HEADER
+
void arax_accel
Definition arax_types.h:9
+
enum arax_accel_type arax_accel_type_e
+
void arax_proc
Definition arax_types.h:14
+
arax_task_state_e
Definition arax_types.h:62
+
void arax_data
Definition arax_types.h:56
+ +
void arax_task_wait_done(arax_task_msg_s *msg)
Definition arax_task.c:77
+
arax_task_msg_s * arax_task_alloc(arax_pipe_s *vpipe, arax_accel *accel, arax_proc *proc, size_t host_size, int ins, arax_data **dev_in, int outs, arax_data **dev_out)
Definition arax_task.c:7
+
void arax_task_mark_done(arax_task_msg_s *msg, arax_task_state_e state)
Definition arax_task.c:83
+
struct arax_task_msg arax_task_msg_s
+
void * arax_task_host_data(arax_task_msg_s *task, size_t size)
Definition arax_task.c:51
+
void arax_task_submit(arax_task_msg_s *task)
Definition arax_task.c:64
+
arax_pipe_s * vpipe
Definition impl.c:17
+ + + + +
arax_object_s obj
Definition arax_task.h:11
+
arax_task_state_e state
Definition arax_task.h:19
+
arax_accel * accel
Definition arax_task.h:13
+
arax_pipe_s * pipe
Definition arax_task.h:12
+
arax_data * io[]
Definition arax_task.h:22
+
arax_accel_type_e type
Definition arax_task.h:18
+
async_completion_s done
Definition arax_task.h:21
+
arax_proc * proc
Definition arax_task.h:14
+ +
size_t host_size
Definition arax_task.h:15
+
arax_task_stats_s stats
Definition arax_task.h:20
+ + +
+
+ + + + diff --git a/a01422.map b/a01422.map new file mode 100644 index 00000000..cecccf6a --- /dev/null +++ b/a01422.map @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01422.md5 b/a01422.md5 new file mode 100644 index 00000000..7fea0b71 --- /dev/null +++ b/a01422.md5 @@ -0,0 +1 @@ +b001b6127d6b6a125081e0f1f4610b14 \ No newline at end of file diff --git a/a01422.svg b/a01422.svg new file mode 100644 index 00000000..726d6a29 --- /dev/null +++ b/a01422.svg @@ -0,0 +1,336 @@ + + + + + + +arax_task.h + + +Node1 + + +arax_task.h + + + + + +Node2 + + +core/arax_proc.h + + + + + +Node1->Node2 + + + + + + + + +Node17 + + +async.h + + + + + +Node1->Node17 + + + + + + + + +Node3 + + +arax.h + + + + + +Node2->Node3 + + + + + + + + +Node10 + + +core/arax_object.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdio.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +stddef.h + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_types.h + + + + + +Node3->Node6 + + + + + + + + +Node9 + + +core/arax_accel_types.h + + + + + +Node3->Node9 + + + + + + + + +Node7 + + +sys/time.h + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +time.h + + + + + +Node6->Node8 + + + + + + + + +Node9->Node6 + + + + + + + + +Node11 + + +utils/list.h + + + + + +Node10->Node11 + + + + + + + + +Node13 + + +utils/spinlock.h + + + + + +Node10->Node13 + + + + + + + + +Node16 + + +arch/alloc.h + + + + + +Node10->Node16 + + + + + + + + +Node11->Node5 + + + + + + + + +Node12 + + +stdint.h + + + + + +Node11->Node12 + + + + + + + + +Node13->Node12 + + + + + + + + +Node14 + + +utils/arax_assert.h + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +compat.h + + + + + +Node14->Node15 + + + + + + + + diff --git a/a01423.map b/a01423.map new file mode 100644 index 00000000..500a7027 --- /dev/null +++ b/a01423.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01423.md5 b/a01423.md5 new file mode 100644 index 00000000..d6ae0114 --- /dev/null +++ b/a01423.md5 @@ -0,0 +1 @@ +4420b80cecd76777c84f8b554a57ddff \ No newline at end of file diff --git a/a01423.svg b/a01423.svg new file mode 100644 index 00000000..23e3e018 --- /dev/null +++ b/a01423.svg @@ -0,0 +1,219 @@ + + + + + + +arax_task.h + + +Node1 + + +arax_task.h + + + + + +Node2 + + +arax_data.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_object.c + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_pipe.h + + + + + +Node1->Node4 + + + + + + + + +Node4->Node2 + + + + + + + + +Node4->Node3 + + + + + + + + +Node5 + + +arax_accel.c + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_pipe.c + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_plot.c + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +arax_ptr.c + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +arax_task.c + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +arax_vaccel.c + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +impl.c + + + + + +Node4->Node11 + + + + + + + + diff --git a/a01424.html b/a01424.html new file mode 100644 index 00000000..916bfa81 --- /dev/null +++ b/a01424.html @@ -0,0 +1,499 @@ + + + + + + + +Arax: arax_throttle.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_throttle.h File Reference
+
+
+
#include "async.h"
+
+ + Include dependency graph for arax_throttle.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  arax_throttle_s
 
+ + + + + + + +

+Macros

#define ARAX_THROTTLE_DEBUG_PARAMS
 
#define ARAX_THROTTLE_DEBUG_FUNC(FUNC)   FUNC
 
#define ARAX_THROTTLE_DEBUG_PRINT(...)   ({ })
 
+ + + +

+Typedefs

typedef struct arax_throttle_s arax_throttle_s
 
+ + + + + + + + + + + +

+Functions

void arax_throttle_init (async_meta_s *meta, arax_throttle_s *thr, size_t a_sz, size_t t_sz)
 
void ARAX_THROTTLE_DEBUG_FUNC() arax_throttle_size_inc (arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS)
 
void ARAX_THROTTLE_DEBUG_FUNC() arax_throttle_size_dec (arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS)
 
size_t arax_throttle_get_available_size (arax_throttle_s *thr)
 
size_t arax_throttle_get_total_size (arax_throttle_s *thr)
 
+

Macro Definition Documentation

+ +

◆ ARAX_THROTTLE_DEBUG_FUNC

+ +
+
+ + + + + + + + +
#define ARAX_THROTTLE_DEBUG_FUNC( FUNC)   FUNC
+
+ +

Definition at line 31 of file arax_throttle.h.

+ +
+
+ +

◆ ARAX_THROTTLE_DEBUG_PARAMS

+ +
+
+ + + + +
#define ARAX_THROTTLE_DEBUG_PARAMS
+
+ +

Definition at line 30 of file arax_throttle.h.

+ +
+
+ +

◆ ARAX_THROTTLE_DEBUG_PRINT

+ +
+
+ + + + + + + + +
#define ARAX_THROTTLE_DEBUG_PRINT( ...)   ({ })
+
+ +

Definition at line 32 of file arax_throttle.h.

+ +
+
+

Typedef Documentation

+ +

◆ arax_throttle_s

+ +
+
+ + + + +
typedef struct arax_throttle_s arax_throttle_s
+
+ +

Definition at line 4 of file arax_throttle.h.

+ +
+
+

Function Documentation

+ +

◆ arax_throttle_get_available_size()

+ +
+
+ + + + + + + + +
size_t arax_throttle_get_available_size (arax_throttle_sthr)
+
+

Gets available size

+
Parameters
+ + +
thrarax_throttle_s instance
+
+
+
Returns
Avaliable size.
+ +

Definition at line 108 of file arax_throttle.c.

+ +

References arax_assert, and arax_throttle_s::available.

+ +

Referenced by arax_accel_get_available_size(), and arax_pipe_get_available_size().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_throttle_get_total_size()

+ +
+
+ + + + + + + + +
size_t arax_throttle_get_total_size (arax_throttle_sthr)
+
+

Gets available size

+
Parameters
+ + +
thrarax_throttle_s instance
+
+
+
Returns
Total size
+ +

Definition at line 115 of file arax_throttle.c.

+ +

References arax_assert, and arax_throttle_s::capacity.

+ +

Referenced by arax_accel_get_total_size(), and arax_pipe_get_total_size().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_throttle_init()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void arax_throttle_init (async_meta_smeta,
arax_throttle_sthr,
size_t a_sz,
size_t t_sz 
)
+
+

Increments available size by sz

+
Parameters
+ + + +
metaasync meta for cond wait
thrarax_throttle_s instance to inc
+
+
+
Returns
Nothing .
+ +

Definition at line 28 of file arax_throttle.c.

+ +

References arax_assert, async_condition_init(), arax_throttle_s::available, arax_throttle_s::capacity, arax_throttle_s::ready, and utils_spinlock_init.

+ +

Referenced by arax_accel_init(), and arax_pipe_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_throttle_size_dec()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void ARAX_THROTTLE_DEBUG_FUNC() arax_throttle_size_dec (arax_throttle_sthr,
size_t sz ARAX_THROTTLE_DEBUG_PARAMS 
)
+
+

Decrements available size by sz

+
Parameters
+ + + +
thrarax_throttle_s instance to dec
szsize of removed data
+
+
+
Returns
Nothing .
+ +

Definition at line 77 of file arax_throttle.c.

+ +

References arax_assert, async_condition_lock(), async_condition_unlock(), async_condition_wait(), and PRINT_THR.

+ +

Referenced by arax_accel_size_dec(), and arax_pipe_size_dec().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_throttle_size_inc()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void ARAX_THROTTLE_DEBUG_FUNC() arax_throttle_size_inc (arax_throttle_sthr,
size_t sz ARAX_THROTTLE_DEBUG_PARAMS 
)
+
+

Increments available size by sz

+
Parameters
+ + + +
thrarax_throttle_s instance to inc
szSize of added data
+
+
+
Returns
Nothing .
+ +

Definition at line 49 of file arax_throttle.c.

+ +

References arax_assert, async_condition_lock(), async_condition_notify(), async_condition_unlock(), and PRINT_THR.

+ +

Referenced by arax_accel_size_inc(), and arax_pipe_size_inc().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01424.js b/a01424.js new file mode 100644 index 00000000..94218afd --- /dev/null +++ b/a01424.js @@ -0,0 +1,13 @@ +var a01424 = +[ + [ "arax_throttle_s", "a02286.html", "a02286" ], + [ "ARAX_THROTTLE_DEBUG_FUNC", "a01424.html#a03d585214098784236ffe2d067715c6f", null ], + [ "ARAX_THROTTLE_DEBUG_PARAMS", "a01424.html#a5ee93de8a975df710edb61a447632395", null ], + [ "ARAX_THROTTLE_DEBUG_PRINT", "a01424.html#a28e98100ac3ad7575db4e647cfe0099a", null ], + [ "arax_throttle_s", "a01424.html#a3032390c1304799751ebf5b24417ed79", null ], + [ "arax_throttle_get_available_size", "a01424.html#a078da9ec8e2f9a4470f10ee3059bd593", null ], + [ "arax_throttle_get_total_size", "a01424.html#af11f2d1dc9f842b2eed7aa7e80607e29", null ], + [ "arax_throttle_init", "a01424.html#acf84ea82594c4dbe91cf602ee078e04d", null ], + [ "arax_throttle_size_dec", "a01424.html#a8413a3584787f9b629e54b2ef9439f06", null ], + [ "arax_throttle_size_inc", "a01424.html#a22aaf13eb56eb1832e725ef73236116f", null ] +]; \ No newline at end of file diff --git a/a01424_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.map b/a01424_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.map new file mode 100644 index 00000000..57cfae0e --- /dev/null +++ b/a01424_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.map @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01424_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.md5 b/a01424_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.md5 new file mode 100644 index 00000000..29866f46 --- /dev/null +++ b/a01424_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.md5 @@ -0,0 +1 @@ +fc84a4c05e26f416d83b1b3aea3356d0 \ No newline at end of file diff --git a/a01424_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.svg b/a01424_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.svg new file mode 100644 index 00000000..65ba6564 --- /dev/null +++ b/a01424_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.svg @@ -0,0 +1,239 @@ + + + + + + +arax_throttle_get_available_size + + +Node1 + + +arax_throttle_get_available_size + + + + + +Node2 + + +arax_accel_get_available_size + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_get_available_size + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +_arax_init + + + + + +Node3->Node4 + + + + + + + + +Node12 + + +arax_exit + + + + + +Node3->Node12 + + + + + + + + +Node5 + + +arax_controller_init +_start + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_init + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_plot_register +_metric + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_ptr_valid + + + + + +Node6->Node8 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +_arax_assert_obj + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_data_ref + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +arax_data_ref_offset + + + + + +Node8->Node11 + + + + + + + + +Node10->Node11 + + + + + + + + diff --git a/a01424_a22aaf13eb56eb1832e725ef73236116f_cgraph.map b/a01424_a22aaf13eb56eb1832e725ef73236116f_cgraph.map new file mode 100644 index 00000000..abecc0e3 --- /dev/null +++ b/a01424_a22aaf13eb56eb1832e725ef73236116f_cgraph.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/a01424_a22aaf13eb56eb1832e725ef73236116f_cgraph.md5 b/a01424_a22aaf13eb56eb1832e725ef73236116f_cgraph.md5 new file mode 100644 index 00000000..6d90427c --- /dev/null +++ b/a01424_a22aaf13eb56eb1832e725ef73236116f_cgraph.md5 @@ -0,0 +1 @@ +64ee4ccdf48106373b02986b147ecc27 \ No newline at end of file diff --git a/a01424_a22aaf13eb56eb1832e725ef73236116f_cgraph.svg b/a01424_a22aaf13eb56eb1832e725ef73236116f_cgraph.svg new file mode 100644 index 00000000..a55cfc10 --- /dev/null +++ b/a01424_a22aaf13eb56eb1832e725ef73236116f_cgraph.svg @@ -0,0 +1,129 @@ + + + + + + +arax_throttle_size_inc + + +Node1 + + +arax_throttle_size_inc + + + + + +Node2 + + +async_condition_lock + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +async_condition_notify + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +async_condition_unlock + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +async_completion_wait + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_semaphore_inc + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_completion_complete + + + + + +Node6->Node7 + + + + + + + + diff --git a/a01424_a22aaf13eb56eb1832e725ef73236116f_icgraph.map b/a01424_a22aaf13eb56eb1832e725ef73236116f_icgraph.map new file mode 100644 index 00000000..ef5f76f5 --- /dev/null +++ b/a01424_a22aaf13eb56eb1832e725ef73236116f_icgraph.map @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01424_a22aaf13eb56eb1832e725ef73236116f_icgraph.md5 b/a01424_a22aaf13eb56eb1832e725ef73236116f_icgraph.md5 new file mode 100644 index 00000000..c2ec0970 --- /dev/null +++ b/a01424_a22aaf13eb56eb1832e725ef73236116f_icgraph.md5 @@ -0,0 +1 @@ +18c977c102f08b7e720efe1023422750 \ No newline at end of file diff --git a/a01424_a22aaf13eb56eb1832e725ef73236116f_icgraph.svg b/a01424_a22aaf13eb56eb1832e725ef73236116f_icgraph.svg new file mode 100644 index 00000000..a1bc1bac --- /dev/null +++ b/a01424_a22aaf13eb56eb1832e725ef73236116f_icgraph.svg @@ -0,0 +1,564 @@ + + + + + + +arax_throttle_size_inc + + +Node1 + + +arax_throttle_size_inc + + + + + +Node2 + + +arax_accel_size_inc + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_size_inc + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_object_ref_dec + + + + + +Node3->Node4 + + + + + + + + +Node25 + + +arax_object_ref_dec +_pre_locked + + + + + +Node3->Node25 + + + + + + + + +Node5 + + +arax_accel_list_free + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_accel_release + + + + + +Node4->Node6 + + + + + + + + +Node8 + + +arax_data_free + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +arax_data_migrate_accel + + + + + +Node4->Node9 + + + + + + + + +Node18 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node4->Node18 + + + + + + + + +Node21 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node4->Node21 + + + + + + + + +Node22 + + +arax_pipe_delete_accel + + + + + +Node4->Node22 + + + + + + + + +Node23 + + +arax_proc_put + + + + + +Node4->Node23 + + + + + + + + +Node24 + + +arax_task_free + + + + + +Node4->Node24 + + + + + + + + +Node7 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node6->Node7 + + + + + + + + +Node10 + + +arax_data_arg_init + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_input_init + + + + + +Node9->Node11 + + + + + + + + +Node20 + + +arax_data_output_init + + + + + +Node9->Node20 + + + + + + + + +Node12 + + +arax_task_alloc + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +arax_task_issue + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +arax_data_allocate +_remote + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +arax_data_get + + + + + +Node13->Node15 + + + + + + + + +Node17 + + +arax_data_set + + + + + +Node13->Node17 + + + + + + + + +Node13->Node18 + + + + + + + + +Node19 + + +arax_task_issue_sync + + + + + +Node13->Node19 + + + + + + + + +Node16 + + +arax_data_memcpy + + + + + +Node15->Node16 + + + + + + + + +Node17->Node16 + + + + + + + + +Node20->Node12 + + + + + + + + +Node23->Node15 + + + + + + + + +Node23->Node17 + + + + + + + + +Node24->Node14 + + + + + + + + +Node24->Node15 + + + + + + + + +Node24->Node19 + + + + + + + + +Node26 + + +arax_accel_list_free +_pre_locked + + + + + +Node25->Node26 + + + + + + + + +Node27 + + +arax_accel_list + + + + + +Node26->Node27 + + + + + + + + diff --git a/a01424_a8413a3584787f9b629e54b2ef9439f06_cgraph.map b/a01424_a8413a3584787f9b629e54b2ef9439f06_cgraph.map new file mode 100644 index 00000000..8e3c3a20 --- /dev/null +++ b/a01424_a8413a3584787f9b629e54b2ef9439f06_cgraph.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/a01424_a8413a3584787f9b629e54b2ef9439f06_cgraph.md5 b/a01424_a8413a3584787f9b629e54b2ef9439f06_cgraph.md5 new file mode 100644 index 00000000..aadd65aa --- /dev/null +++ b/a01424_a8413a3584787f9b629e54b2ef9439f06_cgraph.md5 @@ -0,0 +1 @@ +982fcce278440549d6474236b6b1b3ac \ No newline at end of file diff --git a/a01424_a8413a3584787f9b629e54b2ef9439f06_cgraph.svg b/a01424_a8413a3584787f9b629e54b2ef9439f06_cgraph.svg new file mode 100644 index 00000000..ae873525 --- /dev/null +++ b/a01424_a8413a3584787f9b629e54b2ef9439f06_cgraph.svg @@ -0,0 +1,147 @@ + + + + + + +arax_throttle_size_dec + + +Node1 + + +arax_throttle_size_dec + + + + + +Node2 + + +async_condition_lock + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +async_condition_unlock + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +async_condition_wait + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +async_completion_wait + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_completion_complete + + + + + +Node4->Node5 + + + + + + + + +Node6->Node3 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +async_semaphore_dec + + + + + +Node6->Node7 + + + + + + + + diff --git a/a01424_a8413a3584787f9b629e54b2ef9439f06_icgraph.map b/a01424_a8413a3584787f9b629e54b2ef9439f06_icgraph.map new file mode 100644 index 00000000..0c666e7f --- /dev/null +++ b/a01424_a8413a3584787f9b629e54b2ef9439f06_icgraph.map @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01424_a8413a3584787f9b629e54b2ef9439f06_icgraph.md5 b/a01424_a8413a3584787f9b629e54b2ef9439f06_icgraph.md5 new file mode 100644 index 00000000..c333ba33 --- /dev/null +++ b/a01424_a8413a3584787f9b629e54b2ef9439f06_icgraph.md5 @@ -0,0 +1 @@ +0335a9ae345686d5e43d72e378b5faa3 \ No newline at end of file diff --git a/a01424_a8413a3584787f9b629e54b2ef9439f06_icgraph.svg b/a01424_a8413a3584787f9b629e54b2ef9439f06_icgraph.svg new file mode 100644 index 00000000..5857f89e --- /dev/null +++ b/a01424_a8413a3584787f9b629e54b2ef9439f06_icgraph.svg @@ -0,0 +1,409 @@ + + + + + + +arax_throttle_size_dec + + +Node1 + + +arax_throttle_size_dec + + + + + +Node2 + + +arax_accel_size_dec + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +arax_pipe_size_dec + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +arax_data_allocate +_remote + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +arax_object_register + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_accel_init + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_data_init_aligned + + + + + +Node5->Node7 + + + + + + + + +Node10 + + +arax_proc_init + + + + + +Node5->Node10 + + + + + + + + +Node12 + + +arax_task_alloc + + + + + +Node5->Node12 + + + + + + + + +Node19 + + +arax_vaccel_init + + + + + +Node5->Node19 + + + + + + + + +Node8 + + +arax_data_init + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +ARAX_BUFFER + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +arax_proc_register + + + + + +Node10->Node11 + + + + + + + + +Node13 + + +arax_task_issue + + + + + +Node12->Node13 + + + + + + + + +Node13->Node3 + + + + + + + + +Node14 + + +arax_data_get + + + + + +Node13->Node14 + + + + + + + + +Node16 + + +arax_data_set + + + + + +Node13->Node16 + + + + + + + + +Node17 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node13->Node17 + + + + + + + + +Node18 + + +arax_task_issue_sync + + + + + +Node13->Node18 + + + + + + + + +Node15 + + +arax_data_memcpy + + + + + +Node14->Node15 + + + + + + + + +Node16->Node15 + + + + + + + + +Node19->Node6 + + + + + + + + +Node20 + + +arax_accel_acquire_phys + + + + + +Node19->Node20 + + + + + + + + +Node21 + + +arax_accel_acquire_type + + + + + +Node19->Node21 + + + + + + + + diff --git a/a01424_acf84ea82594c4dbe91cf602ee078e04d_cgraph.map b/a01424_acf84ea82594c4dbe91cf602ee078e04d_cgraph.map new file mode 100644 index 00000000..ceb1cd6d --- /dev/null +++ b/a01424_acf84ea82594c4dbe91cf602ee078e04d_cgraph.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/a01424_acf84ea82594c4dbe91cf602ee078e04d_cgraph.md5 b/a01424_acf84ea82594c4dbe91cf602ee078e04d_cgraph.md5 new file mode 100644 index 00000000..0253c02c --- /dev/null +++ b/a01424_acf84ea82594c4dbe91cf602ee078e04d_cgraph.md5 @@ -0,0 +1 @@ +00cf33c5683bfe88cc448b214a7d4f0e \ No newline at end of file diff --git a/a01424_acf84ea82594c4dbe91cf602ee078e04d_cgraph.svg b/a01424_acf84ea82594c4dbe91cf602ee078e04d_cgraph.svg new file mode 100644 index 00000000..97a51835 --- /dev/null +++ b/a01424_acf84ea82594c4dbe91cf602ee078e04d_cgraph.svg @@ -0,0 +1,129 @@ + + + + + + +arax_throttle_init + + +Node1 + + +arax_throttle_init + + + + + +Node2 + + +async_condition_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_completion_complete + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +async_completion_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +async_condition_unlock + + + + + +Node2->Node5 + + + + + + + + +Node7 + + +async_semaphore_init + + + + + +Node2->Node7 + + + + + + + + +Node6 + + +async_completion_complete + + + + + +Node5->Node6 + + + + + + + + diff --git a/a01424_acf84ea82594c4dbe91cf602ee078e04d_icgraph.map b/a01424_acf84ea82594c4dbe91cf602ee078e04d_icgraph.map new file mode 100644 index 00000000..284be9b1 --- /dev/null +++ b/a01424_acf84ea82594c4dbe91cf602ee078e04d_icgraph.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01424_acf84ea82594c4dbe91cf602ee078e04d_icgraph.md5 b/a01424_acf84ea82594c4dbe91cf602ee078e04d_icgraph.md5 new file mode 100644 index 00000000..c1cd4a19 --- /dev/null +++ b/a01424_acf84ea82594c4dbe91cf602ee078e04d_icgraph.md5 @@ -0,0 +1 @@ +944fe02d12c43a26ff18bbb81bf50018 \ No newline at end of file diff --git a/a01424_acf84ea82594c4dbe91cf602ee078e04d_icgraph.svg b/a01424_acf84ea82594c4dbe91cf602ee078e04d_icgraph.svg new file mode 100644 index 00000000..1a46683b --- /dev/null +++ b/a01424_acf84ea82594c4dbe91cf602ee078e04d_icgraph.svg @@ -0,0 +1,221 @@ + + + + + + +arax_throttle_init + + +Node1 + + +arax_throttle_init + + + + + +Node2 + + +arax_accel_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +_arax_init + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_controller_init +_start + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_init + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_plot_register +_metric + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_ptr_valid + + + + + +Node6->Node8 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +_arax_assert_obj + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_data_ref + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +arax_data_ref_offset + + + + + +Node8->Node11 + + + + + + + + +Node10->Node11 + + + + + + + + diff --git a/a01424_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.map b/a01424_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.map new file mode 100644 index 00000000..4aac84c8 --- /dev/null +++ b/a01424_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01424_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.md5 b/a01424_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.md5 new file mode 100644 index 00000000..2f7465d8 --- /dev/null +++ b/a01424_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.md5 @@ -0,0 +1 @@ +f5c167064088cfa76b92bc8ec8ed062b \ No newline at end of file diff --git a/a01424_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.svg b/a01424_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.svg new file mode 100644 index 00000000..9a9b9801 --- /dev/null +++ b/a01424_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_throttle_get_total_size + + +Node1 + + +arax_throttle_get_total_size + + + + + +Node2 + + +arax_accel_get_total_size + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_get_total_size + + + + + +Node1->Node3 + + + + + + + + diff --git a/a01424_source.html b/a01424_source.html new file mode 100644 index 00000000..e27e62cc --- /dev/null +++ b/a01424_source.html @@ -0,0 +1,172 @@ + + + + + + + +Arax: arax_throttle.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_throttle.h
+
+
+Go to the documentation of this file.
1#ifndef ARAX_THROTTLE_HEADER
+
2#define ARAX_THROTTLE_HEADER
+
3
+ +
5
+
6#include "async.h"
+
7
+
8#ifdef __cplusplus
+
9extern "C" {
+
10#endif /* ifdef __cplusplus */
+
11
+ +
13{
+
14 size_t available;
+
15 size_t capacity;
+ +
17 #ifdef ARAX_THROTTLE_DEBUG
+
18 volatile size_t print_cnt;
+
19 utils_spinlock lock;
+
20 #endif
+
21};
+
22
+
23#ifdef ARAX_THROTTLE_DEBUG
+
24#define ARAX_THROTTLE_DEBUG_PARAMS , const char *func
+
25#define ARAX_THROTTLE_DEBUG_FUNC(FUNC) __ ## FUNC
+
26#define ARAX_THROTTLE_DEBUG_PRINT(...) fprintf(stderr, __VA_ARGS__)
+
27#define arax_throttle_size_inc(thr, sz) __arax_throttle_size_inc(thr, sz, __func__)
+
28#define arax_throttle_size_dec(thr, sz) __arax_throttle_size_dec(thr, sz, __func__)
+
29#else
+
30#define ARAX_THROTTLE_DEBUG_PARAMS
+
31#define ARAX_THROTTLE_DEBUG_FUNC(FUNC) FUNC
+
32#define ARAX_THROTTLE_DEBUG_PRINT(...) ({ })
+
33#endif
+
34
+
42void arax_throttle_init(async_meta_s *meta, arax_throttle_s *thr, size_t a_sz, size_t t_sz);
+
43
+ +
52
+ +
61
+ +
69
+ +
77
+
78
+
79#ifdef __cplusplus
+
80}
+
81#endif /* ifdef __cplusplus */
+
82
+
83#endif /* ifndef ARAX_THROTTLE_HEADER */
+
volatile uint32_t utils_spinlock
Definition spinlock.h:10
+
#define ARAX_THROTTLE_DEBUG_FUNC(FUNC)
+
size_t arax_throttle_get_available_size(arax_throttle_s *thr)
+
void ARAX_THROTTLE_DEBUG_FUNC() arax_throttle_size_inc(arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS)
+
#define ARAX_THROTTLE_DEBUG_PARAMS
+
void ARAX_THROTTLE_DEBUG_FUNC() arax_throttle_size_dec(arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS)
+
void arax_throttle_init(async_meta_s *meta, arax_throttle_s *thr, size_t a_sz, size_t t_sz)
+
size_t arax_throttle_get_total_size(arax_throttle_s *thr)
+ + + + +
async_condition_s ready
+ +
+
+ + + + diff --git a/a01425.map b/a01425.map new file mode 100644 index 00000000..872178d5 --- /dev/null +++ b/a01425.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01425.md5 b/a01425.md5 new file mode 100644 index 00000000..2cce6966 --- /dev/null +++ b/a01425.md5 @@ -0,0 +1 @@ +3a722d6442f67bbba011b3f19f408b12 \ No newline at end of file diff --git a/a01425.svg b/a01425.svg new file mode 100644 index 00000000..757fa4cd --- /dev/null +++ b/a01425.svg @@ -0,0 +1,39 @@ + + + + + + +arax_throttle.h + + +Node1 + + +arax_throttle.h + + + + + +Node2 + + +async.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01426.map b/a01426.map new file mode 100644 index 00000000..1897c9d5 --- /dev/null +++ b/a01426.map @@ -0,0 +1,40 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01426.md5 b/a01426.md5 new file mode 100644 index 00000000..c03144da --- /dev/null +++ b/a01426.md5 @@ -0,0 +1 @@ +bcd9688726dad8d0d3c88fb03e0b5a74 \ No newline at end of file diff --git a/a01426.svg b/a01426.svg new file mode 100644 index 00000000..eca9eadc --- /dev/null +++ b/a01426.svg @@ -0,0 +1,354 @@ + + + + + + +arax_throttle.h + + +Node1 + + +arax_throttle.h + + + + + +Node2 + + +arax_accel.h + + + + + +Node1->Node2 + + + + + + + + +Node16 + + +arax_throttle.c + + + + + +Node1->Node16 + + + + + + + + +Node3 + + +arax_data.h + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +arax_object.c + + + + + +Node2->Node6 + + + + + + + + +Node9 + + +arax_pipe.h + + + + + +Node2->Node9 + + + + + + + + +Node15 + + +arax_vaccel.h + + + + + +Node2->Node15 + + + + + + + + +Node4 + + +arax_data.c + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data_private.h + + + + + +Node3->Node5 + + + + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +arax_task.c + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +impl.c + + + + + +Node3->Node8 + + + + + + + + +Node5->Node4 + + + + + + + + +Node9->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node9->Node7 + + + + + + + + +Node9->Node8 + + + + + + + + +Node10 + + +arax_accel.c + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_pipe.c + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +arax_plot.c + + + + + +Node9->Node12 + + + + + + + + +Node13 + + +arax_ptr.c + + + + + +Node9->Node13 + + + + + + + + +Node14 + + +arax_vaccel.c + + + + + +Node9->Node14 + + + + + + + + +Node15->Node2 + + + + + + + + diff --git a/a01427.html b/a01427.html new file mode 100644 index 00000000..d7cddcaf --- /dev/null +++ b/a01427.html @@ -0,0 +1,722 @@ + + + + + + + +Arax: arax_vaccel.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_vaccel.h File Reference
+
+
+
#include "core/arax_object.h"
+#include "utils/queue.h"
+#include "core/arax_accel.h"
+#include "async.h"
+
+ + Include dependency graph for arax_vaccel.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  arax_vaccel_s
 
+ + + + + +

+Typedefs

typedef struct arax_vaccel_s arax_vaccel_s
 
typedef enum arax_accel_ordering_e arax_accel_ordering_e
 
+ + + +

+Enumerations

enum  arax_accel_ordering_e { SEQUENTIAL +, PARALLEL + }
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

arax_vaccel_sarax_vaccel_init (arax_pipe_s *pipe, const char *name, arax_accel_type_e type, arax_accel_s *accel)
 
void arax_vaccel_add_task (arax_vaccel_s *accel, arax_task *task)
 
void arax_vaccel_set_ordering (arax_accel_s *accel, arax_accel_ordering_e ordering)
 
arax_accel_ordering_e arax_vaccel_get_ordering (arax_accel_s *accel)
 
uint64_t arax_vaccel_set_cid (arax_vaccel_s *vaccel, uint64_t cid)
 
uint64_t arax_vaccel_get_cid (arax_vaccel_s *vaccel)
 
uint64_t arax_vaccel_set_job_priority (arax_vaccel_s *vaccel, uint64_t priority)
 
uint64_t arax_vaccel_get_job_priority (arax_vaccel_s *vaccel)
 
void arax_vaccel_set_meta (arax_vaccel_s *vaccel, void *meta)
 
void * arax_vaccel_get_meta (arax_vaccel_s *vaccel)
 
utils_queue_sarax_vaccel_queue (arax_vaccel_s *vaccel)
 
unsigned int arax_vaccel_queue_size (arax_vaccel_s *vaccel)
 
arax_accel_state_e arax_vaccel_get_stat (arax_vaccel_s *accel, arax_accel_stats_s *stat)
 
+

Typedef Documentation

+ +

◆ arax_accel_ordering_e

+ +
+
+ +
+
+ +

◆ arax_vaccel_s

+ +
+
+ + + + +
typedef struct arax_vaccel_s arax_vaccel_s
+
+ +

Definition at line 6 of file arax_vaccel.h.

+ +
+
+

Enumeration Type Documentation

+ +

◆ arax_accel_ordering_e

+ +
+
+ + + + +
enum arax_accel_ordering_e
+
+ + + +
Enumerator
SEQUENTIAL 
PARALLEL 
+ +

Definition at line 16 of file arax_vaccel.h.

+ +
+
+

Function Documentation

+ +

◆ arax_vaccel_add_task()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_vaccel_add_task (arax_vaccel_saccel,
arax_tasktask 
)
+
+ +

Definition at line 32 of file arax_vaccel.c.

+ +

References arax_accel_add_task(), arax_vaccel_s::lock, arax_vaccel_s::phys, arax_vaccel_s::queue, utils_queue_push(), utils_spinlock_lock, and utils_spinlock_unlock.

+ +

Referenced by arax_task_submit().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_vaccel_get_cid()

+ +
+
+ + + + + + + + +
uint64_t arax_vaccel_get_cid (arax_vaccel_svaccel)
+
+

Get the client id for this virtual accelerator.

+ +

Definition at line 64 of file arax_vaccel.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::cid.

+ +
+
+ +

◆ arax_vaccel_get_job_priority()

+ +
+
+ + + + + + + + +
uint64_t arax_vaccel_get_job_priority (arax_vaccel_svaccel)
+
+

Get the priority (latency or throughput critical) for this virtual accelerator.

+ +

Definition at line 77 of file arax_vaccel.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::priority.

+ +
+
+ +

◆ arax_vaccel_get_meta()

+ +
+
+ + + + + + + + +
void * arax_vaccel_get_meta (arax_vaccel_svaccel)
+
+

Set the meta for this virtual accelerator.

+ +

Definition at line 89 of file arax_vaccel.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::meta.

+ +
+
+ +

◆ arax_vaccel_get_ordering()

+ +
+
+ + + + + + + + +
arax_accel_ordering_e arax_vaccel_get_ordering (arax_accel_saccel)
+
+

Get arax_accel_ordering_e mode of provided accel.

+
Parameters
+ + +
vaccelA virtual accelerator
+
+
+ +

Definition at line 49 of file arax_vaccel.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::ordering.

+ +
+
+ +

◆ arax_vaccel_get_stat()

+ +
+
+ + + + + + + + + + + + + + + + + + +
arax_accel_state_e arax_vaccel_get_stat (arax_vaccel_saccel,
arax_accel_stats_sstat 
)
+
+ +

Definition at line 107 of file arax_vaccel.c.

+ +

References arax_accel_get_stat(), arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::phys.

+ +

Referenced by arax_accel_stat().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_vaccel_init()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
arax_vaccel_s * arax_vaccel_init (arax_pipe_spipe,
const char * name,
arax_accel_type_e type,
arax_accel_saccel 
)
+
+

Initialize a arax_vaccel_s in mem.

+
Parameters
+ + + + + +
pipeValid arax_pipe_s instance.
nameName of the virtual accelerator
typeType of the virtual accelerator
accelA physical accelerator
+
+
+ +

Definition at line 3 of file arax_vaccel.c.

+ +

References arax_accel_add_vaccel(), arax_object_register(), arax_pipe_add_orphan_vaccel(), ARAX_TYPE_VIRT_ACCEL, arax_vaccel_s::cid, arax_vaccel_s::lock, arax_vaccel_s::meta, arax_pipe::objs, arax_vaccel_s::ordering, arax_vaccel_s::phys, arax_vaccel_s::priority, arax_vaccel_s::queue, SEQUENTIAL, arax_vaccel_s::type, utils_list_node_init(), utils_queue_init(), utils_spinlock_init, and arax_vaccel_s::vaccels.

+ +

Referenced by arax_accel_acquire_phys(), arax_accel_acquire_type(), and arax_accel_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_vaccel_queue()

+ +
+
+ + + + + + + + +
utils_queue_s * arax_vaccel_queue (arax_vaccel_svaccel)
+
+

Get the queue of vaccel.

+
Parameters
+ + +
vaccelA virtual accelerator
+
+
+
Returns
The queue of vaccel,NULL on failure
+ +

Definition at line 95 of file arax_vaccel.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::queue.

+ +

Referenced by arax_vaccel_queue_size().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_vaccel_queue_size()

+ +
+
+ + + + + + + + +
unsigned int arax_vaccel_queue_size (arax_vaccel_svaccel)
+
+

Requrn size of vaccel.

+
Parameters
+ + +
vaccelA virtual accelerator
+
+
+
Returns
The size of the queue of vaccel.
+ +

Definition at line 101 of file arax_vaccel.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, arax_vaccel_queue(), and utils_queue_used_slots().

+ +

Referenced by arax_accel_add_vaccel(), and arax_accel_del_vaccel().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_vaccel_set_cid()

+ +
+
+ + + + + + + + + + + + + + + + + + +
uint64_t arax_vaccel_set_cid (arax_vaccel_svaccel,
uint64_t cid 
)
+
+

Set the client id for this virtual accelerator.

+ +

Definition at line 57 of file arax_vaccel.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::cid.

+ +
+
+ +

◆ arax_vaccel_set_job_priority()

+ +
+
+ + + + + + + + + + + + + + + + + + +
uint64_t arax_vaccel_set_job_priority (arax_vaccel_svaccel,
uint64_t priority 
)
+
+

Set the priority (latency or throughput critical) for this virtual accelerator.

+ +

Definition at line 70 of file arax_vaccel.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::priority.

+ +
+
+ +

◆ arax_vaccel_set_meta()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_vaccel_set_meta (arax_vaccel_svaccel,
void * meta 
)
+
+

Get the meta for this virtual accelerator.

+ +

Definition at line 83 of file arax_vaccel.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::meta.

+ +
+
+ +

◆ arax_vaccel_set_ordering()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_vaccel_set_ordering (arax_accel_saccel,
arax_accel_ordering_e ordering 
)
+
+

Set arax_accel_ordering_e mode to ordering of provided accel.

+
Parameters
+ + +
vaccelA virtual accelerator
+
+
+ +

Definition at line 41 of file arax_vaccel.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::ordering.

+ +
+
+
+
+ + + + diff --git a/a01427.js b/a01427.js new file mode 100644 index 00000000..d4ceed6e --- /dev/null +++ b/a01427.js @@ -0,0 +1,23 @@ +var a01427 = +[ + [ "arax_vaccel_s", "a02290.html", "a02290" ], + [ "arax_accel_ordering_e", "a01427.html#a523978f4ff7295e0ed7b51c2a12645c4", null ], + [ "arax_vaccel_s", "a01427.html#a057f0fadd202ecab57ef30aca5d4e614", null ], + [ "arax_accel_ordering_e", "a01427.html#a50bb2106b29f1ab7b8ae19440fb49d86", [ + [ "SEQUENTIAL", "a01427.html#a50bb2106b29f1ab7b8ae19440fb49d86a6b834d43476553e583e0fde6578c82f0", null ], + [ "PARALLEL", "a01427.html#a50bb2106b29f1ab7b8ae19440fb49d86a90606f8ca5d91452541a74f1caef1d11", null ] + ] ], + [ "arax_vaccel_add_task", "a01427.html#a8b82433bc8c7d7f03683ac521a3679fa", null ], + [ "arax_vaccel_get_cid", "a01427.html#af12d44b99e9b5395769bf76b715be58f", null ], + [ "arax_vaccel_get_job_priority", "a01427.html#a7eb20e8715e77bf9c5a47e3aa4711314", null ], + [ "arax_vaccel_get_meta", "a01427.html#accc6582256ba828c8923ee7097794025", null ], + [ "arax_vaccel_get_ordering", "a01427.html#aefa3f898f78179a031580ba98e5d8e8b", null ], + [ "arax_vaccel_get_stat", "a01427.html#a3e57dc466fca84c701d8fd6a84cb6789", null ], + [ "arax_vaccel_init", "a01427.html#a83ddb422946cf774c687c1ab63dcda15", null ], + [ "arax_vaccel_queue", "a01427.html#afe1eb3edd264c847c36e9456b2598452", null ], + [ "arax_vaccel_queue_size", "a01427.html#ab2fa3d6e6c761009b464cc0fbedc6a16", null ], + [ "arax_vaccel_set_cid", "a01427.html#a8db841ad4f66a98cdabb93e225171ef9", null ], + [ "arax_vaccel_set_job_priority", "a01427.html#af43eab5b91521d30c3a1d6479eaf54ba", null ], + [ "arax_vaccel_set_meta", "a01427.html#ac1dea15aece3efa7ce132c1a0397c92b", null ], + [ "arax_vaccel_set_ordering", "a01427.html#af3b4130b235af37da59a29fd16c0398d", null ] +]; \ No newline at end of file diff --git a/a01427_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.map b/a01427_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.map new file mode 100644 index 00000000..ad5f222e --- /dev/null +++ b/a01427_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01427_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.md5 b/a01427_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.md5 new file mode 100644 index 00000000..7cebb72b --- /dev/null +++ b/a01427_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.md5 @@ -0,0 +1 @@ +2cc07ea5823548d112c408c8fbc49786 \ No newline at end of file diff --git a/a01427_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.svg b/a01427_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.svg new file mode 100644 index 00000000..a6641fc9 --- /dev/null +++ b/a01427_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_vaccel_get_stat + + +Node1 + + +arax_vaccel_get_stat + + + + + +Node2 + + +arax_accel_get_stat + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01427_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.map b/a01427_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.map new file mode 100644 index 00000000..eedba9b5 --- /dev/null +++ b/a01427_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01427_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.md5 b/a01427_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.md5 new file mode 100644 index 00000000..920c16d0 --- /dev/null +++ b/a01427_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.md5 @@ -0,0 +1 @@ +c0339ab3294a0df053b8cb5e5a2bc4ff \ No newline at end of file diff --git a/a01427_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.svg b/a01427_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.svg new file mode 100644 index 00000000..0e908c11 --- /dev/null +++ b/a01427_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_vaccel_get_stat + + +Node1 + + +arax_vaccel_get_stat + + + + + +Node2 + + +arax_accel_stat + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01427_a83ddb422946cf774c687c1ab63dcda15_cgraph.map b/a01427_a83ddb422946cf774c687c1ab63dcda15_cgraph.map new file mode 100644 index 00000000..5e3761e7 --- /dev/null +++ b/a01427_a83ddb422946cf774c687c1ab63dcda15_cgraph.map @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01427_a83ddb422946cf774c687c1ab63dcda15_cgraph.md5 b/a01427_a83ddb422946cf774c687c1ab63dcda15_cgraph.md5 new file mode 100644 index 00000000..a5b9d471 --- /dev/null +++ b/a01427_a83ddb422946cf774c687c1ab63dcda15_cgraph.md5 @@ -0,0 +1 @@ +d64f4300f2376ba52eac86d2a3afcab2 \ No newline at end of file diff --git a/a01427_a83ddb422946cf774c687c1ab63dcda15_cgraph.svg b/a01427_a83ddb422946cf774c687c1ab63dcda15_cgraph.svg new file mode 100644 index 00000000..f338520c --- /dev/null +++ b/a01427_a83ddb422946cf774c687c1ab63dcda15_cgraph.svg @@ -0,0 +1,581 @@ + + + + + + +arax_vaccel_init + + +Node1 + + +arax_vaccel_init + + + + + +Node2 + + +arax_accel_add_vaccel + + + + + +Node1->Node2 + + + + + + + + +Node18 + + +arax_object_register + + + + + +Node1->Node18 + + + + + + + + +Node24 + + +utils_list_node_init + + + + + +Node1->Node24 + + + + + + + + +Node25 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node1->Node25 + + + + + + + + +Node26 + + +utils_queue_init + + + + + +Node1->Node26 + + + + + + + + +Node3 + + +arax_accel_inc_revision + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node2->Node5 + + + + + + + + +Node7 + + +async_condition_unlock + + + + + +Node2->Node7 + + + + + + + + +Node11 + + +arax_vaccel_queue_size + + + + + +Node2->Node11 + + + + + + + + +Node14 + + +async_condition_notify + + + + + +Node2->Node14 + + + + + + + + +Node16 + + +utils_list_add + + + + + +Node2->Node16 + + + + + + + + +Node4->Node5 + + + + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +utils_list_del + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +utils_list_node_linked + + + + + +Node4->Node10 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_completion_complete + + + + + +Node7->Node8 + + + + + + + + +Node12 + + +arax_vaccel_queue + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +utils_queue_used_slots + + + + + +Node11->Node13 + + + + + + + + +Node15 + + +async_semaphore_inc + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +utils_list_node_add + + + + + +Node16->Node17 + + + + + + + + +Node18->Node16 + + + + + + + + +Node19 + + +arax_pipe_size_dec + + + + + +Node18->Node19 + + + + + + + + +Node23 + + +arch_alloc_allocate + + + + + +Node18->Node23 + + + + + + + + +Node18->Node24 + + + + + + + + +Node20 + + +arax_throttle_size_dec + + + + + +Node19->Node20 + + + + + + + + +Node20->Node5 + + + + + + + + +Node20->Node7 + + + + + + + + +Node21 + + +async_condition_wait + + + + + +Node20->Node21 + + + + + + + + +Node21->Node6 + + + + + + + + +Node21->Node8 + + + + + + + + +Node22 + + +async_semaphore_dec + + + + + +Node21->Node22 + + + + + + + + +Node25->Node5 + + + + + + + + +Node25->Node7 + + + + + + + + +Node25->Node14 + + + + + + + + +Node25->Node16 + + + + + + + + diff --git a/a01427_a83ddb422946cf774c687c1ab63dcda15_icgraph.map b/a01427_a83ddb422946cf774c687c1ab63dcda15_icgraph.map new file mode 100644 index 00000000..e43ebed9 --- /dev/null +++ b/a01427_a83ddb422946cf774c687c1ab63dcda15_icgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a01427_a83ddb422946cf774c687c1ab63dcda15_icgraph.md5 b/a01427_a83ddb422946cf774c687c1ab63dcda15_icgraph.md5 new file mode 100644 index 00000000..eb4ed690 --- /dev/null +++ b/a01427_a83ddb422946cf774c687c1ab63dcda15_icgraph.md5 @@ -0,0 +1 @@ +579fe01336232622f06488689e24ae45 \ No newline at end of file diff --git a/a01427_a83ddb422946cf774c687c1ab63dcda15_icgraph.svg b/a01427_a83ddb422946cf774c687c1ab63dcda15_icgraph.svg new file mode 100644 index 00000000..6d8be5ac --- /dev/null +++ b/a01427_a83ddb422946cf774c687c1ab63dcda15_icgraph.svg @@ -0,0 +1,75 @@ + + + + + + +arax_vaccel_init + + +Node1 + + +arax_vaccel_init + + + + + +Node2 + + +arax_accel_acquire_phys + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_acquire_type + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_accel_init + + + + + +Node1->Node4 + + + + + + + + diff --git a/a01427_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.map b/a01427_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.map new file mode 100644 index 00000000..c63a4c46 --- /dev/null +++ b/a01427_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/a01427_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.md5 b/a01427_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.md5 new file mode 100644 index 00000000..1162c005 --- /dev/null +++ b/a01427_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.md5 @@ -0,0 +1 @@ +906116a76e2ca07c3bccd64c52ba2815 \ No newline at end of file diff --git a/a01427_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.svg b/a01427_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.svg new file mode 100644 index 00000000..59331a6f --- /dev/null +++ b/a01427_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.svg @@ -0,0 +1,165 @@ + + + + + + +arax_vaccel_add_task + + +Node1 + + +arax_vaccel_add_task + + + + + +Node2 + + +arax_accel_add_task + + + + + +Node1->Node2 + + + + + + + + +Node9 + + +utils_queue_push + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +async_condition_lock + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_condition_notify + + + + + +Node2->Node5 + + + + + + + + +Node7 + + +async_condition_unlock + + + + + +Node2->Node7 + + + + + + + + +Node4 + + +async_completion_wait + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +async_semaphore_inc + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_completion_complete + + + + + +Node7->Node8 + + + + + + + + diff --git a/a01427_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.map b/a01427_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.map new file mode 100644 index 00000000..71613b99 --- /dev/null +++ b/a01427_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.map @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/a01427_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.md5 b/a01427_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.md5 new file mode 100644 index 00000000..225350e1 --- /dev/null +++ b/a01427_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.md5 @@ -0,0 +1 @@ +628860c2d3d47f16cc05b8929b1f192f \ No newline at end of file diff --git a/a01427_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.svg b/a01427_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.svg new file mode 100644 index 00000000..87cfca62 --- /dev/null +++ b/a01427_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.svg @@ -0,0 +1,175 @@ + + + + + + +arax_vaccel_add_task + + +Node1 + + +arax_vaccel_add_task + + + + + +Node2 + + +arax_task_submit + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_task_issue + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_allocate +_remote + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data_get + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +arax_data_set + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +arax_task_issue_sync + + + + + +Node3->Node9 + + + + + + + + +Node6 + + +arax_data_memcpy + + + + + +Node5->Node6 + + + + + + + + +Node7->Node6 + + + + + + + + diff --git a/a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.map b/a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.map new file mode 100644 index 00000000..e47d5a90 --- /dev/null +++ b/a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.md5 b/a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.md5 new file mode 100644 index 00000000..b029d49b --- /dev/null +++ b/a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.md5 @@ -0,0 +1 @@ +b6d1cb43c90b2aa375120002b2247d1c \ No newline at end of file diff --git a/a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.svg b/a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.svg new file mode 100644 index 00000000..ece9c3f4 --- /dev/null +++ b/a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_vaccel_queue_size + + +Node1 + + +arax_vaccel_queue_size + + + + + +Node2 + + +arax_vaccel_queue + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +utils_queue_used_slots + + + + + +Node1->Node3 + + + + + + + + diff --git a/a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.map b/a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.map new file mode 100644 index 00000000..e4b8abad --- /dev/null +++ b/a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.md5 b/a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.md5 new file mode 100644 index 00000000..709ece6d --- /dev/null +++ b/a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.md5 @@ -0,0 +1 @@ +2242e788a0045178a0c760ca12457106 \ No newline at end of file diff --git a/a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.svg b/a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.svg new file mode 100644 index 00000000..83cf3386 --- /dev/null +++ b/a01427_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.svg @@ -0,0 +1,165 @@ + + + + + + +arax_vaccel_queue_size + + +Node1 + + +arax_vaccel_queue_size + + + + + +Node2 + + +arax_accel_add_vaccel + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +arax_accel_del_vaccel + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +arax_accel_set_physical + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_vaccel_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_accel_acquire_phys + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_accel_acquire_type + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_accel_init + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01427_afe1eb3edd264c847c36e9456b2598452_icgraph.map b/a01427_afe1eb3edd264c847c36e9456b2598452_icgraph.map new file mode 100644 index 00000000..da0d833b --- /dev/null +++ b/a01427_afe1eb3edd264c847c36e9456b2598452_icgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01427_afe1eb3edd264c847c36e9456b2598452_icgraph.md5 b/a01427_afe1eb3edd264c847c36e9456b2598452_icgraph.md5 new file mode 100644 index 00000000..a43c897e --- /dev/null +++ b/a01427_afe1eb3edd264c847c36e9456b2598452_icgraph.md5 @@ -0,0 +1 @@ +053f52deac27c18fe69cb9d03b17bcb1 \ No newline at end of file diff --git a/a01427_afe1eb3edd264c847c36e9456b2598452_icgraph.svg b/a01427_afe1eb3edd264c847c36e9456b2598452_icgraph.svg new file mode 100644 index 00000000..1fcf1116 --- /dev/null +++ b/a01427_afe1eb3edd264c847c36e9456b2598452_icgraph.svg @@ -0,0 +1,183 @@ + + + + + + +arax_vaccel_queue + + +Node1 + + +arax_vaccel_queue + + + + + +Node2 + + +arax_vaccel_queue_size + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_add_vaccel + + + + + +Node2->Node3 + + + + + + + + +Node9 + + +arax_accel_del_vaccel + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +arax_accel_set_physical + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_vaccel_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_accel_acquire_phys + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_accel_acquire_type + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +arax_accel_init + + + + + +Node5->Node8 + + + + + + + + +Node10 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01427_source.html b/a01427_source.html new file mode 100644 index 00000000..6bdb0fd0 --- /dev/null +++ b/a01427_source.html @@ -0,0 +1,215 @@ + + + + + + + +Arax: arax_vaccel.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_vaccel.h
+
+
+Go to the documentation of this file.
1#ifndef ARAX_VACCEL_HEADER
+
2#define ARAX_VACCEL_HEADER
+
3#include "core/arax_object.h"
+
4#include "utils/queue.h"
+
5
+ +
7
+
8#include "core/arax_accel.h"
+
9#include "utils/queue.h"
+
10#include "async.h"
+
11
+
12#ifdef __cplusplus
+
13extern "C" {
+
14#endif /* ifdef __cplusplus */
+
15
+ +
17{
+
18 SEQUENTIAL, // < Tasks in VAQ will run one after the other(no overlap)
+
19 PARALLEL // < Tasks in VAQ can run in parallel(can overlap).
+ +
21
+ +
30{
+ + + + +
35 utils_list_node_s vaccels; // Used in pipe->orphan_vacs or phys->vaccels
+
36 uint64_t cid;
+
37 uint64_t priority;
+ +
39 void * meta; // Metadata pointer available to controller.
+ +
41};
+
42
+
51arax_vaccel_s* arax_vaccel_init(arax_pipe_s *pipe, const char *name,
+
52 arax_accel_type_e type, arax_accel_s *accel);
+
53
+ +
55
+ +
62
+ +
69
+
73uint64_t arax_vaccel_set_cid(arax_vaccel_s *vaccel, uint64_t cid);
+
74
+
78uint64_t arax_vaccel_get_cid(arax_vaccel_s *vaccel);
+
79
+
83uint64_t arax_vaccel_set_job_priority(arax_vaccel_s *vaccel, uint64_t priority);
+
84
+ +
89
+
93void arax_vaccel_set_meta(arax_vaccel_s *vaccel, void *meta);
+
94
+ +
99
+ +
107
+
114unsigned int arax_vaccel_queue_size(arax_vaccel_s *vaccel);
+
115
+ +
117
+
118#ifdef __cplusplus
+
119}
+
120#endif /* ifdef __cplusplus */
+
121
+
122#endif /* ifndef ARAX_VACCEL_HEADER */
+
void arax_task
Definition arax_types.h:51
+
enum arax_accel_state arax_accel_state_e
+
enum arax_accel_type arax_accel_type_e
+ +
volatile uint32_t utils_spinlock
Definition spinlock.h:10
+ + +
arax_accel_state_e arax_vaccel_get_stat(arax_vaccel_s *accel, arax_accel_stats_s *stat)
+
arax_accel_ordering_e
Definition arax_vaccel.h:17
+
@ SEQUENTIAL
Definition arax_vaccel.h:18
+
@ PARALLEL
Definition arax_vaccel.h:19
+
uint64_t arax_vaccel_get_job_priority(arax_vaccel_s *vaccel)
Definition arax_vaccel.c:77
+
arax_vaccel_s * arax_vaccel_init(arax_pipe_s *pipe, const char *name, arax_accel_type_e type, arax_accel_s *accel)
Definition arax_vaccel.c:3
+
void arax_vaccel_add_task(arax_vaccel_s *accel, arax_task *task)
Definition arax_vaccel.c:32
+
uint64_t arax_vaccel_set_cid(arax_vaccel_s *vaccel, uint64_t cid)
Definition arax_vaccel.c:57
+
unsigned int arax_vaccel_queue_size(arax_vaccel_s *vaccel)
+
void arax_vaccel_set_meta(arax_vaccel_s *vaccel, void *meta)
Definition arax_vaccel.c:83
+
void * arax_vaccel_get_meta(arax_vaccel_s *vaccel)
Definition arax_vaccel.c:89
+
arax_accel_ordering_e arax_vaccel_get_ordering(arax_accel_s *accel)
Definition arax_vaccel.c:49
+
uint64_t arax_vaccel_get_cid(arax_vaccel_s *vaccel)
Definition arax_vaccel.c:64
+
void arax_vaccel_set_ordering(arax_accel_s *accel, arax_accel_ordering_e ordering)
Definition arax_vaccel.c:41
+
uint64_t arax_vaccel_set_job_priority(arax_vaccel_s *vaccel, uint64_t priority)
Definition arax_vaccel.c:70
+
utils_queue_s * arax_vaccel_queue(arax_vaccel_s *vaccel)
Definition arax_vaccel.c:95
+ + + +
arax_accel_ordering_e ordering
Definition arax_vaccel.h:33
+
utils_spinlock lock
Definition arax_vaccel.h:34
+
arax_object_s obj
Definition arax_vaccel.h:31
+
uint64_t cid
Definition arax_vaccel.h:36
+
arax_accel_s * phys
Definition arax_vaccel.h:38
+
arax_accel_type_e type
Definition arax_vaccel.h:32
+ +
utils_list_node_s vaccels
Definition arax_vaccel.h:35
+
utils_queue_s queue
Definition arax_vaccel.h:40
+
uint64_t priority
Definition arax_vaccel.h:37
+ +
Definition queue.h:16
+ + +
+
+ + + + diff --git a/a01428.map b/a01428.map new file mode 100644 index 00000000..b0609bdf --- /dev/null +++ b/a01428.map @@ -0,0 +1,50 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01428.md5 b/a01428.md5 new file mode 100644 index 00000000..c59e5361 --- /dev/null +++ b/a01428.md5 @@ -0,0 +1 @@ +dc9aa3c0beb63b8898b892a0de57e838 \ No newline at end of file diff --git a/a01428.svg b/a01428.svg new file mode 100644 index 00000000..c94d591c --- /dev/null +++ b/a01428.svg @@ -0,0 +1,444 @@ + + + + + + +arax_vaccel.h + + +Node1 + + +arax_vaccel.h + + + + + +Node2 + + +core/arax_object.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +utils/queue.h + + + + + +Node1->Node10 + + + + + + + + +Node12 + + +core/arax_accel.h + + + + + +Node1->Node12 + + + + + + + + +Node19 + + +async.h + + + + + +Node1->Node19 + + + + + + + + +Node3 + + +utils/list.h + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +utils/spinlock.h + + + + + +Node2->Node6 + + + + + + + + +Node9 + + +arch/alloc.h + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +stddef.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +stdint.h + + + + + +Node3->Node5 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +utils/arax_assert.h + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +compat.h + + + + + +Node7->Node8 + + + + + + + + +Node10->Node4 + + + + + + + + +Node10->Node5 + + + + + + + + +Node10->Node6 + + + + + + + + +Node11 + + +conf.h + + + + + +Node10->Node11 + + + + + + + + +Node12->Node1 + + + + + + + + +Node13 + + +arax.h + + + + + +Node12->Node13 + + + + + + + + +Node12->Node19 + + + + + + + + +Node20 + + +core/arax_throttle.h + + + + + +Node12->Node20 + + + + + + + + +Node13->Node4 + + + + + + + + +Node14 + + +stdio.h + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +arax_types.h + + + + + +Node13->Node15 + + + + + + + + +Node18 + + +core/arax_accel_types.h + + + + + +Node13->Node18 + + + + + + + + +Node16 + + +sys/time.h + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +time.h + + + + + +Node15->Node17 + + + + + + + + +Node18->Node15 + + + + + + + + +Node20->Node19 + + + + + + + + diff --git a/a01429.map b/a01429.map new file mode 100644 index 00000000..c0f7196f --- /dev/null +++ b/a01429.map @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01429.md5 b/a01429.md5 new file mode 100644 index 00000000..ac686022 --- /dev/null +++ b/a01429.md5 @@ -0,0 +1 @@ +4ec545cd86e59f8e993d69b89b98e666 \ No newline at end of file diff --git a/a01429.svg b/a01429.svg new file mode 100644 index 00000000..ab2f6b11 --- /dev/null +++ b/a01429.svg @@ -0,0 +1,318 @@ + + + + + + +arax_vaccel.h + + +Node1 + + +arax_vaccel.h + + + + + +Node2 + + +arax_accel.h + + + + + +Node1->Node2 + + + + + + + + +Node2->Node1 + + + + + + + + +Node3 + + +arax_data.h + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +arax_object.c + + + + + +Node2->Node6 + + + + + + + + +Node9 + + +arax_pipe.h + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +arax_data.c + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data_private.h + + + + + +Node3->Node5 + + + + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +arax_task.c + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +impl.c + + + + + +Node3->Node8 + + + + + + + + +Node5->Node4 + + + + + + + + +Node9->Node4 + + + + + + + + +Node9->Node6 + + + + + + + + +Node9->Node7 + + + + + + + + +Node9->Node8 + + + + + + + + +Node10 + + +arax_accel.c + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_pipe.c + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +arax_plot.c + + + + + +Node9->Node12 + + + + + + + + +Node13 + + +arax_ptr.c + + + + + +Node9->Node13 + + + + + + + + +Node14 + + +arax_vaccel.c + + + + + +Node9->Node14 + + + + + + + + diff --git a/a01433.html b/a01433.html new file mode 100644 index 00000000..f056d4ea --- /dev/null +++ b/a01433.html @@ -0,0 +1,913 @@ + + + + + + + +Arax: async_api.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
async_api.h File Reference
+
+
+
#include "arch/alloc.h"
+
+ + Include dependency graph for async_api.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

void async_meta_init_once (async_meta_s *meta, arch_alloc_s *alloc)
 
void async_meta_init_always (async_meta_s *meta)
 
void async_completion_init (async_meta_s *meta, async_completion_s *completion)
 
void async_completion_complete (async_completion_s *completion)
 
int async_completion_check (async_completion_s *completion)
 
void async_completion_wait (async_completion_s *completion)
 
void async_semaphore_init (async_meta_s *meta, async_semaphore_s *sem)
 
int async_semaphore_value (async_semaphore_s *sem)
 
void async_semaphore_inc (async_semaphore_s *sem)
 
void async_semaphore_dec (async_semaphore_s *sem)
 
void async_condition_init (async_meta_s *meta, async_condition_s *cond)
 
void async_condition_lock (async_condition_s *cond)
 
void async_condition_wait (async_condition_s *cond)
 
void async_condition_notify (async_condition_s *cond)
 
void async_condition_unlock (async_condition_s *cond)
 
void async_meta_exit (async_meta_s *meta)
 
+

Function Documentation

+ +

◆ async_completion_check()

+ +
+
+ + + + + + + + +
int async_completion_check (async_completion_scompletion)
+
+

Check if completion has been marked as completed.

+
Parameters
+ + +
completionCompletion to be checked.
+
+
+
Returns
0 if not completed, !0 if completed.
+ +

Definition at line 144 of file ivshmem/async.c.

+ +

References async_completion_s::completed, and async_completion_s::mutex.

+ +

Referenced by async_thread().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_completion_complete()

+ +
+
+ + + + + + + + +
void async_completion_complete (async_completion_scompletion)
+
+

Mark compl as completed and notify pending async_completion_wait() callers.

+
Parameters
+ + +
completionCompletion to be marked as completed.
+
+
+ +

Definition at line 129 of file ivshmem/async.c.

+ +

References async_completion_s::completed, async_completion_s::meta, async_completion_s::mutex, async_completion_s::vm_id, and wakeupVm().

+ +

Referenced by arax_task_mark_done(), async_condition_init(), async_condition_unlock(), async_condition_wait(), and async_semaphore_inc().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_completion_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void async_completion_init (async_meta_smeta,
async_completion_scompletion 
)
+
+

Create and register async_completion_s objects created in buff.

+
Parameters
+ + + +
metaPointer to async_meta_s that will 'own' this completion.
completionCompletion to be initialized
+
+
+
Returns
Number of objects created, should be buff_size/async_completion_size().
+ +

Definition at line 118 of file ivshmem/async.c.

+ +

References async_completion_s::attr, async_completion_s::completed, async_completion_s::meta, async_completion_s::mutex, async_completion_s::outstanding, and utils_list_node_init().

+ +

Referenced by arax_task_alloc(), async_condition_init(), and async_semaphore_dec().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_completion_wait()

+ +
+
+ + + + + + + + +
void async_completion_wait (async_completion_scompletion)
+
+

Wait for compl to be completed with async_completion_complete().

+
Parameters
+ + +
completionSleep untill it has been completed with async_completion_complete.
+
+
+ +

Definition at line 135 of file ivshmem/async.c.

+ +

References _add_completion(), async_completion_s::completed, getVmID(), async_completion_s::meta, async_completion_s::mutex, and async_completion_s::vm_id.

+ +

Referenced by arax_task_wait_done(), async_condition_lock(), async_condition_wait(), and async_semaphore_dec().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_condition_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void async_condition_init (async_meta_smeta,
async_condition_scond 
)
+
+

Initialize semaphore.

+
Parameters
+ + + +
metaPointer to async_meta_s that will 'own' this semaphore.
condCondition to be initialized
+
+
+ +

Definition at line 206 of file ivshmem/async.c.

+ +

References async_completion_complete(), async_completion_init(), async_condition_unlock(), async_semaphore_init(), async_condition_s::c_attr, async_condition_s::condition, async_condition_s::mutex, and async_condition_s::semaphore.

+ +

Referenced by arax_accel_init(), arax_pipe_init(), and arax_throttle_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_condition_lock()

+ +
+
+ + + + + + + + +
void async_condition_lock (async_condition_scond)
+
+

Lock on condition cond.

+
Parameters
+ + +
condCondition to be read.
+
+
+ +

Definition at line 213 of file ivshmem/async.c.

+ +

References async_completion_wait(), and async_condition_s::mutex.

+ +

Referenced by _arax_init(), arax_accel_add_task(), arax_accel_add_vaccel(), arax_accel_del_vaccel(), arax_accel_get_assigned_vaccels(), arax_accel_wait_for_task(), ARAX_OBJ_DTOR_DECL(), arax_pipe_add_orphan_vaccel(), arax_pipe_get_orphan_vaccel(), arax_pipe_orphan_stop(), arax_pipe_remove_orphan_vaccel(), arax_throttle_size_dec(), and arax_throttle_size_inc().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_condition_notify()

+ +
+
+ + + + + + + + +
void async_condition_notify (async_condition_scond)
+
+

Notify cond.

+
Note
Prior to this call cond must be locked using async_condition_lock().
+
Parameters
+ + +
condCondition to be notified.
+
+
+ +

Definition at line 225 of file ivshmem/async.c.

+ +

References async_semaphore_inc(), async_condition_s::condition, and async_condition_s::semaphore.

+ +

Referenced by arax_accel_add_task(), arax_accel_add_vaccel(), arax_accel_del_vaccel(), arax_controller_init_done(), arax_pipe_add_orphan_vaccel(), arax_pipe_orphan_stop(), and arax_throttle_size_inc().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_condition_unlock()

+ +
+
+ + + + + + + + +
void async_condition_unlock (async_condition_scond)
+
+

Lock on condition cond.

+
Note
Prior to this call cond must be locked using async_condition_lock().
+
Parameters
+ + +
condCondition to be read.
+
+
+ +

Definition at line 230 of file ivshmem/async.c.

+ +

References async_completion_complete(), and async_condition_s::mutex.

+ +

Referenced by _arax_init(), arax_accel_add_task(), arax_accel_add_vaccel(), arax_accel_del_vaccel(), arax_accel_get_assigned_vaccels(), arax_accel_wait_for_task(), ARAX_OBJ_DTOR_DECL(), arax_pipe_add_orphan_vaccel(), arax_pipe_get_orphan_vaccel(), arax_pipe_orphan_stop(), arax_pipe_remove_orphan_vaccel(), arax_throttle_size_dec(), arax_throttle_size_inc(), and async_condition_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_condition_wait()

+ +
+
+ + + + + + + + +
void async_condition_wait (async_condition_scond)
+
+

Wait on cond.

+
Note
Prior to this call cond must be locked using async_condition_lock().
+
Parameters
+ + +
condCondition to be read.
+
+
+ +

Definition at line 218 of file ivshmem/async.c.

+ +

References async_completion_complete(), async_completion_wait(), async_semaphore_dec(), async_condition_s::condition, async_completion_s::mutex, async_condition_s::mutex, and async_condition_s::semaphore.

+ +

Referenced by _arax_init(), arax_accel_wait_for_task(), arax_pipe_get_orphan_vaccel(), and arax_throttle_size_dec().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_meta_exit()

+ +
+
+ + + + + + + + +
void async_meta_exit (async_meta_smeta)
+
+

De initialize an async_meta_s object.

+
Parameters
+ + +
metaThe async_meta_s object to be uninitialized.
+
+
+ +

Definition at line 235 of file ivshmem/async.c.

+ +

References fd, async_meta_s::fd, getVmID(), async_meta_s::regs, async_meta_s::thread, and wakeupVm().

+ +

Referenced by arax_pipe_exit().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_meta_init_always()

+ +
+
+ + + + + + + + +
void async_meta_init_always (async_meta_smeta)
+
+

Initialize a async_meta_s object on every node.

+

This will be called multiple times, once for every node.

+
Parameters
+ + +
metaAn uninitialized async_meta_s object.
+
+
+ +

Definition at line 89 of file ivshmem/async.c.

+ +

References async_thread(), reg_fd, async_meta_s::regs, shm_file, async_meta_s::thread, utils_config_alloc_path(), utils_config_free_path(), and utils_config_get_str().

+ +

Referenced by _arax_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_meta_init_once()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void async_meta_init_once (async_meta_smeta,
arch_alloc_salloc 
)
+
+

Initialize a async_meta_s object once.

+

This will be called only once, on the first node.

+
Parameters
+ + + +
metaAn uninitialized async_meta_s object.
allocAllocator instance to be used for internall allocations.
+
+
+ +

Definition at line 71 of file ivshmem/async.c.

+ +

References async_meta_s::alloc, async_meta_s::lock, async_meta_s::outstanding, utils_config_alloc_path(), utils_config_free_path(), utils_config_get_bool(), utils_list_init(), and utils_spinlock_init.

+ +

Referenced by arax_pipe_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_semaphore_dec()

+ +
+
+ + + + + + + + +
void async_semaphore_dec (async_semaphore_ssem)
+
+

Decrease semaphore.

+

Decrease(ie consume) sem by one. This function will block if async_semaphore_value() == 0.

+
Parameters
+ + +
semSemaphore to be increased.
+
+
+ +

Definition at line 181 of file ivshmem/async.c.

+ +

References async_meta_s::alloc, arch_alloc_allocate(), arch_alloc_free, async_completion_init(), async_completion_wait(), getVmID(), async_semaphore_s::meta, async_completion_s::outstanding, async_semaphore_s::pending_list, async_semaphore_s::pending_lock, async_semaphore_s::sem, utils_list_add(), utils_spinlock_lock, utils_spinlock_unlock, async_semaphore_s::value, and wakeupVm().

+ +

Referenced by async_condition_wait().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_semaphore_inc()

+ +
+
+ + + + + + + + +
void async_semaphore_inc (async_semaphore_ssem)
+
+

Increase semaphore.

+

Increase(ie produce) sem by one. This function will never block.

+
Parameters
+ + +
semSemaphore to be increased.
+
+
+ +

Definition at line 161 of file ivshmem/async.c.

+ +

References _add_completion(), async_completion_complete(), utils_list_s::head, utils_list_s::length, async_semaphore_s::meta, utils_list_node::next, utils_list_node::owner, async_semaphore_s::pending_list, async_semaphore_s::pending_lock, async_semaphore_s::sem, utils_list_del(), utils_spinlock_lock, utils_spinlock_unlock, and async_semaphore_s::value.

+ +

Referenced by async_condition_notify().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_semaphore_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void async_semaphore_init (async_meta_smeta,
async_semaphore_ssem 
)
+
+

Initialize semaphore.

+
Parameters
+ + + +
metaPointer to async_meta_s that will 'own' this semaphore.
semSemaphore to be initialized
+
+
+ +

Definition at line 149 of file ivshmem/async.c.

+ +

References async_semaphore_s::pending_list, async_semaphore_s::pending_lock, async_semaphore_s::sem, utils_list_init(), utils_spinlock_init, and async_semaphore_s::value.

+ +

Referenced by async_condition_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_semaphore_value()

+ +
+
+ + + + + + + + +
int async_semaphore_value (async_semaphore_ssem)
+
+

Return value of sem.

Parameters
+ + +
semSemaphore to be initialized
+
+
+ +

Definition at line 156 of file ivshmem/async.c.

+ +

References async_semaphore_s::sem, and async_semaphore_s::value.

+ +
+
+
+
+ + + + diff --git a/a01433.js b/a01433.js new file mode 100644 index 00000000..20ada96d --- /dev/null +++ b/a01433.js @@ -0,0 +1,19 @@ +var a01433 = +[ + [ "async_completion_check", "a01433.html#ae66ae81847153386c57918f4d91be8a7", null ], + [ "async_completion_complete", "a01433.html#ad1d30ecbf6bff6457b680aa940281072", null ], + [ "async_completion_init", "a01433.html#ac728117d73179c279de49e01ae905dda", null ], + [ "async_completion_wait", "a01433.html#aebf9e72bb6cbd8b9e33489d46c25075d", null ], + [ "async_condition_init", "a01433.html#ac7fbf1f43289d3e0e862b315f00e35e2", null ], + [ "async_condition_lock", "a01433.html#aed6af4d83e934e3e654ead541b15f2d9", null ], + [ "async_condition_notify", "a01433.html#a45a896fb606c2aa66a5a4c2af59ce494", null ], + [ "async_condition_unlock", "a01433.html#a3bbcb7c4c024e99d5c4ba52b61dfbbf7", null ], + [ "async_condition_wait", "a01433.html#a1bfeaeb9b81855e640d7a67cc9d92b17", null ], + [ "async_meta_exit", "a01433.html#afe9571a12debd9d75a0f8fb93420e268", null ], + [ "async_meta_init_always", "a01433.html#adbaa29dfccfdfe6e3fe69a1d001c05b5", null ], + [ "async_meta_init_once", "a01433.html#ab2e422aab2fcfa562795beb2843e8019", null ], + [ "async_semaphore_dec", "a01433.html#a7ab7c7fe9cb93434dde72a4e464a7e69", null ], + [ "async_semaphore_inc", "a01433.html#a0fa370eee5160963e617d1daf1c07363", null ], + [ "async_semaphore_init", "a01433.html#a2a7d01fc7720e936a430efc09d094c6c", null ], + [ "async_semaphore_value", "a01433.html#a2ef839f9f321fe47ec15653d08cf4183", null ] +]; \ No newline at end of file diff --git a/a01433_a0fa370eee5160963e617d1daf1c07363_cgraph.map b/a01433_a0fa370eee5160963e617d1daf1c07363_cgraph.map new file mode 100644 index 00000000..dac89be4 --- /dev/null +++ b/a01433_a0fa370eee5160963e617d1daf1c07363_cgraph.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/a01433_a0fa370eee5160963e617d1daf1c07363_cgraph.md5 b/a01433_a0fa370eee5160963e617d1daf1c07363_cgraph.md5 new file mode 100644 index 00000000..bc53e746 --- /dev/null +++ b/a01433_a0fa370eee5160963e617d1daf1c07363_cgraph.md5 @@ -0,0 +1 @@ +9ac23daae40e2508cca94c442aad3dcc \ No newline at end of file diff --git a/a01433_a0fa370eee5160963e617d1daf1c07363_cgraph.svg b/a01433_a0fa370eee5160963e617d1daf1c07363_cgraph.svg new file mode 100644 index 00000000..86a34dde --- /dev/null +++ b/a01433_a0fa370eee5160963e617d1daf1c07363_cgraph.svg @@ -0,0 +1,111 @@ + + + + + + +async_semaphore_inc + + +Node1 + + +async_semaphore_inc + + + + + +Node2 + + +_add_completion + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +async_completion_complete + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +utils_list_del + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +utils_list_add + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +utils_list_node_add + + + + + +Node3->Node4 + + + + + + + + diff --git a/a01433_a0fa370eee5160963e617d1daf1c07363_icgraph.map b/a01433_a0fa370eee5160963e617d1daf1c07363_icgraph.map new file mode 100644 index 00000000..f4b174cc --- /dev/null +++ b/a01433_a0fa370eee5160963e617d1daf1c07363_icgraph.map @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01433_a0fa370eee5160963e617d1daf1c07363_icgraph.md5 b/a01433_a0fa370eee5160963e617d1daf1c07363_icgraph.md5 new file mode 100644 index 00000000..db90299e --- /dev/null +++ b/a01433_a0fa370eee5160963e617d1daf1c07363_icgraph.md5 @@ -0,0 +1 @@ +70a1696316838b8c47a5695f3e767bd4 \ No newline at end of file diff --git a/a01433_a0fa370eee5160963e617d1daf1c07363_icgraph.svg b/a01433_a0fa370eee5160963e617d1daf1c07363_icgraph.svg new file mode 100644 index 00000000..55d83b92 --- /dev/null +++ b/a01433_a0fa370eee5160963e617d1daf1c07363_icgraph.svg @@ -0,0 +1,871 @@ + + + + + + +async_semaphore_inc + + +Node1 + + +async_semaphore_inc + + + + + +Node2 + + +async_condition_notify + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_add_task + + + + + +Node2->Node3 + + + + + + + + +Node13 + + +arax_accel_add_vaccel + + + + + +Node2->Node13 + + + + + + + + +Node19 + + +arax_accel_del_vaccel + + + + + +Node2->Node19 + + + + + + + + +Node21 + + +arax_controller_init_done + + + + + +Node2->Node21 + + + + + + + + +Node22 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node2->Node22 + + + + + + + + +Node23 + + +arax_pipe_orphan_stop + + + + + +Node2->Node23 + + + + + + + + +Node24 + + +arax_throttle_size_inc + + + + + +Node2->Node24 + + + + + + + + +Node4 + + +arax_vaccel_add_task + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_task_submit + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_task_issue + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_data_allocate +_remote + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_get + + + + + +Node6->Node8 + + + + + + + + +Node10 + + +arax_data_set + + + + + +Node6->Node10 + + + + + + + + +Node11 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node6->Node11 + + + + + + + + +Node12 + + +arax_task_issue_sync + + + + + +Node6->Node12 + + + + + + + + +Node9 + + +arax_data_memcpy + + + + + +Node8->Node9 + + + + + + + + +Node10->Node9 + + + + + + + + +Node14 + + +arax_accel_set_physical + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +arax_vaccel_init + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +arax_accel_acquire_phys + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +arax_accel_acquire_type + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +arax_accel_init + + + + + +Node15->Node18 + + + + + + + + +Node20 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node19->Node20 + + + + + + + + +Node22->Node15 + + + + + + + + +Node25 + + +arax_accel_size_inc + + + + + +Node24->Node25 + + + + + + + + +Node26 + + +arax_pipe_size_inc + + + + + +Node24->Node26 + + + + + + + + +Node27 + + +arax_object_ref_dec + + + + + +Node26->Node27 + + + + + + + + +Node41 + + +arax_object_ref_dec +_pre_locked + + + + + +Node26->Node41 + + + + + + + + +Node27->Node11 + + + + + + + + +Node28 + + +arax_accel_list_free + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +arax_accel_release + + + + + +Node27->Node29 + + + + + + + + +Node31 + + +arax_data_free + + + + + +Node27->Node31 + + + + + + + + +Node32 + + +arax_data_migrate_accel + + + + + +Node27->Node32 + + + + + + + + +Node37 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node27->Node37 + + + + + + + + +Node38 + + +arax_pipe_delete_accel + + + + + +Node27->Node38 + + + + + + + + +Node39 + + +arax_proc_put + + + + + +Node27->Node39 + + + + + + + + +Node40 + + +arax_task_free + + + + + +Node27->Node40 + + + + + + + + +Node30 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node29->Node30 + + + + + + + + +Node33 + + +arax_data_arg_init + + + + + +Node32->Node33 + + + + + + + + +Node34 + + +arax_data_input_init + + + + + +Node32->Node34 + + + + + + + + +Node36 + + +arax_data_output_init + + + + + +Node32->Node36 + + + + + + + + +Node35 + + +arax_task_alloc + + + + + +Node34->Node35 + + + + + + + + +Node35->Node6 + + + + + + + + +Node36->Node35 + + + + + + + + +Node39->Node8 + + + + + + + + +Node39->Node10 + + + + + + + + +Node40->Node7 + + + + + + + + +Node40->Node8 + + + + + + + + +Node40->Node12 + + + + + + + + +Node42 + + +arax_accel_list_free +_pre_locked + + + + + +Node41->Node42 + + + + + + + + +Node43 + + +arax_accel_list + + + + + +Node42->Node43 + + + + + + + + diff --git a/a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.map b/a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.map new file mode 100644 index 00000000..2ac296ed --- /dev/null +++ b/a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.md5 b/a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.md5 new file mode 100644 index 00000000..f3da7345 --- /dev/null +++ b/a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.md5 @@ -0,0 +1 @@ +2d9df4922439ddd83de21b18c4bbcdc7 \ No newline at end of file diff --git a/a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.svg b/a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.svg new file mode 100644 index 00000000..8aea4289 --- /dev/null +++ b/a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.svg @@ -0,0 +1,75 @@ + + + + + + +async_condition_wait + + +Node1 + + +async_condition_wait + + + + + +Node2 + + +async_completion_complete + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_completion_wait + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +async_semaphore_dec + + + + + +Node1->Node4 + + + + + + + + diff --git a/a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.map b/a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.map new file mode 100644 index 00000000..b24a4de2 --- /dev/null +++ b/a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.map @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.md5 b/a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.md5 new file mode 100644 index 00000000..ff19f369 --- /dev/null +++ b/a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.md5 @@ -0,0 +1 @@ +dd139090e5ea0012c9875598ca3bc820 \ No newline at end of file diff --git a/a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.svg b/a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.svg new file mode 100644 index 00000000..0d61db6f --- /dev/null +++ b/a01433_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.svg @@ -0,0 +1,628 @@ + + + + + + +async_condition_wait + + +Node1 + + +async_condition_wait + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +arax_accel_wait_for_task + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +arax_throttle_size_dec + + + + + +Node1->Node12 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + +Node13 + + +arax_accel_size_dec + + + + + +Node12->Node13 + + + + + + + + +Node15 + + +arax_pipe_size_dec + + + + + +Node12->Node15 + + + + + + + + +Node14 + + +arax_data_allocate +_remote + + + + + +Node13->Node14 + + + + + + + + +Node16 + + +arax_object_register + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +arax_accel_init + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +arax_data_init_aligned + + + + + +Node16->Node18 + + + + + + + + +Node21 + + +arax_proc_init + + + + + +Node16->Node21 + + + + + + + + +Node23 + + +arax_task_alloc + + + + + +Node16->Node23 + + + + + + + + +Node30 + + +arax_vaccel_init + + + + + +Node16->Node30 + + + + + + + + +Node19 + + +arax_data_init + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +ARAX_BUFFER + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +arax_proc_register + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +arax_task_issue + + + + + +Node23->Node24 + + + + + + + + +Node24->Node14 + + + + + + + + +Node25 + + +arax_data_get + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +arax_data_set + + + + + +Node24->Node27 + + + + + + + + +Node28 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node24->Node28 + + + + + + + + +Node29 + + +arax_task_issue_sync + + + + + +Node24->Node29 + + + + + + + + +Node26 + + +arax_data_memcpy + + + + + +Node25->Node26 + + + + + + + + +Node27->Node26 + + + + + + + + +Node30->Node17 + + + + + + + + +Node31 + + +arax_accel_acquire_phys + + + + + +Node30->Node31 + + + + + + + + +Node32 + + +arax_accel_acquire_type + + + + + +Node30->Node32 + + + + + + + + diff --git a/a01433_a2a7d01fc7720e936a430efc09d094c6c_cgraph.map b/a01433_a2a7d01fc7720e936a430efc09d094c6c_cgraph.map new file mode 100644 index 00000000..aefd803d --- /dev/null +++ b/a01433_a2a7d01fc7720e936a430efc09d094c6c_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01433_a2a7d01fc7720e936a430efc09d094c6c_cgraph.md5 b/a01433_a2a7d01fc7720e936a430efc09d094c6c_cgraph.md5 new file mode 100644 index 00000000..f9432bf7 --- /dev/null +++ b/a01433_a2a7d01fc7720e936a430efc09d094c6c_cgraph.md5 @@ -0,0 +1 @@ +95a8fafaac00793d7b99b2b84b37060d \ No newline at end of file diff --git a/a01433_a2a7d01fc7720e936a430efc09d094c6c_cgraph.svg b/a01433_a2a7d01fc7720e936a430efc09d094c6c_cgraph.svg new file mode 100644 index 00000000..5393c30a --- /dev/null +++ b/a01433_a2a7d01fc7720e936a430efc09d094c6c_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +async_semaphore_init + + +Node1 + + +async_semaphore_init + + + + + +Node2 + + +utils_list_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +utils_list_node_init + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01433_a2a7d01fc7720e936a430efc09d094c6c_icgraph.map b/a01433_a2a7d01fc7720e936a430efc09d094c6c_icgraph.map new file mode 100644 index 00000000..269d711f --- /dev/null +++ b/a01433_a2a7d01fc7720e936a430efc09d094c6c_icgraph.map @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01433_a2a7d01fc7720e936a430efc09d094c6c_icgraph.md5 b/a01433_a2a7d01fc7720e936a430efc09d094c6c_icgraph.md5 new file mode 100644 index 00000000..e324546a --- /dev/null +++ b/a01433_a2a7d01fc7720e936a430efc09d094c6c_icgraph.md5 @@ -0,0 +1 @@ +623647336779a9979e562c6fe4d6ce06 \ No newline at end of file diff --git a/a01433_a2a7d01fc7720e936a430efc09d094c6c_icgraph.svg b/a01433_a2a7d01fc7720e936a430efc09d094c6c_icgraph.svg new file mode 100644 index 00000000..8cfab6b5 --- /dev/null +++ b/a01433_a2a7d01fc7720e936a430efc09d094c6c_icgraph.svg @@ -0,0 +1,275 @@ + + + + + + +async_semaphore_init + + +Node1 + + +async_semaphore_init + + + + + +Node2 + + +async_condition_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_pipe_init + + + + + +Node2->Node4 + + + + + + + + +Node13 + + +arax_throttle_init + + + + + +Node2->Node13 + + + + + + + + +Node5 + + +_arax_init + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_controller_init +_start + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_init + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +arax_plot_register +_metric + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_ptr_valid + + + + + +Node7->Node9 + + + + + + + + +Node9->Node8 + + + + + + + + +Node10 + + +_arax_assert_obj + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_ref + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +arax_data_ref_offset + + + + + +Node9->Node12 + + + + + + + + +Node11->Node12 + + + + + + + + +Node13->Node3 + + + + + + + + +Node13->Node4 + + + + + + + + diff --git a/a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.map b/a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.map new file mode 100644 index 00000000..13e28921 --- /dev/null +++ b/a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.md5 b/a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.md5 new file mode 100644 index 00000000..4c1487a6 --- /dev/null +++ b/a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.md5 @@ -0,0 +1 @@ +dee28efa988c4fdd6be2c608cd597e68 \ No newline at end of file diff --git a/a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.svg b/a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.svg new file mode 100644 index 00000000..5446e69e --- /dev/null +++ b/a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +async_condition_unlock + + +Node1 + + +async_condition_unlock + + + + + +Node2 + + +async_completion_complete + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.map b/a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.map new file mode 100644 index 00000000..24b8fbf5 --- /dev/null +++ b/a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.map @@ -0,0 +1,112 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.md5 b/a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.md5 new file mode 100644 index 00000000..7673f738 --- /dev/null +++ b/a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.md5 @@ -0,0 +1 @@ +3c65a0b0d737851331f6943f15d3a23b \ No newline at end of file diff --git a/a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.svg b/a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.svg new file mode 100644 index 00000000..63a0ef6d --- /dev/null +++ b/a01433_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.svg @@ -0,0 +1,1010 @@ + + + + + + +async_condition_unlock + + +Node1 + + +async_condition_unlock + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +arax_accel_add_task + + + + + +Node1->Node10 + + + + + + + + +Node20 + + +arax_accel_add_vaccel + + + + + +Node1->Node20 + + + + + + + + +Node26 + + +arax_accel_del_vaccel + + + + + +Node1->Node26 + + + + + + + + +Node28 + + +arax_accel_get_assigned +_vaccels + + + + + +Node1->Node28 + + + + + + + + +Node29 + + +arax_accel_wait_for_task + + + + + +Node1->Node29 + + + + + + + + +Node30 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node1->Node30 + + + + + + + + +Node31 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node1->Node31 + + + + + + + + +Node32 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node1->Node32 + + + + + + + + +Node33 + + +arax_pipe_orphan_stop + + + + + +Node1->Node33 + + + + + + + + +Node34 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node1->Node34 + + + + + + + + +Node35 + + +arax_throttle_size_dec + + + + + +Node1->Node35 + + + + + + + + +Node45 + + +arax_throttle_size_inc + + + + + +Node1->Node45 + + + + + + + + +Node63 + + +async_condition_init + + + + + +Node1->Node63 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +arax_vaccel_add_task + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_task_submit + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +arax_task_issue + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +arax_data_allocate +_remote + + + + + +Node13->Node14 + + + + + + + + +Node18 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node13->Node18 + + + + + + + + +Node21 + + +arax_accel_set_physical + + + + + +Node20->Node21 + + + + + + + + +Node22 + + +arax_vaccel_init + + + + + +Node20->Node22 + + + + + + + + +Node23 + + +arax_accel_acquire_phys + + + + + +Node22->Node23 + + + + + + + + +Node24 + + +arax_accel_acquire_type + + + + + +Node22->Node24 + + + + + + + + +Node25 + + +arax_accel_init + + + + + +Node22->Node25 + + + + + + + + +Node27 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node26->Node27 + + + + + + + + +Node31->Node22 + + + + + + + + +Node34->Node20 + + + + + + + + +Node34->Node27 + + + + + + + + +Node36 + + +arax_accel_size_dec + + + + + +Node35->Node36 + + + + + + + + +Node37 + + +arax_pipe_size_dec + + + + + +Node35->Node37 + + + + + + + + +Node36->Node14 + + + + + + + + +Node38 + + +arax_object_register + + + + + +Node37->Node38 + + + + + + + + +Node38->Node22 + + + + + + + + +Node38->Node25 + + + + + + + + +Node39 + + +arax_data_init_aligned + + + + + +Node38->Node39 + + + + + + + + +Node42 + + +arax_proc_init + + + + + +Node38->Node42 + + + + + + + + +Node44 + + +arax_task_alloc + + + + + +Node38->Node44 + + + + + + + + +Node44->Node13 + + + + + + + + +Node46 + + +arax_accel_size_inc + + + + + +Node45->Node46 + + + + + + + + +Node47 + + +arax_pipe_size_inc + + + + + +Node45->Node47 + + + + + + + + +Node48 + + +arax_object_ref_dec + + + + + +Node47->Node48 + + + + + + + + +Node60 + + +arax_object_ref_dec +_pre_locked + + + + + +Node47->Node60 + + + + + + + + +Node48->Node18 + + + + + + + + +Node49 + + +arax_accel_list_free + + + + + +Node48->Node49 + + + + + + + + +Node50 + + +arax_accel_release + + + + + +Node48->Node50 + + + + + + + + +Node51 + + +arax_data_free + + + + + +Node48->Node51 + + + + + + + + +Node52 + + +arax_data_migrate_accel + + + + + +Node48->Node52 + + + + + + + + +Node56 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node48->Node56 + + + + + + + + +Node57 + + +arax_pipe_delete_accel + + + + + +Node48->Node57 + + + + + + + + +Node58 + + +arax_proc_put + + + + + +Node48->Node58 + + + + + + + + +Node50->Node30 + + + + + + + + diff --git a/a01433_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.map b/a01433_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.map new file mode 100644 index 00000000..ae6510e5 --- /dev/null +++ b/a01433_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01433_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.md5 b/a01433_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.md5 new file mode 100644 index 00000000..683e2960 --- /dev/null +++ b/a01433_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.md5 @@ -0,0 +1 @@ +d6c048abf93899c77f9a5c1354dd2f46 \ No newline at end of file diff --git a/a01433_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.svg b/a01433_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.svg new file mode 100644 index 00000000..19b8432a --- /dev/null +++ b/a01433_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +async_condition_notify + + +Node1 + + +async_condition_notify + + + + + +Node2 + + +async_semaphore_inc + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01433_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.map b/a01433_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.map new file mode 100644 index 00000000..f8177da4 --- /dev/null +++ b/a01433_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.map @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01433_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.md5 b/a01433_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.md5 new file mode 100644 index 00000000..8d55cd44 --- /dev/null +++ b/a01433_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.md5 @@ -0,0 +1 @@ +4296360af1f59c6f8ff08cede001fc69 \ No newline at end of file diff --git a/a01433_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.svg b/a01433_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.svg new file mode 100644 index 00000000..560134a5 --- /dev/null +++ b/a01433_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.svg @@ -0,0 +1,853 @@ + + + + + + +async_condition_notify + + +Node1 + + +async_condition_notify + + + + + +Node2 + + +arax_accel_add_task + + + + + +Node1->Node2 + + + + + + + + +Node12 + + +arax_accel_add_vaccel + + + + + +Node1->Node12 + + + + + + + + +Node18 + + +arax_accel_del_vaccel + + + + + +Node1->Node18 + + + + + + + + +Node20 + + +arax_controller_init_done + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node1->Node21 + + + + + + + + +Node22 + + +arax_pipe_orphan_stop + + + + + +Node1->Node22 + + + + + + + + +Node23 + + +arax_throttle_size_inc + + + + + +Node1->Node23 + + + + + + + + +Node3 + + +arax_vaccel_add_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_task_submit + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_task_issue + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_data_allocate +_remote + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_data_get + + + + + +Node5->Node7 + + + + + + + + +Node9 + + +arax_data_set + + + + + +Node5->Node9 + + + + + + + + +Node10 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node5->Node10 + + + + + + + + +Node11 + + +arax_task_issue_sync + + + + + +Node5->Node11 + + + + + + + + +Node8 + + +arax_data_memcpy + + + + + +Node7->Node8 + + + + + + + + +Node9->Node8 + + + + + + + + +Node13 + + +arax_accel_set_physical + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +arax_vaccel_init + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +arax_accel_acquire_phys + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +arax_accel_acquire_type + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +arax_accel_init + + + + + +Node14->Node17 + + + + + + + + +Node19 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node18->Node19 + + + + + + + + +Node21->Node14 + + + + + + + + +Node24 + + +arax_accel_size_inc + + + + + +Node23->Node24 + + + + + + + + +Node25 + + +arax_pipe_size_inc + + + + + +Node23->Node25 + + + + + + + + +Node26 + + +arax_object_ref_dec + + + + + +Node25->Node26 + + + + + + + + +Node40 + + +arax_object_ref_dec +_pre_locked + + + + + +Node25->Node40 + + + + + + + + +Node26->Node10 + + + + + + + + +Node27 + + +arax_accel_list_free + + + + + +Node26->Node27 + + + + + + + + +Node28 + + +arax_accel_release + + + + + +Node26->Node28 + + + + + + + + +Node30 + + +arax_data_free + + + + + +Node26->Node30 + + + + + + + + +Node31 + + +arax_data_migrate_accel + + + + + +Node26->Node31 + + + + + + + + +Node36 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node26->Node36 + + + + + + + + +Node37 + + +arax_pipe_delete_accel + + + + + +Node26->Node37 + + + + + + + + +Node38 + + +arax_proc_put + + + + + +Node26->Node38 + + + + + + + + +Node39 + + +arax_task_free + + + + + +Node26->Node39 + + + + + + + + +Node29 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node28->Node29 + + + + + + + + +Node32 + + +arax_data_arg_init + + + + + +Node31->Node32 + + + + + + + + +Node33 + + +arax_data_input_init + + + + + +Node31->Node33 + + + + + + + + +Node35 + + +arax_data_output_init + + + + + +Node31->Node35 + + + + + + + + +Node34 + + +arax_task_alloc + + + + + +Node33->Node34 + + + + + + + + +Node34->Node5 + + + + + + + + +Node35->Node34 + + + + + + + + +Node38->Node7 + + + + + + + + +Node38->Node9 + + + + + + + + +Node39->Node6 + + + + + + + + +Node39->Node7 + + + + + + + + +Node39->Node11 + + + + + + + + +Node41 + + +arax_accel_list_free +_pre_locked + + + + + +Node40->Node41 + + + + + + + + +Node42 + + +arax_accel_list + + + + + +Node41->Node42 + + + + + + + + diff --git a/a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.map b/a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.map new file mode 100644 index 00000000..5e667114 --- /dev/null +++ b/a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.md5 b/a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.md5 new file mode 100644 index 00000000..f0d58c08 --- /dev/null +++ b/a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.md5 @@ -0,0 +1 @@ +642c0e42f3f8687a24bc8d874174e389 \ No newline at end of file diff --git a/a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.svg b/a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.svg new file mode 100644 index 00000000..0d2caabe --- /dev/null +++ b/a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.svg @@ -0,0 +1,147 @@ + + + + + + +async_semaphore_dec + + +Node1 + + +async_semaphore_dec + + + + + +Node2 + + +arch_alloc_allocate + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_completion_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +async_completion_wait + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +getVmID + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +utils_list_add + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +wakeupVm + + + + + +Node1->Node8 + + + + + + + + +Node7 + + +utils_list_node_add + + + + + +Node6->Node7 + + + + + + + + diff --git a/a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.map b/a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.map new file mode 100644 index 00000000..25bd00f3 --- /dev/null +++ b/a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.map @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.md5 b/a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.md5 new file mode 100644 index 00000000..e3eacb16 --- /dev/null +++ b/a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.md5 @@ -0,0 +1 @@ +1fe55d526546830510852ba8742420a5 \ No newline at end of file diff --git a/a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.svg b/a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.svg new file mode 100644 index 00000000..9d7cbf52 --- /dev/null +++ b/a01433_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.svg @@ -0,0 +1,646 @@ + + + + + + +async_semaphore_dec + + +Node1 + + +async_semaphore_dec + + + + + +Node2 + + +async_condition_wait + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +arax_accel_wait_for_task + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node2->Node12 + + + + + + + + +Node13 + + +arax_throttle_size_dec + + + + + +Node2->Node13 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + +Node14 + + +arax_accel_size_dec + + + + + +Node13->Node14 + + + + + + + + +Node16 + + +arax_pipe_size_dec + + + + + +Node13->Node16 + + + + + + + + +Node15 + + +arax_data_allocate +_remote + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +arax_object_register + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +arax_accel_init + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +arax_data_init_aligned + + + + + +Node17->Node19 + + + + + + + + +Node22 + + +arax_proc_init + + + + + +Node17->Node22 + + + + + + + + +Node24 + + +arax_task_alloc + + + + + +Node17->Node24 + + + + + + + + +Node31 + + +arax_vaccel_init + + + + + +Node17->Node31 + + + + + + + + +Node20 + + +arax_data_init + + + + + +Node19->Node20 + + + + + + + + +Node21 + + +ARAX_BUFFER + + + + + +Node20->Node21 + + + + + + + + +Node23 + + +arax_proc_register + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +arax_task_issue + + + + + +Node24->Node25 + + + + + + + + +Node25->Node15 + + + + + + + + +Node26 + + +arax_data_get + + + + + +Node25->Node26 + + + + + + + + +Node28 + + +arax_data_set + + + + + +Node25->Node28 + + + + + + + + +Node29 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node25->Node29 + + + + + + + + +Node30 + + +arax_task_issue_sync + + + + + +Node25->Node30 + + + + + + + + +Node27 + + +arax_data_memcpy + + + + + +Node26->Node27 + + + + + + + + +Node28->Node27 + + + + + + + + +Node31->Node18 + + + + + + + + +Node32 + + +arax_accel_acquire_phys + + + + + +Node31->Node32 + + + + + + + + +Node33 + + +arax_accel_acquire_type + + + + + +Node31->Node33 + + + + + + + + diff --git a/a01433_ab2e422aab2fcfa562795beb2843e8019_cgraph.map b/a01433_ab2e422aab2fcfa562795beb2843e8019_cgraph.map new file mode 100644 index 00000000..234c6496 --- /dev/null +++ b/a01433_ab2e422aab2fcfa562795beb2843e8019_cgraph.map @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01433_ab2e422aab2fcfa562795beb2843e8019_cgraph.md5 b/a01433_ab2e422aab2fcfa562795beb2843e8019_cgraph.md5 new file mode 100644 index 00000000..601b12c4 --- /dev/null +++ b/a01433_ab2e422aab2fcfa562795beb2843e8019_cgraph.md5 @@ -0,0 +1 @@ +f01f57a4c0ebce65cb3bb06a1a47b752 \ No newline at end of file diff --git a/a01433_ab2e422aab2fcfa562795beb2843e8019_cgraph.svg b/a01433_ab2e422aab2fcfa562795beb2843e8019_cgraph.svg new file mode 100644 index 00000000..46b7ac96 --- /dev/null +++ b/a01433_ab2e422aab2fcfa562795beb2843e8019_cgraph.svg @@ -0,0 +1,336 @@ + + + + + + +async_meta_init_once + + +Node1 + + +async_meta_init_once + + + + + +Node2 + + +utils_config_alloc_path + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +utils_config_free_path + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +utils_config_get_bool + + + + + +Node1->Node5 + + + + + + + + +Node16 + + +utils_list_init + + + + + +Node1->Node16 + + + + + + + + +Node3 + + +system_home_path + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +utils_config_get_int + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +utils_config_get_long + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +_utils_config_get_str + + + + + +Node7->Node8 + + + + + + + + +Node13 + + +utils_config_write_long + + + + + +Node7->Node13 + + + + + + + + +Node9 + + +conf_get + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +system_env_var + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +system_file_size + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +utils_config_get_source + + + + + +Node9->Node12 + + + + + + + + +Node12->Node10 + + + + + + + + +Node14 + + +utils_config_write_str + + + + + +Node13->Node14 + + + + + + + + +Node14->Node9 + + + + + + + + +Node15 + + +conf_set + + + + + +Node14->Node15 + + + + + + + + +Node15->Node12 + + + + + + + + +Node17 + + +utils_list_node_init + + + + + +Node16->Node17 + + + + + + + + diff --git a/a01433_ab2e422aab2fcfa562795beb2843e8019_icgraph.map b/a01433_ab2e422aab2fcfa562795beb2843e8019_icgraph.map new file mode 100644 index 00000000..78a1739a --- /dev/null +++ b/a01433_ab2e422aab2fcfa562795beb2843e8019_icgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01433_ab2e422aab2fcfa562795beb2843e8019_icgraph.md5 b/a01433_ab2e422aab2fcfa562795beb2843e8019_icgraph.md5 new file mode 100644 index 00000000..23be2929 --- /dev/null +++ b/a01433_ab2e422aab2fcfa562795beb2843e8019_icgraph.md5 @@ -0,0 +1 @@ +dd230b68cd6cf290bbae81e7854fd64c \ No newline at end of file diff --git a/a01433_ab2e422aab2fcfa562795beb2843e8019_icgraph.svg b/a01433_ab2e422aab2fcfa562795beb2843e8019_icgraph.svg new file mode 100644 index 00000000..202b84f3 --- /dev/null +++ b/a01433_ab2e422aab2fcfa562795beb2843e8019_icgraph.svg @@ -0,0 +1,203 @@ + + + + + + +async_meta_init_once + + +Node1 + + +async_meta_init_once + + + + + +Node2 + + +arax_pipe_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01433_ac728117d73179c279de49e01ae905dda_cgraph.map b/a01433_ac728117d73179c279de49e01ae905dda_cgraph.map new file mode 100644 index 00000000..82e22649 --- /dev/null +++ b/a01433_ac728117d73179c279de49e01ae905dda_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01433_ac728117d73179c279de49e01ae905dda_cgraph.md5 b/a01433_ac728117d73179c279de49e01ae905dda_cgraph.md5 new file mode 100644 index 00000000..c9486237 --- /dev/null +++ b/a01433_ac728117d73179c279de49e01ae905dda_cgraph.md5 @@ -0,0 +1 @@ +d954951136e620923e272690179e8f4e \ No newline at end of file diff --git a/a01433_ac728117d73179c279de49e01ae905dda_cgraph.svg b/a01433_ac728117d73179c279de49e01ae905dda_cgraph.svg new file mode 100644 index 00000000..d0a03395 --- /dev/null +++ b/a01433_ac728117d73179c279de49e01ae905dda_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +async_completion_init + + +Node1 + + +async_completion_init + + + + + +Node2 + + +utils_list_node_init + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01433_ac728117d73179c279de49e01ae905dda_icgraph.map b/a01433_ac728117d73179c279de49e01ae905dda_icgraph.map new file mode 100644 index 00000000..24f3f056 --- /dev/null +++ b/a01433_ac728117d73179c279de49e01ae905dda_icgraph.map @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01433_ac728117d73179c279de49e01ae905dda_icgraph.md5 b/a01433_ac728117d73179c279de49e01ae905dda_icgraph.md5 new file mode 100644 index 00000000..778e55f7 --- /dev/null +++ b/a01433_ac728117d73179c279de49e01ae905dda_icgraph.md5 @@ -0,0 +1 @@ +2dfc6d318d2c90a9375ec88d9810c54e \ No newline at end of file diff --git a/a01433_ac728117d73179c279de49e01ae905dda_icgraph.svg b/a01433_ac728117d73179c279de49e01ae905dda_icgraph.svg new file mode 100644 index 00000000..5bec2719 --- /dev/null +++ b/a01433_ac728117d73179c279de49e01ae905dda_icgraph.svg @@ -0,0 +1,763 @@ + + + + + + +async_completion_init + + +Node1 + + +async_completion_init + + + + + +Node2 + + +arax_task_alloc + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +async_condition_init + + + + + +Node1->Node10 + + + + + + + + +Node22 + + +async_semaphore_dec + + + + + +Node1->Node22 + + + + + + + + +Node3 + + +arax_task_issue + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_allocate +_remote + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data_get + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +arax_data_set + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +arax_task_issue_sync + + + + + +Node3->Node9 + + + + + + + + +Node6 + + +arax_data_memcpy + + + + + +Node5->Node6 + + + + + + + + +Node7->Node6 + + + + + + + + +Node11 + + +arax_accel_init + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_pipe_init + + + + + +Node10->Node12 + + + + + + + + +Node21 + + +arax_throttle_init + + + + + +Node10->Node21 + + + + + + + + +Node13 + + +_arax_init + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +arax_controller_init +_start + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +arax_init + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +arax_plot_register +_metric + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +arax_ptr_valid + + + + + +Node15->Node17 + + + + + + + + +Node17->Node16 + + + + + + + + +Node18 + + +_arax_assert_obj + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +arax_data_ref + + + + + +Node17->Node19 + + + + + + + + +Node20 + + +arax_data_ref_offset + + + + + +Node17->Node20 + + + + + + + + +Node19->Node20 + + + + + + + + +Node21->Node11 + + + + + + + + +Node21->Node12 + + + + + + + + +Node23 + + +async_condition_wait + + + + + +Node22->Node23 + + + + + + + + +Node23->Node13 + + + + + + + + +Node24 + + +arax_accel_wait_for_task + + + + + +Node23->Node24 + + + + + + + + +Node25 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node23->Node25 + + + + + + + + +Node26 + + +arax_throttle_size_dec + + + + + +Node23->Node26 + + + + + + + + +Node27 + + +arax_accel_size_dec + + + + + +Node26->Node27 + + + + + + + + +Node28 + + +arax_pipe_size_dec + + + + + +Node26->Node28 + + + + + + + + +Node27->Node4 + + + + + + + + +Node29 + + +arax_object_register + + + + + +Node28->Node29 + + + + + + + + +Node29->Node2 + + + + + + + + +Node29->Node11 + + + + + + + + +Node30 + + +arax_data_init_aligned + + + + + +Node29->Node30 + + + + + + + + +Node33 + + +arax_proc_init + + + + + +Node29->Node33 + + + + + + + + +Node35 + + +arax_vaccel_init + + + + + +Node29->Node35 + + + + + + + + +Node31 + + +arax_data_init + + + + + +Node30->Node31 + + + + + + + + +Node32 + + +ARAX_BUFFER + + + + + +Node31->Node32 + + + + + + + + +Node34 + + +arax_proc_register + + + + + +Node33->Node34 + + + + + + + + +Node35->Node11 + + + + + + + + +Node36 + + +arax_accel_acquire_phys + + + + + +Node35->Node36 + + + + + + + + +Node37 + + +arax_accel_acquire_type + + + + + +Node35->Node37 + + + + + + + + diff --git a/a01433_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.map b/a01433_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.map new file mode 100644 index 00000000..ede435f0 --- /dev/null +++ b/a01433_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/a01433_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.md5 b/a01433_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.md5 new file mode 100644 index 00000000..8bb75620 --- /dev/null +++ b/a01433_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.md5 @@ -0,0 +1 @@ +d5b783342db71943ac77eab2af51c43d \ No newline at end of file diff --git a/a01433_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.svg b/a01433_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.svg new file mode 100644 index 00000000..b1e9575f --- /dev/null +++ b/a01433_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.svg @@ -0,0 +1,111 @@ + + + + + + +async_condition_init + + +Node1 + + +async_condition_init + + + + + +Node2 + + +async_completion_complete + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_completion_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +async_condition_unlock + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +async_semaphore_init + + + + + +Node1->Node6 + + + + + + + + +Node5 + + +async_completion_complete + + + + + +Node4->Node5 + + + + + + + + diff --git a/a01433_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.map b/a01433_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.map new file mode 100644 index 00000000..dc2ab55d --- /dev/null +++ b/a01433_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.map @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01433_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.md5 b/a01433_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.md5 new file mode 100644 index 00000000..43849fb6 --- /dev/null +++ b/a01433_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.md5 @@ -0,0 +1 @@ +46e3ac1ffbeca54c31a7c1ce69f87b02 \ No newline at end of file diff --git a/a01433_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.svg b/a01433_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.svg new file mode 100644 index 00000000..a03f715c --- /dev/null +++ b/a01433_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.svg @@ -0,0 +1,257 @@ + + + + + + +async_condition_init + + +Node1 + + +async_condition_init + + + + + +Node2 + + +arax_accel_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_init + + + + + +Node1->Node3 + + + + + + + + +Node12 + + +arax_throttle_init + + + + + +Node1->Node12 + + + + + + + + +Node4 + + +_arax_init + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_controller_init +_start + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_init + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_plot_register +_metric + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_ptr_valid + + + + + +Node6->Node8 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +_arax_assert_obj + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_data_ref + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +arax_data_ref_offset + + + + + +Node8->Node11 + + + + + + + + +Node10->Node11 + + + + + + + + +Node12->Node2 + + + + + + + + +Node12->Node3 + + + + + + + + diff --git a/a01433_ad1d30ecbf6bff6457b680aa940281072_cgraph.map b/a01433_ad1d30ecbf6bff6457b680aa940281072_cgraph.map new file mode 100644 index 00000000..882a1400 --- /dev/null +++ b/a01433_ad1d30ecbf6bff6457b680aa940281072_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01433_ad1d30ecbf6bff6457b680aa940281072_cgraph.md5 b/a01433_ad1d30ecbf6bff6457b680aa940281072_cgraph.md5 new file mode 100644 index 00000000..99a393cf --- /dev/null +++ b/a01433_ad1d30ecbf6bff6457b680aa940281072_cgraph.md5 @@ -0,0 +1 @@ +3122994f9dbd28ccd02ec5ee16501445 \ No newline at end of file diff --git a/a01433_ad1d30ecbf6bff6457b680aa940281072_cgraph.svg b/a01433_ad1d30ecbf6bff6457b680aa940281072_cgraph.svg new file mode 100644 index 00000000..ef24a35a --- /dev/null +++ b/a01433_ad1d30ecbf6bff6457b680aa940281072_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +async_completion_complete + + +Node1 + + +async_completion_complete + + + + + +Node2 + + +wakeupVm + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01433_ad1d30ecbf6bff6457b680aa940281072_icgraph.map b/a01433_ad1d30ecbf6bff6457b680aa940281072_icgraph.map new file mode 100644 index 00000000..8593e636 --- /dev/null +++ b/a01433_ad1d30ecbf6bff6457b680aa940281072_icgraph.map @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01433_ad1d30ecbf6bff6457b680aa940281072_icgraph.md5 b/a01433_ad1d30ecbf6bff6457b680aa940281072_icgraph.md5 new file mode 100644 index 00000000..1b7b3284 --- /dev/null +++ b/a01433_ad1d30ecbf6bff6457b680aa940281072_icgraph.md5 @@ -0,0 +1 @@ +832eaea4295a2d71d45d86643fd65fd4 \ No newline at end of file diff --git a/a01433_ad1d30ecbf6bff6457b680aa940281072_icgraph.svg b/a01433_ad1d30ecbf6bff6457b680aa940281072_icgraph.svg new file mode 100644 index 00000000..36419650 --- /dev/null +++ b/a01433_ad1d30ecbf6bff6457b680aa940281072_icgraph.svg @@ -0,0 +1,1109 @@ + + + + + + +async_completion_complete + + +Node1 + + +async_completion_complete + + + + + +Node2 + + +arax_task_mark_done + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_condition_init + + + + + +Node1->Node3 + + + + + + + + +Node15 + + +async_condition_unlock + + + + + +Node1->Node15 + + + + + + + + +Node69 + + +async_condition_wait + + + + + +Node1->Node69 + + + + + + + + +Node70 + + +async_semaphore_inc + + + + + +Node1->Node70 + + + + + + + + +Node4 + + +arax_accel_init + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_pipe_init + + + + + +Node3->Node5 + + + + + + + + +Node14 + + +arax_throttle_init + + + + + +Node3->Node14 + + + + + + + + +Node6 + + +_arax_init + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_controller_init +_start + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_init + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_plot_register +_metric + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_ptr_valid + + + + + +Node8->Node10 + + + + + + + + +Node10->Node9 + + + + + + + + +Node11 + + +_arax_assert_obj + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_data_ref + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +arax_data_ref_offset + + + + + +Node10->Node13 + + + + + + + + +Node12->Node13 + + + + + + + + +Node14->Node4 + + + + + + + + +Node14->Node5 + + + + + + + + +Node15->Node6 + + + + + + + + +Node16 + + +arax_accel_add_task + + + + + +Node15->Node16 + + + + + + + + +Node26 + + +arax_accel_add_vaccel + + + + + +Node15->Node26 + + + + + + + + +Node31 + + +arax_accel_del_vaccel + + + + + +Node15->Node31 + + + + + + + + +Node33 + + +arax_accel_get_assigned +_vaccels + + + + + +Node15->Node33 + + + + + + + + +Node34 + + +arax_accel_wait_for_task + + + + + +Node15->Node34 + + + + + + + + +Node35 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node15->Node35 + + + + + + + + +Node36 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node15->Node36 + + + + + + + + +Node37 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node15->Node37 + + + + + + + + +Node38 + + +arax_pipe_orphan_stop + + + + + +Node15->Node38 + + + + + + + + +Node39 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node15->Node39 + + + + + + + + +Node40 + + +arax_throttle_size_dec + + + + + +Node15->Node40 + + + + + + + + +Node50 + + +arax_throttle_size_inc + + + + + +Node15->Node50 + + + + + + + + +Node68 + + +async_condition_init + + + + + +Node15->Node68 + + + + + + + + +Node17 + + +arax_vaccel_add_task + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +arax_task_submit + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +arax_task_issue + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +arax_data_allocate +_remote + + + + + +Node19->Node20 + + + + + + + + +Node27 + + +arax_accel_set_physical + + + + + +Node26->Node27 + + + + + + + + +Node28 + + +arax_vaccel_init + + + + + +Node26->Node28 + + + + + + + + +Node28->Node4 + + + + + + + + +Node29 + + +arax_accel_acquire_phys + + + + + +Node28->Node29 + + + + + + + + +Node30 + + +arax_accel_acquire_type + + + + + +Node28->Node30 + + + + + + + + +Node32 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node31->Node32 + + + + + + + + +Node36->Node28 + + + + + + + + +Node39->Node26 + + + + + + + + +Node39->Node32 + + + + + + + + +Node41 + + +arax_accel_size_dec + + + + + +Node40->Node41 + + + + + + + + +Node42 + + +arax_pipe_size_dec + + + + + +Node40->Node42 + + + + + + + + +Node41->Node20 + + + + + + + + +Node43 + + +arax_object_register + + + + + +Node42->Node43 + + + + + + + + +Node43->Node4 + + + + + + + + +Node43->Node28 + + + + + + + + +Node44 + + +arax_data_init_aligned + + + + + +Node43->Node44 + + + + + + + + +Node47 + + +arax_proc_init + + + + + +Node43->Node47 + + + + + + + + +Node51 + + +arax_accel_size_inc + + + + + +Node50->Node51 + + + + + + + + +Node52 + + +arax_pipe_size_inc + + + + + +Node50->Node52 + + + + + + + + +Node53 + + +arax_object_ref_dec + + + + + +Node52->Node53 + + + + + + + + +Node65 + + +arax_object_ref_dec +_pre_locked + + + + + +Node52->Node65 + + + + + + + + +Node69->Node6 + + + + + + + + +Node69->Node34 + + + + + + + + +Node69->Node37 + + + + + + + + +Node69->Node40 + + + + + + + + +Node71 + + +async_condition_notify + + + + + +Node70->Node71 + + + + + + + + +Node71->Node16 + + + + + + + + +Node71->Node26 + + + + + + + + +Node71->Node31 + + + + + + + + +Node71->Node36 + + + + + + + + +Node71->Node38 + + + + + + + + +Node71->Node50 + + + + + + + + +Node72 + + +arax_controller_init_done + + + + + +Node71->Node72 + + + + + + + + diff --git a/a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.map b/a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.map new file mode 100644 index 00000000..db61086d --- /dev/null +++ b/a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.map @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.md5 b/a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.md5 new file mode 100644 index 00000000..ace41281 --- /dev/null +++ b/a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.md5 @@ -0,0 +1 @@ +5e95a935b1c6ebf3d35646695bc5dad9 \ No newline at end of file diff --git a/a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.svg b/a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.svg new file mode 100644 index 00000000..d51d4754 --- /dev/null +++ b/a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.svg @@ -0,0 +1,318 @@ + + + + + + +async_meta_init_always + + +Node1 + + +async_meta_init_always + + + + + +Node2 + + +async_thread + + + + + +Node1->Node2 + + + + + + + + +Node6 + + +utils_config_alloc_path + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +utils_config_free_path + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +utils_config_get_str + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +async_completion_check + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +getVmID + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +utils_list_del + + + + + +Node2->Node5 + + + + + + + + +Node7 + + +system_home_path + + + + + +Node6->Node7 + + + + + + + + +Node10 + + +_utils_config_get_str + + + + + +Node9->Node10 + + + + + + + + +Node15 + + +utils_config_write_str + + + + + +Node9->Node15 + + + + + + + + +Node11 + + +conf_get + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +system_env_var + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +system_file_size + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +utils_config_get_source + + + + + +Node11->Node14 + + + + + + + + +Node14->Node12 + + + + + + + + +Node15->Node11 + + + + + + + + +Node16 + + +conf_set + + + + + +Node15->Node16 + + + + + + + + +Node16->Node14 + + + + + + + + diff --git a/a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.map b/a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.map new file mode 100644 index 00000000..f71b7fa8 --- /dev/null +++ b/a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.md5 b/a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.md5 new file mode 100644 index 00000000..d46ec83b --- /dev/null +++ b/a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.md5 @@ -0,0 +1 @@ +6d9e7c45ab6f7274045238ef62fc3ba4 \ No newline at end of file diff --git a/a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.svg b/a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.svg new file mode 100644 index 00000000..dc36547c --- /dev/null +++ b/a01433_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.svg @@ -0,0 +1,185 @@ + + + + + + +async_meta_init_always + + +Node1 + + +async_meta_init_always + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01433_ae66ae81847153386c57918f4d91be8a7_icgraph.map b/a01433_ae66ae81847153386c57918f4d91be8a7_icgraph.map new file mode 100644 index 00000000..eea90558 --- /dev/null +++ b/a01433_ae66ae81847153386c57918f4d91be8a7_icgraph.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01433_ae66ae81847153386c57918f4d91be8a7_icgraph.md5 b/a01433_ae66ae81847153386c57918f4d91be8a7_icgraph.md5 new file mode 100644 index 00000000..cf037a62 --- /dev/null +++ b/a01433_ae66ae81847153386c57918f4d91be8a7_icgraph.md5 @@ -0,0 +1 @@ +0d456f0c4efe70ddbd617e5b3a435753 \ No newline at end of file diff --git a/a01433_ae66ae81847153386c57918f4d91be8a7_icgraph.svg b/a01433_ae66ae81847153386c57918f4d91be8a7_icgraph.svg new file mode 100644 index 00000000..27dc0b7b --- /dev/null +++ b/a01433_ae66ae81847153386c57918f4d91be8a7_icgraph.svg @@ -0,0 +1,221 @@ + + + + + + +async_completion_check + + +Node1 + + +async_completion_check + + + + + +Node2 + + +async_thread + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_meta_init_always + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +_arax_init + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_controller_init +_start + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_init + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_plot_register +_metric + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_ptr_valid + + + + + +Node6->Node8 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +_arax_assert_obj + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_data_ref + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +arax_data_ref_offset + + + + + +Node8->Node11 + + + + + + + + +Node10->Node11 + + + + + + + + diff --git a/a01433_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.map b/a01433_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.map new file mode 100644 index 00000000..e56e6ea9 --- /dev/null +++ b/a01433_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/a01433_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.md5 b/a01433_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.md5 new file mode 100644 index 00000000..32034c4b --- /dev/null +++ b/a01433_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.md5 @@ -0,0 +1 @@ +d4a7a83219ecc86324f41867b7069269 \ No newline at end of file diff --git a/a01433_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.svg b/a01433_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.svg new file mode 100644 index 00000000..950fc86f --- /dev/null +++ b/a01433_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.svg @@ -0,0 +1,93 @@ + + + + + + +async_completion_wait + + +Node1 + + +async_completion_wait + + + + + +Node2 + + +_add_completion + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +getVmID + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +utils_list_add + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +utils_list_node_add + + + + + +Node3->Node4 + + + + + + + + diff --git a/a01433_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.map b/a01433_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.map new file mode 100644 index 00000000..5c053c64 --- /dev/null +++ b/a01433_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.map @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01433_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.md5 b/a01433_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.md5 new file mode 100644 index 00000000..0a590126 --- /dev/null +++ b/a01433_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.md5 @@ -0,0 +1 @@ +294d96efea075d855ee43f4e1c8d84a7 \ No newline at end of file diff --git a/a01433_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.svg b/a01433_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.svg new file mode 100644 index 00000000..6c0e69d0 --- /dev/null +++ b/a01433_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.svg @@ -0,0 +1,1064 @@ + + + + + + +async_completion_wait + + +Node1 + + +async_completion_wait + + + + + +Node2 + + +arax_task_wait_done + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +async_condition_lock + + + + + +Node1->Node8 + + + + + + + + +Node66 + + +async_condition_wait + + + + + +Node1->Node66 + + + + + + + + +Node67 + + +async_semaphore_dec + + + + + +Node1->Node67 + + + + + + + + +Node3 + + +arax_task_wait + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_allocate +_remote + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data_get + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +arax_task_issue_sync + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +arax_data_memcpy + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +_arax_init + + + + + +Node8->Node9 + + + + + + + + +Node17 + + +arax_accel_add_task + + + + + +Node8->Node17 + + + + + + + + +Node23 + + +arax_accel_add_vaccel + + + + + +Node8->Node23 + + + + + + + + +Node29 + + +arax_accel_del_vaccel + + + + + +Node8->Node29 + + + + + + + + +Node31 + + +arax_accel_get_assigned +_vaccels + + + + + +Node8->Node31 + + + + + + + + +Node32 + + +arax_accel_wait_for_task + + + + + +Node8->Node32 + + + + + + + + +Node33 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node8->Node33 + + + + + + + + +Node34 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node8->Node34 + + + + + + + + +Node35 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node8->Node35 + + + + + + + + +Node36 + + +arax_pipe_orphan_stop + + + + + +Node8->Node36 + + + + + + + + +Node37 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node8->Node37 + + + + + + + + +Node38 + + +arax_throttle_size_dec + + + + + +Node8->Node38 + + + + + + + + +Node48 + + +arax_throttle_size_inc + + + + + +Node8->Node48 + + + + + + + + +Node10 + + +arax_controller_init +_start + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_init + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +arax_plot_register +_metric + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +arax_ptr_valid + + + + + +Node11->Node13 + + + + + + + + +Node13->Node12 + + + + + + + + +Node14 + + +_arax_assert_obj + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +arax_data_ref + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +arax_data_ref_offset + + + + + +Node13->Node16 + + + + + + + + +Node15->Node16 + + + + + + + + +Node18 + + +arax_vaccel_add_task + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +arax_task_submit + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +arax_task_issue + + + + + +Node19->Node20 + + + + + + + + +Node20->Node4 + + + + + + + + +Node20->Node5 + + + + + + + + +Node20->Node7 + + + + + + + + +Node24 + + +arax_accel_set_physical + + + + + +Node23->Node24 + + + + + + + + +Node25 + + +arax_vaccel_init + + + + + +Node23->Node25 + + + + + + + + +Node26 + + +arax_accel_acquire_phys + + + + + +Node25->Node26 + + + + + + + + +Node27 + + +arax_accel_acquire_type + + + + + +Node25->Node27 + + + + + + + + +Node28 + + +arax_accel_init + + + + + +Node25->Node28 + + + + + + + + +Node30 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node29->Node30 + + + + + + + + +Node34->Node25 + + + + + + + + +Node37->Node23 + + + + + + + + +Node37->Node30 + + + + + + + + +Node39 + + +arax_accel_size_dec + + + + + +Node38->Node39 + + + + + + + + +Node40 + + +arax_pipe_size_dec + + + + + +Node38->Node40 + + + + + + + + +Node39->Node4 + + + + + + + + +Node41 + + +arax_object_register + + + + + +Node40->Node41 + + + + + + + + +Node41->Node25 + + + + + + + + +Node41->Node28 + + + + + + + + +Node42 + + +arax_data_init_aligned + + + + + +Node41->Node42 + + + + + + + + +Node45 + + +arax_proc_init + + + + + +Node41->Node45 + + + + + + + + +Node47 + + +arax_task_alloc + + + + + +Node41->Node47 + + + + + + + + +Node47->Node20 + + + + + + + + +Node49 + + +arax_accel_size_inc + + + + + +Node48->Node49 + + + + + + + + +Node50 + + +arax_pipe_size_inc + + + + + +Node48->Node50 + + + + + + + + +Node51 + + +arax_object_ref_dec + + + + + +Node50->Node51 + + + + + + + + +Node63 + + +arax_object_ref_dec +_pre_locked + + + + + +Node50->Node63 + + + + + + + + +Node52 + + +arax_accel_list_free + + + + + +Node51->Node52 + + + + + + + + +Node66->Node9 + + + + + + + + +Node66->Node32 + + + + + + + + +Node66->Node35 + + + + + + + + +Node66->Node38 + + + + + + + + +Node67->Node66 + + + + + + + + diff --git a/a01433_aed6af4d83e934e3e654ead541b15f2d9_cgraph.map b/a01433_aed6af4d83e934e3e654ead541b15f2d9_cgraph.map new file mode 100644 index 00000000..7ad4fe1c --- /dev/null +++ b/a01433_aed6af4d83e934e3e654ead541b15f2d9_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01433_aed6af4d83e934e3e654ead541b15f2d9_cgraph.md5 b/a01433_aed6af4d83e934e3e654ead541b15f2d9_cgraph.md5 new file mode 100644 index 00000000..83224a29 --- /dev/null +++ b/a01433_aed6af4d83e934e3e654ead541b15f2d9_cgraph.md5 @@ -0,0 +1 @@ +bb1b9dc19a671fccfc3695a19e853b6c \ No newline at end of file diff --git a/a01433_aed6af4d83e934e3e654ead541b15f2d9_cgraph.svg b/a01433_aed6af4d83e934e3e654ead541b15f2d9_cgraph.svg new file mode 100644 index 00000000..85b62c42 --- /dev/null +++ b/a01433_aed6af4d83e934e3e654ead541b15f2d9_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +async_condition_lock + + +Node1 + + +async_condition_lock + + + + + +Node2 + + +async_completion_wait + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01433_aed6af4d83e934e3e654ead541b15f2d9_icgraph.map b/a01433_aed6af4d83e934e3e654ead541b15f2d9_icgraph.map new file mode 100644 index 00000000..12bbc34f --- /dev/null +++ b/a01433_aed6af4d83e934e3e654ead541b15f2d9_icgraph.map @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01433_aed6af4d83e934e3e654ead541b15f2d9_icgraph.md5 b/a01433_aed6af4d83e934e3e654ead541b15f2d9_icgraph.md5 new file mode 100644 index 00000000..2a9b4819 --- /dev/null +++ b/a01433_aed6af4d83e934e3e654ead541b15f2d9_icgraph.md5 @@ -0,0 +1 @@ +de90128b1acea38fcd3c824ea5674ca1 \ No newline at end of file diff --git a/a01433_aed6af4d83e934e3e654ead541b15f2d9_icgraph.svg b/a01433_aed6af4d83e934e3e654ead541b15f2d9_icgraph.svg new file mode 100644 index 00000000..81b4a512 --- /dev/null +++ b/a01433_aed6af4d83e934e3e654ead541b15f2d9_icgraph.svg @@ -0,0 +1,1019 @@ + + + + + + +async_condition_lock + + +Node1 + + +async_condition_lock + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +arax_accel_add_task + + + + + +Node1->Node10 + + + + + + + + +Node20 + + +arax_accel_add_vaccel + + + + + +Node1->Node20 + + + + + + + + +Node26 + + +arax_accel_del_vaccel + + + + + +Node1->Node26 + + + + + + + + +Node28 + + +arax_accel_get_assigned +_vaccels + + + + + +Node1->Node28 + + + + + + + + +Node29 + + +arax_accel_wait_for_task + + + + + +Node1->Node29 + + + + + + + + +Node30 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node1->Node30 + + + + + + + + +Node31 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node1->Node31 + + + + + + + + +Node32 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node1->Node32 + + + + + + + + +Node33 + + +arax_pipe_orphan_stop + + + + + +Node1->Node33 + + + + + + + + +Node34 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node1->Node34 + + + + + + + + +Node35 + + +arax_throttle_size_dec + + + + + +Node1->Node35 + + + + + + + + +Node45 + + +arax_throttle_size_inc + + + + + +Node1->Node45 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +arax_vaccel_add_task + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_task_submit + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +arax_task_issue + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +arax_data_allocate +_remote + + + + + +Node13->Node14 + + + + + + + + +Node18 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node13->Node18 + + + + + + + + +Node21 + + +arax_accel_set_physical + + + + + +Node20->Node21 + + + + + + + + +Node22 + + +arax_vaccel_init + + + + + +Node20->Node22 + + + + + + + + +Node23 + + +arax_accel_acquire_phys + + + + + +Node22->Node23 + + + + + + + + +Node24 + + +arax_accel_acquire_type + + + + + +Node22->Node24 + + + + + + + + +Node25 + + +arax_accel_init + + + + + +Node22->Node25 + + + + + + + + +Node27 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node26->Node27 + + + + + + + + +Node31->Node22 + + + + + + + + +Node34->Node20 + + + + + + + + +Node34->Node27 + + + + + + + + +Node36 + + +arax_accel_size_dec + + + + + +Node35->Node36 + + + + + + + + +Node37 + + +arax_pipe_size_dec + + + + + +Node35->Node37 + + + + + + + + +Node36->Node14 + + + + + + + + +Node38 + + +arax_object_register + + + + + +Node37->Node38 + + + + + + + + +Node38->Node22 + + + + + + + + +Node38->Node25 + + + + + + + + +Node39 + + +arax_data_init_aligned + + + + + +Node38->Node39 + + + + + + + + +Node42 + + +arax_proc_init + + + + + +Node38->Node42 + + + + + + + + +Node44 + + +arax_task_alloc + + + + + +Node38->Node44 + + + + + + + + +Node44->Node13 + + + + + + + + +Node46 + + +arax_accel_size_inc + + + + + +Node45->Node46 + + + + + + + + +Node47 + + +arax_pipe_size_inc + + + + + +Node45->Node47 + + + + + + + + +Node48 + + +arax_object_ref_dec + + + + + +Node47->Node48 + + + + + + + + +Node60 + + +arax_object_ref_dec +_pre_locked + + + + + +Node47->Node60 + + + + + + + + +Node48->Node18 + + + + + + + + +Node49 + + +arax_accel_list_free + + + + + +Node48->Node49 + + + + + + + + +Node50 + + +arax_accel_release + + + + + +Node48->Node50 + + + + + + + + +Node51 + + +arax_data_free + + + + + +Node48->Node51 + + + + + + + + +Node52 + + +arax_data_migrate_accel + + + + + +Node48->Node52 + + + + + + + + +Node56 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node48->Node56 + + + + + + + + +Node57 + + +arax_pipe_delete_accel + + + + + +Node48->Node57 + + + + + + + + +Node58 + + +arax_proc_put + + + + + +Node48->Node58 + + + + + + + + +Node59 + + +arax_task_free + + + + + +Node48->Node59 + + + + + + + + +Node50->Node30 + + + + + + + + +Node59->Node14 + + + + + + + + diff --git a/a01433_afe9571a12debd9d75a0f8fb93420e268_cgraph.map b/a01433_afe9571a12debd9d75a0f8fb93420e268_cgraph.map new file mode 100644 index 00000000..13b5e5a0 --- /dev/null +++ b/a01433_afe9571a12debd9d75a0f8fb93420e268_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01433_afe9571a12debd9d75a0f8fb93420e268_cgraph.md5 b/a01433_afe9571a12debd9d75a0f8fb93420e268_cgraph.md5 new file mode 100644 index 00000000..7c6d79dd --- /dev/null +++ b/a01433_afe9571a12debd9d75a0f8fb93420e268_cgraph.md5 @@ -0,0 +1 @@ +44ec17098a6e9c7f63de7ff6b9d5c622 \ No newline at end of file diff --git a/a01433_afe9571a12debd9d75a0f8fb93420e268_cgraph.svg b/a01433_afe9571a12debd9d75a0f8fb93420e268_cgraph.svg new file mode 100644 index 00000000..d68698ad --- /dev/null +++ b/a01433_afe9571a12debd9d75a0f8fb93420e268_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +async_meta_exit + + +Node1 + + +async_meta_exit + + + + + +Node2 + + +getVmID + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +wakeupVm + + + + + +Node1->Node3 + + + + + + + + diff --git a/a01433_afe9571a12debd9d75a0f8fb93420e268_icgraph.map b/a01433_afe9571a12debd9d75a0f8fb93420e268_icgraph.map new file mode 100644 index 00000000..76a528f8 --- /dev/null +++ b/a01433_afe9571a12debd9d75a0f8fb93420e268_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01433_afe9571a12debd9d75a0f8fb93420e268_icgraph.md5 b/a01433_afe9571a12debd9d75a0f8fb93420e268_icgraph.md5 new file mode 100644 index 00000000..ae86c1eb --- /dev/null +++ b/a01433_afe9571a12debd9d75a0f8fb93420e268_icgraph.md5 @@ -0,0 +1 @@ +e2044de53f017628f8408e2f2c124d6f \ No newline at end of file diff --git a/a01433_afe9571a12debd9d75a0f8fb93420e268_icgraph.svg b/a01433_afe9571a12debd9d75a0f8fb93420e268_icgraph.svg new file mode 100644 index 00000000..dabe985d --- /dev/null +++ b/a01433_afe9571a12debd9d75a0f8fb93420e268_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +async_meta_exit + + +Node1 + + +async_meta_exit + + + + + +Node2 + + +arax_pipe_exit + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_exit + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01433_source.html b/a01433_source.html new file mode 100644 index 00000000..051a5bfa --- /dev/null +++ b/a01433_source.html @@ -0,0 +1,175 @@ + + + + + + + +Arax: async_api.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
async_api.h
+
+
+Go to the documentation of this file.
1#ifndef ASYNC_API_HEADER
+
2#define ASYNC_API_HEADER
+
3#include "arch/alloc.h"
+
4
+
5#ifdef __cplusplus
+
6extern "C" {
+
7#endif /* ifdef __cplusplus */
+
8
+ +
18
+ +
27
+ +
36
+ +
43
+ +
51
+ +
58
+ +
66
+ +
72
+ +
82
+ +
92
+ +
100
+ +
107
+ +
116
+ +
125
+ +
134
+
140void async_meta_exit(async_meta_s *meta);
+
141
+
142#ifdef __cplusplus
+
143}
+
144#endif /* ifdef __cplusplus */
+
145
+
146
+
147#endif // ifndef ASYNC_API_HEADER
+
void async_semaphore_inc(async_semaphore_s *sem)
+
void async_condition_wait(async_condition_s *cond)
+
void async_semaphore_init(async_meta_s *meta, async_semaphore_s *sem)
+
int async_semaphore_value(async_semaphore_s *sem)
+
void async_condition_unlock(async_condition_s *cond)
+
void async_condition_notify(async_condition_s *cond)
+
void async_semaphore_dec(async_semaphore_s *sem)
+
void async_meta_init_once(async_meta_s *meta, arch_alloc_s *alloc)
+
void async_completion_init(async_meta_s *meta, async_completion_s *completion)
+
void async_condition_init(async_meta_s *meta, async_condition_s *cond)
+
void async_completion_complete(async_completion_s *completion)
+
void async_meta_init_always(async_meta_s *meta)
+
int async_completion_check(async_completion_s *completion)
+
void async_completion_wait(async_completion_s *completion)
+
void async_condition_lock(async_condition_s *cond)
+
void async_meta_exit(async_meta_s *meta)
+ + + + + +
+
+ + + + diff --git a/a01434.map b/a01434.map new file mode 100644 index 00000000..53c8657f --- /dev/null +++ b/a01434.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01434.md5 b/a01434.md5 new file mode 100644 index 00000000..38d6646c --- /dev/null +++ b/a01434.md5 @@ -0,0 +1 @@ +bb76bf6bcf0d87ba6770d674320b3900 \ No newline at end of file diff --git a/a01434.svg b/a01434.svg new file mode 100644 index 00000000..eaff6598 --- /dev/null +++ b/a01434.svg @@ -0,0 +1,39 @@ + + + + + + +async_api.h + + +Node1 + + +async_api.h + + + + + +Node2 + + +arch/alloc.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01435.map b/a01435.map new file mode 100644 index 00000000..1c9c5ef8 --- /dev/null +++ b/a01435.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/a01435.md5 b/a01435.md5 new file mode 100644 index 00000000..41234b6b --- /dev/null +++ b/a01435.md5 @@ -0,0 +1 @@ +66781351027605edeed1551d86623aae \ No newline at end of file diff --git a/a01435.svg b/a01435.svg new file mode 100644 index 00000000..75b58a76 --- /dev/null +++ b/a01435.svg @@ -0,0 +1,129 @@ + + + + + + +async_api.h + + +Node1 + + +async_api.h + + + + + +Node2 + + +async.h + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +async.h + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +async.h + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +async.c + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async.c + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async.c + + + + + +Node6->Node7 + + + + + + + + diff --git a/a01436.html b/a01436.html new file mode 100644 index 00000000..671c55a9 --- /dev/null +++ b/a01436.html @@ -0,0 +1,117 @@ + + + + + + + +Arax: conf.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
conf.h File Reference
+
+
+
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+
+
+ + + + diff --git a/a01436_source.html b/a01436_source.html new file mode 100644 index 00000000..592ad81f --- /dev/null +++ b/a01436_source.html @@ -0,0 +1,109 @@ + + + + + + + +Arax: conf.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
conf.h
+
+
+Go to the documentation of this file.
1// DO NOT DELETE THIS FILE
+
+
+ + + + diff --git a/a01438.map b/a01438.map new file mode 100644 index 00000000..8fd49a0a --- /dev/null +++ b/a01438.map @@ -0,0 +1,56 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01438.md5 b/a01438.md5 new file mode 100644 index 00000000..6e9d7149 --- /dev/null +++ b/a01438.md5 @@ -0,0 +1 @@ +48b325f57dff106353d2de0d46415751 \ No newline at end of file diff --git a/a01438.svg b/a01438.svg new file mode 100644 index 00000000..8dc954e9 --- /dev/null +++ b/a01438.svg @@ -0,0 +1,498 @@ + + + + + + +conf.h + + +Node1 + + +conf.h + + + + + +Node2 + + +Kv.h + + + + + +Node1->Node2 + + + + + + + + +Node14 + + +alloc.h + + + + + +Node1->Node14 + + + + + + + + +Node16 + + +arax_data.h + + + + + +Node1->Node16 + + + + + + + + +Node18 + + +async.c + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +queue.h + + + + + +Node1->Node19 + + + + + + + + +Node3 + + +Kv.c + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_pipe.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_accel.c + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_data.c + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_object.c + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +arax_pipe.c + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +arax_plot.c + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +arax_ptr.c + + + + + +Node4->Node10 + + + + + + + + +Node11 + + +arax_task.c + + + + + +Node4->Node11 + + + + + + + + +Node12 + + +arax_vaccel.c + + + + + +Node4->Node12 + + + + + + + + +Node13 + + +impl.c + + + + + +Node4->Node13 + + + + + + + + +Node14->Node9 + + + + + + + + +Node15 + + +malloc.c + + + + + +Node14->Node15 + + + + + + + + +Node16->Node6 + + + + + + + + +Node16->Node7 + + + + + + + + +Node16->Node11 + + + + + + + + +Node16->Node13 + + + + + + + + +Node17 + + +arax_data_private.h + + + + + +Node16->Node17 + + + + + + + + +Node17->Node6 + + + + + + + + +Node19->Node4 + + + + + + + + +Node20 + + +arax_vaccel.h + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +queue.c + + + + + +Node19->Node22 + + + + + + + + +Node21 + + +arax_accel.h + + + + + +Node20->Node21 + + + + + + + + +Node21->Node4 + + + + + + + + +Node21->Node7 + + + + + + + + +Node21->Node16 + + + + + + + + +Node21->Node20 + + + + + + + + diff --git a/a01898.html b/a01898.html new file mode 100644 index 00000000..0bcf4c40 --- /dev/null +++ b/a01898.html @@ -0,0 +1,7410 @@ + + + + + + + +Arax: malloc.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
malloc.c File Reference
+
+
+
#include <sys/types.h>
+#include <stdio.h>
+#include <errno.h>
+#include <time.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <sys/param.h>
+#include "../alloc.h"
+
+ + Include dependency graph for malloc.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Data Structures

struct  mallinfo
 
struct  malloc_chunk
 
struct  malloc_tree_chunk
 
struct  malloc_segment
 
struct  malloc_state
 
struct  malloc_params
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define DLMALLOC_VERSION   20806
 
#define DLMALLOC_EXPORT   extern
 
#define MAX_SIZE_T   (~(size_t) 0)
 
#define USE_LOCKS
 
#define USE_SPIN_LOCKS   0
 
#define ONLY_MSPACES   0
 
#define MSPACES   0
 
#define MALLOC_ALIGNMENT   ((size_t) (2 * sizeof(void *)))
 
#define FOOTERS   0
 
#define ABORT   abort()
 
#define ABORT_ON_ASSERT_FAILURE   1
 
#define PROCEED_ON_ERROR   0
 
#define INSECURE   0
 
#define MALLOC_INSPECT_ALL   0
 
#define HAVE_MMAP   0
 
#define MMAP_CLEARS   1
 
#define HAVE_MREMAP   0
 
#define MALLOC_FAILURE_ACTION   errno = ENOMEM;
 
#define HAVE_MORECORE   1
 
#define MORECORE_DEFAULT   sbrk
 
#define MORECORE_CONTIGUOUS   1
 
#define DEFAULT_GRANULARITY   (0) /* 0 means to compute in init_mparams */
 
#define DEFAULT_TRIM_THRESHOLD   ((size_t) 2U * (size_t) 1024U * (size_t) 1024U)
 
#define DEFAULT_MMAP_THRESHOLD   MAX_SIZE_T
 
#define MAX_RELEASE_CHECK_RATE   MAX_SIZE_T
 
#define USE_BUILTIN_FFS   0
 
#define USE_DEV_RANDOM   0
 
#define NO_MALLINFO   0
 
#define MALLINFO_FIELD_TYPE   size_t
 
#define NO_MALLOC_STATS   0
 
#define NO_SEGMENT_TRAVERSAL   0
 
#define M_TRIM_THRESHOLD   (-1)
 
#define M_GRANULARITY   (-2)
 
#define M_MMAP_THRESHOLD   (-3)
 
#define _STRUCT_MALLINFO
 
#define STRUCT_MALLINFO_DECLARED   1
 
#define NOINLINE
 
#define FORCEINLINE
 
#define dlcalloc   calloc
 
#define dlfree   free
 
#define dlmalloc   malloc
 
#define dlmemalign   memalign
 
#define dlposix_memalign   posix_memalign
 
#define dlrealloc   realloc
 
#define dlrealloc_in_place   realloc_in_place
 
#define dlvalloc   valloc
 
#define dlpvalloc   pvalloc
 
#define dlmallinfo   mallinfo
 
#define dlmallopt   mallopt
 
#define dlmalloc_trim   malloc_trim
 
#define dlmalloc_stats   malloc_stats
 
#define dlmalloc_usable_size   malloc_usable_size
 
#define dlmalloc_footprint   malloc_footprint
 
#define dlmalloc_max_footprint   malloc_max_footprint
 
#define dlmalloc_footprint_limit   malloc_footprint_limit
 
#define dlmalloc_set_footprint_limit   malloc_set_footprint_limit
 
#define dlmalloc_inspect_all   malloc_inspect_all
 
#define dlindependent_calloc   independent_calloc
 
#define dlindependent_comalloc   independent_comalloc
 
#define dlbulk_free   bulk_free
 
#define assert(x)
 
#define DEBUG   0
 
#define LOCK_AT_FORK   0
 
#define malloc_getpagesize   ((size_t) 4096U)
 
#define SIZE_T_SIZE   (sizeof(size_t))
 
#define SIZE_T_BITSIZE   (sizeof(size_t) << 3)
 
#define SIZE_T_ZERO   ((size_t) 0)
 
#define SIZE_T_ONE   ((size_t) 1)
 
#define SIZE_T_TWO   ((size_t) 2)
 
#define SIZE_T_FOUR   ((size_t) 4)
 
#define TWO_SIZE_T_SIZES   (SIZE_T_SIZE << 1)
 
#define FOUR_SIZE_T_SIZES   (SIZE_T_SIZE << 2)
 
#define SIX_SIZE_T_SIZES   (FOUR_SIZE_T_SIZES + TWO_SIZE_T_SIZES)
 
#define HALF_MAX_SIZE_T   (MAX_SIZE_T / 2U)
 
#define CHUNK_ALIGN_MASK   (MALLOC_ALIGNMENT - SIZE_T_ONE)
 
#define is_aligned(A)   (((size_t) ((A)) & (CHUNK_ALIGN_MASK)) == 0)
 
#define align_offset(A)
 
#define MFAIL   ((void *) (MAX_SIZE_T))
 
#define CMFAIL   ((char *) (MFAIL)) /* defined for convenience */
 
#define CALL_MORECORE(S)   MORECORE_DEFAULT(S)
 
#define MMAP(s)   arax_mmap(s)
 
#define DIRECT_MMAP(s)   MMAP(s)
 
#define MUNMAP(a, s)   arax_ummap(a, s)
 
#define USE_MMAP_BIT   (SIZE_T_ZERO)
 
#define MMAP(s)   MFAIL
 
#define MUNMAP(a, s)   (-1)
 
#define DIRECT_MMAP(s)   MFAIL
 
#define CALL_DIRECT_MMAP(s)   DIRECT_MMAP(s)
 
#define CALL_MMAP(s)   MMAP(s)
 
#define CALL_MUNMAP(a, s)   MUNMAP((a), (s))
 
#define CALL_MREMAP(addr, osz, nsz, mv)   MFAIL
 
#define USE_NONCONTIGUOUS_BIT   (4U)
 
#define EXTERN_BIT   (8U)
 
#define USE_LOCK_BIT   (0U)
 
#define INITIAL_LOCK(l)   (0)
 
#define DESTROY_LOCK(l)   (0)
 
#define ACQUIRE_MALLOC_GLOBAL_LOCK()
 
#define RELEASE_MALLOC_GLOBAL_LOCK()
 
#define MCHUNK_SIZE   (sizeof(mchunk))
 
#define CHUNK_OVERHEAD   (SIZE_T_SIZE)
 
#define MMAP_CHUNK_OVERHEAD   (TWO_SIZE_T_SIZES)
 
#define MMAP_FOOT_PAD   (FOUR_SIZE_T_SIZES)
 
#define MIN_CHUNK_SIZE    ((MCHUNK_SIZE + CHUNK_ALIGN_MASK) & ~CHUNK_ALIGN_MASK)
 
#define chunk2mem(p)   ((void *) ((char *) (p) + TWO_SIZE_T_SIZES))
 
#define mem2chunk(mem)   ((mchunkptr) ((char *) (mem) - TWO_SIZE_T_SIZES))
 
#define align_as_chunk(A)   (mchunkptr) ((A) + align_offset(chunk2mem(A)))
 
#define MAX_REQUEST   ((-MIN_CHUNK_SIZE) << 2)
 
#define MIN_REQUEST   (MIN_CHUNK_SIZE - CHUNK_OVERHEAD - SIZE_T_ONE)
 
#define pad_request(req)    (((req) + CHUNK_OVERHEAD + CHUNK_ALIGN_MASK) & ~CHUNK_ALIGN_MASK)
 
#define request2size(req)    (((req) < MIN_REQUEST) ? MIN_CHUNK_SIZE : pad_request(req))
 
#define PINUSE_BIT   (SIZE_T_ONE)
 
#define CINUSE_BIT   (SIZE_T_TWO)
 
#define FLAG4_BIT   (SIZE_T_FOUR)
 
#define INUSE_BITS   (PINUSE_BIT | CINUSE_BIT)
 
#define FLAG_BITS   (PINUSE_BIT | CINUSE_BIT | FLAG4_BIT)
 
#define FENCEPOST_HEAD   (INUSE_BITS | SIZE_T_SIZE)
 
#define cinuse(p)   ((p)->head & CINUSE_BIT)
 
#define pinuse(p)   ((p)->head & PINUSE_BIT)
 
#define flag4inuse(p)   ((p)->head & FLAG4_BIT)
 
#define is_inuse(p)   (((p)->head & INUSE_BITS) != PINUSE_BIT)
 
#define is_mmapped(p)   (((p)->head & INUSE_BITS) == 0)
 
#define chunksize(p)   ((p)->head & ~(FLAG_BITS))
 
#define clear_pinuse(p)   ((p)->head &= ~PINUSE_BIT)
 
#define set_flag4(p)   ((p)->head |= FLAG4_BIT)
 
#define clear_flag4(p)   ((p)->head &= ~FLAG4_BIT)
 
#define chunk_plus_offset(p, s)   ((mchunkptr) (((char *) (p)) + (s)))
 
#define chunk_minus_offset(p, s)   ((mchunkptr) (((char *) (p)) - (s)))
 
#define next_chunk(p)   ((mchunkptr) ( ((char *) (p)) + ((p)->head & ~FLAG_BITS)))
 
#define prev_chunk(p)   ((mchunkptr) ( ((char *) (p)) - ((p)->prev_foot) ))
 
#define next_pinuse(p)   ((next_chunk(p)->head) & PINUSE_BIT)
 
#define get_foot(p, s)   (((mchunkptr) ((char *) (p) + (s)))->prev_foot)
 
#define set_foot(p, s)   (((mchunkptr) ((char *) (p) + (s)))->prev_foot = (s))
 
#define set_size_and_pinuse_of_free_chunk(p, s)    ((p)->head = (s | PINUSE_BIT), set_foot(p, s))
 
#define set_free_with_pinuse(p, s, n)    (clear_pinuse(n), set_size_and_pinuse_of_free_chunk(p, s))
 
#define overhead_for(p)    (is_mmapped(p) ? MMAP_CHUNK_OVERHEAD : CHUNK_OVERHEAD)
 
#define calloc_must_clear(p)   (!is_mmapped(p))
 
#define leftmost_child(t)   ((t)->child[0] != 0 ? (t)->child[0] : (t)->child[1])
 
#define is_mmapped_segment(S)   ((S)->sflags & USE_MMAP_BIT)
 
#define is_extern_segment(S)   ((S)->sflags & EXTERN_BIT)
 
#define NSMALLBINS   (32U)
 
#define NTREEBINS   (32U)
 
#define SMALLBIN_SHIFT   (3U)
 
#define SMALLBIN_WIDTH   (SIZE_T_ONE << SMALLBIN_SHIFT)
 
#define TREEBIN_SHIFT   (8U)
 
#define MIN_LARGE_SIZE   (SIZE_T_ONE << TREEBIN_SHIFT)
 
#define MAX_SMALL_SIZE   (MIN_LARGE_SIZE - SIZE_T_ONE)
 
#define MAX_SMALL_REQUEST   (MAX_SMALL_SIZE - CHUNK_ALIGN_MASK - CHUNK_OVERHEAD)
 
#define ensure_initialization()   (void) (mparams.magic != 0 || init_mparams())
 
#define gm   (&_gm_)
 
#define is_global(M)   ((M) == &_gm_)
 
#define is_initialized(M)   ((M)->top != 0)
 
#define use_lock(M)   ((M)->mflags & USE_LOCK_BIT)
 
#define enable_lock(M)   ((M)->mflags |= USE_LOCK_BIT)
 
#define disable_lock(M)
 
#define use_mmap(M)   ((M)->mflags & USE_MMAP_BIT)
 
#define enable_mmap(M)   ((M)->mflags |= USE_MMAP_BIT)
 
#define disable_mmap(M)
 
#define use_noncontiguous(M)   ((M)->mflags & USE_NONCONTIGUOUS_BIT)
 
#define disable_contiguous(M)   ((M)->mflags |= USE_NONCONTIGUOUS_BIT)
 
#define set_lock(M, L)
 
#define page_align(S)    (((S) + (mparams.page_size - SIZE_T_ONE)) & ~(mparams.page_size - SIZE_T_ONE))
 
#define granularity_align(S)
 
#define mmap_align(S)   page_align(S)
 
#define SYS_ALLOC_PADDING   (TOP_FOOT_SIZE + MALLOC_ALIGNMENT)
 
#define is_page_aligned(S)    (((size_t) (S) &(mparams.page_size - SIZE_T_ONE)) == 0)
 
#define is_granularity_aligned(S)    (((size_t) (S) &(mparams.granularity - SIZE_T_ONE)) == 0)
 
#define segment_holds(S, A)    ((char *) (A) >= S->base && (char *) (A) < S->base + S->size)
 
#define should_trim(M, s)   ((s) > (M)->trim_check)
 
#define TOP_FOOT_SIZE    (align_offset(chunk2mem(0)) + pad_request(sizeof(struct malloc_segment)) + MIN_CHUNK_SIZE)
 
#define PREACTION(M)   (0)
 
#define POSTACTION(M)
 
#define CORRUPTION_ERROR_ACTION(m)   ABORT
 
#define USAGE_ERROR_ACTION(m, p)   ABORT
 
#define check_free_chunk(M, P)
 
#define check_inuse_chunk(M, P)
 
#define check_malloced_chunk(M, P, N)
 
#define check_mmapped_chunk(M, P)
 
#define check_malloc_state(M)
 
#define check_top_chunk(M, P)
 
#define is_small(s)   (((s) >> SMALLBIN_SHIFT) < NSMALLBINS)
 
#define small_index(s)   (bindex_t) ((s) >> SMALLBIN_SHIFT)
 
#define small_index2size(i)   ((i) << SMALLBIN_SHIFT)
 
#define MIN_SMALL_INDEX   (small_index(MIN_CHUNK_SIZE))
 
#define smallbin_at(M, i)   ((sbinptr) ((char *) &((M)->smallbins[(i) << 1])))
 
#define treebin_at(M, i)   (&((M)->treebins[i]))
 
#define compute_tree_index(S, I)
 
#define bit_for_tree_index(i)    (i == NTREEBINS - 1) ? (SIZE_T_BITSIZE - 1) : (((i) >> 1) + TREEBIN_SHIFT - 2)
 
#define leftshift_for_tree_index(i)
 
#define minsize_for_tree_index(i)
 
#define idx2bit(i)   ((binmap_t) (1) << (i))
 
#define mark_smallmap(M, i)   ((M)->smallmap |= idx2bit(i))
 
#define clear_smallmap(M, i)   ((M)->smallmap &= ~idx2bit(i))
 
#define smallmap_is_marked(M, i)   ((M)->smallmap & idx2bit(i))
 
#define mark_treemap(M, i)   ((M)->treemap |= idx2bit(i))
 
#define clear_treemap(M, i)   ((M)->treemap &= ~idx2bit(i))
 
#define treemap_is_marked(M, i)   ((M)->treemap & idx2bit(i))
 
#define least_bit(x)   ((x) & -(x))
 
#define left_bits(x)   ((x << 1) | -(x << 1))
 
#define same_or_left_bits(x)   ((x) | -(x))
 
#define compute_bit2idx(X, I)
 
#define ok_address(M, a)   ((char *) (a) >= (M)->least_addr)
 
#define ok_next(p, n)   ((char *) (p) < (char *) (n))
 
#define ok_inuse(p)   is_inuse(p)
 
#define ok_pinuse(p)   pinuse(p)
 
#define ok_magic(M)   (1)
 
#define RTCHECK(e)   (e)
 
#define mark_inuse_foot(M, p, s)
 
#define set_inuse(M, p, s)
 
#define set_inuse_and_pinuse(M, p, s)
 
#define set_size_and_pinuse_of_inuse_chunk(M, p, s)    ((p)->head = (s | PINUSE_BIT | CINUSE_BIT))
 
#define insert_small_chunk(M, P, S)
 
#define unlink_small_chunk(M, P, S)
 
#define unlink_first_small_chunk(M, B, P, I)
 
#define replace_dv(M, P, S)
 
#define insert_large_chunk(M, X, S)
 
#define unlink_large_chunk(M, X)
 
#define insert_chunk(M, P, S)
 
#define unlink_chunk(M, P, S)
 
#define internal_malloc(m, b)   dlmalloc(b)
 
#define internal_free(m, mem)   dlfree(mem)
 
#define fm   gm
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Typedefs

typedef struct malloc_chunk mchunk
 
typedef struct malloc_chunkmchunkptr
 
typedef struct malloc_chunksbinptr
 
typedef unsigned int bindex_t
 
typedef unsigned int binmap_t
 
typedef unsigned int flag_t
 
typedef struct malloc_tree_chunk tchunk
 
typedef struct malloc_tree_chunktchunkptr
 
typedef struct malloc_tree_chunktbinptr
 
typedef struct malloc_segment msegment
 
typedef struct malloc_segmentmsegmentptr
 
typedef struct malloc_statemstate
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

DLMALLOC_EXPORT void * dlmalloc (size_t)
 
DLMALLOC_EXPORT void dlfree (void *)
 
DLMALLOC_EXPORT void * dlcalloc (size_t, size_t)
 
DLMALLOC_EXPORT void * dlrealloc (void *, size_t)
 
DLMALLOC_EXPORT void * dlrealloc_in_place (void *, size_t)
 
DLMALLOC_EXPORT void * dlmemalign (size_t, size_t)
 
DLMALLOC_EXPORT int dlposix_memalign (void **, size_t, size_t)
 
DLMALLOC_EXPORT void * dlvalloc (size_t)
 
DLMALLOC_EXPORT int dlmallopt (int, int)
 
DLMALLOC_EXPORT size_t dlmalloc_set_footprint_limit (size_t bytes)
 
DLMALLOC_EXPORT void ** dlindependent_calloc (size_t, size_t, void **)
 
DLMALLOC_EXPORT void ** dlindependent_comalloc (size_t, size_t *, void **)
 
DLMALLOC_EXPORT size_t dlbulk_free (void **, size_t n_elements)
 
DLMALLOC_EXPORT void * dlpvalloc (size_t)
 
DLMALLOC_EXPORT int dlmalloc_trim (size_t)
 
size_t dlmalloc_usable_size (void *)
 
static msegmentptr segment_holding (mstate m, char *addr)
 
static int has_segment_link (mstate m, msegmentptr ss)
 
static int init_mparams (void)
 
static int change_mparam (int param_number, int value)
 
static struct mallinfo internal_mallinfo (mstate m)
 
static void internal_malloc_stats (mstate m)
 
static void * mmap_alloc (mstate m, size_t nb)
 
static mchunkptr mmap_resize (mstate m, mchunkptr oldp, size_t nb, int flags)
 
static void init_top (mstate m, mchunkptr p, size_t psize)
 
static void init_bins (mstate m)
 
static void * prepend_alloc (mstate m, char *newbase, char *oldbase, size_t nb)
 
static void add_segment (mstate m, char *tbase, size_t tsize, flag_t mmapped)
 
static void * sys_alloc (mstate m, size_t nb)
 
static size_t release_unused_segments (mstate m)
 
static int sys_trim (mstate m, size_t pad)
 
static void dispose_chunk (mstate m, mchunkptr p, size_t psize)
 
static void * tmalloc_large (mstate m, size_t nb)
 
static void * tmalloc_small (mstate m, size_t nb)
 
static mchunkptr try_realloc_chunk (mstate m, mchunkptr p, size_t nb, int can_move)
 
static void * internal_memalign (mstate m, size_t alignment, size_t bytes)
 
static void ** ialloc (mstate m, size_t n_elements, size_t *sizes, int opts, void *chunks[])
 
static size_t internal_bulk_free (mstate m, void *array[], size_t nelem)
 
void ** dlindependent_calloc (size_t n_elements, size_t elem_size, void *chunks[])
 
void ** dlindependent_comalloc (size_t n_elements, size_t sizes[], void *chunks[])
 
size_t dlbulk_free (void *array[], size_t nelem)
 
+ + + + + +

+Variables

static struct malloc_params mparams
 
static struct malloc_state _gm_
 
+

Macro Definition Documentation

+ +

◆ _STRUCT_MALLINFO

+ +
+
+ + + + +
#define _STRUCT_MALLINFO
+
+ +

Definition at line 768 of file malloc.c.

+ +
+
+ +

◆ ABORT

+ +
+
+ + + + +
#define ABORT   abort()
+
+ +

Definition at line 627 of file malloc.c.

+ +
+
+ +

◆ ABORT_ON_ASSERT_FAILURE

+ +
+
+ + + + +
#define ABORT_ON_ASSERT_FAILURE   1
+
+ +

Definition at line 630 of file malloc.c.

+ +
+
+ +

◆ ACQUIRE_MALLOC_GLOBAL_LOCK

+ +
+
+ + + + + + + +
#define ACQUIRE_MALLOC_GLOBAL_LOCK()
+
+ +

Definition at line 1835 of file malloc.c.

+ +
+
+ +

◆ align_as_chunk

+ +
+
+ + + + + + + + +
#define align_as_chunk( A)   (mchunkptr) ((A) + align_offset(chunk2mem(A)))
+
+ +

Definition at line 2269 of file malloc.c.

+ +
+
+ +

◆ align_offset

+ +
+
+ + + + + + + + +
#define align_offset( A)
+
+Value:
((((size_t) (A) &CHUNK_ALIGN_MASK) == 0) ? 0 : \
+ +
#define MALLOC_ALIGNMENT
Definition malloc.c:621
+
#define CHUNK_ALIGN_MASK
Definition malloc.c:1624
+
+

Definition at line 1630 of file malloc.c.

+ +
+
+ +

◆ assert

+ +
+
+ + + + + + + + +
#define assert( x)
+
+ +

Definition at line 1461 of file malloc.c.

+ +
+
+ +

◆ bit_for_tree_index

+ +
+
+ + + + + + + + +
#define bit_for_tree_index( i)    (i == NTREEBINS - 1) ? (SIZE_T_BITSIZE - 1) : (((i) >> 1) + TREEBIN_SHIFT - 2)
+
+ +

Definition at line 2956 of file malloc.c.

+ +
+
+ +

◆ CALL_DIRECT_MMAP

+ +
+
+ + + + + + + + +
#define CALL_DIRECT_MMAP( s)   DIRECT_MMAP(s)
+
+ +

Definition at line 1776 of file malloc.c.

+ +
+
+ +

◆ CALL_MMAP

+ +
+
+ + + + + + + + +
#define CALL_MMAP( s)   MMAP(s)
+
+ +

Definition at line 1777 of file malloc.c.

+ +
+
+ +

◆ CALL_MORECORE

+ +
+
+ + + + + + + + +
#define CALL_MORECORE( S)   MORECORE_DEFAULT(S)
+
+

Define CALL_MORECORE

+ +

Definition at line 1736 of file malloc.c.

+ +
+
+ +

◆ CALL_MREMAP

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#define CALL_MREMAP( addr,
 osz,
 nsz,
 mv 
)   MFAIL
+
+

Define CALL_MREMAP

+ +

Definition at line 1791 of file malloc.c.

+ +
+
+ +

◆ CALL_MUNMAP

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define CALL_MUNMAP( a,
 
)   MUNMAP((a), (s))
+
+ +

Definition at line 1778 of file malloc.c.

+ +
+
+ +

◆ calloc_must_clear

+ +
+
+ + + + + + + + +
#define calloc_must_clear( p)   (!is_mmapped(p))
+
+ +

Definition at line 2345 of file malloc.c.

+ +
+
+ +

◆ check_free_chunk

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define check_free_chunk( M,
 
)
+
+ +

Definition at line 2851 of file malloc.c.

+ +
+
+ +

◆ check_inuse_chunk

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define check_inuse_chunk( M,
 
)
+
+ +

Definition at line 2852 of file malloc.c.

+ +
+
+ +

◆ check_malloc_state

+ +
+
+ + + + + + + + +
#define check_malloc_state( M)
+
+ +

Definition at line 2855 of file malloc.c.

+ +
+
+ +

◆ check_malloced_chunk

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define check_malloced_chunk( M,
 P,
 
)
+
+ +

Definition at line 2853 of file malloc.c.

+ +
+
+ +

◆ check_mmapped_chunk

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define check_mmapped_chunk( M,
 
)
+
+ +

Definition at line 2854 of file malloc.c.

+ +
+
+ +

◆ check_top_chunk

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define check_top_chunk( M,
 
)
+
+ +

Definition at line 2856 of file malloc.c.

+ +
+
+ +

◆ chunk2mem

+ +
+
+ + + + + + + + +
#define chunk2mem( p)   ((void *) ((char *) (p) + TWO_SIZE_T_SIZES))
+
+ +

Definition at line 2266 of file malloc.c.

+ +
+
+ +

◆ CHUNK_ALIGN_MASK

+ +
+
+ + + + +
#define CHUNK_ALIGN_MASK   (MALLOC_ALIGNMENT - SIZE_T_ONE)
+
+ +

Definition at line 1624 of file malloc.c.

+ +
+
+ +

◆ chunk_minus_offset

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define chunk_minus_offset( p,
 
)   ((mchunkptr) (((char *) (p)) - (s)))
+
+ +

Definition at line 2318 of file malloc.c.

+ +
+
+ +

◆ CHUNK_OVERHEAD

+ +
+
+ + + + +
#define CHUNK_OVERHEAD   (SIZE_T_SIZE)
+
+ +

Definition at line 2253 of file malloc.c.

+ +
+
+ +

◆ chunk_plus_offset

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define chunk_plus_offset( p,
 
)   ((mchunkptr) (((char *) (p)) + (s)))
+
+ +

Definition at line 2317 of file malloc.c.

+ +
+
+ +

◆ chunksize

+ +
+
+ + + + + + + + +
#define chunksize( p)   ((p)->head & ~(FLAG_BITS))
+
+ +

Definition at line 2310 of file malloc.c.

+ +
+
+ +

◆ cinuse

+ +
+
+ + + + + + + + +
#define cinuse( p)   ((p)->head & CINUSE_BIT)
+
+ +

Definition at line 2304 of file malloc.c.

+ +
+
+ +

◆ CINUSE_BIT

+ +
+
+ + + + +
#define CINUSE_BIT   (SIZE_T_TWO)
+
+ +

Definition at line 2295 of file malloc.c.

+ +
+
+ +

◆ clear_flag4

+ +
+
+ + + + + + + + +
#define clear_flag4( p)   ((p)->head &= ~FLAG4_BIT)
+
+ +

Definition at line 2314 of file malloc.c.

+ +
+
+ +

◆ clear_pinuse

+ +
+
+ + + + + + + + +
#define clear_pinuse( p)   ((p)->head &= ~PINUSE_BIT)
+
+ +

Definition at line 2312 of file malloc.c.

+ +
+
+ +

◆ clear_smallmap

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define clear_smallmap( M,
 
)   ((M)->smallmap &= ~idx2bit(i))
+
+ +

Definition at line 2977 of file malloc.c.

+ +
+
+ +

◆ clear_treemap

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define clear_treemap( M,
 
)   ((M)->treemap &= ~idx2bit(i))
+
+ +

Definition at line 2981 of file malloc.c.

+ +
+
+ +

◆ CMFAIL

+ +
+
+ + + + +
#define CMFAIL   ((char *) (MFAIL)) /* defined for convenience */
+
+ +

Definition at line 1645 of file malloc.c.

+ +
+
+ +

◆ compute_bit2idx

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define compute_bit2idx( X,
 
)
+
+Value:
{ \
+
unsigned int Y = X - 1; \
+
unsigned int K = Y >> (16 - 4) & 16; \
+
unsigned int N = K; Y >>= K; \
+
N += K = Y >> (8 - 3) & 8; Y >>= K; \
+
N += K = Y >> (4 - 2) & 4; Y >>= K; \
+
N += K = Y >> (2 - 1) & 2; Y >>= K; \
+
N += K = Y >> (1 - 0) & 1; Y >>= K; \
+
I = (bindex_t) (N + Y); \
+
}
+
unsigned int bindex_t
Definition malloc.c:2242
+
+

Definition at line 3023 of file malloc.c.

+ +
+
+ +

◆ compute_tree_index

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define compute_tree_index( S,
 
)
+
+Value:
{ \
+
size_t X = S >> TREEBIN_SHIFT; \
+
if (X == 0) \
+
I = 0; \
+
else if (X > 0xFFFF) \
+
I = NTREEBINS - 1; \
+
else { \
+
unsigned int Y = (unsigned int) X; \
+
unsigned int N = ((Y - 0x100) >> 16) & 8; \
+
unsigned int K = (((Y <<= N) - 0x1000) >> 16) & 4; \
+
N += K; \
+
N += K = (((Y <<= K) - 0x4000) >> 16) & 2; \
+
K = 14 - N + ((Y <<= K) >> 15); \
+
I = (K << 1) + ((S >> (K + (TREEBIN_SHIFT - 1)) & 1)); \
+
} \
+
}
+
#define NTREEBINS
Definition malloc.c:2621
+
#define TREEBIN_SHIFT
Definition malloc.c:2624
+
+

Definition at line 2936 of file malloc.c.

+ +
+
+ +

◆ CORRUPTION_ERROR_ACTION

+ +
+
+ + + + + + + + +
#define CORRUPTION_ERROR_ACTION( m)   ABORT
+
+ +

Definition at line 2837 of file malloc.c.

+ +
+
+ +

◆ DEBUG

+ +
+
+ + + + +
#define DEBUG   0
+
+ +

Definition at line 1463 of file malloc.c.

+ +
+
+ +

◆ DEFAULT_GRANULARITY

+ +
+
+ + + + +
#define DEFAULT_GRANULARITY   (0) /* 0 means to compute in init_mparams */
+
+ +

Definition at line 676 of file malloc.c.

+ +
+
+ +

◆ DEFAULT_MMAP_THRESHOLD

+ +
+
+ + + + +
#define DEFAULT_MMAP_THRESHOLD   MAX_SIZE_T
+
+ +

Definition at line 692 of file malloc.c.

+ +
+
+ +

◆ DEFAULT_TRIM_THRESHOLD

+ +
+
+ + + + +
#define DEFAULT_TRIM_THRESHOLD   ((size_t) 2U * (size_t) 1024U * (size_t) 1024U)
+
+ +

Definition at line 683 of file malloc.c.

+ +
+
+ +

◆ DESTROY_LOCK

+ +
+
+ + + + + + + + +
#define DESTROY_LOCK( l)   (0)
+
+ +

Definition at line 1834 of file malloc.c.

+ +
+
+ +

◆ DIRECT_MMAP [1/2]

+ +
+
+ + + + + + + + +
#define DIRECT_MMAP( s)   MMAP(s)
+
+ +

Definition at line 1745 of file malloc.c.

+ +
+
+ +

◆ DIRECT_MMAP [2/2]

+ +
+
+ + + + + + + + +
#define DIRECT_MMAP( s)   MFAIL
+
+ +

Definition at line 1745 of file malloc.c.

+ +
+
+ +

◆ disable_contiguous

+ +
+
+ + + + + + + + +
#define disable_contiguous( M)   ((M)->mflags |= USE_NONCONTIGUOUS_BIT)
+
+ +

Definition at line 2713 of file malloc.c.

+ +
+
+ +

◆ disable_lock

+ +
+
+ + + + + + + + +
#define disable_lock( M)
+
+ +

Definition at line 2701 of file malloc.c.

+ +
+
+ +

◆ disable_mmap

+ +
+
+ + + + + + + + +
#define disable_mmap( M)
+
+ +

Definition at line 2709 of file malloc.c.

+ +
+
+ +

◆ dlbulk_free

+ +
+
+ + + + +
#define dlbulk_free   bulk_free
+
+ +

Definition at line 845 of file malloc.c.

+ +
+
+ +

◆ dlcalloc

+ +
+
+ + + + +
#define dlcalloc   calloc
+
+ +

Definition at line 824 of file malloc.c.

+ +
+
+ +

◆ dlfree

+ +
+
+ + + + +
#define dlfree   free
+
+ +

Definition at line 825 of file malloc.c.

+ +
+
+ +

◆ dlindependent_calloc

+ +
+
+ + + + +
#define dlindependent_calloc   independent_calloc
+
+ +

Definition at line 843 of file malloc.c.

+ +
+
+ +

◆ dlindependent_comalloc

+ +
+
+ + + + +
#define dlindependent_comalloc   independent_comalloc
+
+ +

Definition at line 844 of file malloc.c.

+ +
+
+ +

◆ dlmallinfo

+ +
+
+ + + + +
struct mallinfo dlmallinfo   mallinfo
+
+ +

Definition at line 5492 of file malloc.c.

+ +
+
+ +

◆ dlmalloc

+ +
+
+ + + + +
#define dlmalloc   malloc
+
+ +

Definition at line 826 of file malloc.c.

+ +
+
+ +

◆ DLMALLOC_EXPORT

+ +
+
+ + + + +
#define DLMALLOC_EXPORT   extern
+
+ +

Definition at line 532 of file malloc.c.

+ +
+
+ +

◆ dlmalloc_footprint

+ +
+
+ + + + +
size_t dlmalloc_footprint   malloc_footprint
+
+ +

Definition at line 5461 of file malloc.c.

+ +
+
+ +

◆ dlmalloc_footprint_limit

+ +
+
+ + + + +
size_t dlmalloc_footprint_limit   malloc_footprint_limit
+
+ +

Definition at line 5471 of file malloc.c.

+ +
+
+ +

◆ dlmalloc_inspect_all

+ +
+
+ + + + +
#define dlmalloc_inspect_all   malloc_inspect_all
+
+ +

Definition at line 842 of file malloc.c.

+ +
+
+ +

◆ dlmalloc_max_footprint

+ +
+
+ + + + +
size_t dlmalloc_max_footprint   malloc_max_footprint
+
+ +

Definition at line 5466 of file malloc.c.

+ +
+
+ +

◆ dlmalloc_set_footprint_limit

+ +
+
+ + + + +
#define dlmalloc_set_footprint_limit   malloc_set_footprint_limit
+
+ +

Definition at line 841 of file malloc.c.

+ +
+
+ +

◆ dlmalloc_stats

+ +
+
+ + + + +
void dlmalloc_stats   malloc_stats
+
+ +

Definition at line 5500 of file malloc.c.

+ +
+
+ +

◆ dlmalloc_trim

+ +
+
+ + + + +
#define dlmalloc_trim   malloc_trim
+
+ +

Definition at line 835 of file malloc.c.

+ +
+
+ +

◆ dlmalloc_usable_size

+ +
+
+ + + + +
#define dlmalloc_usable_size   malloc_usable_size
+
+ +

Definition at line 837 of file malloc.c.

+ +
+
+ +

◆ DLMALLOC_VERSION

+ +
+
+ + + + +
#define DLMALLOC_VERSION   20806
+
+ +

Definition at line 528 of file malloc.c.

+ +
+
+ +

◆ dlmallopt

+ +
+
+ + + + +
#define dlmallopt   mallopt
+
+ +

Definition at line 834 of file malloc.c.

+ +
+
+ +

◆ dlmemalign

+ +
+
+ + + + +
#define dlmemalign   memalign
+
+ +

Definition at line 827 of file malloc.c.

+ +
+
+ +

◆ dlposix_memalign

+ +
+
+ + + + +
#define dlposix_memalign   posix_memalign
+
+ +

Definition at line 828 of file malloc.c.

+ +
+
+ +

◆ dlpvalloc

+ +
+
+ + + + +
#define dlpvalloc   pvalloc
+
+ +

Definition at line 832 of file malloc.c.

+ +
+
+ +

◆ dlrealloc

+ +
+
+ + + + +
#define dlrealloc   realloc
+
+ +

Definition at line 829 of file malloc.c.

+ +
+
+ +

◆ dlrealloc_in_place

+ +
+
+ + + + +
#define dlrealloc_in_place   realloc_in_place
+
+ +

Definition at line 830 of file malloc.c.

+ +
+
+ +

◆ dlvalloc

+ +
+
+ + + + +
#define dlvalloc   valloc
+
+ +

Definition at line 831 of file malloc.c.

+ +
+
+ +

◆ enable_lock

+ +
+
+ + + + + + + + +
#define enable_lock( M)   ((M)->mflags |= USE_LOCK_BIT)
+
+ +

Definition at line 2697 of file malloc.c.

+ +
+
+ +

◆ enable_mmap

+ +
+
+ + + + + + + + +
#define enable_mmap( M)   ((M)->mflags |= USE_MMAP_BIT)
+
+ +

Definition at line 2705 of file malloc.c.

+ +
+
+ +

◆ ensure_initialization

+ +
+
+ + + + + + + +
#define ensure_initialization()   (void) (mparams.magic != 0 || init_mparams())
+
+ +

Definition at line 2679 of file malloc.c.

+ +
+
+ +

◆ EXTERN_BIT

+ +
+
+ + + + +
#define EXTERN_BIT   (8U)
+
+ +

Definition at line 1798 of file malloc.c.

+ +
+
+ +

◆ FENCEPOST_HEAD

+ +
+
+ + + + +
#define FENCEPOST_HEAD   (INUSE_BITS | SIZE_T_SIZE)
+
+ +

Definition at line 2301 of file malloc.c.

+ +
+
+ +

◆ FLAG4_BIT

+ +
+
+ + + + +
#define FLAG4_BIT   (SIZE_T_FOUR)
+
+ +

Definition at line 2296 of file malloc.c.

+ +
+
+ +

◆ flag4inuse

+ +
+
+ + + + + + + + +
#define flag4inuse( p)   ((p)->head & FLAG4_BIT)
+
+ +

Definition at line 2306 of file malloc.c.

+ +
+
+ +

◆ FLAG_BITS

+ +
+
+ + + + +
#define FLAG_BITS   (PINUSE_BIT | CINUSE_BIT | FLAG4_BIT)
+
+ +

Definition at line 2298 of file malloc.c.

+ +
+
+ +

◆ fm

+ +
+
+ + + + +
#define fm   gm
+
+ +
+
+ +

◆ FOOTERS

+ +
+
+ + + + +
#define FOOTERS   0
+
+ +

Definition at line 624 of file malloc.c.

+ +
+
+ +

◆ FORCEINLINE

+ +
+
+ + + + +
#define FORCEINLINE
+
+ +

Definition at line 816 of file malloc.c.

+ +
+
+ +

◆ FOUR_SIZE_T_SIZES

+ +
+
+ + + + +
#define FOUR_SIZE_T_SIZES   (SIZE_T_SIZE << 2)
+
+ +

Definition at line 1619 of file malloc.c.

+ +
+
+ +

◆ get_foot

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define get_foot( p,
 
)   (((mchunkptr) ((char *) (p) + (s)))->prev_foot)
+
+ +

Definition at line 2328 of file malloc.c.

+ +
+
+ +

◆ gm

+ +
+
+ + + + +
#define gm   (&_gm_)
+
+ +

Definition at line 2685 of file malloc.c.

+ +
+
+ +

◆ granularity_align

+ +
+
+ + + + + + + + +
#define granularity_align( S)
+
+Value:
+ +
#define SIZE_T_ONE
Definition malloc.c:1615
+
static struct malloc_params mparams
Definition malloc.c:2676
+
size_t granularity
Definition malloc.c:2670
+
+

Definition at line 2725 of file malloc.c.

+ +
+
+ +

◆ HALF_MAX_SIZE_T

+ +
+
+ + + + +
#define HALF_MAX_SIZE_T   (MAX_SIZE_T / 2U)
+
+ +

Definition at line 1621 of file malloc.c.

+ +
+
+ +

◆ HAVE_MMAP

+ +
+
+ + + + +
#define HAVE_MMAP   0
+
+ +

Definition at line 643 of file malloc.c.

+ +
+
+ +

◆ HAVE_MORECORE

+ +
+
+ + + + +
#define HAVE_MORECORE   1
+
+ +

Definition at line 663 of file malloc.c.

+ +
+
+ +

◆ HAVE_MREMAP

+ +
+
+ + + + +
#define HAVE_MREMAP   0
+
+ +

Definition at line 653 of file malloc.c.

+ +
+
+ +

◆ idx2bit

+ +
+
+ + + + + + + + +
#define idx2bit( i)   ((binmap_t) (1) << (i))
+
+ +

Definition at line 2973 of file malloc.c.

+ +
+
+ +

◆ INITIAL_LOCK

+ +
+
+ + + + + + + + +
#define INITIAL_LOCK( l)   (0)
+
+ +

Definition at line 1833 of file malloc.c.

+ +
+
+ +

◆ INSECURE

+ +
+
+ + + + +
#define INSECURE   0
+
+ +

Definition at line 637 of file malloc.c.

+ +
+
+ +

◆ insert_chunk

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define insert_chunk( M,
 P,
 
)
+
+Value:
if (is_small(S)) insert_small_chunk(M, P, S) \
+
else { tchunkptr TP = (tchunkptr) (P); insert_large_chunk(M, TP, S); }
+
#define is_small(s)
Definition malloc.c:2882
+
#define insert_large_chunk(M, X, S)
Definition malloc.c:3741
+
#define insert_small_chunk(M, P, S)
Definition malloc.c:3659
+
struct malloc_tree_chunk * tchunkptr
Definition malloc.c:2455
+ +
+

Definition at line 3884 of file malloc.c.

+ +
+
+ +

◆ insert_large_chunk

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define insert_large_chunk( M,
 X,
 
)
+
+ +

Definition at line 3741 of file malloc.c.

+ +
+
+ +

◆ insert_small_chunk

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define insert_small_chunk( M,
 P,
 
)
+
+Value:
{ \
+ +
mchunkptr B = smallbin_at(M, I); \
+
mchunkptr F = B; \
+
assert(S >= MIN_CHUNK_SIZE); \
+
if (!smallmap_is_marked(M, I)) \
+
mark_smallmap(M, I); \
+
else if (RTCHECK(ok_address(M, B->fd))) \
+
F = B->fd; \
+
else { \
+
CORRUPTION_ERROR_ACTION(M); \
+
} \
+
B->fd = P; \
+
F->bk = P; \
+
P->fd = F; \
+
P->bk = B; \
+
}
+
#define ok_address(M, a)
Definition malloc.c:3067
+
#define small_index(s)
Definition malloc.c:2883
+
#define smallmap_is_marked(M, i)
Definition malloc.c:2978
+
#define smallbin_at(M, i)
Definition malloc.c:2888
+
#define MIN_CHUNK_SIZE
Definition malloc.c:2262
+
#define RTCHECK(e)
Definition malloc.c:3094
+ +
struct malloc_chunk * fd
Definition malloc.c:2235
+
struct malloc_chunk * bk
Definition malloc.c:2236
+
+

Definition at line 3659 of file malloc.c.

+ +
+
+ +

◆ internal_free

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define internal_free( m,
 mem 
)   dlfree(mem)
+
+ +

Definition at line 3906 of file malloc.c.

+ +
+
+ +

◆ internal_malloc

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define internal_malloc( m,
 
)   dlmalloc(b)
+
+ +

Definition at line 3905 of file malloc.c.

+ +
+
+ +

◆ INUSE_BITS

+ +
+
+ + + + +
#define INUSE_BITS   (PINUSE_BIT | CINUSE_BIT)
+
+ +

Definition at line 2297 of file malloc.c.

+ +
+
+ +

◆ is_aligned

+ +
+
+ + + + + + + + +
#define is_aligned( A)   (((size_t) ((A)) & (CHUNK_ALIGN_MASK)) == 0)
+
+ +

Definition at line 1627 of file malloc.c.

+ +
+
+ +

◆ is_extern_segment

+ +
+
+ + + + + + + + +
#define is_extern_segment( S)   ((S)->sflags & EXTERN_BIT)
+
+ +

Definition at line 2527 of file malloc.c.

+ +
+
+ +

◆ is_global

+ +
+
+ + + + + + + + +
#define is_global( M)   ((M) == &_gm_)
+
+ +

Definition at line 2686 of file malloc.c.

+ +
+
+ +

◆ is_granularity_aligned

+ +
+
+ + + + + + + + +
#define is_granularity_aligned( S)    (((size_t) (S) &(mparams.granularity - SIZE_T_ONE)) == 0)
+
+ +

Definition at line 2742 of file malloc.c.

+ +
+
+ +

◆ is_initialized

+ +
+
+ + + + + + + + +
#define is_initialized( M)   ((M)->top != 0)
+
+ +

Definition at line 2690 of file malloc.c.

+ +
+
+ +

◆ is_inuse

+ +
+
+ + + + + + + + +
#define is_inuse( p)   (((p)->head & INUSE_BITS) != PINUSE_BIT)
+
+ +

Definition at line 2307 of file malloc.c.

+ +
+
+ +

◆ is_mmapped

+ +
+
+ + + + + + + + +
#define is_mmapped( p)   (((p)->head & INUSE_BITS) == 0)
+
+ +

Definition at line 2308 of file malloc.c.

+ +
+
+ +

◆ is_mmapped_segment

+ +
+
+ + + + + + + + +
#define is_mmapped_segment( S)   ((S)->sflags & USE_MMAP_BIT)
+
+ +

Definition at line 2526 of file malloc.c.

+ +
+
+ +

◆ is_page_aligned

+ +
+
+ + + + + + + + +
#define is_page_aligned( S)    (((size_t) (S) &(mparams.page_size - SIZE_T_ONE)) == 0)
+
+ +

Definition at line 2740 of file malloc.c.

+ +
+
+ +

◆ is_small

+ +
+
+ + + + + + + + +
#define is_small( s)   (((s) >> SMALLBIN_SHIFT) < NSMALLBINS)
+
+ +

Definition at line 2882 of file malloc.c.

+ +
+
+ +

◆ least_bit

+ +
+
+ + + + + + + + +
#define least_bit( x)   ((x) & -(x))
+
+ +

Definition at line 2985 of file malloc.c.

+ +
+
+ +

◆ left_bits

+ +
+
+ + + + + + + + +
#define left_bits( x)   ((x << 1) | -(x << 1))
+
+ +

Definition at line 2988 of file malloc.c.

+ +
+
+ +

◆ leftmost_child

+ +
+
+ + + + + + + + +
#define leftmost_child( t)   ((t)->child[0] != 0 ? (t)->child[0] : (t)->child[1])
+
+ +

Definition at line 2459 of file malloc.c.

+ +
+
+ +

◆ leftshift_for_tree_index

+ +
+
+ + + + + + + + +
#define leftshift_for_tree_index( i)
+
+Value:
((i == NTREEBINS - 1) ? 0 : \
+
((SIZE_T_BITSIZE - SIZE_T_ONE) - (((i) >> 1) + TREEBIN_SHIFT - 2)))
+
#define SIZE_T_BITSIZE
Definition malloc.c:1610
+
+

Definition at line 2960 of file malloc.c.

+ +
+
+ +

◆ LOCK_AT_FORK

+ +
+
+ + + + +
#define LOCK_AT_FORK   0
+
+ +

Definition at line 1537 of file malloc.c.

+ +
+
+ +

◆ M_GRANULARITY

+ +
+
+ + + + +
#define M_GRANULARITY   (-2)
+
+ +

Definition at line 731 of file malloc.c.

+ +
+
+ +

◆ M_MMAP_THRESHOLD

+ +
+
+ + + + +
#define M_MMAP_THRESHOLD   (-3)
+
+ +

Definition at line 733 of file malloc.c.

+ +
+
+ +

◆ M_TRIM_THRESHOLD

+ +
+
+ + + + +
#define M_TRIM_THRESHOLD   (-1)
+
+ +

Definition at line 729 of file malloc.c.

+ +
+
+ +

◆ MALLINFO_FIELD_TYPE

+ +
+
+ + + + +
#define MALLINFO_FIELD_TYPE   size_t
+
+ +

Definition at line 712 of file malloc.c.

+ +
+
+ +

◆ MALLOC_ALIGNMENT

+ +
+
+ + + + +
#define MALLOC_ALIGNMENT   ((size_t) (2 * sizeof(void *)))
+
+ +

Definition at line 621 of file malloc.c.

+ +
+
+ +

◆ MALLOC_FAILURE_ACTION

+ +
+
+ + + + +
#define MALLOC_FAILURE_ACTION   errno = ENOMEM;
+
+ +

Definition at line 657 of file malloc.c.

+ +
+
+ +

◆ malloc_getpagesize

+ +
+
+ + + + +
#define malloc_getpagesize   ((size_t) 4096U)
+
+ +

Definition at line 1595 of file malloc.c.

+ +
+
+ +

◆ MALLOC_INSPECT_ALL

+ +
+
+ + + + +
#define MALLOC_INSPECT_ALL   0
+
+ +

Definition at line 640 of file malloc.c.

+ +
+
+ +

◆ mark_inuse_foot

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define mark_inuse_foot( M,
 p,
 
)
+
+ +

Definition at line 3104 of file malloc.c.

+ +
+
+ +

◆ mark_smallmap

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define mark_smallmap( M,
 
)   ((M)->smallmap |= idx2bit(i))
+
+ +

Definition at line 2976 of file malloc.c.

+ +
+
+ +

◆ mark_treemap

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define mark_treemap( M,
 
)   ((M)->treemap |= idx2bit(i))
+
+ +

Definition at line 2980 of file malloc.c.

+ +
+
+ +

◆ MAX_RELEASE_CHECK_RATE

+ +
+
+ + + + +
#define MAX_RELEASE_CHECK_RATE   MAX_SIZE_T
+
+ +

Definition at line 699 of file malloc.c.

+ +
+
+ +

◆ MAX_REQUEST

+ +
+
+ + + + +
#define MAX_REQUEST   ((-MIN_CHUNK_SIZE) << 2)
+
+ +

Definition at line 2272 of file malloc.c.

+ +
+
+ +

◆ MAX_SIZE_T

+ +
+
+ + + + +
#define MAX_SIZE_T   (~(size_t) 0)
+
+ +

Definition at line 587 of file malloc.c.

+ +
+
+ +

◆ MAX_SMALL_REQUEST

+ +
+
+ + + + +
#define MAX_SMALL_REQUEST   (MAX_SMALL_SIZE - CHUNK_ALIGN_MASK - CHUNK_OVERHEAD)
+
+ +

Definition at line 2627 of file malloc.c.

+ +
+
+ +

◆ MAX_SMALL_SIZE

+ +
+
+ + + + +
#define MAX_SMALL_SIZE   (MIN_LARGE_SIZE - SIZE_T_ONE)
+
+ +

Definition at line 2626 of file malloc.c.

+ +
+
+ +

◆ MCHUNK_SIZE

+ +
+
+ + + + +
#define MCHUNK_SIZE   (sizeof(mchunk))
+
+ +

Definition at line 2248 of file malloc.c.

+ +
+
+ +

◆ mem2chunk

+ +
+
+ + + + + + + + +
#define mem2chunk( mem)   ((mchunkptr) ((char *) (mem) - TWO_SIZE_T_SIZES))
+
+ +

Definition at line 2267 of file malloc.c.

+ +
+
+ +

◆ MFAIL

+ +
+
+ + + + +
#define MFAIL   ((void *) (MAX_SIZE_T))
+
+ +

Definition at line 1644 of file malloc.c.

+ +
+
+ +

◆ MIN_CHUNK_SIZE

+ +
+
+ + + + +
#define MIN_CHUNK_SIZE    ((MCHUNK_SIZE + CHUNK_ALIGN_MASK) & ~CHUNK_ALIGN_MASK)
+
+ +

Definition at line 2262 of file malloc.c.

+ +
+
+ +

◆ MIN_LARGE_SIZE

+ +
+
+ + + + +
#define MIN_LARGE_SIZE   (SIZE_T_ONE << TREEBIN_SHIFT)
+
+ +

Definition at line 2625 of file malloc.c.

+ +
+
+ +

◆ MIN_REQUEST

+ +
+
+ + + + +
#define MIN_REQUEST   (MIN_CHUNK_SIZE - CHUNK_OVERHEAD - SIZE_T_ONE)
+
+ +

Definition at line 2273 of file malloc.c.

+ +
+
+ +

◆ MIN_SMALL_INDEX

+ +
+
+ + + + +
#define MIN_SMALL_INDEX   (small_index(MIN_CHUNK_SIZE))
+
+ +

Definition at line 2885 of file malloc.c.

+ +
+
+ +

◆ minsize_for_tree_index

+ +
+
+ + + + + + + + +
#define minsize_for_tree_index( i)
+
+Value:
((SIZE_T_ONE << (((i) >> 1) + TREEBIN_SHIFT)) \
+
| (((size_t) ((i) & SIZE_T_ONE)) << (((i) >> 1) + TREEBIN_SHIFT - 1)))
+
+

Definition at line 2965 of file malloc.c.

+ +
+
+ +

◆ MMAP [1/2]

+ +
+
+ + + + + + + + +
#define MMAP( s)   arax_mmap(s)
+
+ +

Definition at line 1744 of file malloc.c.

+ +
+
+ +

◆ MMAP [2/2]

+ +
+
+ + + + + + + + +
#define MMAP( s)   MFAIL
+
+ +

Definition at line 1744 of file malloc.c.

+ +
+
+ +

◆ mmap_align

+ +
+
+ + + + + + + + +
#define mmap_align( S)   page_align(S)
+
+ +

Definition at line 2734 of file malloc.c.

+ +
+
+ +

◆ MMAP_CHUNK_OVERHEAD

+ +
+
+ + + + +
#define MMAP_CHUNK_OVERHEAD   (TWO_SIZE_T_SIZES)
+
+ +

Definition at line 2257 of file malloc.c.

+ +
+
+ +

◆ MMAP_CLEARS

+ +
+
+ + + + +
#define MMAP_CLEARS   1
+
+ +

Definition at line 646 of file malloc.c.

+ +
+
+ +

◆ MMAP_FOOT_PAD

+ +
+
+ + + + +
#define MMAP_FOOT_PAD   (FOUR_SIZE_T_SIZES)
+
+ +

Definition at line 2259 of file malloc.c.

+ +
+
+ +

◆ MORECORE_CONTIGUOUS

+ +
+
+ + + + +
#define MORECORE_CONTIGUOUS   1
+
+ +

Definition at line 671 of file malloc.c.

+ +
+
+ +

◆ MORECORE_DEFAULT

+ +
+
+ + + + +
#define MORECORE_DEFAULT   sbrk
+
+ +

Definition at line 669 of file malloc.c.

+ +
+
+ +

◆ MSPACES

+ +
+
+ + + + +
#define MSPACES   0
+
+ +

Definition at line 617 of file malloc.c.

+ +
+
+ +

◆ MUNMAP [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define MUNMAP( a,
 
)   arax_ummap(a, s)
+
+ +

Definition at line 1747 of file malloc.c.

+ +
+
+ +

◆ MUNMAP [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define MUNMAP( a,
 
)   (-1)
+
+ +

Definition at line 1747 of file malloc.c.

+ +
+
+ +

◆ next_chunk

+ +
+
+ + + + + + + + +
#define next_chunk( p)   ((mchunkptr) ( ((char *) (p)) + ((p)->head & ~FLAG_BITS)))
+
+ +

Definition at line 2321 of file malloc.c.

+ +
+
+ +

◆ next_pinuse

+ +
+
+ + + + + + + + +
#define next_pinuse( p)   ((next_chunk(p)->head) & PINUSE_BIT)
+
+ +

Definition at line 2325 of file malloc.c.

+ +
+
+ +

◆ NO_MALLINFO

+ +
+
+ + + + +
#define NO_MALLINFO   0
+
+ +

Definition at line 709 of file malloc.c.

+ +
+
+ +

◆ NO_MALLOC_STATS

+ +
+
+ + + + +
#define NO_MALLOC_STATS   0
+
+ +

Definition at line 715 of file malloc.c.

+ +
+
+ +

◆ NO_SEGMENT_TRAVERSAL

+ +
+
+ + + + +
#define NO_SEGMENT_TRAVERSAL   0
+
+ +

Definition at line 718 of file malloc.c.

+ +
+
+ +

◆ NOINLINE

+ +
+
+ + + + +
#define NOINLINE
+
+ +

Definition at line 805 of file malloc.c.

+ +
+
+ +

◆ NSMALLBINS

+ +
+
+ + + + +
#define NSMALLBINS   (32U)
+
+ +

Definition at line 2620 of file malloc.c.

+ +
+
+ +

◆ NTREEBINS

+ +
+
+ + + + +
#define NTREEBINS   (32U)
+
+ +

Definition at line 2621 of file malloc.c.

+ +
+
+ +

◆ ok_address

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define ok_address( M,
 
)   ((char *) (a) >= (M)->least_addr)
+
+ +

Definition at line 3067 of file malloc.c.

+ +
+
+ +

◆ ok_inuse

+ +
+
+ + + + + + + + +
#define ok_inuse( p)   is_inuse(p)
+
+ +

Definition at line 3071 of file malloc.c.

+ +
+
+ +

◆ ok_magic

+ +
+
+ + + + + + + + +
#define ok_magic( M)   (1)
+
+ +

Definition at line 3086 of file malloc.c.

+ +
+
+ +

◆ ok_next

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define ok_next( p,
 
)   ((char *) (p) < (char *) (n))
+
+ +

Definition at line 3069 of file malloc.c.

+ +
+
+ +

◆ ok_pinuse

+ +
+
+ + + + + + + + +
#define ok_pinuse( p)   pinuse(p)
+
+ +

Definition at line 3073 of file malloc.c.

+ +
+
+ +

◆ ONLY_MSPACES

+ +
+
+ + + + +
#define ONLY_MSPACES   0
+
+ +

Definition at line 611 of file malloc.c.

+ +
+
+ +

◆ overhead_for

+ +
+
+ + + + + + + + +
#define overhead_for( p)    (is_mmapped(p) ? MMAP_CHUNK_OVERHEAD : CHUNK_OVERHEAD)
+
+ +

Definition at line 2340 of file malloc.c.

+ +
+
+ +

◆ pad_request

+ +
+
+ + + + + + + + +
#define pad_request( req)    (((req) + CHUNK_OVERHEAD + CHUNK_ALIGN_MASK) & ~CHUNK_ALIGN_MASK)
+
+ +

Definition at line 2276 of file malloc.c.

+ +
+
+ +

◆ page_align

+ +
+
+ + + + + + + + +
#define page_align( S)    (((S) + (mparams.page_size - SIZE_T_ONE)) & ~(mparams.page_size - SIZE_T_ONE))
+
+ +

Definition at line 2721 of file malloc.c.

+ +
+
+ +

◆ pinuse

+ +
+
+ + + + + + + + +
#define pinuse( p)   ((p)->head & PINUSE_BIT)
+
+ +

Definition at line 2305 of file malloc.c.

+ +
+
+ +

◆ PINUSE_BIT

+ +
+
+ + + + +
#define PINUSE_BIT   (SIZE_T_ONE)
+
+ +

Definition at line 2294 of file malloc.c.

+ +
+
+ +

◆ POSTACTION

+ +
+
+ + + + + + + + +
#define POSTACTION( M)
+
+ +

Definition at line 2810 of file malloc.c.

+ +
+
+ +

◆ PREACTION

+ +
+
+ + + + + + + + +
#define PREACTION( M)   (0)
+
+ +

Definition at line 2806 of file malloc.c.

+ +
+
+ +

◆ prev_chunk

+ +
+
+ + + + + + + + +
#define prev_chunk( p)   ((mchunkptr) ( ((char *) (p)) - ((p)->prev_foot) ))
+
+ +

Definition at line 2322 of file malloc.c.

+ +
+
+ +

◆ PROCEED_ON_ERROR

+ +
+
+ + + + +
#define PROCEED_ON_ERROR   0
+
+ +

Definition at line 633 of file malloc.c.

+ +
+
+ +

◆ RELEASE_MALLOC_GLOBAL_LOCK

+ +
+
+ + + + + + + +
#define RELEASE_MALLOC_GLOBAL_LOCK()
+
+ +

Definition at line 1836 of file malloc.c.

+ +
+
+ +

◆ replace_dv

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define replace_dv( M,
 P,
 
)
+
+Value:
{ \
+
size_t DVS = M->dvsize; \
+
assert(is_small(DVS)); \
+
if (DVS != 0) { \
+
mchunkptr DV = M->dv; \
+
insert_small_chunk(M, DV, DVS); \
+
} \
+
M->dvsize = S; \
+
M->dv = P; \
+
}
+
+

Definition at line 3726 of file malloc.c.

+ +
+
+ +

◆ request2size

+ +
+
+ + + + + + + + +
#define request2size( req)    (((req) < MIN_REQUEST) ? MIN_CHUNK_SIZE : pad_request(req))
+
+ +

Definition at line 2280 of file malloc.c.

+ +
+
+ +

◆ RTCHECK

+ +
+
+ + + + + + + + +
#define RTCHECK( e)   (e)
+
+ +

Definition at line 3094 of file malloc.c.

+ +
+
+ +

◆ same_or_left_bits

+ +
+
+ + + + + + + + +
#define same_or_left_bits( x)   ((x) | -(x))
+
+ +

Definition at line 2991 of file malloc.c.

+ +
+
+ +

◆ segment_holds

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define segment_holds( S,
 
)    ((char *) (A) >= S->base && (char *) (A) < S->base + S->size)
+
+ +

Definition at line 2746 of file malloc.c.

+ +
+
+ +

◆ set_flag4

+ +
+
+ + + + + + + + +
#define set_flag4( p)   ((p)->head |= FLAG4_BIT)
+
+ +

Definition at line 2313 of file malloc.c.

+ +
+
+ +

◆ set_foot

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define set_foot( p,
 
)   (((mchunkptr) ((char *) (p) + (s)))->prev_foot = (s))
+
+ +

Definition at line 2329 of file malloc.c.

+ +
+
+ +

◆ set_free_with_pinuse

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define set_free_with_pinuse( p,
 s,
 
)    (clear_pinuse(n), set_size_and_pinuse_of_free_chunk(p, s))
+
+ +

Definition at line 2336 of file malloc.c.

+ +
+
+ +

◆ set_inuse

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define set_inuse( M,
 p,
 
)
+
+Value:
((p)->head = (((p)->head & PINUSE_BIT) | s | CINUSE_BIT), \
+
((mchunkptr) (((char *) (p)) + (s)))->head |= PINUSE_BIT)
+
#define CINUSE_BIT
Definition malloc.c:2295
+
#define PINUSE_BIT
Definition malloc.c:2294
+
+

Definition at line 3109 of file malloc.c.

+ +
+
+ +

◆ set_inuse_and_pinuse

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define set_inuse_and_pinuse( M,
 p,
 
)
+
+Value:
((p)->head = (s | PINUSE_BIT | CINUSE_BIT), \
+
((mchunkptr) (((char *) (p)) + (s)))->head |= PINUSE_BIT)
+
struct malloc_chunk * mchunkptr
Definition malloc.c:2240
+
+

Definition at line 3114 of file malloc.c.

+ +
+
+ +

◆ set_lock

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define set_lock( M,
 
)
+
+Value:
((M)->mflags = (L) ? \
+
((M)->mflags | USE_LOCK_BIT) : \
+
((M)->mflags & ~USE_LOCK_BIT))
+
#define USE_LOCK_BIT
Definition malloc.c:1832
+
+

Definition at line 2715 of file malloc.c.

+ +
+
+ +

◆ set_size_and_pinuse_of_free_chunk

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define set_size_and_pinuse_of_free_chunk( p,
 
)    ((p)->head = (s | PINUSE_BIT), set_foot(p, s))
+
+ +

Definition at line 2332 of file malloc.c.

+ +
+
+ +

◆ set_size_and_pinuse_of_inuse_chunk

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define set_size_and_pinuse_of_inuse_chunk( M,
 p,
 
)    ((p)->head = (s | PINUSE_BIT | CINUSE_BIT))
+
+ +

Definition at line 3119 of file malloc.c.

+ +
+
+ +

◆ should_trim

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define should_trim( M,
 
)   ((s) > (M)->trim_check)
+
+ +

Definition at line 2778 of file malloc.c.

+ +
+
+ +

◆ SIX_SIZE_T_SIZES

+ +
+
+ + + + +
#define SIX_SIZE_T_SIZES   (FOUR_SIZE_T_SIZES + TWO_SIZE_T_SIZES)
+
+ +

Definition at line 1620 of file malloc.c.

+ +
+
+ +

◆ SIZE_T_BITSIZE

+ +
+
+ + + + +
#define SIZE_T_BITSIZE   (sizeof(size_t) << 3)
+
+ +

Definition at line 1610 of file malloc.c.

+ +
+
+ +

◆ SIZE_T_FOUR

+ +
+
+ + + + +
#define SIZE_T_FOUR   ((size_t) 4)
+
+ +

Definition at line 1617 of file malloc.c.

+ +
+
+ +

◆ SIZE_T_ONE

+ +
+
+ + + + +
#define SIZE_T_ONE   ((size_t) 1)
+
+ +

Definition at line 1615 of file malloc.c.

+ +
+
+ +

◆ SIZE_T_SIZE

+ +
+
+ + + + +
#define SIZE_T_SIZE   (sizeof(size_t))
+
+ +

Definition at line 1609 of file malloc.c.

+ +
+
+ +

◆ SIZE_T_TWO

+ +
+
+ + + + +
#define SIZE_T_TWO   ((size_t) 2)
+
+ +

Definition at line 1616 of file malloc.c.

+ +
+
+ +

◆ SIZE_T_ZERO

+ +
+
+ + + + +
#define SIZE_T_ZERO   ((size_t) 0)
+
+ +

Definition at line 1614 of file malloc.c.

+ +
+
+ +

◆ small_index

+ +
+
+ + + + + + + + +
#define small_index( s)   (bindex_t) ((s) >> SMALLBIN_SHIFT)
+
+ +

Definition at line 2883 of file malloc.c.

+ +
+
+ +

◆ small_index2size

+ +
+
+ + + + + + + + +
#define small_index2size( i)   ((i) << SMALLBIN_SHIFT)
+
+ +

Definition at line 2884 of file malloc.c.

+ +
+
+ +

◆ smallbin_at

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define smallbin_at( M,
 
)   ((sbinptr) ((char *) &((M)->smallbins[(i) << 1])))
+
+ +

Definition at line 2888 of file malloc.c.

+ +
+
+ +

◆ SMALLBIN_SHIFT

+ +
+
+ + + + +
#define SMALLBIN_SHIFT   (3U)
+
+ +

Definition at line 2622 of file malloc.c.

+ +
+
+ +

◆ SMALLBIN_WIDTH

+ +
+
+ + + + +
#define SMALLBIN_WIDTH   (SIZE_T_ONE << SMALLBIN_SHIFT)
+
+ +

Definition at line 2623 of file malloc.c.

+ +
+
+ +

◆ smallmap_is_marked

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define smallmap_is_marked( M,
 
)   ((M)->smallmap & idx2bit(i))
+
+ +

Definition at line 2978 of file malloc.c.

+ +
+
+ +

◆ STRUCT_MALLINFO_DECLARED

+ +
+
+ + + + +
#define STRUCT_MALLINFO_DECLARED   1
+
+ +

Definition at line 769 of file malloc.c.

+ +
+
+ +

◆ SYS_ALLOC_PADDING

+ +
+
+ + + + +
#define SYS_ALLOC_PADDING   (TOP_FOOT_SIZE + MALLOC_ALIGNMENT)
+
+ +

Definition at line 2738 of file malloc.c.

+ +
+
+ +

◆ TOP_FOOT_SIZE

+ +
+
+ + + + +
#define TOP_FOOT_SIZE    (align_offset(chunk2mem(0)) + pad_request(sizeof(struct malloc_segment)) + MIN_CHUNK_SIZE)
+
+ +

Definition at line 2788 of file malloc.c.

+ +
+
+ +

◆ treebin_at

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define treebin_at( M,
 
)   (&((M)->treebins[i]))
+
+ +

Definition at line 2889 of file malloc.c.

+ +
+
+ +

◆ TREEBIN_SHIFT

+ +
+
+ + + + +
#define TREEBIN_SHIFT   (8U)
+
+ +

Definition at line 2624 of file malloc.c.

+ +
+
+ +

◆ treemap_is_marked

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define treemap_is_marked( M,
 
)   ((M)->treemap & idx2bit(i))
+
+ +

Definition at line 2982 of file malloc.c.

+ +
+
+ +

◆ TWO_SIZE_T_SIZES

+ +
+
+ + + + +
#define TWO_SIZE_T_SIZES   (SIZE_T_SIZE << 1)
+
+ +

Definition at line 1618 of file malloc.c.

+ +
+
+ +

◆ unlink_chunk

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define unlink_chunk( M,
 P,
 
)
+
+Value:
if (is_small(S)) unlink_small_chunk(M, P, S) \
+
else { tchunkptr TP = (tchunkptr) (P); unlink_large_chunk(M, TP); }
+
#define unlink_large_chunk(M, X)
Definition malloc.c:3810
+
#define unlink_small_chunk(M, P, S)
Definition malloc.c:3679
+
+

Definition at line 3888 of file malloc.c.

+ +
+
+ +

◆ unlink_first_small_chunk

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
#define unlink_first_small_chunk( M,
 B,
 P,
 
)
+
+Value:
{ \
+
mchunkptr F = P->fd; \
+
assert(P != B); \
+
assert(P != F); \
+
assert(chunksize(P) == small_index2size(I)); \
+
if (B == F) { \
+
clear_smallmap(M, I); \
+
} \
+
else if (RTCHECK(ok_address(M, F) && F->bk == P)) { \
+
F->bk = B; \
+
B->fd = F; \
+
} \
+
else { \
+
CORRUPTION_ERROR_ACTION(M); \
+
} \
+
}
+
#define chunksize(p)
Definition malloc.c:2310
+
#define small_index2size(i)
Definition malloc.c:2884
+
+

Definition at line 3706 of file malloc.c.

+ +
+
+ +

◆ unlink_large_chunk

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define unlink_large_chunk( M,
 
)
+
+ +

Definition at line 3810 of file malloc.c.

+ +
+
+ +

◆ unlink_small_chunk

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define unlink_small_chunk( M,
 P,
 
)
+
+Value:
{ \
+
mchunkptr F = P->fd; \
+
mchunkptr B = P->bk; \
+ +
assert(P != B); \
+
assert(P != F); \
+
assert(chunksize(P) == small_index2size(I)); \
+
if (RTCHECK(F == smallbin_at(M, I) || (ok_address(M, F) && F->bk == P))) { \
+
if (B == F) { \
+
clear_smallmap(M, I); \
+
} \
+
else if (RTCHECK(B == smallbin_at(M, I) || \
+
(ok_address(M, B) && B->fd == P))) { \
+
F->bk = B; \
+
B->fd = F; \
+
} \
+
else { \
+
CORRUPTION_ERROR_ACTION(M); \
+
} \
+
} \
+
else { \
+
CORRUPTION_ERROR_ACTION(M); \
+
} \
+
}
+
+

Definition at line 3679 of file malloc.c.

+ +
+
+ +

◆ USAGE_ERROR_ACTION

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define USAGE_ERROR_ACTION( m,
 
)   ABORT
+
+ +

Definition at line 2841 of file malloc.c.

+ +
+
+ +

◆ USE_BUILTIN_FFS

+ +
+
+ + + + +
#define USE_BUILTIN_FFS   0
+
+ +

Definition at line 703 of file malloc.c.

+ +
+
+ +

◆ USE_DEV_RANDOM

+ +
+
+ + + + +
#define USE_DEV_RANDOM   0
+
+ +

Definition at line 706 of file malloc.c.

+ +
+
+ +

◆ use_lock

+ +
+
+ + + + + + + + +
#define use_lock( M)   ((M)->mflags & USE_LOCK_BIT)
+
+ +

Definition at line 2696 of file malloc.c.

+ +
+
+ +

◆ USE_LOCK_BIT

+ +
+
+ + + + +
#define USE_LOCK_BIT   (0U)
+
+ +

Definition at line 1832 of file malloc.c.

+ +
+
+ +

◆ USE_LOCKS

+ +
+
+ + + + +
#define USE_LOCKS
+
+Value:
((defined(USE_SPIN_LOCKS) && USE_SPIN_LOCKS != 0) || \
+
(defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0))
+
#define USE_SPIN_LOCKS
Definition malloc.c:607
+
+

Definition at line 590 of file malloc.c.

+ +
+
+ +

◆ use_mmap

+ +
+
+ + + + + + + + +
#define use_mmap( M)   ((M)->mflags & USE_MMAP_BIT)
+
+ +

Definition at line 2704 of file malloc.c.

+ +
+
+ +

◆ USE_MMAP_BIT

+ +
+
+ + + + +
#define USE_MMAP_BIT   (SIZE_T_ZERO)
+
+

Define CALL_MMAP/CALL_MUNMAP/CALL_DIRECT_MMAP

+ +

Definition at line 1771 of file malloc.c.

+ +
+
+ +

◆ use_noncontiguous

+ +
+
+ + + + + + + + +
#define use_noncontiguous( M)   ((M)->mflags & USE_NONCONTIGUOUS_BIT)
+
+ +

Definition at line 2712 of file malloc.c.

+ +
+
+ +

◆ USE_NONCONTIGUOUS_BIT

+ +
+
+ + + + +
#define USE_NONCONTIGUOUS_BIT   (4U)
+
+ +

Definition at line 1795 of file malloc.c.

+ +
+
+ +

◆ USE_SPIN_LOCKS

+ +
+
+ + + + +
#define USE_SPIN_LOCKS   0
+
+ +

Definition at line 607 of file malloc.c.

+ +
+
+

Typedef Documentation

+ +

◆ bindex_t

+ +
+
+ + + + +
typedef unsigned int bindex_t
+
+ +

Definition at line 2242 of file malloc.c.

+ +
+
+ +

◆ binmap_t

+ +
+
+ + + + +
typedef unsigned int binmap_t
+
+ +

Definition at line 2243 of file malloc.c.

+ +
+
+ +

◆ flag_t

+ +
+
+ + + + +
typedef unsigned int flag_t
+
+ +

Definition at line 2244 of file malloc.c.

+ +
+
+ +

◆ mchunk

+ +
+
+ + + + +
typedef struct malloc_chunk mchunk
+
+ +

Definition at line 2239 of file malloc.c.

+ +
+
+ +

◆ mchunkptr

+ +
+
+ + + + +
typedef struct malloc_chunk* mchunkptr
+
+ +

Definition at line 2240 of file malloc.c.

+ +
+
+ +

◆ msegment

+ +
+
+ + + + +
typedef struct malloc_segment msegment
+
+ +

Definition at line 2529 of file malloc.c.

+ +
+
+ +

◆ msegmentptr

+ +
+
+ + + + +
typedef struct malloc_segment* msegmentptr
+
+ +

Definition at line 2530 of file malloc.c.

+ +
+
+ +

◆ mstate

+ +
+
+ + + + +
typedef struct malloc_state* mstate
+
+ +

Definition at line 2655 of file malloc.c.

+ +
+
+ +

◆ sbinptr

+ +
+
+ + + + +
typedef struct malloc_chunk* sbinptr
+
+ +

Definition at line 2241 of file malloc.c.

+ +
+
+ +

◆ tbinptr

+ +
+
+ + + + +
typedef struct malloc_tree_chunk* tbinptr
+
+ +

Definition at line 2456 of file malloc.c.

+ +
+
+ +

◆ tchunk

+ +
+
+ + + + +
typedef struct malloc_tree_chunk tchunk
+
+ +

Definition at line 2454 of file malloc.c.

+ +
+
+ +

◆ tchunkptr

+ +
+
+ + + + +
typedef struct malloc_tree_chunk* tchunkptr
+
+ +

Definition at line 2455 of file malloc.c.

+ +
+
+

Function Documentation

+ +

◆ add_segment()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
static void add_segment (mstate m,
char * tbase,
size_t tsize,
flag_t mmapped 
)
+
+static
+
+ +

Definition at line 4089 of file malloc.c.

+ +

References align_offset, assert, malloc_segment::base, check_top_chunk, chunk2mem, CHUNK_ALIGN_MASK, chunk_plus_offset, FENCEPOST_HEAD, FOUR_SIZE_T_SIZES, malloc_chunk::head, init_top(), insert_chunk, is_aligned, MIN_CHUNK_SIZE, malloc_segment::next, pad_request, malloc_state::seg, segment_holding(), set_free_with_pinuse, set_size_and_pinuse_of_inuse_chunk, malloc_segment::sflags, malloc_segment::size, SIZE_T_SIZE, malloc_state::top, and TOP_FOOT_SIZE.

+ +

Referenced by sys_alloc().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ change_mparam()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static int change_mparam (int param_number,
int value 
)
+
+static
+
+ +

Definition at line 3251 of file malloc.c.

+ +

References ensure_initialization, malloc_params::granularity, M_GRANULARITY, M_MMAP_THRESHOLD, M_TRIM_THRESHOLD, MAX_SIZE_T, malloc_params::mmap_threshold, mparams, malloc_params::page_size, and malloc_params::trim_threshold.

+ +

Referenced by dlmallopt().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ dispose_chunk()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static void dispose_chunk (mstate m,
mchunkptr p,
size_t psize 
)
+
+static
+
+
+ +

◆ dlbulk_free() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
DLMALLOC_EXPORT size_t dlbulk_free (void ** ,
size_t n_elements 
)
+
+ +
+
+ +

◆ dlbulk_free() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + +
size_t dlbulk_free (void * array[],
size_t nelem 
)
+
+ +

Definition at line 5428 of file malloc.c.

+ +

References gm, and internal_bulk_free().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ dlcalloc()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void * dlcalloc (size_t n_elements,
size_t elem_size 
)
+
+ +

Definition at line 4893 of file malloc.c.

+ +

References calloc_must_clear, dlmalloc, MAX_SIZE_T, and mem2chunk.

+ +
+
+ +

◆ dlfree()

+ +
+
+ + + + + + + + +
void dlfree (void * mem)
+
+
+ +

◆ dlindependent_calloc() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void ** dlindependent_calloc (size_t n_elements,
size_t elem_size,
void * chunks[] 
)
+
+ +

Definition at line 5414 of file malloc.c.

+ +

References gm, and ialloc().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ dlindependent_calloc() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
DLMALLOC_EXPORT void ** dlindependent_calloc (size_t ,
size_t ,
void **  
)
+
+ +
+
+ +

◆ dlindependent_comalloc() [1/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void ** dlindependent_comalloc (size_t n_elements,
size_t sizes[],
void * chunks[] 
)
+
+ +

Definition at line 5422 of file malloc.c.

+ +

References gm, and ialloc().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ dlindependent_comalloc() [2/2]

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
DLMALLOC_EXPORT void ** dlindependent_comalloc (size_t ,
size_t * ,
void **  
)
+
+ +
+
+ +

◆ dlmalloc()

+ +
+
+ + + + + + + + +
void * dlmalloc (size_t bytes)
+
+
+ +

◆ dlmalloc_set_footprint_limit()

+ +
+
+ + + + + + + + +
size_t dlmalloc_set_footprint_limit (size_t bytes)
+
+ +

Definition at line 5478 of file malloc.c.

+ +

References gm, granularity_align, and MAX_SIZE_T.

+ +
+
+ +

◆ dlmalloc_trim()

+ +
+
+ + + + + + + + +
int dlmalloc_trim (size_t pad)
+
+ +

Definition at line 5449 of file malloc.c.

+ +

References ensure_initialization, gm, POSTACTION, PREACTION, and sys_trim().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ dlmalloc_usable_size()

+ +
+
+ + + + + + + + +
size_t dlmalloc_usable_size (void * mem)
+
+ +

Definition at line 5512 of file malloc.c.

+ +

References chunksize, is_inuse, mem2chunk, and overhead_for.

+ +
+
+ +

◆ dlmallopt()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int dlmallopt (int param_number,
int value 
)
+
+ +

Definition at line 5507 of file malloc.c.

+ +

References change_mparam().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ dlmemalign()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void * dlmemalign (size_t alignment,
size_t bytes 
)
+
+ +

Definition at line 5363 of file malloc.c.

+ +

References dlmalloc, gm, internal_memalign(), and MALLOC_ALIGNMENT.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ dlposix_memalign()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int dlposix_memalign (void ** pp,
size_t alignment,
size_t bytes 
)
+
+ +

Definition at line 5371 of file malloc.c.

+ +

References dlmalloc, gm, internal_memalign(), MALLOC_ALIGNMENT, MAX_REQUEST, MIN_CHUNK_SIZE, and SIZE_T_ONE.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ dlpvalloc()

+ +
+
+ + + + + + + + +
void * dlpvalloc (size_t bytes)
+
+ +

Definition at line 5405 of file malloc.c.

+ +

References dlmemalign, ensure_initialization, mparams, malloc_params::page_size, and SIZE_T_ONE.

+ +
+
+ +

◆ dlrealloc()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void * dlrealloc (void * oldmem,
size_t bytes 
)
+
+ +

Definition at line 5286 of file malloc.c.

+ +

References check_inuse_chunk, chunk2mem, chunksize, dlfree, dlmalloc, gm, internal_free, internal_malloc, MALLOC_FAILURE_ACTION, MAX_REQUEST, mem2chunk, ok_magic, overhead_for, POSTACTION, PREACTION, request2size, try_realloc_chunk(), and USAGE_ERROR_ACTION.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ dlrealloc_in_place()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void * dlrealloc_in_place (void * oldmem,
size_t bytes 
)
+
+ +

Definition at line 5331 of file malloc.c.

+ +

References check_inuse_chunk, gm, MALLOC_FAILURE_ACTION, MAX_REQUEST, mem2chunk, ok_magic, POSTACTION, PREACTION, request2size, try_realloc_chunk(), and USAGE_ERROR_ACTION.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ dlvalloc()

+ +
+
+ + + + + + + + +
void * dlvalloc (size_t bytes)
+
+ +

Definition at line 5396 of file malloc.c.

+ +

References dlmemalign, ensure_initialization, mparams, and malloc_params::page_size.

+ +
+
+ +

◆ has_segment_link()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static int has_segment_link (mstate m,
msegmentptr ss 
)
+
+static
+
+ +

Definition at line 2764 of file malloc.c.

+ +

References malloc_segment::base, malloc_segment::next, malloc_state::seg, and malloc_segment::size.

+ +

Referenced by sys_trim().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ ialloc()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
static void ** ialloc (mstate m,
size_t n_elements,
size_t * sizes,
int opts,
void * chunks[] 
)
+
+static
+
+ +

Definition at line 5072 of file malloc.c.

+ +

References assert, check_inuse_chunk, chunk2mem, CHUNK_OVERHEAD, chunk_plus_offset, chunksize, disable_mmap, enable_mmap, ensure_initialization, internal_malloc, is_mmapped, mem2chunk, POSTACTION, PREACTION, request2size, set_size_and_pinuse_of_inuse_chunk, SIZE_T_SIZE, and use_mmap.

+ +

Referenced by dlindependent_calloc(), and dlindependent_comalloc().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ init_bins()

+ +
+
+ + + + + +
+ + + + + + + + +
static void init_bins (mstate m)
+
+static
+
+ +

Definition at line 4013 of file malloc.c.

+ +

References malloc_chunk::bk, malloc_chunk::fd, NSMALLBINS, and smallbin_at.

+ +

Referenced by sys_alloc().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ init_mparams()

+ + + +

◆ init_top()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static void init_top (mstate m,
mchunkptr p,
size_t psize 
)
+
+static
+
+ +

Definition at line 3996 of file malloc.c.

+ +

References align_offset, chunk2mem, chunk_plus_offset, malloc_chunk::head, mparams, PINUSE_BIT, malloc_state::top, TOP_FOOT_SIZE, malloc_state::topsize, malloc_state::trim_check, and malloc_params::trim_threshold.

+ +

Referenced by add_segment(), sys_alloc(), and sys_trim().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ internal_bulk_free()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static size_t internal_bulk_free (mstate m,
void * array[],
size_t nelem 
)
+
+static
+
+ +

Definition at line 5197 of file malloc.c.

+ +

References check_inuse_chunk, chunk2mem, chunksize, CORRUPTION_ERROR_ACTION, dispose_chunk(), mem2chunk, next_chunk, ok_address, ok_inuse, POSTACTION, PREACTION, RTCHECK, set_inuse, should_trim, sys_trim(), and malloc_state::topsize.

+ +

Referenced by dlbulk_free().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ internal_mallinfo()

+ + + +

◆ internal_malloc_stats()

+ + + +

◆ internal_memalign()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static void * internal_memalign (mstate m,
size_t alignment,
size_t bytes 
)
+
+static
+
+ +

Definition at line 4990 of file malloc.c.

+ +

References assert, check_inuse_chunk, chunk2mem, CHUNK_OVERHEAD, chunk_plus_offset, chunksize, dispose_chunk(), malloc_chunk::head, internal_malloc, is_mmapped, MALLOC_ALIGNMENT, MALLOC_FAILURE_ACTION, MAX_REQUEST, mem2chunk, MIN_CHUNK_SIZE, POSTACTION, PREACTION, malloc_chunk::prev_foot, request2size, set_inuse, and SIZE_T_ONE.

+ +

Referenced by dlmemalign(), and dlposix_memalign().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ mmap_alloc()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static void * mmap_alloc (mstate m,
size_t nb 
)
+
+static
+
+ +

Definition at line 3921 of file malloc.c.

+ +

References align_offset, assert, CALL_DIRECT_MMAP, check_mmapped_chunk, chunk2mem, CHUNK_ALIGN_MASK, chunk_plus_offset, CMFAIL, FENCEPOST_HEAD, malloc_state::footprint, malloc_state::footprint_limit, malloc_chunk::head, is_aligned, malloc_state::least_addr, mark_inuse_foot, malloc_state::max_footprint, mmap_align, MMAP_FOOT_PAD, malloc_chunk::prev_foot, SIX_SIZE_T_SIZES, and SIZE_T_SIZE.

+ +

Referenced by sys_alloc().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ mmap_resize()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
static mchunkptr mmap_resize (mstate m,
mchunkptr oldp,
size_t nb,
int flags 
)
+
+static
+
+ +

Definition at line 3955 of file malloc.c.

+ +

References CALL_MREMAP, check_mmapped_chunk, CHUNK_ALIGN_MASK, chunk_plus_offset, chunksize, CMFAIL, FENCEPOST_HEAD, malloc_state::footprint, malloc_params::granularity, malloc_chunk::head, is_small, malloc_state::least_addr, mark_inuse_foot, malloc_state::max_footprint, mmap_align, MMAP_FOOT_PAD, mparams, malloc_chunk::prev_foot, SIX_SIZE_T_SIZES, and SIZE_T_SIZE.

+ +

Referenced by try_realloc_chunk().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ prepend_alloc()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
static void * prepend_alloc (mstate m,
char * newbase,
char * oldbase,
size_t nb 
)
+
+static
+
+ +

Definition at line 4047 of file malloc.c.

+ +

References align_as_chunk, assert, check_free_chunk, check_malloced_chunk, check_top_chunk, chunk2mem, chunk_plus_offset, chunksize, malloc_state::dv, malloc_state::dvsize, malloc_chunk::head, insert_chunk, is_inuse, MIN_CHUNK_SIZE, pinuse, PINUSE_BIT, set_free_with_pinuse, set_size_and_pinuse_of_free_chunk, set_size_and_pinuse_of_inuse_chunk, malloc_state::top, malloc_state::topsize, and unlink_chunk.

+ +

Referenced by sys_alloc().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ release_unused_segments()

+ +
+
+ + + + + +
+ + + + + + + + +
static size_t release_unused_segments (mstate m)
+
+static
+
+ +

Definition at line 4358 of file malloc.c.

+ +

References align_as_chunk, assert, malloc_segment::base, CALL_MUNMAP, chunksize, malloc_state::dv, malloc_state::dvsize, malloc_state::footprint, insert_large_chunk, is_extern_segment, is_inuse, is_mmapped_segment, MAX_RELEASE_CHECK_RATE, malloc_segment::next, NO_SEGMENT_TRAVERSAL, malloc_state::release_checks, malloc_state::seg, segment_holds, malloc_segment::size, TOP_FOOT_SIZE, and unlink_large_chunk.

+ +

Referenced by dlfree(), and sys_trim().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ segment_holding()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static msegmentptr segment_holding (mstate m,
char * addr 
)
+
+static
+
+ +

Definition at line 2750 of file malloc.c.

+ +

References malloc_segment::base, malloc_segment::next, malloc_state::seg, and malloc_segment::size.

+ +

Referenced by add_segment(), sys_alloc(), and sys_trim().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ sys_alloc()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static void * sys_alloc (mstate m,
size_t nb 
)
+
+static
+
+
+ +

◆ sys_trim()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static int sys_trim (mstate m,
size_t pad 
)
+
+static
+
+ +

Definition at line 4405 of file malloc.c.

+ +

References ACQUIRE_MALLOC_GLOBAL_LOCK, malloc_segment::base, CALL_MORECORE, CALL_MREMAP, CALL_MUNMAP, check_top_chunk, CMFAIL, ensure_initialization, malloc_state::footprint, malloc_params::granularity, HALF_MAX_SIZE_T, has_segment_link(), HAVE_MMAP, HAVE_MORECORE, init_top(), is_extern_segment, is_initialized, is_mmapped_segment, MAX_REQUEST, MAX_SIZE_T, MFAIL, mparams, RELEASE_MALLOC_GLOBAL_LOCK, release_unused_segments(), segment_holding(), malloc_segment::size, SIZE_T_ONE, malloc_state::top, TOP_FOOT_SIZE, malloc_state::topsize, and malloc_state::trim_check.

+ +

Referenced by dlfree(), dlmalloc_trim(), and internal_bulk_free().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ tmalloc_large()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static void * tmalloc_large (mstate m,
size_t nb 
)
+
+static
+
+
+ +

◆ tmalloc_small()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static void * tmalloc_small (mstate m,
size_t nb 
)
+
+static
+
+ +

Definition at line 4616 of file malloc.c.

+ +

References assert, chunk2mem, chunk_plus_offset, chunksize, compute_bit2idx, CORRUPTION_ERROR_ACTION, least_bit, leftmost_child, MIN_CHUNK_SIZE, ok_address, ok_next, replace_dv, RTCHECK, set_inuse_and_pinuse, set_size_and_pinuse_of_free_chunk, set_size_and_pinuse_of_inuse_chunk, treebin_at, malloc_state::treemap, and unlink_large_chunk.

+ +

Referenced by dlmalloc().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ try_realloc_chunk()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
static mchunkptr try_realloc_chunk (mstate m,
mchunkptr p,
size_t nb,
int can_move 
)
+
+static
+
+ +

Definition at line 4915 of file malloc.c.

+ +

References chunk2mem, chunk_plus_offset, chunksize, cinuse, clear_pinuse, dispose_chunk(), malloc_state::dv, malloc_state::dvsize, malloc_chunk::head, is_mmapped, MIN_CHUNK_SIZE, mmap_resize(), ok_address, ok_inuse, ok_next, ok_pinuse, PINUSE_BIT, RTCHECK, set_inuse, set_size_and_pinuse_of_free_chunk, malloc_state::top, malloc_state::topsize, unlink_chunk, and USAGE_ERROR_ACTION.

+ +

Referenced by dlrealloc(), and dlrealloc_in_place().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+

Variable Documentation

+ +

◆ _gm_

+ +
+
+ + + + + +
+ + + + +
struct malloc_state _gm_
+
+static
+
+ +

Definition at line 2684 of file malloc.c.

+ +
+
+ +

◆ mparams

+ +
+
+ + + + + +
+ + + + +
struct malloc_params mparams
+
+static
+
+ +

Definition at line 2676 of file malloc.c.

+ +

Referenced by change_mparam(), dlpvalloc(), dlvalloc(), init_mparams(), init_top(), mmap_resize(), sys_alloc(), and sys_trim().

+ +
+
+
+
+ + + + diff --git a/a01898.js b/a01898.js new file mode 100644 index 00000000..9829669b --- /dev/null +++ b/a01898.js @@ -0,0 +1,285 @@ +var a01898 = +[ + [ "mallinfo", "a02194.html", "a02194" ], + [ "malloc_chunk", "a02198.html", "a02198" ], + [ "malloc_tree_chunk", "a02202.html", "a02202" ], + [ "malloc_segment", "a02206.html", "a02206" ], + [ "malloc_state", "a02210.html", "a02210" ], + [ "malloc_params", "a02214.html", "a02214" ], + [ "_STRUCT_MALLINFO", "a01898.html#afb79410754096e7b3bafb895720f11a7", null ], + [ "ABORT", "a01898.html#a5376571bbf4cdc9782683635f366f89a", null ], + [ "ABORT_ON_ASSERT_FAILURE", "a01898.html#afc93c014764c05a1cbdef61482bc36f5", null ], + [ "ACQUIRE_MALLOC_GLOBAL_LOCK", "a01898.html#aa3c43629ddadadeb43d75494062e5342", null ], + [ "align_as_chunk", "a01898.html#a8c0e37f0d02dc9393501b1dc9b9951fd", null ], + [ "align_offset", "a01898.html#a2e22ed02137eff655b87a572b974eb37", null ], + [ "assert", "a01898.html#af576bf8ffa22a44e53018c67095ffbf0", null ], + [ "bit_for_tree_index", "a01898.html#add9cdad127078283b5143927a1610427", null ], + [ "CALL_DIRECT_MMAP", "a01898.html#a26980b7eab40770feedf42c2bd73c24f", null ], + [ "CALL_MMAP", "a01898.html#a2c63dd9bc221c7bba0b8a6b2772ecd81", null ], + [ "CALL_MORECORE", "a01898.html#a215ecb242aa62fffb86fce8c6f3cac32", null ], + [ "CALL_MREMAP", "a01898.html#afde1135b9abf86803f31a6b832ecf2a7", null ], + [ "CALL_MUNMAP", "a01898.html#a570315b155b7f2271c9370201cc24ef3", null ], + [ "calloc_must_clear", "a01898.html#aa961cd887ed571eadb6f6148d0d09e48", null ], + [ "check_free_chunk", "a01898.html#a4ee253420495ac1a115acad3a7e2045c", null ], + [ "check_inuse_chunk", "a01898.html#a4a10639890e0474f257429c8aec650bb", null ], + [ "check_malloc_state", "a01898.html#afa00ceb10e333a5edffe0c4a429207b0", null ], + [ "check_malloced_chunk", "a01898.html#ae26652400ab077acf28998ca58aa7bf1", null ], + [ "check_mmapped_chunk", "a01898.html#ab4a8a939c748e7bf809ebf9cde15f974", null ], + [ "check_top_chunk", "a01898.html#a9da830f14086f890cc55fc4172a02eb6", null ], + [ "chunk2mem", "a01898.html#accb5f8e767e1e6ca196937cd24f8a1e2", null ], + [ "CHUNK_ALIGN_MASK", "a01898.html#a46f5899c4a72acfdd20872d893679bb0", null ], + [ "chunk_minus_offset", "a01898.html#a26cb551063ab1a46db7bd51be271afdd", null ], + [ "CHUNK_OVERHEAD", "a01898.html#ad99e48752cd2b170bdaf90b5a5bbf072", null ], + [ "chunk_plus_offset", "a01898.html#a2222e8c19fc975b86342ea505eeed358", null ], + [ "chunksize", "a01898.html#a0bd05b2720a9f79a0c066086c4f7e2fa", null ], + [ "cinuse", "a01898.html#a01d65bf1aca48739daba1789e75731d4", null ], + [ "CINUSE_BIT", "a01898.html#a8f8153cc167dd042af6840f7130b9721", null ], + [ "clear_flag4", "a01898.html#aa850a392adbf484a1431ad1f959cbfc5", null ], + [ "clear_pinuse", "a01898.html#ad32c3519a274d707cedb0345f2ebf129", null ], + [ "clear_smallmap", "a01898.html#a5429f913012abf9059d0bd93940c9e0e", null ], + [ "clear_treemap", "a01898.html#a6c003dab5a3337bde0315d6a58c1a9cd", null ], + [ "CMFAIL", "a01898.html#aea7448d636880994af54d52aa979e7bd", null ], + [ "compute_bit2idx", "a01898.html#ac8199000024d5b45dbf79400df381dfc", null ], + [ "compute_tree_index", "a01898.html#a057276ef94e26754cae354fd9f56bcef", null ], + [ "CORRUPTION_ERROR_ACTION", "a01898.html#acb20d711da475d4c59ef88569579b4d4", null ], + [ "DEBUG", "a01898.html#ad72dbcf6d0153db1b8d8a58001feed83", null ], + [ "DEFAULT_GRANULARITY", "a01898.html#a0919191b14359403f853f75c6fcb5879", null ], + [ "DEFAULT_MMAP_THRESHOLD", "a01898.html#a3d78f5f17cc66ad4b567a39a55bb4837", null ], + [ "DEFAULT_TRIM_THRESHOLD", "a01898.html#aed027da2fe85e7618851151184d04f49", null ], + [ "DESTROY_LOCK", "a01898.html#acf7ea24a3875d0b5dbcba8a863a5e2d0", null ], + [ "DIRECT_MMAP", "a01898.html#a701e885d119af384b33d724f1e2e7302", null ], + [ "DIRECT_MMAP", "a01898.html#a701e885d119af384b33d724f1e2e7302", null ], + [ "disable_contiguous", "a01898.html#a1c844cd4da4c0805c2b2e8424513f1fd", null ], + [ "disable_lock", "a01898.html#a349dcd06c8dcf826a592f4d9a7b2949c", null ], + [ "disable_mmap", "a01898.html#a73914fa402851f1661c5f8026003be64", null ], + [ "dlbulk_free", "a01898.html#a6994d926acbbff21ac936e1e100ba801", null ], + [ "dlcalloc", "a01898.html#aeb507216612dc43759952dd835e7596d", null ], + [ "dlfree", "a01898.html#aa2f5410ccf57ee1ae49df754b44be9e3", null ], + [ "dlindependent_calloc", "a01898.html#a17816165d27e812d18ed032f9ced9ad4", null ], + [ "dlindependent_comalloc", "a01898.html#aa4e5c5d50e0cd7dc44b2defcae6226d7", null ], + [ "dlmallinfo", "a01898.html#abed9900148f16076d9e2823748712bb9", null ], + [ "dlmalloc", "a01898.html#a86195c783178093d895874a07a15dce1", null ], + [ "DLMALLOC_EXPORT", "a01898.html#a58ef5120047a35956d86ee00c2d364dc", null ], + [ "dlmalloc_footprint", "a01898.html#a814f86a67ca6d2c34e192a809e356e21", null ], + [ "dlmalloc_footprint_limit", "a01898.html#ae2e382d1e4648319c76698d60427e076", null ], + [ "dlmalloc_inspect_all", "a01898.html#abea659f429972334d253efab49b6c3b5", null ], + [ "dlmalloc_max_footprint", "a01898.html#a922fad26c6b3b6e719d609ecffcd9327", null ], + [ "dlmalloc_set_footprint_limit", "a01898.html#a11913f4b10361cf4224a561e727bace7", null ], + [ "dlmalloc_stats", "a01898.html#af626033086675b4f2e7a8cafabc85ff9", null ], + [ "dlmalloc_trim", "a01898.html#a72a0e1e6edf9ef91c042680574560732", null ], + [ "dlmalloc_usable_size", "a01898.html#abdfd656c28f59dc708ce3dabfade2408", null ], + [ "DLMALLOC_VERSION", "a01898.html#aa27beecc92c596aab2bd668f0cba740a", null ], + [ "dlmallopt", "a01898.html#a3dde31382dc8652ffb98335aecd248ab", null ], + [ "dlmemalign", "a01898.html#a41b3d891bf7fa5e5ca08f7898b4fd9e8", null ], + [ "dlposix_memalign", "a01898.html#ad6824f937bf9bdd2cccc9526746108a1", null ], + [ "dlpvalloc", "a01898.html#a9bfff55fd0c29554b7140954b38a54d4", null ], + [ "dlrealloc", "a01898.html#a0498e36f6b1a4293efe80b18b48e86b9", null ], + [ "dlrealloc_in_place", "a01898.html#a51b9709053b36636d2c57d9b342d4ef3", null ], + [ "dlvalloc", "a01898.html#af99ef0a6df3de021fcc2b48da5ced844", null ], + [ "enable_lock", "a01898.html#aa7eff565061029c1af31eecb25dca0be", null ], + [ "enable_mmap", "a01898.html#a2f290b320a0eac1ac56491a51cbed8df", null ], + [ "ensure_initialization", "a01898.html#a3344f5638240b82a2128c71d6073a9b3", null ], + [ "EXTERN_BIT", "a01898.html#a57ab793cfa029220055825980f7e6edf", null ], + [ "FENCEPOST_HEAD", "a01898.html#a14d64540da114c6390ce2501849706bb", null ], + [ "FLAG4_BIT", "a01898.html#a17fe36f581907d842fa2055e9f462f1e", null ], + [ "flag4inuse", "a01898.html#a7e839e521ce180dcdde674ddbfdda535", null ], + [ "FLAG_BITS", "a01898.html#adc6adc464a32997a5da502b124c6c8d8", null ], + [ "fm", "a01898.html#a3615cd1bfae88d6e9fbf531d1259a3a6", null ], + [ "FOOTERS", "a01898.html#a1c2512fa5003ea9c05934d55c1196c1d", null ], + [ "FORCEINLINE", "a01898.html#a724fb9f82013c782db5c3c12ea36aac8", null ], + [ "FOUR_SIZE_T_SIZES", "a01898.html#a2a1f1d667053b23e22043a3c7845eded", null ], + [ "get_foot", "a01898.html#a7567ed8861f166c8935e08d92c611bed", null ], + [ "gm", "a01898.html#a8223ecd78e9937dc1fc43a49deec1554", null ], + [ "granularity_align", "a01898.html#a47800d7a9fdf871d0afdce3d5cd3af50", null ], + [ "HALF_MAX_SIZE_T", "a01898.html#ac9bba1fcedab650619ef4d19073f9c73", null ], + [ "HAVE_MMAP", "a01898.html#ac24e9c0562704d17896d14869e748fcc", null ], + [ "HAVE_MORECORE", "a01898.html#a9339a8172859ed6c7aed68f3ab65281c", null ], + [ "HAVE_MREMAP", "a01898.html#a4a3ec5cb9c1f5dc2638cb96342dc3d51", null ], + [ "idx2bit", "a01898.html#aef388580685989725034bdcb7c5543bf", null ], + [ "INITIAL_LOCK", "a01898.html#a61cf32dcdf0f1bcb268e3fe3f32b69dc", null ], + [ "INSECURE", "a01898.html#ad21df8408a63deff2676218cfd5ebb1f", null ], + [ "insert_chunk", "a01898.html#aec697f44cce422498bc01b7c19114b5a", null ], + [ "insert_large_chunk", "a01898.html#ac38ba865e6c3bf916fcdcb6bfa8be00d", null ], + [ "insert_small_chunk", "a01898.html#adb28fc94857fe6fd0d13a790c1866284", null ], + [ "internal_free", "a01898.html#a1f1a36ca1107db0b1d82c07db766e29c", null ], + [ "internal_malloc", "a01898.html#a5444a4a9f6894b7afd5d0a461a7cdb02", null ], + [ "INUSE_BITS", "a01898.html#a80bcec0b805b07f53640caa5a11a513d", null ], + [ "is_aligned", "a01898.html#a02e34c4ed5784fb77e540dec9112cbfd", null ], + [ "is_extern_segment", "a01898.html#a4c59e261d6424fcb626e521881dde00f", null ], + [ "is_global", "a01898.html#abf6941f282e0b4e708de251c482eaeed", null ], + [ "is_granularity_aligned", "a01898.html#aef1cfe43fae84cc03ab977f8512f0a11", null ], + [ "is_initialized", "a01898.html#af3b001bbc18e175f99b0c8644d63dd4d", null ], + [ "is_inuse", "a01898.html#a731e3667ac73997bac2c62f9c4478e11", null ], + [ "is_mmapped", "a01898.html#a3597aedd2e73f2b6616f82e2838292ec", null ], + [ "is_mmapped_segment", "a01898.html#a9a31e5267bf40dcb9992d77209c35427", null ], + [ "is_page_aligned", "a01898.html#a07ca81810ed532d2c932a26984f16fcd", null ], + [ "is_small", "a01898.html#aadc2cdd1444477c387fc30e64f061432", null ], + [ "least_bit", "a01898.html#a63b9c45d67753a9da2be543ca879c261", null ], + [ "left_bits", "a01898.html#a24d6f7ffb2d8e91878f8b6c06b803c5e", null ], + [ "leftmost_child", "a01898.html#a62a561657f44853b51a022b878471921", null ], + [ "leftshift_for_tree_index", "a01898.html#a64356087190cdd50fc15488628a603ce", null ], + [ "LOCK_AT_FORK", "a01898.html#a011dc81eb6490491a8ae7288c0855e06", null ], + [ "M_GRANULARITY", "a01898.html#a1ff5e3f74801d4cbb5e97ab2d3b8f2e3", null ], + [ "M_MMAP_THRESHOLD", "a01898.html#a0dd09b97e3eb71f8256b8bd441828175", null ], + [ "M_TRIM_THRESHOLD", "a01898.html#ae5e96ee9e20ef7cfcbbb690877fc9fb2", null ], + [ "MALLINFO_FIELD_TYPE", "a01898.html#a53688562ed3d2eda132ae91de874cd98", null ], + [ "MALLOC_ALIGNMENT", "a01898.html#a05897f13370acbdecbf31034f8bec0d5", null ], + [ "MALLOC_FAILURE_ACTION", "a01898.html#ae5869ce6c79206810a98c59f60b9f9db", null ], + [ "malloc_getpagesize", "a01898.html#ad8548e96f0d0f428a1b826ba096c3ecf", null ], + [ "MALLOC_INSPECT_ALL", "a01898.html#a4a82252300d827ca28d4ab5ce089c41f", null ], + [ "mark_inuse_foot", "a01898.html#ae33f10cb02fb28aa399e3a7ff644a3a6", null ], + [ "mark_smallmap", "a01898.html#add2106bac689c78a86e8dc2b7ba9e533", null ], + [ "mark_treemap", "a01898.html#aa4cee82f9e5d26a5118b2e743c7fd1a2", null ], + [ "MAX_RELEASE_CHECK_RATE", "a01898.html#af2e1098b71c84ef4c22b344dd9b3e272", null ], + [ "MAX_REQUEST", "a01898.html#a79dc55ceff5acfd97aabd01db632a266", null ], + [ "MAX_SIZE_T", "a01898.html#ad6a20ec9394445398c2618b055acbcb1", null ], + [ "MAX_SMALL_REQUEST", "a01898.html#a74e041ce14d5a19644a4ada6ba9584dc", null ], + [ "MAX_SMALL_SIZE", "a01898.html#a5f1a8ee1b6c92973fc7fd9d8603b709d", null ], + [ "MCHUNK_SIZE", "a01898.html#af3cedaeb11325fd3f4b08e92107be0d2", null ], + [ "mem2chunk", "a01898.html#a4603903faa99536698009c9b64bc1ab9", null ], + [ "MFAIL", "a01898.html#a6f716771caf6f2af3b7ffb6b78091aaf", null ], + [ "MIN_CHUNK_SIZE", "a01898.html#abf35d28195f0f301fe63d0ea867f4379", null ], + [ "MIN_LARGE_SIZE", "a01898.html#ac7cc8b0e715687eccf92f4bd1528b129", null ], + [ "MIN_REQUEST", "a01898.html#a8c13c7ec4d73f12f94e9ce9486672cd1", null ], + [ "MIN_SMALL_INDEX", "a01898.html#a06f22f4c7be02a90000e46f2e7eb873b", null ], + [ "minsize_for_tree_index", "a01898.html#a5ab894e6672002a76fde663e4abda3bc", null ], + [ "MMAP", "a01898.html#a9d53bdddfb1cb6c0f2e5816414095719", null ], + [ "MMAP", "a01898.html#a9d53bdddfb1cb6c0f2e5816414095719", null ], + [ "mmap_align", "a01898.html#ac00dfdac316c41741d390ec3a5616fff", null ], + [ "MMAP_CHUNK_OVERHEAD", "a01898.html#a7a63444ac4059044f199801725fac79f", null ], + [ "MMAP_CLEARS", "a01898.html#a6d5e91f5ad1b37dc59642cb2db028d0c", null ], + [ "MMAP_FOOT_PAD", "a01898.html#ada2e72cef4eb947e8f406502aec6e888", null ], + [ "MORECORE_CONTIGUOUS", "a01898.html#ad9f27b6ca99e4a63328136443a428b74", null ], + [ "MORECORE_DEFAULT", "a01898.html#af84dec7bed092a94ed4501cae641695a", null ], + [ "MSPACES", "a01898.html#ab69b328d35c5a8e3bdc3463d3603e950", null ], + [ "MUNMAP", "a01898.html#afc87d07b26687dc8a4685ba3580cae9e", null ], + [ "MUNMAP", "a01898.html#afc87d07b26687dc8a4685ba3580cae9e", null ], + [ "next_chunk", "a01898.html#a891ae6952dcc03f81e75b91666400f51", null ], + [ "next_pinuse", "a01898.html#a62c85451d286c94329b31175ff6aa991", null ], + [ "NO_MALLINFO", "a01898.html#abdaef093c0ac7f4ffca5df2d2b2f0560", null ], + [ "NO_MALLOC_STATS", "a01898.html#aa5a986d0460a969befdb7efd79ef049c", null ], + [ "NO_SEGMENT_TRAVERSAL", "a01898.html#a6413d234d61f597fccc2aac39e33941c", null ], + [ "NOINLINE", "a01898.html#a1b173d22e57d9395897acbd8de62d505", null ], + [ "NSMALLBINS", "a01898.html#afe898942dfe9b3557981d0dc935fddde", null ], + [ "NTREEBINS", "a01898.html#a187fe34f71c63b486f6d79ac51117061", null ], + [ "ok_address", "a01898.html#a162ea143ef987e2bc98d5e4b69f7bff6", null ], + [ "ok_inuse", "a01898.html#a27bd04a29396a4164edab26cb11e543c", null ], + [ "ok_magic", "a01898.html#a92a34445b3f1e6050ad4ffb2f6dd8297", null ], + [ "ok_next", "a01898.html#a57b2c8e49aeb87c3cb1922648ef9ad3c", null ], + [ "ok_pinuse", "a01898.html#aded4345a9d79e45d438506d86f550cd6", null ], + [ "ONLY_MSPACES", "a01898.html#aeb595638a14befbd356f77f8ec2a5c0d", null ], + [ "overhead_for", "a01898.html#ad7d2c199c11feafd3ae7f91aa1ee2c85", null ], + [ "pad_request", "a01898.html#abc9ba9df02632268a7b15ef992a94035", null ], + [ "page_align", "a01898.html#a26099b7c631584ea0a7df48d5663b316", null ], + [ "pinuse", "a01898.html#a7d865edc2d2e8b7a33b3eb02ee22c2e7", null ], + [ "PINUSE_BIT", "a01898.html#aa41e697181baeec7157ff5f0f6ae747a", null ], + [ "POSTACTION", "a01898.html#a8c176fdaf0d14b883ba250c8a569b88e", null ], + [ "PREACTION", "a01898.html#a9abf67cb3bc9027f0b44bab676e05f09", null ], + [ "prev_chunk", "a01898.html#aee72e7631ab6012eb488e4ad9863d431", null ], + [ "PROCEED_ON_ERROR", "a01898.html#afac2a7b1a6efb14fc268051f90d0f1d3", null ], + [ "RELEASE_MALLOC_GLOBAL_LOCK", "a01898.html#a2f3df62568086e570fba515b493fb8f4", null ], + [ "replace_dv", "a01898.html#a374c640361e6a18551c63f548079ad05", null ], + [ "request2size", "a01898.html#ab5e11e7a52d0c430ee39bfbf1113253a", null ], + [ "RTCHECK", "a01898.html#afe7e6535ba41a91be580eb2bba5890e2", null ], + [ "same_or_left_bits", "a01898.html#ace4a96b1b78fcc4d93372fb9336f899f", null ], + [ "segment_holds", "a01898.html#a3616a6ae475e54f73816dfa69d1483e8", null ], + [ "set_flag4", "a01898.html#ab59038f70c8449bc2efdec7d99e1a372", null ], + [ "set_foot", "a01898.html#a8429bbf864f878eca1011ec97969535b", null ], + [ "set_free_with_pinuse", "a01898.html#a4533a463f685015d5b56192fc5f42ba7", null ], + [ "set_inuse", "a01898.html#a1e4f613ffb89c72f5686586939b13cf6", null ], + [ "set_inuse_and_pinuse", "a01898.html#a6b0498b45088d3b87e6b2daed2f6fa92", null ], + [ "set_lock", "a01898.html#aae06e664473337b87ba3d95609fef288", null ], + [ "set_size_and_pinuse_of_free_chunk", "a01898.html#a18bad8f70449009a982f57c6e8107d29", null ], + [ "set_size_and_pinuse_of_inuse_chunk", "a01898.html#a076ff214648e7d19ddaa7a4d963aae4a", null ], + [ "should_trim", "a01898.html#a8fcca0fe7fd7176c642cb7eaca01e3c8", null ], + [ "SIX_SIZE_T_SIZES", "a01898.html#ae711f3f963dc01f816b155795e4a7729", null ], + [ "SIZE_T_BITSIZE", "a01898.html#a9d769150c841cbb7512476c56aaf5617", null ], + [ "SIZE_T_FOUR", "a01898.html#a9233a87a400d8aaae1b22d1e3cdc42d8", null ], + [ "SIZE_T_ONE", "a01898.html#a1a115588725fa912f1bcaca9f08fb658", null ], + [ "SIZE_T_SIZE", "a01898.html#a2e3db94c3bfc87e3c7bcbee4973bab02", null ], + [ "SIZE_T_TWO", "a01898.html#a7e1ed65ca3ce9fcc21e329a7cea204d1", null ], + [ "SIZE_T_ZERO", "a01898.html#acd3fa67eabd0de0d56e206fa3a416de9", null ], + [ "small_index", "a01898.html#a1f3d4249e522c896509b7999860090ea", null ], + [ "small_index2size", "a01898.html#a377939ca061c1b170053c2927af26cdc", null ], + [ "smallbin_at", "a01898.html#a862c7dc1f319911e1f06b9d99485cc54", null ], + [ "SMALLBIN_SHIFT", "a01898.html#a35c7b74e5fe8c45a869115cc6e154fe9", null ], + [ "SMALLBIN_WIDTH", "a01898.html#a033008a0cb72328dd6ced48e7f639874", null ], + [ "smallmap_is_marked", "a01898.html#a545357ca2a355288874c27ea94eca166", null ], + [ "STRUCT_MALLINFO_DECLARED", "a01898.html#a73031e8be1f35c837c74bee1d205a929", null ], + [ "SYS_ALLOC_PADDING", "a01898.html#ac40b2081de834d5d7e140d79592cd4df", null ], + [ "TOP_FOOT_SIZE", "a01898.html#a3b8c23c29e153672fb62406384791948", null ], + [ "treebin_at", "a01898.html#a9890e7becae3c880548653acb11ef261", null ], + [ "TREEBIN_SHIFT", "a01898.html#a84cfe33e7f07c4b874fe1a82ba327c2e", null ], + [ "treemap_is_marked", "a01898.html#a0a5f672f882ef6645bcc97b6d0e30d7d", null ], + [ "TWO_SIZE_T_SIZES", "a01898.html#aea099b8fb6bf6975c70b2945de5064d1", null ], + [ "unlink_chunk", "a01898.html#ad3e9aeaeefa7e2fc61f84cafffc6a13a", null ], + [ "unlink_first_small_chunk", "a01898.html#a4710edd84badb715ced379a5a7000b61", null ], + [ "unlink_large_chunk", "a01898.html#a2af36a6897c8bac0fd68a329cf3b43c9", null ], + [ "unlink_small_chunk", "a01898.html#a6681f6fb034ce0fcee30f1df143fcefc", null ], + [ "USAGE_ERROR_ACTION", "a01898.html#ab207e868102874ef0dee095572e35597", null ], + [ "USE_BUILTIN_FFS", "a01898.html#a66da830b721a3ea3b57609ba4894da73", null ], + [ "USE_DEV_RANDOM", "a01898.html#a3071f613460817c78d1b8002d1093cc6", null ], + [ "use_lock", "a01898.html#a7c7ff8add3d9f12d4af529f9f43d7644", null ], + [ "USE_LOCK_BIT", "a01898.html#a02a456408564b69d6f3de5f8fede4931", null ], + [ "USE_LOCKS", "a01898.html#afc15a339eab4721df5fcd099004f1840", null ], + [ "use_mmap", "a01898.html#acab9406dcc7caedf7a63038e271d45a5", null ], + [ "USE_MMAP_BIT", "a01898.html#a6792a808878980b064a53729e42a1b55", null ], + [ "use_noncontiguous", "a01898.html#a6cbe613595e5001cbb1b85de17ce1c27", null ], + [ "USE_NONCONTIGUOUS_BIT", "a01898.html#ac7f41c328146bb45481fe3e0c20787d4", null ], + [ "USE_SPIN_LOCKS", "a01898.html#a2272cf5f1db0ea5dd0e89d1a3c5028f0", null ], + [ "bindex_t", "a01898.html#a4c04048d19db75c080e5f0ab19d45f8f", null ], + [ "binmap_t", "a01898.html#a2714ff4b4994bc59cce3c3dce1e60c27", null ], + [ "flag_t", "a01898.html#a98d45780d5103f1a6b54a549a3d12de2", null ], + [ "mchunk", "a01898.html#a6412caf3aa493b17e390b53cef6fcca7", null ], + [ "mchunkptr", "a01898.html#aab2c188a259d6c4bd443ed712a92714c", null ], + [ "msegment", "a01898.html#aefb4243356502f3504318b435638ba57", null ], + [ "msegmentptr", "a01898.html#ac0c775e46c84cccbf60059dedd717fa5", null ], + [ "mstate", "a01898.html#a77915996ce21724eda56ab99e2ce75e6", null ], + [ "sbinptr", "a01898.html#ac42f888c90017483ad23708b9a346798", null ], + [ "tbinptr", "a01898.html#a1a975f80818075b2e6dc1e778144d14a", null ], + [ "tchunk", "a01898.html#a1639705241e61df2983f58d6a2e15d5f", null ], + [ "tchunkptr", "a01898.html#addd456ccc8fb838310e92a3f394fc1b1", null ], + [ "add_segment", "a01898.html#aecee517bb2a61c5b79a745f3e0b4aa86", null ], + [ "change_mparam", "a01898.html#a99e26c45fc3b7bd05c627138d0d103fc", null ], + [ "dispose_chunk", "a01898.html#a2d20e33b2d417733503759c0594f882d", null ], + [ "dlbulk_free", "a01898.html#a23be60f836a753261abb7405344df378", null ], + [ "dlbulk_free", "a01898.html#a8e02204694aaa24ccc23b1cd2c403b7e", null ], + [ "dlcalloc", "a01898.html#a557252c43fb14a209ead0e6dfe6216ad", null ], + [ "dlfree", "a01898.html#a1b80f9ee2d497077e4741029c8e23700", null ], + [ "dlindependent_calloc", "a01898.html#a5c6367328ed688a118d756151de3455d", null ], + [ "dlindependent_calloc", "a01898.html#a6226db9cd80a3a60c3958ad6d21fd1e4", null ], + [ "dlindependent_comalloc", "a01898.html#ae78e200be9eedb1ddf007d431dcb09a2", null ], + [ "dlindependent_comalloc", "a01898.html#a8c093b4615a18804f806e71d4de486dc", null ], + [ "dlmalloc", "a01898.html#a018ffd885ac72f4cb8ac0f972f6b4900", null ], + [ "dlmalloc_set_footprint_limit", "a01898.html#ae992d2a6834aeddac341b4ff6afba5b4", null ], + [ "dlmalloc_trim", "a01898.html#a0cb0780a1d244f7541f85d2ece3999fc", null ], + [ "dlmalloc_usable_size", "a01898.html#a8923af8a1039983906f9617a57022e98", null ], + [ "dlmallopt", "a01898.html#a5fa93d3a16f6cd853ca26b8796112770", null ], + [ "dlmemalign", "a01898.html#a789f1726140c8d0ef5b54d893d806262", null ], + [ "dlposix_memalign", "a01898.html#a61f04155b5dceea889ba3cef64968684", null ], + [ "dlpvalloc", "a01898.html#ade3c6d7e2b557fe3af01a7f6979e9396", null ], + [ "dlrealloc", "a01898.html#a79e7e77bbc6d5208678b007bf89aab61", null ], + [ "dlrealloc_in_place", "a01898.html#afc9bc229eecc960b0c2bfd9033b6e2e0", null ], + [ "dlvalloc", "a01898.html#ab3764c29825f2f5caf6bb138e6f2dc12", null ], + [ "has_segment_link", "a01898.html#ab22b9d57eca306724cb8c4f928d0e824", null ], + [ "ialloc", "a01898.html#a6156a11ac0c98046018896db06f45979", null ], + [ "init_bins", "a01898.html#a5609388ac4c1fc24595689b52c6698b9", null ], + [ "init_mparams", "a01898.html#aaee95454245a8becbb13ef85e5590aed", null ], + [ "init_top", "a01898.html#a09ce4644252dfd54eb489e77d0adfd20", null ], + [ "internal_bulk_free", "a01898.html#aa2888b3de06df35c3b18b31b1e15fe8c", null ], + [ "internal_mallinfo", "a01898.html#ad8ac5f52dd1f21d88799cfd5befa0b99", null ], + [ "internal_malloc_stats", "a01898.html#af720f169cd9332df50dfdd080b548120", null ], + [ "internal_memalign", "a01898.html#a77bcf00a7c234d2b45926ac02550d634", null ], + [ "mmap_alloc", "a01898.html#a15fab72f66aa46b46a4677be26a1b5d1", null ], + [ "mmap_resize", "a01898.html#a614d873251d4d24875c099b0fdf89c8d", null ], + [ "prepend_alloc", "a01898.html#a378b748c27be5a7a156907cc56b8a58e", null ], + [ "release_unused_segments", "a01898.html#a949111e5f127c26e3b9f11bf26c8038a", null ], + [ "segment_holding", "a01898.html#adc1656892fa59cbd2e3b60a2608dfefc", null ], + [ "sys_alloc", "a01898.html#a726dbaacf5aca0a8435e3ce4d44844f4", null ], + [ "sys_trim", "a01898.html#a3de256edbbbbd4018cd3563f55ee50ab", null ], + [ "tmalloc_large", "a01898.html#a3b1418d10b9d8c0b0f76f49700dbfcf7", null ], + [ "tmalloc_small", "a01898.html#a11496157d710a0e954cca1e11fd1713f", null ], + [ "try_realloc_chunk", "a01898.html#af8adec320537d6e63bc68e76633a1f0e", null ], + [ "_gm_", "a01898.html#a6210dbc9273f3fc1866d4c0394965fd9", null ], + [ "mparams", "a01898.html#ad910263e0987f4a44f28558c7a83d495", null ] +]; \ No newline at end of file diff --git a/a01898_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.map b/a01898_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.map new file mode 100644 index 00000000..b0514504 --- /dev/null +++ b/a01898_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01898_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.md5 b/a01898_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.md5 new file mode 100644 index 00000000..fcae18f1 --- /dev/null +++ b/a01898_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.md5 @@ -0,0 +1 @@ +00d9df8d1e9439ccb9953de4c829f382 \ No newline at end of file diff --git a/a01898_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.svg b/a01898_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.svg new file mode 100644 index 00000000..202b6f96 --- /dev/null +++ b/a01898_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.svg @@ -0,0 +1,201 @@ + + + + + + +dlmalloc + + +Node1 + + +dlmalloc + + + + + +Node2 + + +sys_alloc + + + + + +Node1->Node2 + + + + + + + + +Node9 + + +tmalloc_large + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +tmalloc_small + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +add_segment + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +init_top + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +segment_holding + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +init_bins + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +mmap_alloc + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +prepend_alloc + + + + + +Node2->Node8 + + + + + + + + +Node3->Node4 + + + + + + + + +Node3->Node5 + + + + + + + + diff --git a/a01898_a09ce4644252dfd54eb489e77d0adfd20_icgraph.map b/a01898_a09ce4644252dfd54eb489e77d0adfd20_icgraph.map new file mode 100644 index 00000000..7c694361 --- /dev/null +++ b/a01898_a09ce4644252dfd54eb489e77d0adfd20_icgraph.map @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/a01898_a09ce4644252dfd54eb489e77d0adfd20_icgraph.md5 b/a01898_a09ce4644252dfd54eb489e77d0adfd20_icgraph.md5 new file mode 100644 index 00000000..4e25d715 --- /dev/null +++ b/a01898_a09ce4644252dfd54eb489e77d0adfd20_icgraph.md5 @@ -0,0 +1 @@ +d63ba08295e801362b83eab55aabb10b \ No newline at end of file diff --git a/a01898_a09ce4644252dfd54eb489e77d0adfd20_icgraph.svg b/a01898_a09ce4644252dfd54eb489e77d0adfd20_icgraph.svg new file mode 100644 index 00000000..23d43b1b --- /dev/null +++ b/a01898_a09ce4644252dfd54eb489e77d0adfd20_icgraph.svg @@ -0,0 +1,174 @@ + + + + + + +init_top + + +Node1 + + +init_top + + + + + +Node2 + + +add_segment + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sys_alloc + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +sys_trim + + + + + +Node1->Node5 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dlmalloc + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +dlfree + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +dlmalloc_trim + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +internal_bulk_free + + + + + +Node5->Node8 + + + + + + + + +Node9 + + +dlbulk_free + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01898_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.map b/a01898_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.map new file mode 100644 index 00000000..b5dc6fd5 --- /dev/null +++ b/a01898_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/a01898_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.md5 b/a01898_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.md5 new file mode 100644 index 00000000..be54a072 --- /dev/null +++ b/a01898_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.md5 @@ -0,0 +1 @@ +c4b044183c8fd837ce9cc9bc18806bed \ No newline at end of file diff --git a/a01898_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.svg b/a01898_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.svg new file mode 100644 index 00000000..569eb751 --- /dev/null +++ b/a01898_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.svg @@ -0,0 +1,111 @@ + + + + + + +dlmalloc_trim + + +Node1 + + +dlmalloc_trim + + + + + +Node2 + + +sys_trim + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +has_segment_link + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +init_top + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +release_unused_segments + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +segment_holding + + + + + +Node2->Node6 + + + + + + + + diff --git a/a01898_a11496157d710a0e954cca1e11fd1713f_icgraph.map b/a01898_a11496157d710a0e954cca1e11fd1713f_icgraph.map new file mode 100644 index 00000000..8fe2c81b --- /dev/null +++ b/a01898_a11496157d710a0e954cca1e11fd1713f_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01898_a11496157d710a0e954cca1e11fd1713f_icgraph.md5 b/a01898_a11496157d710a0e954cca1e11fd1713f_icgraph.md5 new file mode 100644 index 00000000..80891b23 --- /dev/null +++ b/a01898_a11496157d710a0e954cca1e11fd1713f_icgraph.md5 @@ -0,0 +1 @@ +2e5859cb541f24edda033dd0c0b6295d \ No newline at end of file diff --git a/a01898_a11496157d710a0e954cca1e11fd1713f_icgraph.svg b/a01898_a11496157d710a0e954cca1e11fd1713f_icgraph.svg new file mode 100644 index 00000000..b08bc0db --- /dev/null +++ b/a01898_a11496157d710a0e954cca1e11fd1713f_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +tmalloc_small + + +Node1 + + +tmalloc_small + + + + + +Node2 + + +dlmalloc + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01898_a15fab72f66aa46b46a4677be26a1b5d1_icgraph.map b/a01898_a15fab72f66aa46b46a4677be26a1b5d1_icgraph.map new file mode 100644 index 00000000..84237553 --- /dev/null +++ b/a01898_a15fab72f66aa46b46a4677be26a1b5d1_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01898_a15fab72f66aa46b46a4677be26a1b5d1_icgraph.md5 b/a01898_a15fab72f66aa46b46a4677be26a1b5d1_icgraph.md5 new file mode 100644 index 00000000..319d7eba --- /dev/null +++ b/a01898_a15fab72f66aa46b46a4677be26a1b5d1_icgraph.md5 @@ -0,0 +1 @@ +a938c50053ee55deafce04c1c36b6989 \ No newline at end of file diff --git a/a01898_a15fab72f66aa46b46a4677be26a1b5d1_icgraph.svg b/a01898_a15fab72f66aa46b46a4677be26a1b5d1_icgraph.svg new file mode 100644 index 00000000..1ec75d92 --- /dev/null +++ b/a01898_a15fab72f66aa46b46a4677be26a1b5d1_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +mmap_alloc + + +Node1 + + +mmap_alloc + + + + + +Node2 + + +sys_alloc + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dlmalloc + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01898_a1b80f9ee2d497077e4741029c8e23700_cgraph.map b/a01898_a1b80f9ee2d497077e4741029c8e23700_cgraph.map new file mode 100644 index 00000000..6c1d32ef --- /dev/null +++ b/a01898_a1b80f9ee2d497077e4741029c8e23700_cgraph.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/a01898_a1b80f9ee2d497077e4741029c8e23700_cgraph.md5 b/a01898_a1b80f9ee2d497077e4741029c8e23700_cgraph.md5 new file mode 100644 index 00000000..51297c8c --- /dev/null +++ b/a01898_a1b80f9ee2d497077e4741029c8e23700_cgraph.md5 @@ -0,0 +1 @@ +ba050ca800ae602992738a764b64ada6 \ No newline at end of file diff --git a/a01898_a1b80f9ee2d497077e4741029c8e23700_cgraph.svg b/a01898_a1b80f9ee2d497077e4741029c8e23700_cgraph.svg new file mode 100644 index 00000000..7e2e18fd --- /dev/null +++ b/a01898_a1b80f9ee2d497077e4741029c8e23700_cgraph.svg @@ -0,0 +1,120 @@ + + + + + + +dlfree + + +Node1 + + +dlfree + + + + + +Node2 + + +release_unused_segments + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sys_trim + + + + + +Node1->Node3 + + + + + + + + +Node3->Node2 + + + + + + + + +Node4 + + +has_segment_link + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +init_top + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +segment_holding + + + + + +Node3->Node6 + + + + + + + + diff --git a/a01898_a2d20e33b2d417733503759c0594f882d_icgraph.map b/a01898_a2d20e33b2d417733503759c0594f882d_icgraph.map new file mode 100644 index 00000000..2f1eb44e --- /dev/null +++ b/a01898_a2d20e33b2d417733503759c0594f882d_icgraph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/a01898_a2d20e33b2d417733503759c0594f882d_icgraph.md5 b/a01898_a2d20e33b2d417733503759c0594f882d_icgraph.md5 new file mode 100644 index 00000000..df8b46ab --- /dev/null +++ b/a01898_a2d20e33b2d417733503759c0594f882d_icgraph.md5 @@ -0,0 +1 @@ +8dcdf5dd2590db00ed0a575b1db5786f \ No newline at end of file diff --git a/a01898_a2d20e33b2d417733503759c0594f882d_icgraph.svg b/a01898_a2d20e33b2d417733503759c0594f882d_icgraph.svg new file mode 100644 index 00000000..b93c6bc3 --- /dev/null +++ b/a01898_a2d20e33b2d417733503759c0594f882d_icgraph.svg @@ -0,0 +1,165 @@ + + + + + + +dispose_chunk + + +Node1 + + +dispose_chunk + + + + + +Node2 + + +internal_bulk_free + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +internal_memalign + + + + + +Node1->Node4 + + + + + + + + +Node7 + + +try_realloc_chunk + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +dlbulk_free + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +dlmemalign + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +dlposix_memalign + + + + + +Node4->Node6 + + + + + + + + +Node8 + + +dlrealloc + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +dlrealloc_in_place + + + + + +Node7->Node9 + + + + + + + + diff --git a/a01898_a378b748c27be5a7a156907cc56b8a58e_icgraph.map b/a01898_a378b748c27be5a7a156907cc56b8a58e_icgraph.map new file mode 100644 index 00000000..8aae9279 --- /dev/null +++ b/a01898_a378b748c27be5a7a156907cc56b8a58e_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01898_a378b748c27be5a7a156907cc56b8a58e_icgraph.md5 b/a01898_a378b748c27be5a7a156907cc56b8a58e_icgraph.md5 new file mode 100644 index 00000000..caf1f181 --- /dev/null +++ b/a01898_a378b748c27be5a7a156907cc56b8a58e_icgraph.md5 @@ -0,0 +1 @@ +023428166c97488cad6e696d819d955b \ No newline at end of file diff --git a/a01898_a378b748c27be5a7a156907cc56b8a58e_icgraph.svg b/a01898_a378b748c27be5a7a156907cc56b8a58e_icgraph.svg new file mode 100644 index 00000000..adb9ab92 --- /dev/null +++ b/a01898_a378b748c27be5a7a156907cc56b8a58e_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +prepend_alloc + + +Node1 + + +prepend_alloc + + + + + +Node2 + + +sys_alloc + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dlmalloc + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01898_a3b1418d10b9d8c0b0f76f49700dbfcf7_icgraph.map b/a01898_a3b1418d10b9d8c0b0f76f49700dbfcf7_icgraph.map new file mode 100644 index 00000000..8fdeb6f2 --- /dev/null +++ b/a01898_a3b1418d10b9d8c0b0f76f49700dbfcf7_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01898_a3b1418d10b9d8c0b0f76f49700dbfcf7_icgraph.md5 b/a01898_a3b1418d10b9d8c0b0f76f49700dbfcf7_icgraph.md5 new file mode 100644 index 00000000..afdee63b --- /dev/null +++ b/a01898_a3b1418d10b9d8c0b0f76f49700dbfcf7_icgraph.md5 @@ -0,0 +1 @@ +f906e245984c74048eabd6bc722e7913 \ No newline at end of file diff --git a/a01898_a3b1418d10b9d8c0b0f76f49700dbfcf7_icgraph.svg b/a01898_a3b1418d10b9d8c0b0f76f49700dbfcf7_icgraph.svg new file mode 100644 index 00000000..a76e421d --- /dev/null +++ b/a01898_a3b1418d10b9d8c0b0f76f49700dbfcf7_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +tmalloc_large + + +Node1 + + +tmalloc_large + + + + + +Node2 + + +dlmalloc + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01898_a3de256edbbbbd4018cd3563f55ee50ab_cgraph.map b/a01898_a3de256edbbbbd4018cd3563f55ee50ab_cgraph.map new file mode 100644 index 00000000..78d2974a --- /dev/null +++ b/a01898_a3de256edbbbbd4018cd3563f55ee50ab_cgraph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/a01898_a3de256edbbbbd4018cd3563f55ee50ab_cgraph.md5 b/a01898_a3de256edbbbbd4018cd3563f55ee50ab_cgraph.md5 new file mode 100644 index 00000000..330c0c6e --- /dev/null +++ b/a01898_a3de256edbbbbd4018cd3563f55ee50ab_cgraph.md5 @@ -0,0 +1 @@ +0e0b488543ecf21b7a5e92d818299ab1 \ No newline at end of file diff --git a/a01898_a3de256edbbbbd4018cd3563f55ee50ab_cgraph.svg b/a01898_a3de256edbbbbd4018cd3563f55ee50ab_cgraph.svg new file mode 100644 index 00000000..07ffe5e0 --- /dev/null +++ b/a01898_a3de256edbbbbd4018cd3563f55ee50ab_cgraph.svg @@ -0,0 +1,93 @@ + + + + + + +sys_trim + + +Node1 + + +sys_trim + + + + + +Node2 + + +has_segment_link + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +init_top + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +release_unused_segments + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +segment_holding + + + + + +Node1->Node5 + + + + + + + + diff --git a/a01898_a3de256edbbbbd4018cd3563f55ee50ab_icgraph.map b/a01898_a3de256edbbbbd4018cd3563f55ee50ab_icgraph.map new file mode 100644 index 00000000..e020c8d0 --- /dev/null +++ b/a01898_a3de256edbbbbd4018cd3563f55ee50ab_icgraph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/a01898_a3de256edbbbbd4018cd3563f55ee50ab_icgraph.md5 b/a01898_a3de256edbbbbd4018cd3563f55ee50ab_icgraph.md5 new file mode 100644 index 00000000..702c0d0a --- /dev/null +++ b/a01898_a3de256edbbbbd4018cd3563f55ee50ab_icgraph.md5 @@ -0,0 +1 @@ +0ae6d63d8342cbd9896f81e7d9d22999 \ No newline at end of file diff --git a/a01898_a3de256edbbbbd4018cd3563f55ee50ab_icgraph.svg b/a01898_a3de256edbbbbd4018cd3563f55ee50ab_icgraph.svg new file mode 100644 index 00000000..85c5fb5b --- /dev/null +++ b/a01898_a3de256edbbbbd4018cd3563f55ee50ab_icgraph.svg @@ -0,0 +1,93 @@ + + + + + + +sys_trim + + +Node1 + + +sys_trim + + + + + +Node2 + + +dlfree + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dlmalloc_trim + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +internal_bulk_free + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +dlbulk_free + + + + + +Node4->Node5 + + + + + + + + diff --git a/a01898_a5609388ac4c1fc24595689b52c6698b9_icgraph.map b/a01898_a5609388ac4c1fc24595689b52c6698b9_icgraph.map new file mode 100644 index 00000000..68d39155 --- /dev/null +++ b/a01898_a5609388ac4c1fc24595689b52c6698b9_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01898_a5609388ac4c1fc24595689b52c6698b9_icgraph.md5 b/a01898_a5609388ac4c1fc24595689b52c6698b9_icgraph.md5 new file mode 100644 index 00000000..2e43d0e4 --- /dev/null +++ b/a01898_a5609388ac4c1fc24595689b52c6698b9_icgraph.md5 @@ -0,0 +1 @@ +478db53918ef9eb385e8946f532d2ebf \ No newline at end of file diff --git a/a01898_a5609388ac4c1fc24595689b52c6698b9_icgraph.svg b/a01898_a5609388ac4c1fc24595689b52c6698b9_icgraph.svg new file mode 100644 index 00000000..e784fd8b --- /dev/null +++ b/a01898_a5609388ac4c1fc24595689b52c6698b9_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +init_bins + + +Node1 + + +init_bins + + + + + +Node2 + + +sys_alloc + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dlmalloc + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01898_a5c6367328ed688a118d756151de3455d_cgraph.map b/a01898_a5c6367328ed688a118d756151de3455d_cgraph.map new file mode 100644 index 00000000..4906c48b --- /dev/null +++ b/a01898_a5c6367328ed688a118d756151de3455d_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01898_a5c6367328ed688a118d756151de3455d_cgraph.md5 b/a01898_a5c6367328ed688a118d756151de3455d_cgraph.md5 new file mode 100644 index 00000000..8c2d3c31 --- /dev/null +++ b/a01898_a5c6367328ed688a118d756151de3455d_cgraph.md5 @@ -0,0 +1 @@ +193c11c1117d68ea2d584659e9f26c16 \ No newline at end of file diff --git a/a01898_a5c6367328ed688a118d756151de3455d_cgraph.svg b/a01898_a5c6367328ed688a118d756151de3455d_cgraph.svg new file mode 100644 index 00000000..eb6c4fd5 --- /dev/null +++ b/a01898_a5c6367328ed688a118d756151de3455d_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +dlindependent_calloc + + +Node1 + + +dlindependent_calloc + + + + + +Node2 + + +ialloc + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01898_a5fa93d3a16f6cd853ca26b8796112770_cgraph.map b/a01898_a5fa93d3a16f6cd853ca26b8796112770_cgraph.map new file mode 100644 index 00000000..ac19e3d2 --- /dev/null +++ b/a01898_a5fa93d3a16f6cd853ca26b8796112770_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01898_a5fa93d3a16f6cd853ca26b8796112770_cgraph.md5 b/a01898_a5fa93d3a16f6cd853ca26b8796112770_cgraph.md5 new file mode 100644 index 00000000..d75337ab --- /dev/null +++ b/a01898_a5fa93d3a16f6cd853ca26b8796112770_cgraph.md5 @@ -0,0 +1 @@ +cb57953b15e745508e52647facf2297e \ No newline at end of file diff --git a/a01898_a5fa93d3a16f6cd853ca26b8796112770_cgraph.svg b/a01898_a5fa93d3a16f6cd853ca26b8796112770_cgraph.svg new file mode 100644 index 00000000..a052bd3e --- /dev/null +++ b/a01898_a5fa93d3a16f6cd853ca26b8796112770_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +dlmallopt + + +Node1 + + +dlmallopt + + + + + +Node2 + + +change_mparam + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01898_a614d873251d4d24875c099b0fdf89c8d_icgraph.map b/a01898_a614d873251d4d24875c099b0fdf89c8d_icgraph.map new file mode 100644 index 00000000..83e1ac98 --- /dev/null +++ b/a01898_a614d873251d4d24875c099b0fdf89c8d_icgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a01898_a614d873251d4d24875c099b0fdf89c8d_icgraph.md5 b/a01898_a614d873251d4d24875c099b0fdf89c8d_icgraph.md5 new file mode 100644 index 00000000..0c2857cd --- /dev/null +++ b/a01898_a614d873251d4d24875c099b0fdf89c8d_icgraph.md5 @@ -0,0 +1 @@ +0c605f6e5bd3acf7f47679fb343adbb0 \ No newline at end of file diff --git a/a01898_a614d873251d4d24875c099b0fdf89c8d_icgraph.svg b/a01898_a614d873251d4d24875c099b0fdf89c8d_icgraph.svg new file mode 100644 index 00000000..86a7ca62 --- /dev/null +++ b/a01898_a614d873251d4d24875c099b0fdf89c8d_icgraph.svg @@ -0,0 +1,75 @@ + + + + + + +mmap_resize + + +Node1 + + +mmap_resize + + + + + +Node2 + + +try_realloc_chunk + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dlrealloc + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dlrealloc_in_place + + + + + +Node2->Node4 + + + + + + + + diff --git a/a01898_a6156a11ac0c98046018896db06f45979_icgraph.map b/a01898_a6156a11ac0c98046018896db06f45979_icgraph.map new file mode 100644 index 00000000..68befef3 --- /dev/null +++ b/a01898_a6156a11ac0c98046018896db06f45979_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01898_a6156a11ac0c98046018896db06f45979_icgraph.md5 b/a01898_a6156a11ac0c98046018896db06f45979_icgraph.md5 new file mode 100644 index 00000000..a51702b6 --- /dev/null +++ b/a01898_a6156a11ac0c98046018896db06f45979_icgraph.md5 @@ -0,0 +1 @@ +dfe7af5bc2d328f70e1b98de497c4932 \ No newline at end of file diff --git a/a01898_a6156a11ac0c98046018896db06f45979_icgraph.svg b/a01898_a6156a11ac0c98046018896db06f45979_icgraph.svg new file mode 100644 index 00000000..92686085 --- /dev/null +++ b/a01898_a6156a11ac0c98046018896db06f45979_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +ialloc + + +Node1 + + +ialloc + + + + + +Node2 + + +dlindependent_calloc + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dlindependent_comalloc + + + + + +Node1->Node3 + + + + + + + + diff --git a/a01898_a61f04155b5dceea889ba3cef64968684_cgraph.map b/a01898_a61f04155b5dceea889ba3cef64968684_cgraph.map new file mode 100644 index 00000000..50c2ae97 --- /dev/null +++ b/a01898_a61f04155b5dceea889ba3cef64968684_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01898_a61f04155b5dceea889ba3cef64968684_cgraph.md5 b/a01898_a61f04155b5dceea889ba3cef64968684_cgraph.md5 new file mode 100644 index 00000000..88a13873 --- /dev/null +++ b/a01898_a61f04155b5dceea889ba3cef64968684_cgraph.md5 @@ -0,0 +1 @@ +65aecc2f1e43a9970e7459f5865c3598 \ No newline at end of file diff --git a/a01898_a61f04155b5dceea889ba3cef64968684_cgraph.svg b/a01898_a61f04155b5dceea889ba3cef64968684_cgraph.svg new file mode 100644 index 00000000..2191de62 --- /dev/null +++ b/a01898_a61f04155b5dceea889ba3cef64968684_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +dlposix_memalign + + +Node1 + + +dlposix_memalign + + + + + +Node2 + + +internal_memalign + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dispose_chunk + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01898_a726dbaacf5aca0a8435e3ce4d44844f4_cgraph.map b/a01898_a726dbaacf5aca0a8435e3ce4d44844f4_cgraph.map new file mode 100644 index 00000000..f27f2f6d --- /dev/null +++ b/a01898_a726dbaacf5aca0a8435e3ce4d44844f4_cgraph.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/a01898_a726dbaacf5aca0a8435e3ce4d44844f4_cgraph.md5 b/a01898_a726dbaacf5aca0a8435e3ce4d44844f4_cgraph.md5 new file mode 100644 index 00000000..e4ed1795 --- /dev/null +++ b/a01898_a726dbaacf5aca0a8435e3ce4d44844f4_cgraph.md5 @@ -0,0 +1 @@ +e05bc6987a8b0f51527a7be0c646bd54 \ No newline at end of file diff --git a/a01898_a726dbaacf5aca0a8435e3ce4d44844f4_cgraph.svg b/a01898_a726dbaacf5aca0a8435e3ce4d44844f4_cgraph.svg new file mode 100644 index 00000000..8ae18141 --- /dev/null +++ b/a01898_a726dbaacf5aca0a8435e3ce4d44844f4_cgraph.svg @@ -0,0 +1,147 @@ + + + + + + +sys_alloc + + +Node1 + + +sys_alloc + + + + + +Node2 + + +add_segment + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +init_top + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +segment_holding + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +init_bins + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +mmap_alloc + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +prepend_alloc + + + + + +Node1->Node7 + + + + + + + + +Node2->Node3 + + + + + + + + +Node2->Node4 + + + + + + + + diff --git a/a01898_a726dbaacf5aca0a8435e3ce4d44844f4_icgraph.map b/a01898_a726dbaacf5aca0a8435e3ce4d44844f4_icgraph.map new file mode 100644 index 00000000..33431c3f --- /dev/null +++ b/a01898_a726dbaacf5aca0a8435e3ce4d44844f4_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01898_a726dbaacf5aca0a8435e3ce4d44844f4_icgraph.md5 b/a01898_a726dbaacf5aca0a8435e3ce4d44844f4_icgraph.md5 new file mode 100644 index 00000000..4fe68d62 --- /dev/null +++ b/a01898_a726dbaacf5aca0a8435e3ce4d44844f4_icgraph.md5 @@ -0,0 +1 @@ +a582fb4ebb787f274b46cc111b626560 \ No newline at end of file diff --git a/a01898_a726dbaacf5aca0a8435e3ce4d44844f4_icgraph.svg b/a01898_a726dbaacf5aca0a8435e3ce4d44844f4_icgraph.svg new file mode 100644 index 00000000..e3f2d862 --- /dev/null +++ b/a01898_a726dbaacf5aca0a8435e3ce4d44844f4_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +sys_alloc + + +Node1 + + +sys_alloc + + + + + +Node2 + + +dlmalloc + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01898_a77bcf00a7c234d2b45926ac02550d634_cgraph.map b/a01898_a77bcf00a7c234d2b45926ac02550d634_cgraph.map new file mode 100644 index 00000000..1fd33b00 --- /dev/null +++ b/a01898_a77bcf00a7c234d2b45926ac02550d634_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01898_a77bcf00a7c234d2b45926ac02550d634_cgraph.md5 b/a01898_a77bcf00a7c234d2b45926ac02550d634_cgraph.md5 new file mode 100644 index 00000000..1644bffe --- /dev/null +++ b/a01898_a77bcf00a7c234d2b45926ac02550d634_cgraph.md5 @@ -0,0 +1 @@ +c8f842730d733e734bbc9f7bc627c594 \ No newline at end of file diff --git a/a01898_a77bcf00a7c234d2b45926ac02550d634_cgraph.svg b/a01898_a77bcf00a7c234d2b45926ac02550d634_cgraph.svg new file mode 100644 index 00000000..bdef517a --- /dev/null +++ b/a01898_a77bcf00a7c234d2b45926ac02550d634_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +internal_memalign + + +Node1 + + +internal_memalign + + + + + +Node2 + + +dispose_chunk + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01898_a77bcf00a7c234d2b45926ac02550d634_icgraph.map b/a01898_a77bcf00a7c234d2b45926ac02550d634_icgraph.map new file mode 100644 index 00000000..e0a0369b --- /dev/null +++ b/a01898_a77bcf00a7c234d2b45926ac02550d634_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01898_a77bcf00a7c234d2b45926ac02550d634_icgraph.md5 b/a01898_a77bcf00a7c234d2b45926ac02550d634_icgraph.md5 new file mode 100644 index 00000000..897aa8a7 --- /dev/null +++ b/a01898_a77bcf00a7c234d2b45926ac02550d634_icgraph.md5 @@ -0,0 +1 @@ +4adf452683ee6038673a347072338c45 \ No newline at end of file diff --git a/a01898_a77bcf00a7c234d2b45926ac02550d634_icgraph.svg b/a01898_a77bcf00a7c234d2b45926ac02550d634_icgraph.svg new file mode 100644 index 00000000..45775221 --- /dev/null +++ b/a01898_a77bcf00a7c234d2b45926ac02550d634_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +internal_memalign + + +Node1 + + +internal_memalign + + + + + +Node2 + + +dlmemalign + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dlposix_memalign + + + + + +Node1->Node3 + + + + + + + + diff --git a/a01898_a789f1726140c8d0ef5b54d893d806262_cgraph.map b/a01898_a789f1726140c8d0ef5b54d893d806262_cgraph.map new file mode 100644 index 00000000..6201736a --- /dev/null +++ b/a01898_a789f1726140c8d0ef5b54d893d806262_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01898_a789f1726140c8d0ef5b54d893d806262_cgraph.md5 b/a01898_a789f1726140c8d0ef5b54d893d806262_cgraph.md5 new file mode 100644 index 00000000..c49be093 --- /dev/null +++ b/a01898_a789f1726140c8d0ef5b54d893d806262_cgraph.md5 @@ -0,0 +1 @@ +277520e824fb5d923b5d94aa2791e3bd \ No newline at end of file diff --git a/a01898_a789f1726140c8d0ef5b54d893d806262_cgraph.svg b/a01898_a789f1726140c8d0ef5b54d893d806262_cgraph.svg new file mode 100644 index 00000000..f04bcfd6 --- /dev/null +++ b/a01898_a789f1726140c8d0ef5b54d893d806262_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +dlmemalign + + +Node1 + + +dlmemalign + + + + + +Node2 + + +internal_memalign + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dispose_chunk + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01898_a79e7e77bbc6d5208678b007bf89aab61_cgraph.map b/a01898_a79e7e77bbc6d5208678b007bf89aab61_cgraph.map new file mode 100644 index 00000000..ed7cd86b --- /dev/null +++ b/a01898_a79e7e77bbc6d5208678b007bf89aab61_cgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a01898_a79e7e77bbc6d5208678b007bf89aab61_cgraph.md5 b/a01898_a79e7e77bbc6d5208678b007bf89aab61_cgraph.md5 new file mode 100644 index 00000000..9e72dd8c --- /dev/null +++ b/a01898_a79e7e77bbc6d5208678b007bf89aab61_cgraph.md5 @@ -0,0 +1 @@ +a32e4b80a2a0388240374743d79d4641 \ No newline at end of file diff --git a/a01898_a79e7e77bbc6d5208678b007bf89aab61_cgraph.svg b/a01898_a79e7e77bbc6d5208678b007bf89aab61_cgraph.svg new file mode 100644 index 00000000..7217520a --- /dev/null +++ b/a01898_a79e7e77bbc6d5208678b007bf89aab61_cgraph.svg @@ -0,0 +1,75 @@ + + + + + + +dlrealloc + + +Node1 + + +dlrealloc + + + + + +Node2 + + +try_realloc_chunk + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dispose_chunk + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +mmap_resize + + + + + +Node2->Node4 + + + + + + + + diff --git a/a01898_a8e02204694aaa24ccc23b1cd2c403b7e_cgraph.map b/a01898_a8e02204694aaa24ccc23b1cd2c403b7e_cgraph.map new file mode 100644 index 00000000..e696f2dd --- /dev/null +++ b/a01898_a8e02204694aaa24ccc23b1cd2c403b7e_cgraph.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/a01898_a8e02204694aaa24ccc23b1cd2c403b7e_cgraph.md5 b/a01898_a8e02204694aaa24ccc23b1cd2c403b7e_cgraph.md5 new file mode 100644 index 00000000..fe8e9ef3 --- /dev/null +++ b/a01898_a8e02204694aaa24ccc23b1cd2c403b7e_cgraph.md5 @@ -0,0 +1 @@ +2839d879f69971e68b5aaec89b727a26 \ No newline at end of file diff --git a/a01898_a8e02204694aaa24ccc23b1cd2c403b7e_cgraph.svg b/a01898_a8e02204694aaa24ccc23b1cd2c403b7e_cgraph.svg new file mode 100644 index 00000000..f60e8b66 --- /dev/null +++ b/a01898_a8e02204694aaa24ccc23b1cd2c403b7e_cgraph.svg @@ -0,0 +1,147 @@ + + + + + + +dlbulk_free + + +Node1 + + +dlbulk_free + + + + + +Node2 + + +internal_bulk_free + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dispose_chunk + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +sys_trim + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +has_segment_link + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +init_top + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +release_unused_segments + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +segment_holding + + + + + +Node4->Node8 + + + + + + + + diff --git a/a01898_a949111e5f127c26e3b9f11bf26c8038a_icgraph.map b/a01898_a949111e5f127c26e3b9f11bf26c8038a_icgraph.map new file mode 100644 index 00000000..2a5cebb1 --- /dev/null +++ b/a01898_a949111e5f127c26e3b9f11bf26c8038a_icgraph.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/a01898_a949111e5f127c26e3b9f11bf26c8038a_icgraph.md5 b/a01898_a949111e5f127c26e3b9f11bf26c8038a_icgraph.md5 new file mode 100644 index 00000000..ade65ae5 --- /dev/null +++ b/a01898_a949111e5f127c26e3b9f11bf26c8038a_icgraph.md5 @@ -0,0 +1 @@ +a9293aaab2931a2b0729474e8431e477 \ No newline at end of file diff --git a/a01898_a949111e5f127c26e3b9f11bf26c8038a_icgraph.svg b/a01898_a949111e5f127c26e3b9f11bf26c8038a_icgraph.svg new file mode 100644 index 00000000..41164874 --- /dev/null +++ b/a01898_a949111e5f127c26e3b9f11bf26c8038a_icgraph.svg @@ -0,0 +1,120 @@ + + + + + + +release_unused_segments + + +Node1 + + +release_unused_segments + + + + + +Node2 + + +dlfree + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sys_trim + + + + + +Node1->Node3 + + + + + + + + +Node3->Node2 + + + + + + + + +Node4 + + +dlmalloc_trim + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +internal_bulk_free + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +dlbulk_free + + + + + +Node5->Node6 + + + + + + + + diff --git a/a01898_a99e26c45fc3b7bd05c627138d0d103fc_icgraph.map b/a01898_a99e26c45fc3b7bd05c627138d0d103fc_icgraph.map new file mode 100644 index 00000000..85b13559 --- /dev/null +++ b/a01898_a99e26c45fc3b7bd05c627138d0d103fc_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01898_a99e26c45fc3b7bd05c627138d0d103fc_icgraph.md5 b/a01898_a99e26c45fc3b7bd05c627138d0d103fc_icgraph.md5 new file mode 100644 index 00000000..35605b6e --- /dev/null +++ b/a01898_a99e26c45fc3b7bd05c627138d0d103fc_icgraph.md5 @@ -0,0 +1 @@ +d8c27e16ec7b167fe2fbc4481afa884e \ No newline at end of file diff --git a/a01898_a99e26c45fc3b7bd05c627138d0d103fc_icgraph.svg b/a01898_a99e26c45fc3b7bd05c627138d0d103fc_icgraph.svg new file mode 100644 index 00000000..d0704a92 --- /dev/null +++ b/a01898_a99e26c45fc3b7bd05c627138d0d103fc_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +change_mparam + + +Node1 + + +change_mparam + + + + + +Node2 + + +dlmallopt + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01898_aa2888b3de06df35c3b18b31b1e15fe8c_cgraph.map b/a01898_aa2888b3de06df35c3b18b31b1e15fe8c_cgraph.map new file mode 100644 index 00000000..ae696ee3 --- /dev/null +++ b/a01898_aa2888b3de06df35c3b18b31b1e15fe8c_cgraph.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/a01898_aa2888b3de06df35c3b18b31b1e15fe8c_cgraph.md5 b/a01898_aa2888b3de06df35c3b18b31b1e15fe8c_cgraph.md5 new file mode 100644 index 00000000..afd4a644 --- /dev/null +++ b/a01898_aa2888b3de06df35c3b18b31b1e15fe8c_cgraph.md5 @@ -0,0 +1 @@ +e3dbb1d7487ba66f8a2af6dda5bcc20d \ No newline at end of file diff --git a/a01898_aa2888b3de06df35c3b18b31b1e15fe8c_cgraph.svg b/a01898_aa2888b3de06df35c3b18b31b1e15fe8c_cgraph.svg new file mode 100644 index 00000000..dc81ec5f --- /dev/null +++ b/a01898_aa2888b3de06df35c3b18b31b1e15fe8c_cgraph.svg @@ -0,0 +1,129 @@ + + + + + + +internal_bulk_free + + +Node1 + + +internal_bulk_free + + + + + +Node2 + + +dispose_chunk + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sys_trim + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +has_segment_link + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +init_top + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +release_unused_segments + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +segment_holding + + + + + +Node3->Node7 + + + + + + + + diff --git a/a01898_aa2888b3de06df35c3b18b31b1e15fe8c_icgraph.map b/a01898_aa2888b3de06df35c3b18b31b1e15fe8c_icgraph.map new file mode 100644 index 00000000..161ebcbf --- /dev/null +++ b/a01898_aa2888b3de06df35c3b18b31b1e15fe8c_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01898_aa2888b3de06df35c3b18b31b1e15fe8c_icgraph.md5 b/a01898_aa2888b3de06df35c3b18b31b1e15fe8c_icgraph.md5 new file mode 100644 index 00000000..15875e15 --- /dev/null +++ b/a01898_aa2888b3de06df35c3b18b31b1e15fe8c_icgraph.md5 @@ -0,0 +1 @@ +347889b65d282515c01b007a07b1f1bc \ No newline at end of file diff --git a/a01898_aa2888b3de06df35c3b18b31b1e15fe8c_icgraph.svg b/a01898_aa2888b3de06df35c3b18b31b1e15fe8c_icgraph.svg new file mode 100644 index 00000000..751d5375 --- /dev/null +++ b/a01898_aa2888b3de06df35c3b18b31b1e15fe8c_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +internal_bulk_free + + +Node1 + + +internal_bulk_free + + + + + +Node2 + + +dlbulk_free + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01898_ab22b9d57eca306724cb8c4f928d0e824_icgraph.map b/a01898_ab22b9d57eca306724cb8c4f928d0e824_icgraph.map new file mode 100644 index 00000000..ebe8787a --- /dev/null +++ b/a01898_ab22b9d57eca306724cb8c4f928d0e824_icgraph.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/a01898_ab22b9d57eca306724cb8c4f928d0e824_icgraph.md5 b/a01898_ab22b9d57eca306724cb8c4f928d0e824_icgraph.md5 new file mode 100644 index 00000000..19b2263d --- /dev/null +++ b/a01898_ab22b9d57eca306724cb8c4f928d0e824_icgraph.md5 @@ -0,0 +1 @@ +315ae0baa20ef96290b4f9aa980df590 \ No newline at end of file diff --git a/a01898_ab22b9d57eca306724cb8c4f928d0e824_icgraph.svg b/a01898_ab22b9d57eca306724cb8c4f928d0e824_icgraph.svg new file mode 100644 index 00000000..cf2cb71e --- /dev/null +++ b/a01898_ab22b9d57eca306724cb8c4f928d0e824_icgraph.svg @@ -0,0 +1,111 @@ + + + + + + +has_segment_link + + +Node1 + + +has_segment_link + + + + + +Node2 + + +sys_trim + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dlfree + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dlmalloc_trim + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +internal_bulk_free + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +dlbulk_free + + + + + +Node5->Node6 + + + + + + + + diff --git a/a01898_adc1656892fa59cbd2e3b60a2608dfefc_icgraph.map b/a01898_adc1656892fa59cbd2e3b60a2608dfefc_icgraph.map new file mode 100644 index 00000000..491b0c93 --- /dev/null +++ b/a01898_adc1656892fa59cbd2e3b60a2608dfefc_icgraph.map @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/a01898_adc1656892fa59cbd2e3b60a2608dfefc_icgraph.md5 b/a01898_adc1656892fa59cbd2e3b60a2608dfefc_icgraph.md5 new file mode 100644 index 00000000..82af8690 --- /dev/null +++ b/a01898_adc1656892fa59cbd2e3b60a2608dfefc_icgraph.md5 @@ -0,0 +1 @@ +04a4426f93ad7950ea6aee7f8ef231a9 \ No newline at end of file diff --git a/a01898_adc1656892fa59cbd2e3b60a2608dfefc_icgraph.svg b/a01898_adc1656892fa59cbd2e3b60a2608dfefc_icgraph.svg new file mode 100644 index 00000000..26984576 --- /dev/null +++ b/a01898_adc1656892fa59cbd2e3b60a2608dfefc_icgraph.svg @@ -0,0 +1,174 @@ + + + + + + +segment_holding + + +Node1 + + +segment_holding + + + + + +Node2 + + +add_segment + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sys_alloc + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +sys_trim + + + + + +Node1->Node5 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +dlmalloc + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +dlfree + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +dlmalloc_trim + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +internal_bulk_free + + + + + +Node5->Node8 + + + + + + + + +Node9 + + +dlbulk_free + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01898_ae78e200be9eedb1ddf007d431dcb09a2_cgraph.map b/a01898_ae78e200be9eedb1ddf007d431dcb09a2_cgraph.map new file mode 100644 index 00000000..ce30d2f2 --- /dev/null +++ b/a01898_ae78e200be9eedb1ddf007d431dcb09a2_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01898_ae78e200be9eedb1ddf007d431dcb09a2_cgraph.md5 b/a01898_ae78e200be9eedb1ddf007d431dcb09a2_cgraph.md5 new file mode 100644 index 00000000..ebdfdbb1 --- /dev/null +++ b/a01898_ae78e200be9eedb1ddf007d431dcb09a2_cgraph.md5 @@ -0,0 +1 @@ +fa34d6e9ff14d47dc940089edaf98ec3 \ No newline at end of file diff --git a/a01898_ae78e200be9eedb1ddf007d431dcb09a2_cgraph.svg b/a01898_ae78e200be9eedb1ddf007d431dcb09a2_cgraph.svg new file mode 100644 index 00000000..ab92fe0d --- /dev/null +++ b/a01898_ae78e200be9eedb1ddf007d431dcb09a2_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +dlindependent_comalloc + + +Node1 + + +dlindependent_comalloc + + + + + +Node2 + + +ialloc + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01898_aecee517bb2a61c5b79a745f3e0b4aa86_cgraph.map b/a01898_aecee517bb2a61c5b79a745f3e0b4aa86_cgraph.map new file mode 100644 index 00000000..d21ffdc2 --- /dev/null +++ b/a01898_aecee517bb2a61c5b79a745f3e0b4aa86_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01898_aecee517bb2a61c5b79a745f3e0b4aa86_cgraph.md5 b/a01898_aecee517bb2a61c5b79a745f3e0b4aa86_cgraph.md5 new file mode 100644 index 00000000..a11ef66d --- /dev/null +++ b/a01898_aecee517bb2a61c5b79a745f3e0b4aa86_cgraph.md5 @@ -0,0 +1 @@ +771c83eca5212d1e81e9c0330626e67e \ No newline at end of file diff --git a/a01898_aecee517bb2a61c5b79a745f3e0b4aa86_cgraph.svg b/a01898_aecee517bb2a61c5b79a745f3e0b4aa86_cgraph.svg new file mode 100644 index 00000000..273946a9 --- /dev/null +++ b/a01898_aecee517bb2a61c5b79a745f3e0b4aa86_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +add_segment + + +Node1 + + +add_segment + + + + + +Node2 + + +init_top + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +segment_holding + + + + + +Node1->Node3 + + + + + + + + diff --git a/a01898_aecee517bb2a61c5b79a745f3e0b4aa86_icgraph.map b/a01898_aecee517bb2a61c5b79a745f3e0b4aa86_icgraph.map new file mode 100644 index 00000000..1f8c5046 --- /dev/null +++ b/a01898_aecee517bb2a61c5b79a745f3e0b4aa86_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01898_aecee517bb2a61c5b79a745f3e0b4aa86_icgraph.md5 b/a01898_aecee517bb2a61c5b79a745f3e0b4aa86_icgraph.md5 new file mode 100644 index 00000000..b802a146 --- /dev/null +++ b/a01898_aecee517bb2a61c5b79a745f3e0b4aa86_icgraph.md5 @@ -0,0 +1 @@ +47d168c302c13bcb28bed41137d4d887 \ No newline at end of file diff --git a/a01898_aecee517bb2a61c5b79a745f3e0b4aa86_icgraph.svg b/a01898_aecee517bb2a61c5b79a745f3e0b4aa86_icgraph.svg new file mode 100644 index 00000000..7ae3cf04 --- /dev/null +++ b/a01898_aecee517bb2a61c5b79a745f3e0b4aa86_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +add_segment + + +Node1 + + +add_segment + + + + + +Node2 + + +sys_alloc + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dlmalloc + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01898_af8adec320537d6e63bc68e76633a1f0e_cgraph.map b/a01898_af8adec320537d6e63bc68e76633a1f0e_cgraph.map new file mode 100644 index 00000000..daa99d58 --- /dev/null +++ b/a01898_af8adec320537d6e63bc68e76633a1f0e_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01898_af8adec320537d6e63bc68e76633a1f0e_cgraph.md5 b/a01898_af8adec320537d6e63bc68e76633a1f0e_cgraph.md5 new file mode 100644 index 00000000..6a31f4bc --- /dev/null +++ b/a01898_af8adec320537d6e63bc68e76633a1f0e_cgraph.md5 @@ -0,0 +1 @@ +0a50b41a1d73f41e8aae92a387eca42b \ No newline at end of file diff --git a/a01898_af8adec320537d6e63bc68e76633a1f0e_cgraph.svg b/a01898_af8adec320537d6e63bc68e76633a1f0e_cgraph.svg new file mode 100644 index 00000000..902488ad --- /dev/null +++ b/a01898_af8adec320537d6e63bc68e76633a1f0e_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +try_realloc_chunk + + +Node1 + + +try_realloc_chunk + + + + + +Node2 + + +dispose_chunk + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +mmap_resize + + + + + +Node1->Node3 + + + + + + + + diff --git a/a01898_af8adec320537d6e63bc68e76633a1f0e_icgraph.map b/a01898_af8adec320537d6e63bc68e76633a1f0e_icgraph.map new file mode 100644 index 00000000..1d4edefa --- /dev/null +++ b/a01898_af8adec320537d6e63bc68e76633a1f0e_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01898_af8adec320537d6e63bc68e76633a1f0e_icgraph.md5 b/a01898_af8adec320537d6e63bc68e76633a1f0e_icgraph.md5 new file mode 100644 index 00000000..bc18a349 --- /dev/null +++ b/a01898_af8adec320537d6e63bc68e76633a1f0e_icgraph.md5 @@ -0,0 +1 @@ +3904beda9c4d55dbc1ed24ae2f23e9fa \ No newline at end of file diff --git a/a01898_af8adec320537d6e63bc68e76633a1f0e_icgraph.svg b/a01898_af8adec320537d6e63bc68e76633a1f0e_icgraph.svg new file mode 100644 index 00000000..42a12b14 --- /dev/null +++ b/a01898_af8adec320537d6e63bc68e76633a1f0e_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +try_realloc_chunk + + +Node1 + + +try_realloc_chunk + + + + + +Node2 + + +dlrealloc + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dlrealloc_in_place + + + + + +Node1->Node3 + + + + + + + + diff --git a/a01898_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.map b/a01898_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.map new file mode 100644 index 00000000..4f422e0a --- /dev/null +++ b/a01898_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a01898_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.md5 b/a01898_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.md5 new file mode 100644 index 00000000..fee6e6b9 --- /dev/null +++ b/a01898_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.md5 @@ -0,0 +1 @@ +9d3df7e6bbbf3d1f2b9369919993738b \ No newline at end of file diff --git a/a01898_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.svg b/a01898_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.svg new file mode 100644 index 00000000..88c50082 --- /dev/null +++ b/a01898_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.svg @@ -0,0 +1,75 @@ + + + + + + +dlrealloc_in_place + + +Node1 + + +dlrealloc_in_place + + + + + +Node2 + + +try_realloc_chunk + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dispose_chunk + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +mmap_resize + + + + + +Node2->Node4 + + + + + + + + diff --git a/a01898_source.html b/a01898_source.html new file mode 100644 index 00000000..a4f261df --- /dev/null +++ b/a01898_source.html @@ -0,0 +1,6793 @@ + + + + + + + +Arax: malloc.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
malloc.c
+
+
+Go to the documentation of this file.
1// GCOV_EXCL_START
+
2
+
3/*
+
4 * This is a version (aka dlmalloc) of malloc/free/realloc written by
+
5 * Doug Lea and released to the public domain, as explained at
+
6 * http://creativecommons.org/publicdomain/zero/1.0/ Send questions,
+
7 * comments, complaints, performance data, etc to dl@cs.oswego.edu
+
8 *
+
9 * Version 2.8.6 Wed Aug 29 06:57:58 2012 Doug Lea
+
10 * Note: There may be an updated version of this malloc obtainable at
+
11 * ftp://gee.cs.oswego.edu/pub/misc/malloc.c
+
12 * Check before installing!
+
13 *
+
14 * Quickstart
+
15 *
+
16 * This library is all in one file to simplify the most common usage:
+
17 * ftp it, compile it (-O3), and link it into another program. All of
+
18 * the compile-time options default to reasonable values for use on
+
19 * most platforms. You might later want to step through various
+
20 * compile-time and dynamic tuning options.
+
21 *
+
22 * For convenience, an include file for code using this malloc is at:
+
23 * ftp://gee.cs.oswego.edu/pub/misc/malloc-2.8.6.h
+
24 * You don't really need this .h file unless you call functions not
+
25 * defined in your system include files. The .h file contains only the
+
26 * excerpts from this file needed for using this malloc on ANSI C/C++
+
27 * systems, so long as you haven't changed compile-time options about
+
28 * naming and tuning parameters. If you do, then you can create your
+
29 * own malloc.h that does include all settings by cutting at the point
+
30 * indicated below. Note that you may already by default be using a C
+
31 * library containing a malloc that is based on some version of this
+
32 * malloc (for example in linux). You might still want to use the one
+
33 * in this file to customize settings or to avoid overheads associated
+
34 * with library versions.
+
35 *
+
36 * Vital statistics:
+
37 *
+
38 * Supported pointer/size_t representation: 4 or 8 bytes
+
39 * size_t MUST be an unsigned type of the same width as
+
40 * pointers. (If you are using an ancient system that declares
+
41 * size_t as a signed type, or need it to be a different width
+
42 * than pointers, you can use a previous release of this malloc
+
43 * (e.g. 2.7.2) supporting these.)
+
44 *
+
45 * Alignment: 8 bytes (minimum)
+
46 * This suffices for nearly all current machines and C compilers.
+
47 * However, you can define MALLOC_ALIGNMENT to be wider than this
+
48 * if necessary (up to 128bytes), at the expense of using more space.
+
49 *
+
50 * Minimum overhead per allocated chunk: 4 or 8 bytes (if 4byte sizes)
+
51 * 8 or 16 bytes (if 8byte sizes)
+
52 * Each malloced chunk has a hidden word of overhead holding size
+
53 * and status information, and additional cross-check word
+
54 * if FOOTERS is defined.
+
55 *
+
56 * Minimum allocated size: 4-byte ptrs: 16 bytes (including overhead)
+
57 * 8-byte ptrs: 32 bytes (including overhead)
+
58 *
+
59 * Even a request for zero bytes (i.e., malloc(0)) returns a
+
60 * pointer to something of the minimum allocatable size.
+
61 * The maximum overhead wastage (i.e., number of extra bytes
+
62 * allocated than were requested in malloc) is less than or equal
+
63 * to the minimum size, except for requests >= mmap_threshold that
+
64 * are serviced via mmap(), where the worst case wastage is about
+
65 * 32 bytes plus the remainder from a system page (the minimal
+
66 * mmap unit); typically 4096 or 8192 bytes.
+
67 *
+
68 * Security: static-safe; optionally more or less
+
69 * The "security" of malloc refers to the ability of malicious
+
70 * code to accentuate the effects of errors (for example, freeing
+
71 * space that is not currently malloc'ed or overwriting past the
+
72 * ends of chunks) in code that calls malloc. This malloc
+
73 * guarantees not to modify any memory locations below the base of
+
74 * heap, i.e., static variables, even in the presence of usage
+
75 * errors. The routines additionally detect most improper frees
+
76 * and reallocs. All this holds as long as the static bookkeeping
+
77 * for malloc itself is not corrupted by some other means. This
+
78 * is only one aspect of security -- these checks do not, and
+
79 * cannot, detect all possible programming errors.
+
80 *
+
81 * If FOOTERS is defined nonzero, then each allocated chunk
+
82 * carries an additional check word to verify that it was malloced
+
83 * from its space. These check words are the same within each
+
84 * execution of a program using malloc, but differ across
+
85 * executions, so externally crafted fake chunks cannot be
+
86 * freed. This improves security by rejecting frees/reallocs that
+
87 * could corrupt heap memory, in addition to the checks preventing
+
88 * writes to statics that are always on. This may further improve
+
89 * security at the expense of time and space overhead. (Note that
+
90 * FOOTERS may also be worth using with MSPACES.)
+
91 *
+
92 * By default detected errors cause the program to abort (calling
+
93 * "abort()"). You can override this to instead proceed past
+
94 * errors by defining PROCEED_ON_ERROR. In this case, a bad free
+
95 * has no effect, and a malloc that encounters a bad address
+
96 * caused by user overwrites will ignore the bad address by
+
97 * dropping pointers and indices to all known memory. This may
+
98 * be appropriate for programs that should continue if at all
+
99 * possible in the face of programming errors, although they may
+
100 * run out of memory because dropped memory is never reclaimed.
+
101 *
+
102 * If you don't like either of these options, you can define
+
103 * CORRUPTION_ERROR_ACTION and USAGE_ERROR_ACTION to do anything
+
104 * else. And if if you are sure that your program using malloc has
+
105 * no errors or vulnerabilities, you can define INSECURE to 1,
+
106 * which might (or might not) provide a small performance improvement.
+
107 *
+
108 * It is also possible to limit the maximum total allocatable
+
109 * space, using malloc_set_footprint_limit. This is not
+
110 * designed as a security feature in itself (calls to set limits
+
111 * are not screened or privileged), but may be useful as one
+
112 * aspect of a secure implementation.
+
113 *
+
114 * Thread-safety: NOT thread-safe unless USE_LOCKS defined non-zero
+
115 * When USE_LOCKS is defined, each public call to malloc, free,
+
116 * etc is surrounded with a lock. By default, this uses a plain
+
117 * pthread mutex, win32 critical section, or a spin-lock if if
+
118 * available for the platform and not disabled by setting
+
119 * USE_SPIN_LOCKS=0. However, if USE_RECURSIVE_LOCKS is defined,
+
120 * recursive versions are used instead (which are not required for
+
121 * base functionality but may be needed in layered extensions).
+
122 * Using a global lock is not especially fast, and can be a major
+
123 * bottleneck. It is designed only to provide minimal protection
+
124 * in concurrent environments, and to provide a basis for
+
125 * extensions. If you are using malloc in a concurrent program,
+
126 * consider instead using nedmalloc
+
127 * (http://www.nedprod.com/programs/portable/nedmalloc/) or
+
128 * ptmalloc (See http://www.malloc.de), which are derived from
+
129 * versions of this malloc.
+
130 *
+
131 * System requirements: Any combination of MORECORE and/or MMAP/MUNMAP
+
132 * This malloc can use unix sbrk or any emulation (invoked using
+
133 * the CALL_MORECORE macro) and/or mmap/munmap or any emulation
+
134 * (invoked using CALL_MMAP/CALL_MUNMAP) to get and release system
+
135 * memory. On most unix systems, it tends to work best if both
+
136 * MORECORE and MMAP are enabled. On Win32, it uses emulations
+
137 * based on VirtualAlloc. It also uses common C library functions
+
138 * like memset.
+
139 *
+
140 * Compliance: I believe it is compliant with the Single Unix Specification
+
141 * (See http://www.unix.org). Also SVID/XPG, ANSI C, and probably
+
142 * others as well.
+
143 *
+
144 * Overview of algorithms
+
145 *
+
146 * This is not the fastest, most space-conserving, most portable, or
+
147 * most tunable malloc ever written. However it is among the fastest
+
148 * while also being among the most space-conserving, portable and
+
149 * tunable. Consistent balance across these factors results in a good
+
150 * general-purpose allocator for malloc-intensive programs.
+
151 *
+
152 * In most ways, this malloc is a best-fit allocator. Generally, it
+
153 * chooses the best-fitting existing chunk for a request, with ties
+
154 * broken in approximately least-recently-used order. (This strategy
+
155 * normally maintains low fragmentation.) However, for requests less
+
156 * than 256bytes, it deviates from best-fit when there is not an
+
157 * exactly fitting available chunk by preferring to use space adjacent
+
158 * to that used for the previous small request, as well as by breaking
+
159 * ties in approximately most-recently-used order. (These enhance
+
160 * locality of series of small allocations.) And for very large requests
+
161 * (>= 256Kb by default), it relies on system memory mapping
+
162 * facilities, if supported. (This helps avoid carrying around and
+
163 * possibly fragmenting memory used only for large chunks.)
+
164 *
+
165 * All operations (except malloc_stats and mallinfo) have execution
+
166 * times that are bounded by a constant factor of the number of bits in
+
167 * a size_t, not counting any clearing in calloc or copying in realloc,
+
168 * or actions surrounding MORECORE and MMAP that have times
+
169 * proportional to the number of non-contiguous regions returned by
+
170 * system allocation routines, which is often just 1. In real-time
+
171 * applications, you can optionally suppress segment traversals using
+
172 * NO_SEGMENT_TRAVERSAL, which assures bounded execution even when
+
173 * system allocators return non-contiguous spaces, at the typical
+
174 * expense of carrying around more memory and increased fragmentation.
+
175 *
+
176 * The implementation is not very modular and seriously overuses
+
177 * macros. Perhaps someday all C compilers will do as good a job
+
178 * inlining modular code as can now be done by brute-force expansion,
+
179 * but now, enough of them seem not to.
+
180 *
+
181 * Some compilers issue a lot of warnings about code that is
+
182 * dead/unreachable only on some platforms, and also about intentional
+
183 * uses of negation on unsigned types. All known cases of each can be
+
184 * ignored.
+
185 *
+
186 * For a longer but out of date high-level description, see
+
187 * http://gee.cs.oswego.edu/dl/html/malloc.html
+
188 *
+
189 * MSPACES
+
190 * If MSPACES is defined, then in addition to malloc, free, etc.,
+
191 * this file also defines mspace_malloc, mspace_free, etc. These
+
192 * are versions of malloc routines that take an "mspace" argument
+
193 * obtained using create_mspace, to control all internal bookkeeping.
+
194 * If ONLY_MSPACES is defined, only these versions are compiled.
+
195 * So if you would like to use this allocator for only some allocations,
+
196 * and your system malloc for others, you can compile with
+
197 * ONLY_MSPACES and then do something like...
+
198 * static mspace mymspace = create_mspace(0,0); // for example
+
199 #define mymalloc(bytes) mspace_malloc(mymspace, bytes)
+
200 *
+
201 * (Note: If you only need one instance of an mspace, you can instead
+
202 * use "USE_DL_PREFIX" to relabel the global malloc.)
+
203 *
+
204 * You can similarly create thread-local allocators by storing
+
205 * mspaces as thread-locals. For example:
+
206 * static __thread mspace tlms = 0;
+
207 * void* tlmalloc(size_t bytes) {
+
208 * if (tlms == 0) tlms = create_mspace(0, 0);
+
209 * return mspace_malloc(tlms, bytes);
+
210 * }
+
211 * void tlfree(void* mem) { mspace_free(tlms, mem); }
+
212 *
+
213 * Unless FOOTERS is defined, each mspace is completely independent.
+
214 * You cannot allocate from one and free to another (although
+
215 * conformance is only weakly checked, so usage errors are not always
+
216 * caught). If FOOTERS is defined, then each chunk carries around a tag
+
217 * indicating its originating mspace, and frees are directed to their
+
218 * originating spaces. Normally, this requires use of locks.
+
219 *
+
220 * ------------------------- Compile-time options ---------------------------
+
221 *
+
222 * Be careful in setting #define values for numerical constants of type
+
223 * size_t. On some systems, literal values are not automatically extended
+
224 * to size_t precision unless they are explicitly casted. You can also
+
225 * use the symbolic values MAX_SIZE_T, SIZE_T_ONE, etc below.
+
226 *
+
227 * WIN32 default: defined if _WIN32 defined
+
228 * Defining WIN32 sets up defaults for MS environment and compilers.
+
229 * Otherwise defaults are for unix. Beware that there seem to be some
+
230 * cases where this malloc might not be a pure drop-in replacement for
+
231 * Win32 malloc: Random-looking failures from Win32 GDI API's (eg;
+
232 * SetDIBits()) may be due to bugs in some video driver implementations
+
233 * when pixel buffers are malloc()ed, and the region spans more than
+
234 * one VirtualAlloc()ed region. Because dlmalloc uses a small (64Kb)
+
235 * default granularity, pixel buffers may straddle virtual allocation
+
236 * regions more often than when using the Microsoft allocator. You can
+
237 * avoid this by using VirtualAlloc() and VirtualFree() for all pixel
+
238 * buffers rather than using malloc(). If this is not possible,
+
239 * recompile this malloc with a larger DEFAULT_GRANULARITY. Note:
+
240 * in cases where MSC and gcc (cygwin) are known to differ on WIN32,
+
241 * conditions use _MSC_VER to distinguish them.
+
242 *
+
243 * DLMALLOC_EXPORT default: extern
+
244 * Defines how public APIs are declared. If you want to export via a
+
245 * Windows DLL, you might define this as
+
246 #define DLMALLOC_EXPORT extern __declspec(dllexport)
+
247 * If you want a POSIX ELF shared object, you might use
+
248 #define DLMALLOC_EXPORT extern __attribute__((visibility("default")))
+
249 *
+
250 * MALLOC_ALIGNMENT default: (size_t)(2 * sizeof(void *))
+
251 * Controls the minimum alignment for malloc'ed chunks. It must be a
+
252 * power of two and at least 8, even on machines for which smaller
+
253 * alignments would suffice. It may be defined as larger than this
+
254 * though. Note however that code and data structures are optimized for
+
255 * the case of 8-byte alignment.
+
256 *
+
257 * MSPACES default: 0 (false)
+
258 * If true, compile in support for independent allocation spaces.
+
259 * This is only supported if HAVE_MMAP is true.
+
260 *
+
261 * ONLY_MSPACES default: 0 (false)
+
262 * If true, only compile in mspace versions, not regular versions.
+
263 *
+
264 * USE_LOCKS default: 0 (false)
+
265 * Causes each call to each public routine to be surrounded with
+
266 * pthread or WIN32 mutex lock/unlock. (If set true, this can be
+
267 * overridden on a per-mspace basis for mspace versions.) If set to a
+
268 * non-zero value other than 1, locks are used, but their
+
269 * implementation is left out, so lock functions must be supplied manually,
+
270 * as described below.
+
271 *
+
272 * USE_SPIN_LOCKS default: 1 iff USE_LOCKS and spin locks available
+
273 * If true, uses custom spin locks for locking. This is currently
+
274 * supported only gcc >= 4.1, older gccs on x86 platforms, and recent
+
275 * MS compilers. Otherwise, posix locks or win32 critical sections are
+
276 * used.
+
277 *
+
278 * USE_RECURSIVE_LOCKS default: not defined
+
279 * If defined nonzero, uses recursive (aka reentrant) locks, otherwise
+
280 * uses plain mutexes. This is not required for malloc proper, but may
+
281 * be needed for layered allocators such as nedmalloc.
+
282 *
+
283 * LOCK_AT_FORK default: not defined
+
284 * If defined nonzero, performs pthread_atfork upon initialization
+
285 * to initialize child lock while holding parent lock. The implementation
+
286 * assumes that pthread locks (not custom locks) are being used. In other
+
287 * cases, you may need to customize the implementation.
+
288 *
+
289 * FOOTERS default: 0
+
290 * If true, provide extra checking and dispatching by placing
+
291 * information in the footers of allocated chunks. This adds
+
292 * space and time overhead.
+
293 *
+
294 * INSECURE default: 0
+
295 * If true, omit checks for usage errors and heap space overwrites.
+
296 *
+
297 * USE_DL_PREFIX default: NOT defined
+
298 * Causes compiler to prefix all public routines with the string 'dl'.
+
299 * This can be useful when you only want to use this malloc in one part
+
300 * of a program, using your regular system malloc elsewhere.
+
301 *
+
302 * MALLOC_INSPECT_ALL default: NOT defined
+
303 * If defined, compiles malloc_inspect_all and mspace_inspect_all, that
+
304 * perform traversal of all heap space. Unless access to these
+
305 * functions is otherwise restricted, you probably do not want to
+
306 * include them in secure implementations.
+
307 *
+
308 * ABORT default: defined as abort()
+
309 * Defines how to abort on failed checks. On most systems, a failed
+
310 * check cannot die with an "assert" or even print an informative
+
311 * message, because the underlying print routines in turn call malloc,
+
312 * which will fail again. Generally, the best policy is to simply call
+
313 * abort(). It's not very useful to do more than this because many
+
314 * errors due to overwriting will show up as address faults (null, odd
+
315 * addresses etc) rather than malloc-triggered checks, so will also
+
316 * abort. Also, most compilers know that abort() does not return, so
+
317 * can better optimize code conditionally calling it.
+
318 *
+
319 * PROCEED_ON_ERROR default: defined as 0 (false)
+
320 * Controls whether detected bad addresses cause them to bypassed
+
321 * rather than aborting. If set, detected bad arguments to free and
+
322 * realloc are ignored. And all bookkeeping information is zeroed out
+
323 * upon a detected overwrite of freed heap space, thus losing the
+
324 * ability to ever return it from malloc again, but enabling the
+
325 * application to proceed. If PROCEED_ON_ERROR is defined, the
+
326 * static variable malloc_corruption_error_count is compiled in
+
327 * and can be examined to see if errors have occurred. This option
+
328 * generates slower code than the default abort policy.
+
329 *
+
330 * DEBUG default: NOT defined
+
331 * The DEBUG setting is mainly intended for people trying to modify
+
332 * this code or diagnose problems when porting to new platforms.
+
333 * However, it may also be able to better isolate user errors than just
+
334 * using runtime checks. The assertions in the check routines spell
+
335 * out in more detail the assumptions and invariants underlying the
+
336 * algorithms. The checking is fairly extensive, and will slow down
+
337 * execution noticeably. Calling malloc_stats or mallinfo with DEBUG
+
338 * set will attempt to check every non-mmapped allocated and free chunk
+
339 * in the course of computing the summaries.
+
340 *
+
341 * ABORT_ON_ASSERT_FAILURE default: defined as 1 (true)
+
342 * Debugging assertion failures can be nearly impossible if your
+
343 * version of the assert macro causes malloc to be called, which will
+
344 * lead to a cascade of further failures, blowing the runtime stack.
+
345 * ABORT_ON_ASSERT_FAILURE cause assertions failures to call abort(),
+
346 * which will usually make debugging easier.
+
347 *
+
348 * MALLOC_FAILURE_ACTION default: sets errno to ENOMEM, or no-op on win32
+
349 * The action to take before "return 0" when malloc fails to be able to
+
350 * return memory because there is none available.
+
351 *
+
352 * HAVE_MORECORE default: 1 (true) unless win32 or ONLY_MSPACES
+
353 * True if this system supports sbrk or an emulation of it.
+
354 *
+
355 * MORECORE default: sbrk
+
356 * The name of the sbrk-style system routine to call to obtain more
+
357 * memory. See below for guidance on writing custom MORECORE
+
358 * functions. The type of the argument to sbrk/MORECORE varies across
+
359 * systems. It cannot be size_t, because it supports negative
+
360 * arguments, so it is normally the signed type of the same width as
+
361 * size_t (sometimes declared as "intptr_t"). It doesn't much matter
+
362 * though. Internally, we only call it with arguments less than half
+
363 * the max value of a size_t, which should work across all reasonable
+
364 * possibilities, although sometimes generating compiler warnings.
+
365 *
+
366 * MORECORE_CONTIGUOUS default: 1 (true) if HAVE_MORECORE
+
367 * If true, take advantage of fact that consecutive calls to MORECORE
+
368 * with positive arguments always return contiguous increasing
+
369 * addresses. This is true of unix sbrk. It does not hurt too much to
+
370 * set it true anyway, since malloc copes with non-contiguities.
+
371 * Setting it false when definitely non-contiguous saves time
+
372 * and possibly wasted space it would take to discover this though.
+
373 *
+
374 * MORECORE_CANNOT_TRIM default: NOT defined
+
375 * True if MORECORE cannot release space back to the system when given
+
376 * negative arguments. This is generally necessary only if you are
+
377 * using a hand-crafted MORECORE function that cannot handle negative
+
378 * arguments.
+
379 *
+
380 * NO_SEGMENT_TRAVERSAL default: 0
+
381 * If non-zero, suppresses traversals of memory segments
+
382 * returned by either MORECORE or CALL_MMAP. This disables
+
383 * merging of segments that are contiguous, and selectively
+
384 * releasing them to the OS if unused, but bounds execution times.
+
385 *
+
386 * HAVE_MMAP default: 1 (true)
+
387 * True if this system supports mmap or an emulation of it. If so, and
+
388 * HAVE_MORECORE is not true, MMAP is used for all system
+
389 * allocation. If set and HAVE_MORECORE is true as well, MMAP is
+
390 * primarily used to directly allocate very large blocks. It is also
+
391 * used as a backup strategy in cases where MORECORE fails to provide
+
392 * space from system. Note: A single call to MUNMAP is assumed to be
+
393 * able to unmap memory that may have be allocated using multiple calls
+
394 * to MMAP, so long as they are adjacent.
+
395 *
+
396 * HAVE_MREMAP default: 1 on linux, else 0
+
397 * If true realloc() uses mremap() to re-allocate large blocks and
+
398 * extend or shrink allocation spaces.
+
399 *
+
400 * MMAP_CLEARS default: 1 except on WINCE.
+
401 * True if mmap clears memory so calloc doesn't need to. This is true
+
402 * for standard unix mmap using /dev/zero and on WIN32 except for WINCE.
+
403 *
+
404 * USE_BUILTIN_FFS default: 0 (i.e., not used)
+
405 * Causes malloc to use the builtin ffs() function to compute indices.
+
406 * Some compilers may recognize and intrinsify ffs to be faster than the
+
407 * supplied C version. Also, the case of x86 using gcc is special-cased
+
408 * to an asm instruction, so is already as fast as it can be, and so
+
409 * this setting has no effect. Similarly for Win32 under recent MS compilers.
+
410 * (On most x86s, the asm version is only slightly faster than the C version.)
+
411 *
+
412 * malloc_getpagesize default: derive from system includes, or 4096.
+
413 * The system page size. To the extent possible, this malloc manages
+
414 * memory from the system in page-size units. This may be (and
+
415 * usually is) a function rather than a constant. This is ignored
+
416 * if WIN32, where page size is determined using getSystemInfo during
+
417 * initialization.
+
418 *
+
419 * USE_DEV_RANDOM default: 0 (i.e., not used)
+
420 * Causes malloc to use /dev/random to initialize secure magic seed for
+
421 * stamping footers. Otherwise, the current time is used.
+
422 *
+
423 * NO_MALLINFO default: 0
+
424 * If defined, don't compile "mallinfo". This can be a simple way
+
425 * of dealing with mismatches between system declarations and
+
426 * those in this file.
+
427 *
+
428 * MALLINFO_FIELD_TYPE default: size_t
+
429 * The type of the fields in the mallinfo struct. This was originally
+
430 * defined as "int" in SVID etc, but is more usefully defined as
+
431 * size_t. The value is used only if HAVE_USR_INCLUDE_MALLOC_H is not set
+
432 *
+
433 * NO_MALLOC_STATS default: 0
+
434 * If defined, don't compile "malloc_stats". This avoids calls to
+
435 * fprintf and bringing in stdio dependencies you might not want.
+
436 *
+
437 * REALLOC_ZERO_BYTES_FREES default: not defined
+
438 * This should be set if a call to realloc with zero bytes should
+
439 * be the same as a call to free. Some people think it should. Otherwise,
+
440 * since this malloc returns a unique pointer for malloc(0), so does
+
441 * realloc(p, 0).
+
442 *
+
443 * LACKS_UNISTD_H, LACKS_FCNTL_H, LACKS_SYS_PARAM_H, LACKS_SYS_MMAN_H
+
444 * LACKS_STRINGS_H, LACKS_STRING_H, LACKS_SYS_TYPES_H, LACKS_ERRNO_H
+
445 * LACKS_STDLIB_H LACKS_SCHED_H LACKS_TIME_H default: NOT defined unless on WIN32
+
446 * Define these if your system does not have these header files.
+
447 * You might need to manually insert some of the declarations they provide.
+
448 *
+
449 * DEFAULT_GRANULARITY default: page size if MORECORE_CONTIGUOUS,
+
450 * system_info.dwAllocationGranularity in WIN32,
+
451 * otherwise 64K.
+
452 * Also settable using mallopt(M_GRANULARITY, x)
+
453 * The unit for allocating and deallocating memory from the system. On
+
454 * most systems with contiguous MORECORE, there is no reason to
+
455 * make this more than a page. However, systems with MMAP tend to
+
456 * either require or encourage larger granularities. You can increase
+
457 * this value to prevent system allocation functions to be called so
+
458 * often, especially if they are slow. The value must be at least one
+
459 * page and must be a power of two. Setting to 0 causes initialization
+
460 * to either page size or win32 region size. (Note: In previous
+
461 * versions of malloc, the equivalent of this option was called
+
462 * "TOP_PAD")
+
463 *
+
464 * DEFAULT_TRIM_THRESHOLD default: 2MB
+
465 * Also settable using mallopt(M_TRIM_THRESHOLD, x)
+
466 * The maximum amount of unused top-most memory to keep before
+
467 * releasing via malloc_trim in free(). Automatic trimming is mainly
+
468 * useful in long-lived programs using contiguous MORECORE. Because
+
469 * trimming via sbrk can be slow on some systems, and can sometimes be
+
470 * wasteful (in cases where programs immediately afterward allocate
+
471 * more large chunks) the value should be high enough so that your
+
472 * overall system performance would improve by releasing this much
+
473 * memory. As a rough guide, you might set to a value close to the
+
474 * average size of a process (program) running on your system.
+
475 * Releasing this much memory would allow such a process to run in
+
476 * memory. Generally, it is worth tuning trim thresholds when a
+
477 * program undergoes phases where several large chunks are allocated
+
478 * and released in ways that can reuse each other's storage, perhaps
+
479 * mixed with phases where there are no such chunks at all. The trim
+
480 * value must be greater than page size to have any useful effect. To
+
481 * disable trimming completely, you can set to MAX_SIZE_T. Note that the trick
+
482 * some people use of mallocing a huge space and then freeing it at
+
483 * program startup, in an attempt to reserve system memory, doesn't
+
484 * have the intended effect under automatic trimming, since that memory
+
485 * will immediately be returned to the system.
+
486 *
+
487 * DEFAULT_MMAP_THRESHOLD default: 256K
+
488 * Also settable using mallopt(M_MMAP_THRESHOLD, x)
+
489 * The request size threshold for using MMAP to directly service a
+
490 * request. Requests of at least this size that cannot be allocated
+
491 * using already-existing space will be serviced via mmap. (If enough
+
492 * normal freed space already exists it is used instead.) Using mmap
+
493 * segregates relatively large chunks of memory so that they can be
+
494 * individually obtained and released from the host system. A request
+
495 * serviced through mmap is never reused by any other request (at least
+
496 * not directly; the system may just so happen to remap successive
+
497 * requests to the same locations). Segregating space in this way has
+
498 * the benefits that: Mmapped space can always be individually released
+
499 * back to the system, which helps keep the system level memory demands
+
500 * of a long-lived program low. Also, mapped memory doesn't become
+
501 * `locked' between other chunks, as can happen with normally allocated
+
502 * chunks, which means that even trimming via malloc_trim would not
+
503 * release them. However, it has the disadvantage that the space
+
504 * cannot be reclaimed, consolidated, and then used to service later
+
505 * requests, as happens with normal chunks. The advantages of mmap
+
506 * nearly always outweigh disadvantages for "large" chunks, but the
+
507 * value of "large" may vary across systems. The default is an
+
508 * empirically derived value that works well in most systems. You can
+
509 * disable mmap by setting to MAX_SIZE_T.
+
510 *
+
511 * MAX_RELEASE_CHECK_RATE default: 4095 unless not HAVE_MMAP
+
512 * The number of consolidated frees between checks to release
+
513 * unused segments when freeing. When using non-contiguous segments,
+
514 * especially with multiple mspaces, checking only for topmost space
+
515 * doesn't always suffice to trigger trimming. To compensate for this,
+
516 * free() will, with a period of MAX_RELEASE_CHECK_RATE (or the
+
517 * current number of segments, if greater) try to release unused
+
518 * segments to the OS when freeing chunks that result in
+
519 * consolidation. The best value for this parameter is a compromise
+
520 * between slowing down frees with relatively costly checks that
+
521 * rarely trigger versus holding on to unused memory. To effectively
+
522 * disable, set to MAX_SIZE_T. This may lead to a very slight speed
+
523 * improvement at the expense of carrying around more memory.
+
524 */
+
525
+
526/* Version identifier to allow people to support multiple versions */
+
527#ifndef DLMALLOC_VERSION
+
528#define DLMALLOC_VERSION 20806
+
529#endif /* DLMALLOC_VERSION */
+
530
+
531#ifndef DLMALLOC_EXPORT
+
532#define DLMALLOC_EXPORT extern
+
533#endif
+
534
+
535#ifndef WIN32
+
536#ifdef _WIN32
+
537#define WIN32 1
+
538#endif /* _WIN32 */
+
539#ifdef _WIN32_WCE
+
540#define LACKS_FCNTL_H
+
541#define WIN32 1
+
542#endif /* _WIN32_WCE */
+
543#endif /* WIN32 */
+
544#ifdef WIN32
+
545#define WIN32_LEAN_AND_MEAN
+
546#include <windows.h>
+
547#include <tchar.h>
+
548#define HAVE_MMAP 0
+
549#define HAVE_MORECORE 0
+
550#define LACKS_UNISTD_H
+
551#define LACKS_SYS_PARAM_H
+
552#define LACKS_SYS_MMAN_H
+
553#define LACKS_STRING_H
+
554#define LACKS_STRINGS_H
+
555#define LACKS_SYS_TYPES_H
+
556#define LACKS_ERRNO_H
+
557#define LACKS_SCHED_H
+
558#ifndef MALLOC_FAILURE_ACTION
+
559#define MALLOC_FAILURE_ACTION
+
560#endif /* MALLOC_FAILURE_ACTION */
+
561#ifndef MMAP_CLEARS
+
562#ifdef _WIN32_WCE /* WINCE reportedly does not clear */
+
563#define MMAP_CLEARS 0
+
564#else
+
565#define MMAP_CLEARS 1
+
566#endif /* _WIN32_WCE */
+
567#endif /*MMAP_CLEARS */
+
568#endif /* WIN32 */
+
569
+
570#if defined(DARWIN) || defined(_DARWIN)
+
571/* Mac OSX docs advise not to use sbrk; it seems better to use mmap */
+
572#ifndef HAVE_MORECORE
+
573#define HAVE_MORECORE 0
+
574#define HAVE_MMAP 0
+
575/* OSX allocators provide 16 byte alignment */
+
576#ifndef MALLOC_ALIGNMENT
+
577#define MALLOC_ALIGNMENT ((size_t) 16U)
+
578#endif
+
579#endif /* HAVE_MORECORE */
+
580#endif /* DARWIN */
+
581
+
582#ifndef LACKS_SYS_TYPES_H
+
583#include <sys/types.h> /* For size_t */
+
584#endif /* LACKS_SYS_TYPES_H */
+
585
+
586/* The maximum possible size_t value has all bits set */
+
587#define MAX_SIZE_T (~(size_t) 0)
+
588
+
589#ifndef USE_LOCKS /* ensure true if spin or recursive locks set */
+
590#define USE_LOCKS \
+
591 ((defined(USE_SPIN_LOCKS) && USE_SPIN_LOCKS != 0) || \
+
592 (defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0))
+
593#endif /* USE_LOCKS */
+
594
+
595#if USE_LOCKS /* Spin locks for gcc >= 4.1, older gcc on x86, MSC >= 1310 */
+
596#if ((defined(__GNUC__) && \
+
597 ((__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1)) || \
+
598 defined(__i386__) || defined(__x86_64__))) || \
+
599 (defined(_MSC_VER) && _MSC_VER >= 1310))
+
600#ifndef USE_SPIN_LOCKS
+
601#define USE_SPIN_LOCKS 1
+
602#endif /* USE_SPIN_LOCKS */
+
603#elif USE_SPIN_LOCKS
+
604#error "USE_SPIN_LOCKS defined without implementation"
+
605#endif /* ... locks available... */
+
606#elif !defined(USE_SPIN_LOCKS)
+
607#define USE_SPIN_LOCKS 0
+
608#endif /* USE_LOCKS */
+
609
+
610#ifndef ONLY_MSPACES
+
611#define ONLY_MSPACES 0
+
612#endif /* ONLY_MSPACES */
+
613#ifndef MSPACES
+
614#if ONLY_MSPACES
+
615#define MSPACES 1
+
616#else /* ONLY_MSPACES */
+
617#define MSPACES 0
+
618#endif /* ONLY_MSPACES */
+
619#endif /* MSPACES */
+
620#ifndef MALLOC_ALIGNMENT
+
621#define MALLOC_ALIGNMENT ((size_t) (2 * sizeof(void *)))
+
622#endif /* MALLOC_ALIGNMENT */
+
623#ifndef FOOTERS
+
624#define FOOTERS 0
+
625#endif /* FOOTERS */
+
626#ifndef ABORT
+
627#define ABORT abort()
+
628#endif /* ABORT */
+
629#ifndef ABORT_ON_ASSERT_FAILURE
+
630#define ABORT_ON_ASSERT_FAILURE 1
+
631#endif /* ABORT_ON_ASSERT_FAILURE */
+
632#ifndef PROCEED_ON_ERROR
+
633#define PROCEED_ON_ERROR 0
+
634#endif /* PROCEED_ON_ERROR */
+
635
+
636#ifndef INSECURE
+
637#define INSECURE 0
+
638#endif /* INSECURE */
+
639#ifndef MALLOC_INSPECT_ALL
+
640#define MALLOC_INSPECT_ALL 0
+
641#endif /* MALLOC_INSPECT_ALL */
+
642#ifndef HAVE_MMAP
+
643#define HAVE_MMAP 0
+
644#endif /* HAVE_MMAP */
+
645#ifndef MMAP_CLEARS
+
646#define MMAP_CLEARS 1
+
647#endif /* MMAP_CLEARS */
+
648#ifndef HAVE_MREMAP
+
649#ifdef linux
+
650#define HAVE_MREMAP 1
+
651#define _GNU_SOURCE /* Turns on mremap() definition */
+
652#else /* linux */
+
653#define HAVE_MREMAP 0
+
654#endif /* linux */
+
655#endif /* HAVE_MREMAP */
+
656#ifndef MALLOC_FAILURE_ACTION
+
657#define MALLOC_FAILURE_ACTION errno = ENOMEM;
+
658#endif /* MALLOC_FAILURE_ACTION */
+
659#ifndef HAVE_MORECORE
+
660#if ONLY_MSPACES
+
661#define HAVE_MORECORE 0
+
662#else /* ONLY_MSPACES */
+
663#define HAVE_MORECORE 1
+
664#endif /* ONLY_MSPACES */
+
665#endif /* HAVE_MORECORE */
+
666#if !HAVE_MORECORE
+
667#define MORECORE_CONTIGUOUS 0
+
668#else /* !HAVE_MORECORE */
+
669#define MORECORE_DEFAULT sbrk
+
670#ifndef MORECORE_CONTIGUOUS
+
671#define MORECORE_CONTIGUOUS 1
+
672#endif /* MORECORE_CONTIGUOUS */
+
673#endif /* HAVE_MORECORE */
+
674#ifndef DEFAULT_GRANULARITY
+
675#if (MORECORE_CONTIGUOUS || defined(WIN32))
+
676#define DEFAULT_GRANULARITY (0) /* 0 means to compute in init_mparams */
+
677#else /* MORECORE_CONTIGUOUS */
+
678#define DEFAULT_GRANULARITY ((size_t) 64U * (size_t) 1024U)
+
679#endif /* MORECORE_CONTIGUOUS */
+
680#endif /* DEFAULT_GRANULARITY */
+
681#ifndef DEFAULT_TRIM_THRESHOLD
+
682#ifndef MORECORE_CANNOT_TRIM
+
683#define DEFAULT_TRIM_THRESHOLD ((size_t) 2U * (size_t) 1024U * (size_t) 1024U)
+
684#else /* MORECORE_CANNOT_TRIM */
+
685#define DEFAULT_TRIM_THRESHOLD MAX_SIZE_T
+
686#endif /* MORECORE_CANNOT_TRIM */
+
687#endif /* DEFAULT_TRIM_THRESHOLD */
+
688#ifndef DEFAULT_MMAP_THRESHOLD
+
689#if HAVE_MMAP
+
690#define DEFAULT_MMAP_THRESHOLD ((size_t) 256U * (size_t) 1024U)
+
691#else /* HAVE_MMAP */
+
692#define DEFAULT_MMAP_THRESHOLD MAX_SIZE_T
+
693#endif /* HAVE_MMAP */
+
694#endif /* DEFAULT_MMAP_THRESHOLD */
+
695#ifndef MAX_RELEASE_CHECK_RATE
+
696#if HAVE_MMAP
+
697#define MAX_RELEASE_CHECK_RATE 4095
+
698#else
+
699#define MAX_RELEASE_CHECK_RATE MAX_SIZE_T
+
700#endif /* HAVE_MMAP */
+
701#endif /* MAX_RELEASE_CHECK_RATE */
+
702#ifndef USE_BUILTIN_FFS
+
703#define USE_BUILTIN_FFS 0
+
704#endif /* USE_BUILTIN_FFS */
+
705#ifndef USE_DEV_RANDOM
+
706#define USE_DEV_RANDOM 0
+
707#endif /* USE_DEV_RANDOM */
+
708#ifndef NO_MALLINFO
+
709#define NO_MALLINFO 0
+
710#endif /* NO_MALLINFO */
+
711#ifndef MALLINFO_FIELD_TYPE
+
712#define MALLINFO_FIELD_TYPE size_t
+
713#endif /* MALLINFO_FIELD_TYPE */
+
714#ifndef NO_MALLOC_STATS
+
715#define NO_MALLOC_STATS 0
+
716#endif /* NO_MALLOC_STATS */
+
717#ifndef NO_SEGMENT_TRAVERSAL
+
718#define NO_SEGMENT_TRAVERSAL 0
+
719#endif /* NO_SEGMENT_TRAVERSAL */
+
720
+
721/*
+
722 * mallopt tuning options. SVID/XPG defines four standard parameter
+
723 * numbers for mallopt, normally defined in malloc.h. None of these
+
724 * are used in this malloc, so setting them has no effect. But this
+
725 * malloc does support the following options.
+
726 */
+
727
+
728#ifndef HAVE_USR_INCLUDE_MALLOC_H
+
729#define M_TRIM_THRESHOLD (-1)
+
730#endif
+
731#define M_GRANULARITY (-2)
+
732#ifndef HAVE_USR_INCLUDE_MALLOC_H
+
733#define M_MMAP_THRESHOLD (-3)
+
734#endif
+
735/* ------------------------ Mallinfo declarations ------------------------ */
+
736
+
737#if !NO_MALLINFO
+
738
+
739/*
+
740 * This version of malloc supports the standard SVID/XPG mallinfo
+
741 * routine that returns a struct containing usage properties and
+
742 * statistics. It should work on any system that has a
+
743 * /usr/include/malloc.h defining struct mallinfo. The main
+
744 * declaration needed is the mallinfo struct that is returned (by-copy)
+
745 * by mallinfo(). The malloinfo struct contains a bunch of fields that
+
746 * are not even meaningful in this version of malloc. These fields are
+
747 * are instead filled by mallinfo() with other numbers that might be of
+
748 * interest.
+
749 *
+
750 * HAVE_USR_INCLUDE_MALLOC_H should be set if you have a
+
751 * /usr/include/malloc.h file that includes a declaration of struct
+
752 * mallinfo. If so, it is included; else a compliant version is
+
753 * declared below. These must be precisely the same for mallinfo() to
+
754 * work. The original SVID version of this struct, defined on most
+
755 * systems with mallinfo, declares all fields as ints. But some others
+
756 * define as unsigned long. If your system defines the fields using a
+
757 * type of different width than listed here, you MUST #include your
+
758 * system version and #define HAVE_USR_INCLUDE_MALLOC_H.
+
759 */
+
760
+
761/* #define HAVE_USR_INCLUDE_MALLOC_H */
+
762
+
763#ifdef HAVE_USR_INCLUDE_MALLOC_H
+
764#include "/usr/include/malloc.h"
+
765#else /* HAVE_USR_INCLUDE_MALLOC_H */
+
766#ifndef STRUCT_MALLINFO_DECLARED
+
767/* HP-UX (and others?) redefines mallinfo unless _STRUCT_MALLINFO is defined */
+
768#define _STRUCT_MALLINFO
+
769#define STRUCT_MALLINFO_DECLARED 1
+ +
771{
+
772 MALLINFO_FIELD_TYPE arena; /* non-mmapped space allocated from system */
+
773 MALLINFO_FIELD_TYPE ordblks; /* number of free chunks */
+ + +
776 MALLINFO_FIELD_TYPE hblkhd; /* space in mmapped regions */
+
777 MALLINFO_FIELD_TYPE usmblks; /* maximum total allocated space */
+ +
779 MALLINFO_FIELD_TYPE uordblks; /* total allocated space */
+
780 MALLINFO_FIELD_TYPE fordblks; /* total free space */
+
781 MALLINFO_FIELD_TYPE keepcost; /* releasable (via malloc_trim) space */
+
782};
+
783#endif /* STRUCT_MALLINFO_DECLARED */
+
784#endif /* HAVE_USR_INCLUDE_MALLOC_H */
+
785#endif /* NO_MALLINFO */
+
786
+
787/*
+
788 * Try to persuade compilers to inline. The most critical functions for
+
789 * inlining are defined as macros, so these aren't used for them.
+
790 */
+
791
+
792#ifndef FORCEINLINE
+
793#if defined(__GNUC__)
+
794#define FORCEINLINE __inline __attribute__((always_inline))
+
795#elif defined(_MSC_VER)
+
796#define FORCEINLINE __forceinline
+
797#endif
+
798#endif
+
799#ifndef NOINLINE
+
800#if defined(__GNUC__)
+
801#define NOINLINE __attribute__((noinline))
+
802#elif defined(_MSC_VER)
+
803#define NOINLINE __declspec(noinline)
+
804#else
+
805#define NOINLINE
+
806#endif
+
807#endif
+
808
+
809#ifdef __cplusplus
+
810extern "C" {
+
811#ifndef FORCEINLINE
+
812#define FORCEINLINE inline
+
813#endif
+
814#endif /* __cplusplus */
+
815#ifndef FORCEINLINE
+
816#define FORCEINLINE
+
817#endif
+
818
+
819#if !ONLY_MSPACES
+
820
+
821/* ------------------- Declarations of public routines ------------------- */
+
822
+
823#ifndef USE_DL_PREFIX
+
824#define dlcalloc calloc
+
825#define dlfree free
+
826#define dlmalloc malloc
+
827#define dlmemalign memalign
+
828#define dlposix_memalign posix_memalign
+
829#define dlrealloc realloc
+
830#define dlrealloc_in_place realloc_in_place
+
831#define dlvalloc valloc
+
832#define dlpvalloc pvalloc
+
833#define dlmallinfo mallinfo
+
834#define dlmallopt mallopt
+
835#define dlmalloc_trim malloc_trim
+
836#define dlmalloc_stats malloc_stats
+
837#define dlmalloc_usable_size malloc_usable_size
+
838#define dlmalloc_footprint malloc_footprint
+
839#define dlmalloc_max_footprint malloc_max_footprint
+
840#define dlmalloc_footprint_limit malloc_footprint_limit
+
841#define dlmalloc_set_footprint_limit malloc_set_footprint_limit
+
842#define dlmalloc_inspect_all malloc_inspect_all
+
843#define dlindependent_calloc independent_calloc
+
844#define dlindependent_comalloc independent_comalloc
+
845#define dlbulk_free bulk_free
+
846#endif /* USE_DL_PREFIX */
+
847
+
848/*
+
849 * malloc(size_t n)
+
850 * Returns a pointer to a newly allocated chunk of at least n bytes, or
+
851 * null if no space is available, in which case errno is set to ENOMEM
+
852 * on ANSI C systems.
+
853 *
+
854 * If n is zero, malloc returns a minimum-sized chunk. (The minimum
+
855 * size is 16 bytes on most 32bit systems, and 32 bytes on 64bit
+
856 * systems.) Note that size_t is an unsigned type, so calls with
+
857 * arguments that would be negative if signed are interpreted as
+
858 * requests for huge amounts of space, which will often fail. The
+
859 * maximum supported value of n differs across systems, but is in all
+
860 * cases less than the maximum representable value of a size_t.
+
861 */
+
862DLMALLOC_EXPORT void* dlmalloc(size_t);
+
863
+
864/*
+
865 * free(void* p)
+
866 * Releases the chunk of memory pointed to by p, that had been previously
+
867 * allocated using malloc or a related routine such as realloc.
+
868 * It has no effect if p is null. If p was not malloced or already
+
869 * freed, free(p) will by default cause the current program to abort.
+
870 */
+
871DLMALLOC_EXPORT void dlfree(void *);
+
872
+
873/*
+
874 * calloc(size_t n_elements, size_t element_size);
+
875 * Returns a pointer to n_elements * element_size bytes, with all locations
+
876 * set to zero.
+
877 */
+
878DLMALLOC_EXPORT void* dlcalloc(size_t, size_t);
+
879
+
880/*
+
881 * realloc(void* p, size_t n)
+
882 * Returns a pointer to a chunk of size n that contains the same data
+
883 * as does chunk p up to the minimum of (n, p's size) bytes, or null
+
884 * if no space is available.
+
885 *
+
886 * The returned pointer may or may not be the same as p. The algorithm
+
887 * prefers extending p in most cases when possible, otherwise it
+
888 * employs the equivalent of a malloc-copy-free sequence.
+
889 *
+
890 * If p is null, realloc is equivalent to malloc.
+
891 *
+
892 * If space is not available, realloc returns null, errno is set (if on
+
893 * ANSI) and p is NOT freed.
+
894 *
+
895 * if n is for fewer bytes than already held by p, the newly unused
+
896 * space is lopped off and freed if possible. realloc with a size
+
897 * argument of zero (re)allocates a minimum-sized chunk.
+
898 *
+
899 * The old unix realloc convention of allowing the last-free'd chunk
+
900 * to be used as an argument to realloc is not supported.
+
901 */
+
902DLMALLOC_EXPORT void* dlrealloc(void *, size_t);
+
903
+
904/*
+
905 * realloc_in_place(void* p, size_t n)
+
906 * Resizes the space allocated for p to size n, only if this can be
+
907 * done without moving p (i.e., only if there is adjacent space
+
908 * available if n is greater than p's current allocated size, or n is
+
909 * less than or equal to p's size). This may be used instead of plain
+
910 * realloc if an alternative allocation strategy is needed upon failure
+
911 * to expand space; for example, reallocation of a buffer that must be
+
912 * memory-aligned or cleared. You can use realloc_in_place to trigger
+
913 * these alternatives only when needed.
+
914 *
+
915 * Returns p if successful; otherwise null.
+
916 */
+
917DLMALLOC_EXPORT void* dlrealloc_in_place(void *, size_t);
+
918
+
919/*
+
920 * memalign(size_t alignment, size_t n);
+
921 * Returns a pointer to a newly allocated chunk of n bytes, aligned
+
922 * in accord with the alignment argument.
+
923 *
+
924 * The alignment argument should be a power of two. If the argument is
+
925 * not a power of two, the nearest greater power is used.
+
926 * 8-byte alignment is guaranteed by normal malloc calls, so don't
+
927 * bother calling memalign with an argument of 8 or less.
+
928 *
+
929 * Overreliance on memalign is a sure way to fragment space.
+
930 */
+
931DLMALLOC_EXPORT void* dlmemalign(size_t, size_t);
+
932
+
933/*
+
934 * int posix_memalign(void** pp, size_t alignment, size_t n);
+
935 * Allocates a chunk of n bytes, aligned in accord with the alignment
+
936 * argument. Differs from memalign only in that it (1) assigns the
+
937 * allocated memory to *pp rather than returning it, (2) fails and
+
938 * returns EINVAL if the alignment is not a power of two (3) fails and
+
939 * returns ENOMEM if memory cannot be allocated.
+
940 */
+
941DLMALLOC_EXPORT int dlposix_memalign(void **, size_t, size_t);
+
942
+
943/*
+
944 * valloc(size_t n);
+
945 * Equivalent to memalign(pagesize, n), where pagesize is the page
+
946 * size of the system. If the pagesize is unknown, 4096 is used.
+
947 */
+
948DLMALLOC_EXPORT void* dlvalloc(size_t);
+
949
+
950/*
+
951 * mallopt(int parameter_number, int parameter_value)
+
952 * Sets tunable parameters The format is to provide a
+
953 * (parameter-number, parameter-value) pair. mallopt then sets the
+
954 * corresponding parameter to the argument value if it can (i.e., so
+
955 * long as the value is meaningful), and returns 1 if successful else
+
956 * 0. To workaround the fact that mallopt is specified to use int,
+
957 * not size_t parameters, the value -1 is specially treated as the
+
958 * maximum unsigned size_t value.
+
959 *
+
960 * SVID/XPG/ANSI defines four standard param numbers for mallopt,
+
961 * normally defined in malloc.h. None of these are use in this malloc,
+
962 * so setting them has no effect. But this malloc also supports other
+
963 * options in mallopt. See below for details. Briefly, supported
+
964 * parameters are as follows (listed defaults are for "typical"
+
965 * configurations).
+
966 *
+
967 * Symbol param # default allowed param values
+
968 * M_TRIM_THRESHOLD -1 2*1024*1024 any (-1 disables)
+
969 * M_GRANULARITY -2 page size any power of 2 >= page size
+
970 * M_MMAP_THRESHOLD -3 256*1024 any (or 0 if no MMAP support)
+
971 */
+
972DLMALLOC_EXPORT int dlmallopt(int, int);
+
973
+
974/*
+
975 * malloc_footprint();
+
976 * Returns the number of bytes obtained from the system. The total
+
977 * number of bytes allocated by malloc, realloc etc., is less than this
+
978 * value. Unlike mallinfo, this function returns only a precomputed
+
979 * result, so can be called frequently to monitor memory consumption.
+
980 * Even if locks are otherwise defined, this function does not use them,
+
981 * so results might not be up to date.
+
982 */
+ +
984
+
985/*
+
986 * malloc_max_footprint();
+
987 * Returns the maximum number of bytes obtained from the system. This
+
988 * value will be greater than current footprint if deallocated space
+
989 * has been reclaimed by the system. The peak number of bytes allocated
+
990 * by malloc, realloc etc., is less than this value. Unlike mallinfo,
+
991 * this function returns only a precomputed result, so can be called
+
992 * frequently to monitor memory consumption. Even if locks are
+
993 * otherwise defined, this function does not use them, so results might
+
994 * not be up to date.
+
995 */
+ +
997
+
998/*
+
999 * malloc_footprint_limit();
+
1000 * Returns the number of bytes that the heap is allowed to obtain from
+
1001 * the system, returning the last value returned by
+
1002 * malloc_set_footprint_limit, or the maximum size_t value if
+
1003 * never set. The returned value reflects a permission. There is no
+
1004 * guarantee that this number of bytes can actually be obtained from
+
1005 * the system.
+
1006 */
+ +
1008
+
1009/*
+
1010 * malloc_set_footprint_limit();
+
1011 * Sets the maximum number of bytes to obtain from the system, causing
+
1012 * failure returns from malloc and related functions upon attempts to
+
1013 * exceed this value. The argument value may be subject to page
+
1014 * rounding to an enforceable limit; this actual value is returned.
+
1015 * Using an argument of the maximum possible size_t effectively
+
1016 * disables checks. If the argument is less than or equal to the
+
1017 * current malloc_footprint, then all future allocations that require
+
1018 * additional system memory will fail. However, invocation cannot
+
1019 * retroactively deallocate existing used memory.
+
1020 */
+ +
1022
+
1023#if MALLOC_INSPECT_ALL
+
1024
+
1025/*
+
1026 * malloc_inspect_all(void(*handler)(void *start,
+
1027 * void *end,
+
1028 * size_t used_bytes,
+
1029 * void* callback_arg),
+
1030 * void* arg);
+
1031 * Traverses the heap and calls the given handler for each managed
+
1032 * region, skipping all bytes that are (or may be) used for bookkeeping
+
1033 * purposes. Traversal does not include include chunks that have been
+
1034 * directly memory mapped. Each reported region begins at the start
+
1035 * address, and continues up to but not including the end address. The
+
1036 * first used_bytes of the region contain allocated data. If
+
1037 * used_bytes is zero, the region is unallocated. The handler is
+
1038 * invoked with the given callback argument. If locks are defined, they
+
1039 * are held during the entire traversal. It is a bad idea to invoke
+
1040 * other malloc functions from within the handler.
+
1041 *
+
1042 * For example, to count the number of in-use chunks with size greater
+
1043 * than 1000, you could write:
+
1044 * static int count = 0;
+
1045 * void count_chunks(void* start, void* end, size_t used, void* arg) {
+
1046 * if (used >= 1000) ++count;
+
1047 * }
+
1048 * then:
+
1049 * malloc_inspect_all(count_chunks, NULL);
+
1050 *
+
1051 * malloc_inspect_all is compiled only if MALLOC_INSPECT_ALL is defined.
+
1052 */
+
1053DLMALLOC_EXPORT void dlmalloc_inspect_all(void ( *handler )(void *, void *, size_t, void *),
+
1054 void *arg);
+
1055
+
1056#endif /* MALLOC_INSPECT_ALL */
+
1057
+
1058#if !NO_MALLINFO
+
1059
+
1060/*
+
1061 * mallinfo()
+
1062 * Returns (by copy) a struct containing various summary statistics:
+
1063 *
+
1064 * arena: current total non-mmapped bytes allocated from system
+
1065 * ordblks: the number of free chunks
+
1066 * smblks: always zero.
+
1067 * hblks: current number of mmapped regions
+
1068 * hblkhd: total bytes held in mmapped regions
+
1069 * usmblks: the maximum total allocated space. This will be greater
+
1070 * than current total if trimming has occurred.
+
1071 * fsmblks: always zero
+
1072 * uordblks: current total allocated space (normal or mmapped)
+
1073 * fordblks: total free space
+
1074 * keepcost: the maximum number of bytes that could ideally be released
+
1075 * back to system via malloc_trim. ("ideally" means that
+
1076 * it ignores page restrictions etc.)
+
1077 *
+
1078 * Because these fields are ints, but internal bookkeeping may
+
1079 * be kept as longs, the reported values may wrap around zero and
+
1080 * thus be inaccurate.
+
1081 */
+ +
1083#endif /* NO_MALLINFO */
+
1084
+
1085/*
+
1086 * independent_calloc(size_t n_elements, size_t element_size, void* chunks[]);
+
1087 *
+
1088 * independent_calloc is similar to calloc, but instead of returning a
+
1089 * single cleared space, it returns an array of pointers to n_elements
+
1090 * independent elements that can hold contents of size elem_size, each
+
1091 * of which starts out cleared, and can be independently freed,
+
1092 * realloc'ed etc. The elements are guaranteed to be adjacently
+
1093 * allocated (this is not guaranteed to occur with multiple callocs or
+
1094 * mallocs), which may also improve cache locality in some
+
1095 * applications.
+
1096 *
+
1097 * The "chunks" argument is optional (i.e., may be null, which is
+
1098 * probably the most typical usage). If it is null, the returned array
+
1099 * is itself dynamically allocated and should also be freed when it is
+
1100 * no longer needed. Otherwise, the chunks array must be of at least
+
1101 * n_elements in length. It is filled in with the pointers to the
+
1102 * chunks.
+
1103 *
+
1104 * In either case, independent_calloc returns this pointer array, or
+
1105 * null if the allocation failed. If n_elements is zero and "chunks"
+
1106 * is null, it returns a chunk representing an array with zero elements
+
1107 * (which should be freed if not wanted).
+
1108 *
+
1109 * Each element must be freed when it is no longer needed. This can be
+
1110 * done all at once using bulk_free.
+
1111 *
+
1112 * independent_calloc simplifies and speeds up implementations of many
+
1113 * kinds of pools. It may also be useful when constructing large data
+
1114 * structures that initially have a fixed number of fixed-sized nodes,
+
1115 * but the number is not known at compile time, and some of the nodes
+
1116 * may later need to be freed. For example:
+
1117 *
+
1118 * struct Node { int item; struct Node* next; };
+
1119 *
+
1120 * struct Node* build_list() {
+
1121 * struct Node** pool;
+
1122 * int n = read_number_of_nodes_needed();
+
1123 * if (n <= 0) return 0;
+
1124 * pool = (struct Node**)(independent_calloc(n, sizeof(struct Node), 0);
+
1125 * if (pool == 0) die();
+
1126 * // organize into a linked list...
+
1127 * struct Node* first = pool[0];
+
1128 * for (i = 0; i < n-1; ++i)
+
1129 * pool[i]->next = pool[i+1];
+
1130 * free(pool); // Can now free the array (or not, if it is needed later)
+
1131 * return first;
+
1132 * }
+
1133 */
+
1134DLMALLOC_EXPORT void** dlindependent_calloc(size_t, size_t, void **);
+
1135
+
1136/*
+
1137 * independent_comalloc(size_t n_elements, size_t sizes[], void* chunks[]);
+
1138 *
+
1139 * independent_comalloc allocates, all at once, a set of n_elements
+
1140 * chunks with sizes indicated in the "sizes" array. It returns
+
1141 * an array of pointers to these elements, each of which can be
+
1142 * independently freed, realloc'ed etc. The elements are guaranteed to
+
1143 * be adjacently allocated (this is not guaranteed to occur with
+
1144 * multiple callocs or mallocs), which may also improve cache locality
+
1145 * in some applications.
+
1146 *
+
1147 * The "chunks" argument is optional (i.e., may be null). If it is null
+
1148 * the returned array is itself dynamically allocated and should also
+
1149 * be freed when it is no longer needed. Otherwise, the chunks array
+
1150 * must be of at least n_elements in length. It is filled in with the
+
1151 * pointers to the chunks.
+
1152 *
+
1153 * In either case, independent_comalloc returns this pointer array, or
+
1154 * null if the allocation failed. If n_elements is zero and chunks is
+
1155 * null, it returns a chunk representing an array with zero elements
+
1156 * (which should be freed if not wanted).
+
1157 *
+
1158 * Each element must be freed when it is no longer needed. This can be
+
1159 * done all at once using bulk_free.
+
1160 *
+
1161 * independent_comallac differs from independent_calloc in that each
+
1162 * element may have a different size, and also that it does not
+
1163 * automatically clear elements.
+
1164 *
+
1165 * independent_comalloc can be used to speed up allocation in cases
+
1166 * where several structs or objects must always be allocated at the
+
1167 * same time. For example:
+
1168 *
+
1169 * struct Head { ... }
+
1170 * struct Foot { ... }
+
1171 *
+
1172 * void send_message(char* msg) {
+
1173 * int msglen = strlen(msg);
+
1174 * size_t sizes[3] = { sizeof(struct Head), msglen, sizeof(struct Foot) };
+
1175 * void* chunks[3];
+
1176 * if (independent_comalloc(3, sizes, chunks) == 0)
+
1177 * die();
+
1178 * struct Head* head = (struct Head*)(chunks[0]);
+
1179 * char* body = (char*)(chunks[1]);
+
1180 * struct Foot* foot = (struct Foot*)(chunks[2]);
+
1181 * // ...
+
1182 * }
+
1183 *
+
1184 * In general though, independent_comalloc is worth using only for
+
1185 * larger values of n_elements. For small values, you probably won't
+
1186 * detect enough difference from series of malloc calls to bother.
+
1187 *
+
1188 * Overuse of independent_comalloc can increase overall memory usage,
+
1189 * since it cannot reuse existing noncontiguous small chunks that
+
1190 * might be available for some of the elements.
+
1191 */
+
1192DLMALLOC_EXPORT void** dlindependent_comalloc(size_t, size_t *, void **);
+
1193
+
1194/*
+
1195 * bulk_free(void* array[], size_t n_elements)
+
1196 * Frees and clears (sets to null) each non-null pointer in the given
+
1197 * array. This is likely to be faster than freeing them one-by-one.
+
1198 * If footers are used, pointers that have been allocated in different
+
1199 * mspaces are not freed or cleared, and the count of all such pointers
+
1200 * is returned. For large arrays of pointers with poor locality, it
+
1201 * may be worthwhile to sort this array before calling bulk_free.
+
1202 */
+
1203DLMALLOC_EXPORT size_t dlbulk_free(void **, size_t n_elements);
+
1204
+
1205/*
+
1206 * pvalloc(size_t n);
+
1207 * Equivalent to valloc(minimum-page-that-holds(n)), that is,
+
1208 * round up n to nearest pagesize.
+
1209 */
+
1210DLMALLOC_EXPORT void* dlpvalloc(size_t);
+
1211
+
1212/*
+
1213 * malloc_trim(size_t pad);
+
1214 *
+
1215 * If possible, gives memory back to the system (via negative arguments
+
1216 * to sbrk) if there is unused memory at the `high' end of the malloc
+
1217 * pool or in unused MMAP segments. You can call this after freeing
+
1218 * large blocks of memory to potentially reduce the system-level memory
+
1219 * requirements of a program. However, it cannot guarantee to reduce
+
1220 * memory. Under some allocation patterns, some large free blocks of
+
1221 * memory will be locked between two used chunks, so they cannot be
+
1222 * given back to the system.
+
1223 *
+
1224 * The `pad' argument to malloc_trim represents the amount of free
+
1225 * trailing space to leave untrimmed. If this argument is zero, only
+
1226 * the minimum amount of memory to maintain internal data structures
+
1227 * will be left. Non-zero arguments can be supplied to maintain enough
+
1228 * trailing space to service future expected allocations without having
+
1229 * to re-obtain memory from the system.
+
1230 *
+
1231 * Malloc_trim returns 1 if it actually released any memory, else 0.
+
1232 */
+
1233DLMALLOC_EXPORT int dlmalloc_trim(size_t);
+
1234
+
1235/*
+
1236 * malloc_stats();
+
1237 * Prints on stderr the amount of space obtained from the system (both
+
1238 * via sbrk and mmap), the maximum amount (which may be more than
+
1239 * current if malloc_trim and/or munmap got called), and the current
+
1240 * number of bytes allocated via malloc (or realloc, etc) but not yet
+
1241 * freed. Note that this is the number of bytes allocated, not the
+
1242 * number requested. It will be larger than the number requested
+
1243 * because of alignment and bookkeeping overhead. Because it includes
+
1244 * alignment wastage as being in use, this figure may be greater than
+
1245 * zero even when no user-level chunks are allocated.
+
1246 *
+
1247 * The reported current and maximum system memory can be inaccurate if
+
1248 * a program makes other calls to system memory allocation functions
+
1249 * (normally sbrk) outside of malloc.
+
1250 *
+
1251 * malloc_stats prints only the most commonly interesting statistics.
+
1252 * More information can be obtained by calling mallinfo.
+
1253 */
+ +
1255
+
1256/*
+
1257 * malloc_usable_size(void* p);
+
1258 *
+
1259 * Returns the number of bytes you can actually use in
+
1260 * an allocated chunk, which may be more than you requested (although
+
1261 * often not) due to alignment and minimum size constraints.
+
1262 * You can use this many bytes without worrying about
+
1263 * overwriting other allocated objects. This is not a particularly great
+
1264 * programming practice. malloc_usable_size can be more useful in
+
1265 * debugging and assertions, for example:
+
1266 *
+
1267 * p = malloc(n);
+
1268 * assert(malloc_usable_size(p) >= 256);
+
1269 */
+
1270size_t dlmalloc_usable_size(void *);
+
1271
+
1272#endif /* ONLY_MSPACES */
+
1273
+
1274#if MSPACES
+
1275
+
1276/*
+
1277 * mspace is an opaque type representing an independent
+
1278 * region of space that supports mspace_malloc, etc.
+
1279 */
+
1280typedef void *mspace;
+
1281
+
1282/*
+
1283 * create_mspace creates and returns a new independent space with the
+
1284 * given initial capacity, or, if 0, the default granularity size. It
+
1285 * returns null if there is no system memory available to create the
+
1286 * space. If argument locked is non-zero, the space uses a separate
+
1287 * lock to control access. The capacity of the space will grow
+
1288 * dynamically as needed to service mspace_malloc requests. You can
+
1289 * control the sizes of incremental increases of this space by
+
1290 * compiling with a different DEFAULT_GRANULARITY or dynamically
+
1291 * setting with mallopt(M_GRANULARITY, value).
+
1292 */
+
1293DLMALLOC_EXPORT mspace create_mspace(size_t capacity, int locked);
+
1294
+
1295/*
+
1296 * destroy_mspace destroys the given space, and attempts to return all
+
1297 * of its memory back to the system, returning the total number of
+
1298 * bytes freed. After destruction, the results of access to all memory
+
1299 * used by the space become undefined.
+
1300 */
+
1301DLMALLOC_EXPORT size_t destroy_mspace(mspace msp);
+
1302
+
1303/*
+
1304 * create_mspace_with_base uses the memory supplied as the initial base
+
1305 * of a new mspace. Part (less than 128*sizeof(size_t) bytes) of this
+
1306 * space is used for bookkeeping, so the capacity must be at least this
+
1307 * large. (Otherwise 0 is returned.) When this initial space is
+
1308 * exhausted, additional memory will be obtained from the system.
+
1309 * Destroying this space will deallocate all additionally allocated
+
1310 * space (if possible) but not the initial base.
+
1311 */
+
1312DLMALLOC_EXPORT mspace create_mspace_with_base(void *base, size_t capacity, int locked);
+
1313
+
1314/*
+
1315 * mspace_track_large_chunks controls whether requests for large chunks
+
1316 * are allocated in their own untracked mmapped regions, separate from
+
1317 * others in this mspace. By default large chunks are not tracked,
+
1318 * which reduces fragmentation. However, such chunks are not
+
1319 * necessarily released to the system upon destroy_mspace. Enabling
+
1320 * tracking by setting to true may increase fragmentation, but avoids
+
1321 * leakage when relying on destroy_mspace to release all memory
+
1322 * allocated using this space. The function returns the previous
+
1323 * setting.
+
1324 */
+
1325DLMALLOC_EXPORT int mspace_track_large_chunks(mspace msp, int enable);
+
1326
+
1327
+
1328/*
+
1329 * mspace_malloc behaves as malloc, but operates within
+
1330 * the given space.
+
1331 */
+
1332DLMALLOC_EXPORT void* mspace_malloc(mspace msp, size_t bytes);
+
1333
+
1334/*
+
1335 * mspace_free behaves as free, but operates within
+
1336 * the given space.
+
1337 *
+
1338 * If compiled with FOOTERS==1, mspace_free is not actually needed.
+
1339 * free may be called instead of mspace_free because freed chunks from
+
1340 * any space are handled by their originating spaces.
+
1341 */
+
1342DLMALLOC_EXPORT void mspace_free(mspace msp, void *mem);
+
1343
+
1344/*
+
1345 * mspace_realloc behaves as realloc, but operates within
+
1346 * the given space.
+
1347 *
+
1348 * If compiled with FOOTERS==1, mspace_realloc is not actually
+
1349 * needed. realloc may be called instead of mspace_realloc because
+
1350 * realloced chunks from any space are handled by their originating
+
1351 * spaces.
+
1352 */
+
1353DLMALLOC_EXPORT void* mspace_realloc(mspace msp, void *mem, size_t newsize);
+
1354
+
1355/*
+
1356 * mspace_calloc behaves as calloc, but operates within
+
1357 * the given space.
+
1358 */
+
1359DLMALLOC_EXPORT void* mspace_calloc(mspace msp, size_t n_elements, size_t elem_size);
+
1360
+
1361/*
+
1362 * mspace_memalign behaves as memalign, but operates within
+
1363 * the given space.
+
1364 */
+
1365DLMALLOC_EXPORT void* mspace_memalign(mspace msp, size_t alignment, size_t bytes);
+
1366
+
1367/*
+
1368 * mspace_independent_calloc behaves as independent_calloc, but
+
1369 * operates within the given space.
+
1370 */
+
1371DLMALLOC_EXPORT void** mspace_independent_calloc(mspace msp, size_t n_elements,
+
1372 size_t elem_size, void *chunks[]);
+
1373
+
1374/*
+
1375 * mspace_independent_comalloc behaves as independent_comalloc, but
+
1376 * operates within the given space.
+
1377 */
+
1378DLMALLOC_EXPORT void** mspace_independent_comalloc(mspace msp, size_t n_elements,
+
1379 size_t sizes[], void *chunks[]);
+
1380
+
1381/*
+
1382 * mspace_footprint() returns the number of bytes obtained from the
+
1383 * system for this space.
+
1384 */
+
1385DLMALLOC_EXPORT size_t mspace_footprint(mspace msp);
+
1386
+
1387/*
+
1388 * mspace_max_footprint() returns the peak number of bytes obtained from the
+
1389 * system for this space.
+
1390 */
+
1391DLMALLOC_EXPORT size_t mspace_max_footprint(mspace msp);
+
1392
+
1393
+
1394#if !NO_MALLINFO
+
1395
+
1396/*
+
1397 * mspace_mallinfo behaves as mallinfo, but reports properties of
+
1398 * the given space.
+
1399 */
+
1400DLMALLOC_EXPORT struct mallinfo mspace_mallinfo(mspace msp);
+
1401#endif /* NO_MALLINFO */
+
1402
+
1403/*
+
1404 * malloc_usable_size(void* p) behaves the same as malloc_usable_size;
+
1405 */
+
1406DLMALLOC_EXPORT size_t mspace_usable_size(const void *mem);
+
1407
+
1408/*
+
1409 * mspace_malloc_stats behaves as malloc_stats, but reports
+
1410 * properties of the given space.
+
1411 */
+
1412DLMALLOC_EXPORT void mspace_malloc_stats(mspace msp);
+
1413
+
1414/*
+
1415 * mspace_trim behaves as malloc_trim, but
+
1416 * operates within the given space.
+
1417 */
+
1418DLMALLOC_EXPORT int mspace_trim(mspace msp, size_t pad);
+
1419
+
1420/*
+
1421 * An alias for mallopt.
+
1422 */
+
1423DLMALLOC_EXPORT int mspace_mallopt(int, int);
+
1424
+
1425#endif /* MSPACES */
+
1426
+
1427#ifdef __cplusplus
+
1428}/* end of extern "C" */
+
1429#endif /* __cplusplus */
+
1430
+
1431/*
+
1432 * ========================================================================
+
1433 * To make a fully customizable malloc.h header file, cut everything
+
1434 * above this line, put into file malloc.h, edit to suit, and #include it
+
1435 * on the next line, as well as in programs that use this malloc.
+
1436 * ========================================================================
+
1437 */
+
1438
+
1439/* #include "malloc.h" */
+
1440
+
1441/*------------------------------ internal #includes ---------------------- */
+
1442
+
1443#ifdef _MSC_VER
+
1444#pragma warning( disable : 4146 ) /* no "unsigned" warnings */
+
1445#endif /* _MSC_VER */
+
1446#if !NO_MALLOC_STATS
+
1447#include <stdio.h> /* for printing in malloc_stats */
+
1448#endif /* NO_MALLOC_STATS */
+
1449#ifndef LACKS_ERRNO_H
+
1450#include <errno.h> /* for MALLOC_FAILURE_ACTION */
+
1451#endif /* LACKS_ERRNO_H */
+
1452#ifdef DEBUG
+
1453#if ABORT_ON_ASSERT_FAILURE
+
1454#undef assert
+
1455#define assert(x) if (!(x)) ABORT
+
1456#else /* ABORT_ON_ASSERT_FAILURE */
+
1457#include <assert.h>
+
1458#endif /* ABORT_ON_ASSERT_FAILURE */
+
1459#else /* DEBUG */
+
1460#ifndef assert
+
1461#define assert(x)
+
1462#endif
+
1463#define DEBUG 0
+
1464#endif /* DEBUG */
+
1465#if !defined(WIN32) && !defined(LACKS_TIME_H)
+
1466#include <time.h> /* for magic initialization */
+
1467#endif /* WIN32 */
+
1468#ifndef LACKS_STDLIB_H
+
1469#include <stdlib.h> /* for abort() */
+
1470#endif /* LACKS_STDLIB_H */
+
1471#ifndef LACKS_STRING_H
+
1472#include <string.h> /* for memset etc */
+
1473#endif /* LACKS_STRING_H */
+
1474#if USE_BUILTIN_FFS
+
1475#ifndef LACKS_STRINGS_H
+
1476#include <strings.h> /* for ffs */
+
1477#endif /* LACKS_STRINGS_H */
+
1478#endif /* USE_BUILTIN_FFS */
+
1479#if HAVE_MMAP
+
1480#ifndef LACKS_SYS_MMAN_H
+
1481/* On some versions of linux, mremap decl in mman.h needs __USE_GNU set */
+
1482#if (defined(linux) && !defined(__USE_GNU))
+
1483#define __USE_GNU 1
+
1484#include <sys/mman.h> /* for mmap */
+
1485#undef __USE_GNU
+
1486#else
+
1487#include <sys/mman.h> /* for mmap */
+
1488#endif /* linux */
+
1489#endif /* LACKS_SYS_MMAN_H */
+
1490#ifndef LACKS_FCNTL_H
+
1491#include <fcntl.h>
+
1492#endif /* LACKS_FCNTL_H */
+
1493#endif /* HAVE_MMAP */
+
1494#ifndef LACKS_UNISTD_H
+
1495#include <unistd.h> /* for sbrk, sysconf */
+
1496#else /* LACKS_UNISTD_H */
+
1497#if !defined(__FreeBSD__) && !defined(__OpenBSD__) && !defined(__NetBSD__)
+
1498extern void* sbrk(ptrdiff_t);
+
1499#endif /* FreeBSD etc */
+
1500#endif /* LACKS_UNISTD_H */
+
1501
+
1502/* Declarations for locking */
+
1503#if USE_LOCKS
+
1504#ifndef WIN32
+
1505#if defined(__SVR4) && defined(__sun) /* solaris */
+
1506#include <thread.h>
+
1507#elif !defined(LACKS_SCHED_H)
+
1508#include <sched.h>
+
1509#endif /* solaris or LACKS_SCHED_H */
+
1510#if (defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0) || !USE_SPIN_LOCKS
+
1511#include <pthread.h>
+
1512#endif /* USE_RECURSIVE_LOCKS ... */
+
1513#elif defined(_MSC_VER)
+
1514#ifndef _M_AMD64
+
1515/* These are already defined on AMD64 builds */
+
1516#ifdef __cplusplus
+
1517extern "C" {
+
1518#endif /* __cplusplus */
+
1519LONG __cdecl _InterlockedCompareExchange(LONG volatile *Dest, LONG Exchange, LONG Comp);
+
1520LONG __cdecl _InterlockedExchange(LONG volatile *Target, LONG Value);
+
1521#ifdef __cplusplus
+
1522}
+
1523#endif /* __cplusplus */
+
1524#endif /* _M_AMD64 */
+
1525#pragma intrinsic (_InterlockedCompareExchange)
+
1526#pragma intrinsic (_InterlockedExchange)
+
1527#define interlockedcompareexchange _InterlockedCompareExchange
+
1528#define interlockedexchange _InterlockedExchange
+
1529#elif defined(WIN32) && defined(__GNUC__)
+
1530#define interlockedcompareexchange(a, b, c) __sync_val_compare_and_swap(a, c, b)
+
1531#define interlockedexchange __sync_lock_test_and_set
+
1532#endif /* Win32 */
+
1533#else /* USE_LOCKS */
+
1534#endif /* USE_LOCKS */
+
1535
+
1536#ifndef LOCK_AT_FORK
+
1537#define LOCK_AT_FORK 0
+
1538#endif
+
1539
+
1540/* Declarations for bit scanning on win32 */
+
1541#if defined(_MSC_VER) && _MSC_VER >= 1300
+
1542#ifndef BitScanForward /* Try to avoid pulling in WinNT.h */
+
1543#ifdef __cplusplus
+
1544extern "C" {
+
1545#endif /* __cplusplus */
+
1546unsigned char _BitScanForward(unsigned long *index, unsigned long mask);
+
1547unsigned char _BitScanReverse(unsigned long *index, unsigned long mask);
+
1548#ifdef __cplusplus
+
1549}
+
1550#endif /* __cplusplus */
+
1551
+
1552#define BitScanForward _BitScanForward
+
1553#define BitScanReverse _BitScanReverse
+
1554#pragma intrinsic(_BitScanForward)
+
1555#pragma intrinsic(_BitScanReverse)
+
1556#endif /* BitScanForward */
+
1557#endif /* defined(_MSC_VER) && _MSC_VER>=1300 */
+
1558
+
1559#ifndef WIN32
+
1560#ifndef malloc_getpagesize
+
1561#ifdef _SC_PAGESIZE /* some SVR4 systems omit an underscore */
+
1562#ifndef _SC_PAGE_SIZE
+
1563#define _SC_PAGE_SIZE _SC_PAGESIZE
+
1564#endif
+
1565#endif
+
1566#ifdef _SC_PAGE_SIZE
+
1567#define malloc_getpagesize sysconf(_SC_PAGE_SIZE)
+
1568#else
+
1569#if defined(BSD) || defined(DGUX) || defined(HAVE_GETPAGESIZE)
+
1570extern size_t getpagesize();
+
1571#define malloc_getpagesize getpagesize()
+
1572#else
+
1573#ifdef WIN32 /* use supplied emulation of getpagesize */
+
1574#define malloc_getpagesize getpagesize()
+
1575#else
+
1576#ifndef LACKS_SYS_PARAM_H
+
1577#include <sys/param.h>
+
1578#endif
+
1579#ifdef EXEC_PAGESIZE
+
1580#define malloc_getpagesize EXEC_PAGESIZE
+
1581#else
+
1582#ifdef NBPG
+
1583#ifndef CLSIZE
+
1584#define malloc_getpagesize NBPG
+
1585#else
+
1586#define malloc_getpagesize (NBPG * CLSIZE)
+
1587#endif
+
1588#else
+
1589#ifdef NBPC
+
1590#define malloc_getpagesize NBPC
+
1591#else
+
1592#ifdef PAGESIZE
+
1593#define malloc_getpagesize PAGESIZE
+
1594#else /* just guess */
+
1595#define malloc_getpagesize ((size_t) 4096U)
+
1596#endif
+
1597#endif
+
1598#endif /* ifdef NBPG */
+
1599#endif /* ifdef EXEC_PAGESIZE */
+
1600#endif /* ifdef WIN32 */
+
1601#endif /* if defined(BSD) || defined(DGUX) || defined(HAVE_GETPAGESIZE) */
+
1602#endif /* ifdef _SC_PAGE_SIZE */
+
1603#endif /* ifndef malloc_getpagesize */
+
1604#endif /* ifndef WIN32 */
+
1605
+
1606/* ------------------- size_t and alignment properties -------------------- */
+
1607
+
1608/* The byte and bit size of a size_t */
+
1609#define SIZE_T_SIZE (sizeof(size_t))
+
1610#define SIZE_T_BITSIZE (sizeof(size_t) << 3)
+
1611
+
1612/* Some constants coerced to size_t */
+
1613/* Annoying but necessary to avoid errors on some platforms */
+
1614#define SIZE_T_ZERO ((size_t) 0)
+
1615#define SIZE_T_ONE ((size_t) 1)
+
1616#define SIZE_T_TWO ((size_t) 2)
+
1617#define SIZE_T_FOUR ((size_t) 4)
+
1618#define TWO_SIZE_T_SIZES (SIZE_T_SIZE << 1)
+
1619#define FOUR_SIZE_T_SIZES (SIZE_T_SIZE << 2)
+
1620#define SIX_SIZE_T_SIZES (FOUR_SIZE_T_SIZES + TWO_SIZE_T_SIZES)
+
1621#define HALF_MAX_SIZE_T (MAX_SIZE_T / 2U)
+
1622
+
1623/* The bit mask value corresponding to MALLOC_ALIGNMENT */
+
1624#define CHUNK_ALIGN_MASK (MALLOC_ALIGNMENT - SIZE_T_ONE)
+
1625
+
1626/* True if address a has acceptable alignment */
+
1627#define is_aligned(A) (((size_t) ((A)) & (CHUNK_ALIGN_MASK)) == 0)
+
1628
+
1629/* the number of bytes to offset an address to align it */
+
1630#define align_offset(A) \
+
1631 ((((size_t) (A) &CHUNK_ALIGN_MASK) == 0) ? 0 : \
+
1632 ((MALLOC_ALIGNMENT - ((size_t) (A) &CHUNK_ALIGN_MASK)) & CHUNK_ALIGN_MASK))
+
1633
+
1634/* -------------------------- MMAP preliminaries ------------------------- */
+
1635
+
1636/*
+
1637 * If HAVE_MORECORE or HAVE_MMAP are false, we just define calls and
+
1638 * checks to fail so compiler optimizer can delete code rather than
+
1639 * using so many "#if"s.
+
1640 */
+
1641
+
1642
+
1643/* MORECORE and MMAP must return MFAIL on failure */
+
1644#define MFAIL ((void *) (MAX_SIZE_T))
+
1645#define CMFAIL ((char *) (MFAIL)) /* defined for convenience */
+
1646
+
1647#if HAVE_MMAP
+
1648
+
1649#ifndef WIN32
+
1650#define MUNMAP_DEFAULT(a, s) munmap((a), (s))
+
1651#define MMAP_PROT (PROT_READ | PROT_WRITE)
+
1652#if !defined(MAP_ANONYMOUS) && defined(MAP_ANON)
+
1653#define MAP_ANONYMOUS MAP_ANON
+
1654#endif /* MAP_ANON */
+
1655#ifdef MAP_ANONYMOUS
+
1656#define MMAP_FLAGS (MAP_PRIVATE | MAP_ANONYMOUS)
+
1657#define MMAP_DEFAULT(s) mmap(0, (s), MMAP_PROT, MMAP_FLAGS, -1, 0)
+
1658#else /* MAP_ANONYMOUS */
+
1659
+
1660/*
+
1661 * Nearly all versions of mmap support MAP_ANONYMOUS, so the following
+
1662 * is unlikely to be needed, but is supplied just in case.
+
1663 */
+
1664#define MMAP_FLAGS (MAP_PRIVATE)
+
1665static int dev_zero_fd = -1; /* Cached file descriptor for /dev/zero. */
+
1666#define MMAP_DEFAULT(s) \
+
1667 ((dev_zero_fd < 0) ? \
+
1668 (dev_zero_fd = open("/dev/zero", O_RDWR), \
+
1669 mmap(0, (s), MMAP_PROT, MMAP_FLAGS, dev_zero_fd, 0)) : \
+
1670 mmap(0, (s), MMAP_PROT, MMAP_FLAGS, dev_zero_fd, 0))
+
1671#endif /* MAP_ANONYMOUS */
+
1672
+
1673#define DIRECT_MMAP_DEFAULT(s) MMAP_DEFAULT(s)
+
1674
+
1675#else /* WIN32 */
+
1676
+
1677/* Win32 MMAP via VirtualAlloc */
+
1678static FORCEINLINE void* win32mmap(size_t size)
+
1679{
+
1680 void *ptr = VirtualAlloc(0, size, MEM_RESERVE | MEM_COMMIT, PAGE_READWRITE);
+
1681
+
1682 return (ptr != 0) ? ptr : MFAIL;
+
1683}
+
1684
+
1685/* For direct MMAP, use MEM_TOP_DOWN to minimize interference */
+
1686static FORCEINLINE void* win32direct_mmap(size_t size)
+
1687{
+
1688 void *ptr = VirtualAlloc(0, size, MEM_RESERVE | MEM_COMMIT | MEM_TOP_DOWN,
+
1689 PAGE_READWRITE);
+
1690
+
1691 return (ptr != 0) ? ptr : MFAIL;
+
1692}
+
1693
+
1694/* This function supports releasing coalesed segments */
+
1695static FORCEINLINE int win32munmap(void *ptr, size_t size)
+
1696{
+
1697 MEMORY_BASIC_INFORMATION minfo;
+
1698 char *cptr = (char *) ptr;
+
1699
+
1700 while (size) {
+
1701 if (VirtualQuery(cptr, &minfo, sizeof(minfo)) == 0)
+
1702 return -1;
+
1703
+
1704 if (minfo.BaseAddress != cptr || minfo.AllocationBase != cptr ||
+
1705 minfo.State != MEM_COMMIT || minfo.RegionSize > size)
+
1706 return -1;
+
1707
+
1708 if (VirtualFree(cptr, 0, MEM_RELEASE) == 0)
+
1709 return -1;
+
1710
+
1711 cptr += minfo.RegionSize;
+
1712 size -= minfo.RegionSize;
+
1713 }
+
1714 return 0;
+
1715}
+
1716
+
1717#define MMAP_DEFAULT(s) win32mmap(s)
+
1718#define MUNMAP_DEFAULT(a, s) win32munmap((a), (s))
+
1719#define DIRECT_MMAP_DEFAULT(s) win32direct_mmap(s)
+
1720#endif /* WIN32 */
+
1721#endif /* HAVE_MMAP */
+
1722
+
1723#if HAVE_MREMAP
+
1724#ifndef WIN32
+
1725#define MREMAP_DEFAULT(addr, osz, nsz, mv) mremap((addr), (osz), (nsz), (mv))
+
1726#endif /* WIN32 */
+
1727#endif /* HAVE_MREMAP */
+
1728
+
1732#if HAVE_MORECORE
+
1733#ifdef MORECORE
+
1734#define CALL_MORECORE(S) MORECORE(S)
+
1735#else /* MORECORE */
+
1736#define CALL_MORECORE(S) MORECORE_DEFAULT(S)
+
1737#endif /* MORECORE */
+
1738#else /* HAVE_MORECORE */
+
1739#define CALL_MORECORE(S) MFAIL
+
1740#endif /* HAVE_MORECORE */
+
1741
+
1742#include "../alloc.h"
+
1743
+
1744#define MMAP(s) arax_mmap(s)
+
1745#define DIRECT_MMAP(s) MMAP(s)
+
1746
+
1747#define MUNMAP(a, s) arax_ummap(a, s)
+
1748
+
1752#if HAVE_MMAP
+
1753#define USE_MMAP_BIT (SIZE_T_ONE)
+
1754
+
1755#ifdef MMAP
+
1756#define CALL_MMAP(s) MMAP(s)
+
1757#else /* MMAP */
+
1758#define CALL_MMAP(s) MMAP_DEFAULT(s)
+
1759#endif /* MMAP */
+
1760#ifdef MUNMAP
+
1761#define CALL_MUNMAP(a, s) arax_ummap((a), (s))
+
1762#else /* MUNMAP */
+
1763#define CALL_MUNMAP(a, s) MUNMAP_DEFAULT((a), (s))
+
1764#endif /* MUNMAP */
+
1765#ifdef DIRECT_MMAP
+
1766#define CALL_DIRECT_MMAP(s) DIRECT_MMAP(s)
+
1767#else /* DIRECT_MMAP */
+
1768#define CALL_DIRECT_MMAP(s) DIRECT_MMAP_DEFAULT(s)
+
1769#endif /* DIRECT_MMAP */
+
1770#else /* HAVE_MMAP */
+
1771#define USE_MMAP_BIT (SIZE_T_ZERO)
+
1772
+
1773#define MMAP(s) MFAIL
+
1774#define MUNMAP(a, s) (-1)
+
1775#define DIRECT_MMAP(s) MFAIL
+
1776#define CALL_DIRECT_MMAP(s) DIRECT_MMAP(s)
+
1777#define CALL_MMAP(s) MMAP(s)
+
1778#define CALL_MUNMAP(a, s) MUNMAP((a), (s))
+
1779#endif /* HAVE_MMAP */
+
1780
+
1784#if HAVE_MMAP && HAVE_MREMAP
+
1785#ifdef MREMAP
+
1786#define CALL_MREMAP(addr, osz, nsz, mv) MREMAP((addr), (osz), (nsz), (mv))
+
1787#else /* MREMAP */
+
1788#define CALL_MREMAP(addr, osz, nsz, mv) MREMAP_DEFAULT((addr), (osz), (nsz), (mv))
+
1789#endif /* MREMAP */
+
1790#else /* HAVE_MMAP && HAVE_MREMAP */
+
1791#define CALL_MREMAP(addr, osz, nsz, mv) MFAIL
+
1792#endif /* HAVE_MMAP && HAVE_MREMAP */
+
1793
+
1794/* mstate bit set if continguous morecore disabled or failed */
+
1795#define USE_NONCONTIGUOUS_BIT (4U)
+
1796
+
1797/* segment bit set in create_mspace_with_base */
+
1798#define EXTERN_BIT (8U)
+
1799
+
1800
+
1801/* --------------------------- Lock preliminaries ------------------------ */
+
1802
+
1803/*
+
1804 * When locks are defined, there is one global lock, plus
+
1805 * one per-mspace lock.
+
1806 *
+
1807 * The global lock_ensures that mparams.magic and other unique
+
1808 * mparams values are initialized only once. It also protects
+
1809 * sequences of calls to MORECORE. In many cases sys_alloc requires
+
1810 * two calls, that should not be interleaved with calls by other
+
1811 * threads. This does not protect against direct calls to MORECORE
+
1812 * by other threads not using this lock, so there is still code to
+
1813 * cope the best we can on interference.
+
1814 *
+
1815 * Per-mspace locks surround calls to malloc, free, etc.
+
1816 * By default, locks are simple non-reentrant mutexes.
+
1817 *
+
1818 * Because lock-protected regions generally have bounded times, it is
+
1819 * OK to use the supplied simple spinlocks. Spinlocks are likely to
+
1820 * improve performance for lightly contended applications, but worsen
+
1821 * performance under heavy contention.
+
1822 *
+
1823 * If USE_LOCKS is > 1, the definitions of lock routines here are
+
1824 * bypassed, in which case you will need to define the type MLOCK_T,
+
1825 * and at least INITIAL_LOCK, DESTROY_LOCK, ACQUIRE_LOCK, RELEASE_LOCK
+
1826 * and TRY_LOCK. You must also declare a
+
1827 * static MLOCK_T malloc_global_mutex = { initialization values };.
+
1828 *
+
1829 */
+
1830
+
1831#if !USE_LOCKS
+
1832#define USE_LOCK_BIT (0U)
+
1833#define INITIAL_LOCK(l) (0)
+
1834#define DESTROY_LOCK(l) (0)
+
1835#define ACQUIRE_MALLOC_GLOBAL_LOCK()
+
1836#define RELEASE_MALLOC_GLOBAL_LOCK()
+
1837
+
1838#else
+
1839#if USE_LOCKS > 1
+
1840/* ----------------------- User-defined locks ------------------------ */
+
1841/* Define your own lock implementation here */
+
1842/* #define INITIAL_LOCK(lk) ... */
+
1843/* #define DESTROY_LOCK(lk) ... */
+
1844/* #define ACQUIRE_LOCK(lk) ... */
+
1845/* #define RELEASE_LOCK(lk) ... */
+
1846/* #define TRY_LOCK(lk) ... */
+
1847/* static MLOCK_T malloc_global_mutex = ... */
+
1848
+
1849#elif USE_SPIN_LOCKS
+
1850
+
1851/* First, define CAS_LOCK and CLEAR_LOCK on ints */
+
1852/* Note CAS_LOCK defined to return 0 on success */
+
1853
+
1854#if defined(__GNUC__) && (__GNUC__ > 4 || (__GNUC__ == 4 && __GNUC_MINOR__ >= 1))
+
1855#define CAS_LOCK(sl) __sync_lock_test_and_set(sl, 1)
+
1856#define CLEAR_LOCK(sl) __sync_lock_release(sl)
+
1857
+
1858#elif (defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)))
+
1859/* Custom spin locks for older gcc on x86 */
+
1860static FORCEINLINE int x86_cas_lock(int *sl)
+
1861{
+
1862 int ret;
+
1863 int val = 1;
+
1864 int cmp = 0;
+
1865
+
1866 __asm__ __volatile__ ("lock; cmpxchgl %1, %2"
+
1867 : "=a" (ret)
+
1868 : "r" (val), "m" (*(sl)), "0" (cmp)
+
1869 : "memory", "cc");
+
1870 return ret;
+
1871}
+
1872
+
1873static FORCEINLINE void x86_clear_lock(int *sl)
+
1874{
+
1875 assert(*sl != 0);
+
1876 int prev = 0;
+
1877 int ret;
+
1878
+
1879 __asm__ __volatile__ ("lock; xchgl %0, %1"
+
1880 : "=r" (ret)
+
1881 : "m" (*(sl)), "0" (prev)
+
1882 : "memory");
+
1883}
+
1884
+
1885#define CAS_LOCK(sl) x86_cas_lock(sl)
+
1886#define CLEAR_LOCK(sl) x86_clear_lock(sl)
+
1887
+
1888#else /* Win32 MSC */
+
1889#define CAS_LOCK(sl) interlockedexchange(sl, (LONG) 1)
+
1890#define CLEAR_LOCK(sl) interlockedexchange(sl, (LONG) 0)
+
1891
+
1892#endif /* ... gcc spins locks ... */
+
1893
+
1894/* How to yield for a spin lock */
+
1895#define SPINS_PER_YIELD 63
+
1896#if defined(_MSC_VER)
+
1897#define SLEEP_EX_DURATION 50 /* delay for yield/sleep */
+
1898#define SPIN_LOCK_YIELD SleepEx(SLEEP_EX_DURATION, FALSE)
+
1899#elif defined(__SVR4) && defined(__sun) /* solaris */
+
1900#define SPIN_LOCK_YIELD thr_yield();
+
1901#elif !defined(LACKS_SCHED_H)
+
1902#define SPIN_LOCK_YIELD sched_yield();
+
1903#else
+
1904#define SPIN_LOCK_YIELD
+
1905#endif /* ... yield ... */
+
1906
+
1907#if !defined(USE_RECURSIVE_LOCKS) || USE_RECURSIVE_LOCKS == 0
+
1908/* Plain spin locks use single word (embedded in malloc_states) */
+
1909static int spin_acquire_lock(int *sl)
+
1910{
+
1911 int spins = 0;
+
1912
+
1913 while (*(volatile int *) sl != 0 || CAS_LOCK(sl)) {
+
1914 if ((++spins & SPINS_PER_YIELD) == 0) {
+
1915 SPIN_LOCK_YIELD;
+
1916 }
+
1917 }
+
1918 return 0;
+
1919}
+
1920
+
1921#define MLOCK_T int
+
1922#define TRY_LOCK(sl) !CAS_LOCK(sl)
+
1923#define RELEASE_LOCK(sl) CLEAR_LOCK(sl)
+
1924#define ACQUIRE_LOCK(sl) (CAS_LOCK(sl) ? spin_acquire_lock(sl) : 0)
+
1925#define INITIAL_LOCK(sl) (*sl = 0)
+
1926#define DESTROY_LOCK(sl) (0)
+
1927static MLOCK_T malloc_global_mutex = 0;
+
1928
+
1929#else /* USE_RECURSIVE_LOCKS */
+
1930/* types for lock owners */
+
1931#ifdef WIN32
+
1932#define THREAD_ID_T DWORD
+
1933#define CURRENT_THREAD GetCurrentThreadId()
+
1934#define EQ_OWNER(X, Y) ((X) == (Y))
+
1935#else
+
1936
+
1937/*
+
1938 * Note: the following assume that pthread_t is a type that can be
+
1939 * initialized to (casted) zero. If this is not the case, you will need to
+
1940 * somehow redefine these or not use spin locks.
+
1941 */
+
1942#define THREAD_ID_T pthread_t
+
1943#define CURRENT_THREAD pthread_self()
+
1944#define EQ_OWNER(X, Y) pthread_equal(X, Y)
+
1945#endif
+
1946
+
1947struct malloc_recursive_lock
+
1948{
+
1949 int sl;
+
1950 unsigned int c;
+
1951 THREAD_ID_T threadid;
+
1952};
+
1953
+
1954#define MLOCK_T struct malloc_recursive_lock
+
1955static MLOCK_T malloc_global_mutex = { 0, 0, (THREAD_ID_T) 0 };
+
1956
+
1957static FORCEINLINE void recursive_release_lock(MLOCK_T *lk)
+
1958{
+
1959 assert(lk->sl != 0);
+
1960 if (--lk->c == 0) {
+
1961 CLEAR_LOCK(&lk->sl);
+
1962 }
+
1963}
+
1964
+
1965static FORCEINLINE int recursive_acquire_lock(MLOCK_T *lk)
+
1966{
+
1967 THREAD_ID_T mythreadid = CURRENT_THREAD;
+
1968 int spins = 0;
+
1969
+
1970 for (;;) {
+
1971 if (*((volatile int *) (&lk->sl)) == 0) {
+
1972 if (!CAS_LOCK(&lk->sl)) {
+
1973 lk->threadid = mythreadid;
+
1974 lk->c = 1;
+
1975 return 0;
+
1976 }
+
1977 } else if (EQ_OWNER(lk->threadid, mythreadid)) {
+
1978 ++lk->c;
+
1979 return 0;
+
1980 }
+
1981 if ((++spins & SPINS_PER_YIELD) == 0) {
+
1982 SPIN_LOCK_YIELD;
+
1983 }
+
1984 }
+
1985}
+
1986
+
1987static FORCEINLINE int recursive_try_lock(MLOCK_T *lk)
+
1988{
+
1989 THREAD_ID_T mythreadid = CURRENT_THREAD;
+
1990
+
1991 if (*((volatile int *) (&lk->sl)) == 0) {
+
1992 if (!CAS_LOCK(&lk->sl)) {
+
1993 lk->threadid = mythreadid;
+
1994 lk->c = 1;
+
1995 return 1;
+
1996 }
+
1997 } else if (EQ_OWNER(lk->threadid, mythreadid)) {
+
1998 ++lk->c;
+
1999 return 1;
+
2000 }
+
2001 return 0;
+
2002}
+
2003
+
2004#define RELEASE_LOCK(lk) recursive_release_lock(lk)
+
2005#define TRY_LOCK(lk) recursive_try_lock(lk)
+
2006#define ACQUIRE_LOCK(lk) recursive_acquire_lock(lk)
+
2007#define INITIAL_LOCK(lk) ((lk)->threadid = (THREAD_ID_T) 0, (lk)->sl = 0, (lk)->c = 0)
+
2008#define DESTROY_LOCK(lk) (0)
+
2009#endif /* USE_RECURSIVE_LOCKS */
+
2010
+
2011#elif defined(WIN32) /* Win32 critical sections */
+
2012#define MLOCK_T CRITICAL_SECTION
+
2013#define ACQUIRE_LOCK(lk) (EnterCriticalSection(lk), 0)
+
2014#define RELEASE_LOCK(lk) LeaveCriticalSection(lk)
+
2015#define TRY_LOCK(lk) TryEnterCriticalSection(lk)
+
2016#define INITIAL_LOCK(lk) (!InitializeCriticalSectionAndSpinCount((lk), 0x80000000 | 4000))
+
2017#define DESTROY_LOCK(lk) (DeleteCriticalSection(lk), 0)
+
2018#define NEED_GLOBAL_LOCK_INIT
+
2019
+
2020static MLOCK_T malloc_global_mutex;
+
2021static volatile LONG malloc_global_mutex_status;
+
2022
+
2023/* Use spin loop to initialize global lock */
+
2024static void init_malloc_global_mutex()
+
2025{
+
2026 for (;;) {
+
2027 long stat = malloc_global_mutex_status;
+
2028 if (stat > 0)
+
2029 return;
+
2030
+
2031 /* transition to < 0 while initializing, then to > 0) */
+
2032 if (stat == 0 &&
+
2033 interlockedcompareexchange(&malloc_global_mutex_status, (LONG) -1, (LONG) 0) == 0)
+
2034 {
+
2035 InitializeCriticalSection(&malloc_global_mutex);
+
2036 interlockedexchange(&malloc_global_mutex_status, (LONG) 1);
+
2037 return;
+
2038 }
+
2039 SleepEx(0, FALSE);
+
2040 }
+
2041}
+
2042
+
2043#else /* pthreads-based locks */
+
2044#define MLOCK_T pthread_mutex_t
+
2045#define ACQUIRE_LOCK(lk) pthread_mutex_lock(lk)
+
2046#define RELEASE_LOCK(lk) pthread_mutex_unlock(lk)
+
2047#define TRY_LOCK(lk) (!pthread_mutex_trylock(lk))
+
2048#define INITIAL_LOCK(lk) pthread_init_lock(lk)
+
2049#define DESTROY_LOCK(lk) pthread_mutex_destroy(lk)
+
2050
+
2051#if defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0 && defined(linux) && !defined(PTHREAD_MUTEX_RECURSIVE)
+
2052/* Cope with old-style linux recursive lock initialization by adding */
+
2053/* skipped internal declaration from pthread.h */
+
2054extern int pthread_mutexattr_setkind_np __P((pthread_mutexattr_t *__attr,
+
2055 int __kind));
+
2056#define PTHREAD_MUTEX_RECURSIVE PTHREAD_MUTEX_RECURSIVE_NP
+
2057#define pthread_mutexattr_settype(x, y) pthread_mutexattr_setkind_np(x, y)
+
2058#endif /* USE_RECURSIVE_LOCKS ... */
+
2059
+
2060static MLOCK_T malloc_global_mutex = PTHREAD_MUTEX_INITIALIZER;
+
2061
+
2062static int pthread_init_lock(MLOCK_T *lk)
+
2063{
+
2064 pthread_mutexattr_t attr;
+
2065
+
2066 if (pthread_mutexattr_init(&attr)) return 1;
+
2067
+
2068 #if defined(USE_RECURSIVE_LOCKS) && USE_RECURSIVE_LOCKS != 0
+
2069 if (pthread_mutexattr_settype(&attr, PTHREAD_MUTEX_RECURSIVE)) return 1;
+
2070
+
2071 #endif
+
2072 if (pthread_mutex_init(lk, &attr)) return 1;
+
2073
+
2074 if (pthread_mutexattr_destroy(&attr)) return 1;
+
2075
+
2076 return 0;
+
2077}
+
2078
+
2079#endif /* ... lock types ... */
+
2080
+
2081/* Common code for all lock types */
+
2082#define USE_LOCK_BIT (2U)
+
2083
+
2084#ifndef ACQUIRE_MALLOC_GLOBAL_LOCK
+
2085#define ACQUIRE_MALLOC_GLOBAL_LOCK() ACQUIRE_LOCK(&malloc_global_mutex);
+
2086#endif
+
2087
+
2088#ifndef RELEASE_MALLOC_GLOBAL_LOCK
+
2089#define RELEASE_MALLOC_GLOBAL_LOCK() RELEASE_LOCK(&malloc_global_mutex);
+
2090#endif
+
2091
+
2092#endif /* USE_LOCKS */
+
2093
+
2094/* ----------------------- Chunk representations ------------------------ */
+
2095
+
2096/*
+
2097 * (The following includes lightly edited explanations by Colin Plumb.)
+
2098 *
+
2099 * The malloc_chunk declaration below is misleading (but accurate and
+
2100 * necessary). It declares a "view" into memory allowing access to
+
2101 * necessary fields at known offsets from a given base.
+
2102 *
+
2103 * Chunks of memory are maintained using a `boundary tag' method as
+
2104 * originally described by Knuth. (See the paper by Paul Wilson
+
2105 * ftp://ftp.cs.utexas.edu/pub/garbage/allocsrv.ps for a survey of such
+
2106 * techniques.) Sizes of free chunks are stored both in the front of
+
2107 * each chunk and at the end. This makes consolidating fragmented
+
2108 * chunks into bigger chunks fast. The head fields also hold bits
+
2109 * representing whether chunks are free or in use.
+
2110 *
+
2111 * Here are some pictures to make it clearer. They are "exploded" to
+
2112 * show that the state of a chunk can be thought of as extending from
+
2113 * the high 31 bits of the head field of its header through the
+
2114 * prev_foot and PINUSE_BIT bit of the following chunk header.
+
2115 *
+
2116 * A chunk that's in use looks like:
+
2117 *
+
2118 * chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2119 | Size of previous chunk (if P = 0) |
+
2120 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2121 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |P|
+
2122 | Size of this chunk 1| +-+
+
2123 | mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2124 | |
+
2125 +- -+
+
2126 | |
+
2127 +- -+
+
2128 | :
+
2129 +- size - sizeof(size_t) available payload bytes -+
+
2130 | : |
+
2131 | chunk-> +- -+
+
2132 | |
+
2133 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2134 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |1|
+
2135 | Size of next chunk (may or may not be in use) | +-+
+
2136 | mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2137 |
+
2138 | And if it's free, it looks like this:
+
2139 |
+
2140 | chunk-> +- -+
+
2141 | User payload (must be in use, or we would have merged!) |
+
2142 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2143 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |P|
+
2144 | Size of this chunk 0| +-+
+
2145 | mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2146 | Next pointer |
+
2147 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2148 | Prev pointer |
+
2149 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2150 | :
+
2151 +- size - sizeof(struct chunk) unused bytes -+
+
2152 | : |
+
2153 | chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2154 | Size of this chunk |
+
2155 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2156 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |0|
+
2157 | Size of next chunk (must be in use, or we would have merged)| +-+
+
2158 | mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2159 | :
+
2160 +- User payload -+
+
2161 | : |
+
2162 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2163 |0|
+
2164 +-+
+
2165 | Note that since we always merge adjacent free chunks, the chunks
+
2166 | adjacent to a free chunk must be in use.
+
2167 |
+
2168 | Given a pointer to a chunk (which can be derived trivially from the
+
2169 | payload pointer) we can, in O(1) time, find out whether the adjacent
+
2170 | chunks are free, and if so, unlink them from the lists that they
+
2171 | are on and merge them with the current chunk.
+
2172 |
+
2173 | Chunks always begin on even word boundaries, so the mem portion
+
2174 | (which is returned to the user) is also on an even word boundary, and
+
2175 | thus at least double-word aligned.
+
2176 |
+
2177 | The P (PINUSE_BIT) bit, stored in the unused low-order bit of the
+
2178 | chunk size (which is always a multiple of two words), is an in-use
+
2179 | bit for the *previous* chunk. If that bit is *clear*, then the
+
2180 | word before the current chunk size contains the previous chunk
+
2181 | size, and can be used to find the front of the previous chunk.
+
2182 | The very first chunk allocated always has this bit set, preventing
+
2183 | access to non-existent (or non-owned) memory. If pinuse is set for
+
2184 | any given chunk, then you CANNOT determine the size of the
+
2185 | previous chunk, and might even get a memory addressing fault when
+
2186 | trying to do so.
+
2187 |
+
2188 | The C (CINUSE_BIT) bit, stored in the unused second-lowest bit of
+
2189 | the chunk size redundantly records whether the current chunk is
+
2190 | inuse (unless the chunk is mmapped). This redundancy enables usage
+
2191 | checks within free and realloc, and reduces indirection when freeing
+
2192 | and consolidating chunks.
+
2193 |
+
2194 | Each freshly allocated chunk must have both cinuse and pinuse set.
+
2195 | That is, each allocated chunk borders either a previously allocated
+
2196 | and still in-use chunk, or the base of its memory arena. This is
+
2197 | ensured by making all allocations from the `lowest' part of any
+
2198 | found chunk. Further, no free chunk physically borders another one,
+
2199 | so each free chunk is known to be preceded and followed by either
+
2200 | inuse chunks or the ends of memory.
+
2201 |
+
2202 | Note that the `foot' of the current chunk is actually represented
+
2203 | as the prev_foot of the NEXT chunk. This makes it easier to
+
2204 | deal with alignments etc but can be very confusing when trying
+
2205 | to extend or adapt this code.
+
2206 |
+
2207 | The exceptions to all this are
+
2208 |
+
2209 | 1. The special chunk `top' is the top-most available chunk (i.e.,
+
2210 | the one bordering the end of available memory). It is treated
+
2211 | specially. Top is never included in any bin, is used only if
+
2212 | no other chunk is available, and is released back to the
+
2213 | system if it is very large (see M_TRIM_THRESHOLD). In effect,
+
2214 | the top chunk is treated as larger (and thus less well
+
2215 | fitting) than any other available chunk. The top chunk
+
2216 | doesn't update its trailing size field since there is no next
+
2217 | contiguous chunk that would have to index off it. However,
+
2218 | space is still allocated for it (TOP_FOOT_SIZE) to enable
+
2219 | separation or merging when space is extended.
+
2220 |
+
2221 | 3. Chunks allocated via mmap, have both cinuse and pinuse bits
+
2222 | cleared in their head fields. Because they are allocated
+
2223 | one-by-one, each must carry its own prev_foot field, which is
+
2224 | also used to hold the offset this chunk has within its mmapped
+
2225 | region, which is needed to preserve alignment. Each mmapped
+
2226 | chunk is trailed by the first two fields of a fake next-chunk
+
2227 | for sake of usage checks.
+
2228 |
+
2229 */
+
2230
+ +
2232{
+
2233 size_t prev_foot; /* Size of previous chunk (if free). */
+
2234 size_t head; /* Size and inuse bits. */
+
2235 struct malloc_chunk *fd; /* double links -- used only if free. */
+ +
2237};
+
2238
+
2239typedef struct malloc_chunk mchunk;
+
2240typedef struct malloc_chunk *mchunkptr;
+
2241typedef struct malloc_chunk *sbinptr; /* The type of bins of chunks */
+
2242typedef unsigned int bindex_t; /* Described below */
+
2243typedef unsigned int binmap_t; /* Described below */
+
2244typedef unsigned int flag_t; /* The type of various bit flag sets */
+
2245
+
2246/* ------------------- Chunks sizes and alignments ----------------------- */
+
2247
+
2248#define MCHUNK_SIZE (sizeof(mchunk))
+
2249
+
2250#if FOOTERS
+
2251#define CHUNK_OVERHEAD (TWO_SIZE_T_SIZES)
+
2252#else /* FOOTERS */
+
2253#define CHUNK_OVERHEAD (SIZE_T_SIZE)
+
2254#endif /* FOOTERS */
+
2255
+
2256/* MMapped chunks need a second word of overhead ... */
+
2257#define MMAP_CHUNK_OVERHEAD (TWO_SIZE_T_SIZES)
+
2258/* ... and additional padding for fake next-chunk at foot */
+
2259#define MMAP_FOOT_PAD (FOUR_SIZE_T_SIZES)
+
2260
+
2261/* The smallest size we can malloc is an aligned minimal chunk */
+
2262#define MIN_CHUNK_SIZE \
+
2263 ((MCHUNK_SIZE + CHUNK_ALIGN_MASK) & ~CHUNK_ALIGN_MASK)
+
2264
+
2265/* conversion from malloc headers to user pointers, and back */
+
2266#define chunk2mem(p) ((void *) ((char *) (p) + TWO_SIZE_T_SIZES))
+
2267#define mem2chunk(mem) ((mchunkptr) ((char *) (mem) - TWO_SIZE_T_SIZES))
+
2268/* chunk associated with aligned address A */
+
2269#define align_as_chunk(A) (mchunkptr) ((A) + align_offset(chunk2mem(A)))
+
2270
+
2271/* Bounds on request (not chunk) sizes. */
+
2272#define MAX_REQUEST ((-MIN_CHUNK_SIZE) << 2)
+
2273#define MIN_REQUEST (MIN_CHUNK_SIZE - CHUNK_OVERHEAD - SIZE_T_ONE)
+
2274
+
2275/* pad request bytes into a usable size */
+
2276#define pad_request(req) \
+
2277 (((req) + CHUNK_OVERHEAD + CHUNK_ALIGN_MASK) & ~CHUNK_ALIGN_MASK)
+
2278
+
2279/* pad request, checking for minimum (but not maximum) */
+
2280#define request2size(req) \
+
2281 (((req) < MIN_REQUEST) ? MIN_CHUNK_SIZE : pad_request(req))
+
2282
+
2283
+
2284/* ------------------ Operations on head and foot fields ----------------- */
+
2285
+
2286/*
+
2287 * The head field of a chunk is or'ed with PINUSE_BIT when previous
+
2288 * adjacent chunk in use, and or'ed with CINUSE_BIT if this chunk is in
+
2289 * use, unless mmapped, in which case both bits are cleared.
+
2290 *
+
2291 * FLAG4_BIT is not used by this malloc, but might be useful in extensions.
+
2292 */
+
2293
+
2294#define PINUSE_BIT (SIZE_T_ONE)
+
2295#define CINUSE_BIT (SIZE_T_TWO)
+
2296#define FLAG4_BIT (SIZE_T_FOUR)
+
2297#define INUSE_BITS (PINUSE_BIT | CINUSE_BIT)
+
2298#define FLAG_BITS (PINUSE_BIT | CINUSE_BIT | FLAG4_BIT)
+
2299
+
2300/* Head value for fenceposts */
+
2301#define FENCEPOST_HEAD (INUSE_BITS | SIZE_T_SIZE)
+
2302
+
2303/* extraction of fields from head words */
+
2304#define cinuse(p) ((p)->head & CINUSE_BIT)
+
2305#define pinuse(p) ((p)->head & PINUSE_BIT)
+
2306#define flag4inuse(p) ((p)->head & FLAG4_BIT)
+
2307#define is_inuse(p) (((p)->head & INUSE_BITS) != PINUSE_BIT)
+
2308#define is_mmapped(p) (((p)->head & INUSE_BITS) == 0)
+
2309
+
2310#define chunksize(p) ((p)->head & ~(FLAG_BITS))
+
2311
+
2312#define clear_pinuse(p) ((p)->head &= ~PINUSE_BIT)
+
2313#define set_flag4(p) ((p)->head |= FLAG4_BIT)
+
2314#define clear_flag4(p) ((p)->head &= ~FLAG4_BIT)
+
2315
+
2316/* Treat space at ptr +/- offset as a chunk */
+
2317#define chunk_plus_offset(p, s) ((mchunkptr) (((char *) (p)) + (s)))
+
2318#define chunk_minus_offset(p, s) ((mchunkptr) (((char *) (p)) - (s)))
+
2319
+
2320/* Ptr to next or previous physical malloc_chunk. */
+
2321#define next_chunk(p) ((mchunkptr) ( ((char *) (p)) + ((p)->head & ~FLAG_BITS)))
+
2322#define prev_chunk(p) ((mchunkptr) ( ((char *) (p)) - ((p)->prev_foot) ))
+
2323
+
2324/* extract next chunk's pinuse bit */
+
2325#define next_pinuse(p) ((next_chunk(p)->head) & PINUSE_BIT)
+
2326
+
2327/* Get/set size at footer */
+
2328#define get_foot(p, s) (((mchunkptr) ((char *) (p) + (s)))->prev_foot)
+
2329#define set_foot(p, s) (((mchunkptr) ((char *) (p) + (s)))->prev_foot = (s))
+
2330
+
2331/* Set size, pinuse bit, and foot */
+
2332#define set_size_and_pinuse_of_free_chunk(p, s) \
+
2333 ((p)->head = (s | PINUSE_BIT), set_foot(p, s))
+
2334
+
2335/* Set size, pinuse bit, foot, and clear next pinuse */
+
2336#define set_free_with_pinuse(p, s, n) \
+
2337 (clear_pinuse(n), set_size_and_pinuse_of_free_chunk(p, s))
+
2338
+
2339/* Get the internal overhead associated with chunk p */
+
2340#define overhead_for(p) \
+
2341 (is_mmapped(p) ? MMAP_CHUNK_OVERHEAD : CHUNK_OVERHEAD)
+
2342
+
2343/* Return true if malloced space is not necessarily cleared */
+
2344#if MMAP_CLEARS
+
2345#define calloc_must_clear(p) (!is_mmapped(p))
+
2346#else /* MMAP_CLEARS */
+
2347#define calloc_must_clear(p) (1)
+
2348#endif /* MMAP_CLEARS */
+
2349
+
2350/* ---------------------- Overlaid data structures ----------------------- */
+
2351
+
2352/*
+
2353 * When chunks are not in use, they are treated as nodes of either
+
2354 * lists or trees.
+
2355 *
+
2356 * "Small" chunks are stored in circular doubly-linked lists, and look
+
2357 * like this:
+
2358 *
+
2359 * chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2360 | Size of previous chunk |
+
2361 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2362 | `head:' | Size of chunk, in bytes |P|
+
2363 | mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2364 | Forward pointer to next chunk in list |
+
2365 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2366 | Back pointer to previous chunk in list |
+
2367 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2368 | Unused space (may be 0 bytes long) .
+
2369 | . .
+
2370 | . |
+
2371 | nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2372 | `foot:' | Size of chunk, in bytes |
+
2373 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2374 |
+
2375 | Larger chunks are kept in a form of bitwise digital trees (aka
+
2376 | tries) keyed on chunksizes. Because malloc_tree_chunks are only for
+
2377 | free chunks greater than 256 bytes, their size doesn't impose any
+
2378 | constraints on user chunk sizes. Each node looks like:
+
2379 |
+
2380 | chunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2381 | Size of previous chunk |
+
2382 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2383 | `head:' | Size of chunk, in bytes |P|
+
2384 | mem-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2385 | Forward pointer to next chunk of same size |
+
2386 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2387 | Back pointer to previous chunk of same size |
+
2388 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2389 | Pointer to left child (child[0]) |
+
2390 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2391 | Pointer to right child (child[1]) |
+
2392 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2393 | Pointer to parent |
+
2394 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2395 | bin index of this chunk |
+
2396 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2397 | Unused space .
+
2398 | . |
+
2399 | nextchunk-> +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2400 | `foot:' | Size of chunk, in bytes |
+
2401 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
+
2402 |
+
2403 | Each tree holding treenodes is a tree of unique chunk sizes. Chunks
+
2404 | of the same size are arranged in a circularly-linked list, with only
+
2405 | the oldest chunk (the next to be used, in our FIFO ordering)
+
2406 | actually in the tree. (Tree members are distinguished by a non-null
+
2407 | parent pointer.) If a chunk with the same size an an existing node
+
2408 | is inserted, it is linked off the existing node using pointers that
+
2409 | work in the same way as fd/bk pointers of small chunks.
+
2410 |
+
2411 | Each tree contains a power of 2 sized range of chunk sizes (the
+
2412 | smallest is 0x100 <= x < 0x180), which is is divided in half at each
+
2413 | tree level, with the chunks in the smaller half of the range (0x100
+
2414 | <= x < 0x140 for the top nose) in the left subtree and the larger
+
2415 | half (0x140 <= x < 0x180) in the right subtree. This is, of course,
+
2416 | done by inspecting individual bits.
+
2417 |
+
2418 | Using these rules, each node's left subtree contains all smaller
+
2419 | sizes than its right subtree. However, the node at the root of each
+
2420 | subtree has no particular ordering relationship to either. (The
+
2421 | dividing line between the subtree sizes is based on trie relation.)
+
2422 | If we remove the last chunk of a given size from the interior of the
+
2423 | tree, we need to replace it with a leaf node. The tree ordering
+
2424 | rules permit a node to be replaced by any leaf below it.
+
2425 |
+
2426 | The smallest chunk in a tree (a common operation in a best-fit
+
2427 | allocator) can be found by walking a path to the leftmost leaf in
+
2428 | the tree. Unlike a usual binary tree, where we follow left child
+
2429 | pointers until we reach a null, here we follow the right child
+
2430 | pointer any time the left one is null, until we reach a leaf with
+
2431 | both child pointers null. The smallest chunk in the tree will be
+
2432 | somewhere along that path.
+
2433 |
+
2434 | The worst case number of steps to add, find, or remove a node is
+
2435 | bounded by the number of bits differentiating chunks within
+
2436 | bins. Under current bin calculations, this ranges from 6 up to 21
+
2437 | (for 32 bit sizes) or up to 53 (for 64 bit sizes). The typical case
+
2438 | is of course much better.
+
2439 */
+
2440
+ +
2442{
+
2443 /* The first four fields must be compatible with malloc_chunk */
+ +
2445 size_t head;
+ + +
2448
+ + + +
2452};
+
2453
+ + +
2456typedef struct malloc_tree_chunk *tbinptr; /* The type of bins of trees */
+
2457
+
2458/* A little helper macro for trees */
+
2459#define leftmost_child(t) ((t)->child[0] != 0 ? (t)->child[0] : (t)->child[1])
+
2460
+
2461/* ----------------------------- Segments -------------------------------- */
+
2462
+
2463/*
+
2464 * Each malloc space may include non-contiguous segments, held in a
+
2465 * list headed by an embedded malloc_segment record representing the
+
2466 * top-most space. Segments also include flags holding properties of
+
2467 * the space. Large chunks that are directly allocated by mmap are not
+
2468 * included in this list. They are instead independently created and
+
2469 * destroyed without otherwise keeping track of them.
+
2470 *
+
2471 * Segment management mainly comes into play for spaces allocated by
+
2472 * MMAP. Any call to MMAP might or might not return memory that is
+
2473 * adjacent to an existing segment. MORECORE normally contiguously
+
2474 * extends the current space, so this space is almost always adjacent,
+
2475 * which is simpler and faster to deal with. (This is why MORECORE is
+
2476 * used preferentially to MMAP when both are available -- see
+
2477 * sys_alloc.) When allocating using MMAP, we don't use any of the
+
2478 * hinting mechanisms (inconsistently) supported in various
+
2479 * implementations of unix mmap, or distinguish reserving from
+
2480 * committing memory. Instead, we just ask for space, and exploit
+
2481 * contiguity when we get it. It is probably possible to do
+
2482 * better than this on some systems, but no general scheme seems
+
2483 * to be significantly better.
+
2484 *
+
2485 * Management entails a simpler variant of the consolidation scheme
+
2486 * used for chunks to reduce fragmentation -- new adjacent memory is
+
2487 * normally prepended or appended to an existing segment. However,
+
2488 * there are limitations compared to chunk consolidation that mostly
+
2489 * reflect the fact that segment processing is relatively infrequent
+
2490 * (occurring only when getting memory from system) and that we
+
2491 * don't expect to have huge numbers of segments:
+
2492 *
+
2493 * Segments are not indexed, so traversal requires linear scans. (It
+
2494 * would be possible to index these, but is not worth the extra
+
2495 * overhead and complexity for most programs on most platforms.)
+
2496 * New segments are only appended to old ones when holding top-most
+
2497 * memory; if they cannot be prepended to others, they are held in
+
2498 * different segments.
+
2499 *
+
2500 * Except for the top-most segment of an mstate, each segment record
+
2501 * is kept at the tail of its segment. Segments are added by pushing
+
2502 * segment records onto the list headed by &mstate.seg for the
+
2503 * containing mstate.
+
2504 *
+
2505 * Segment flags control allocation/merge/deallocation policies:
+
2506 * If EXTERN_BIT set, then we did not allocate this segment,
+
2507 * and so should not try to deallocate or merge with others.
+
2508 * (This currently holds only for the initial segment passed
+
2509 * into create_mspace_with_base.)
+
2510 * If USE_MMAP_BIT set, the segment may be merged with
+
2511 * other surrounding mmapped segments and trimmed/de-allocated
+
2512 * using munmap.
+
2513 * If neither bit is set, then the segment was obtained using
+
2514 * MORECORE so can be merged with surrounding MORECORE'd segments
+
2515 * and deallocated/trimmed using MORECORE with negative arguments.
+
2516 */
+
2517
+ +
2519{
+
2520 char * base; /* base address */
+
2521 size_t size; /* allocated size */
+
2522 struct malloc_segment *next; /* ptr to next segment */
+
2523 flag_t sflags; /* mmap and extern flag */
+
2524};
+
2525
+
2526#define is_mmapped_segment(S) ((S)->sflags & USE_MMAP_BIT)
+
2527#define is_extern_segment(S) ((S)->sflags & EXTERN_BIT)
+
2528
+ + +
2531
+
2532/* ---------------------------- malloc_state ----------------------------- */
+
2533
+
2534/*
+
2535 * A malloc_state holds all of the bookkeeping for a space.
+
2536 * The main fields are:
+
2537 *
+
2538 * Top
+
2539 * The topmost chunk of the currently active segment. Its size is
+
2540 * cached in topsize. The actual size of topmost space is
+
2541 * topsize+TOP_FOOT_SIZE, which includes space reserved for adding
+
2542 * fenceposts and segment records if necessary when getting more
+
2543 * space from the system. The size at which to autotrim top is
+
2544 * cached from mparams in trim_check, except that it is disabled if
+
2545 * an autotrim fails.
+
2546 *
+
2547 * Designated victim (dv)
+
2548 * This is the preferred chunk for servicing small requests that
+
2549 * don't have exact fits. It is normally the chunk split off most
+
2550 * recently to service another small request. Its size is cached in
+
2551 * dvsize. The link fields of this chunk are not maintained since it
+
2552 * is not kept in a bin.
+
2553 *
+
2554 * SmallBins
+
2555 * An array of bin headers for free chunks. These bins hold chunks
+
2556 * with sizes less than MIN_LARGE_SIZE bytes. Each bin contains
+
2557 * chunks of all the same size, spaced 8 bytes apart. To simplify
+
2558 * use in double-linked lists, each bin header acts as a malloc_chunk
+
2559 * pointing to the real first node, if it exists (else pointing to
+
2560 * itself). This avoids special-casing for headers. But to avoid
+
2561 * waste, we allocate only the fd/bk pointers of bins, and then use
+
2562 * repositioning tricks to treat these as the fields of a chunk.
+
2563 *
+
2564 * TreeBins
+
2565 * Treebins are pointers to the roots of trees holding a range of
+
2566 * sizes. There are 2 equally spaced treebins for each power of two
+
2567 * from TREE_SHIFT to TREE_SHIFT+16. The last bin holds anything
+
2568 * larger.
+
2569 *
+
2570 * Bin maps
+
2571 * There is one bit map for small bins ("smallmap") and one for
+
2572 * treebins ("treemap). Each bin sets its bit when non-empty, and
+
2573 * clears the bit when empty. Bit operations are then used to avoid
+
2574 * bin-by-bin searching -- nearly all "search" is done without ever
+
2575 * looking at bins that won't be selected. The bit maps
+
2576 * conservatively use 32 bits per map word, even if on 64bit system.
+
2577 * For a good description of some of the bit-based techniques used
+
2578 * here, see Henry S. Warren Jr's book "Hacker's Delight" (and
+
2579 * supplement at http://hackersdelight.org/). Many of these are
+
2580 * intended to reduce the branchiness of paths through malloc etc, as
+
2581 * well as to reduce the number of memory locations read or written.
+
2582 *
+
2583 * Segments
+
2584 * A list of segments headed by an embedded malloc_segment record
+
2585 * representing the initial space.
+
2586 *
+
2587 * Address check support
+
2588 * The least_addr field is the least address ever obtained from
+
2589 * MORECORE or MMAP. Attempted frees and reallocs of any address less
+
2590 * than this are trapped (unless INSECURE is defined).
+
2591 *
+
2592 * Magic tag
+
2593 * A cross-check field that should always hold same value as mparams.magic.
+
2594 *
+
2595 * Max allowed footprint
+
2596 * The maximum allowed bytes to allocate from system (zero means no limit)
+
2597 *
+
2598 * Flags
+
2599 * Bits recording whether to use MMAP, locks, or contiguous MORECORE
+
2600 *
+
2601 * Statistics
+
2602 * Each space keeps track of current and maximum system memory
+
2603 * obtained via MORECORE or MMAP.
+
2604 *
+
2605 * Trim support
+
2606 * Fields holding the amount of unused topmost memory that should trigger
+
2607 * trimming, and a counter to force periodic scanning to release unused
+
2608 * non-topmost segments.
+
2609 *
+
2610 * Locking
+
2611 * If USE_LOCKS is defined, the "mutex" lock is acquired and released
+
2612 * around every public call using this mspace.
+
2613 *
+
2614 * Extension support
+
2615 * A void* pointer and a size_t field that can be used to help implement
+
2616 * extensions to this malloc.
+
2617 */
+
2618
+
2619/* Bin types, widths and sizes */
+
2620#define NSMALLBINS (32U)
+
2621#define NTREEBINS (32U)
+
2622#define SMALLBIN_SHIFT (3U)
+
2623#define SMALLBIN_WIDTH (SIZE_T_ONE << SMALLBIN_SHIFT)
+
2624#define TREEBIN_SHIFT (8U)
+
2625#define MIN_LARGE_SIZE (SIZE_T_ONE << TREEBIN_SHIFT)
+
2626#define MAX_SMALL_SIZE (MIN_LARGE_SIZE - SIZE_T_ONE)
+
2627#define MAX_SMALL_REQUEST (MAX_SMALL_SIZE - CHUNK_ALIGN_MASK - CHUNK_OVERHEAD)
+
2628
+ +
2630{
+ + +
2633 size_t dvsize;
+
2634 size_t topsize;
+ + + + + +
2640 size_t magic;
+ + + + +
2645 size_t footprint_limit; /* zero means no limit */
+ +
2647 #if USE_LOCKS
+
2648 MLOCK_T mutex; /* locate lock among fields that rarely change */
+
2649 #endif /* USE_LOCKS */
+ +
2651 void * extp; /* Unused but available for extensions */
+
2652 size_t exts;
+
2653};
+
2654
+
2655typedef struct malloc_state *mstate;
+
2656
+
2657/* ------------- Global malloc_state and malloc_params ------------------- */
+
2658
+
2659/*
+
2660 * malloc_params holds global properties, including those that can be
+
2661 * dynamically set using mallopt. There is a single instance, mparams,
+
2662 * initialized in init_mparams. Note that the non-zeroness of "magic"
+
2663 * also serves as an initialization flag.
+
2664 */
+
2665
+ +
2667{
+
2668 size_t magic;
+ + + + + +
2674};
+
2675
+ +
2677
+
2678/* Ensure mparams initialized */
+
2679#define ensure_initialization() (void) (mparams.magic != 0 || init_mparams())
+
2680
+
2681#if !ONLY_MSPACES
+
2682
+
2683/* The global malloc_state used for all non-"mspace" calls */
+
2684static struct malloc_state _gm_;
+
2685#define gm (&_gm_)
+
2686#define is_global(M) ((M) == &_gm_)
+
2687
+
2688#endif /* !ONLY_MSPACES */
+
2689
+
2690#define is_initialized(M) ((M)->top != 0)
+
2691
+
2692/* -------------------------- system alloc setup ------------------------- */
+
2693
+
2694/* Operations on mflags */
+
2695
+
2696#define use_lock(M) ((M)->mflags & USE_LOCK_BIT)
+
2697#define enable_lock(M) ((M)->mflags |= USE_LOCK_BIT)
+
2698#if USE_LOCKS
+
2699#define disable_lock(M) ((M)->mflags &= ~USE_LOCK_BIT)
+
2700#else
+
2701#define disable_lock(M)
+
2702#endif
+
2703
+
2704#define use_mmap(M) ((M)->mflags & USE_MMAP_BIT)
+
2705#define enable_mmap(M) ((M)->mflags |= USE_MMAP_BIT)
+
2706#if HAVE_MMAP
+
2707#define disable_mmap(M) ((M)->mflags &= ~USE_MMAP_BIT)
+
2708#else
+
2709#define disable_mmap(M)
+
2710#endif
+
2711
+
2712#define use_noncontiguous(M) ((M)->mflags & USE_NONCONTIGUOUS_BIT)
+
2713#define disable_contiguous(M) ((M)->mflags |= USE_NONCONTIGUOUS_BIT)
+
2714
+
2715#define set_lock(M, L) \
+
2716 ((M)->mflags = (L) ? \
+
2717 ((M)->mflags | USE_LOCK_BIT) : \
+
2718 ((M)->mflags & ~USE_LOCK_BIT))
+
2719
+
2720/* page-align a size */
+
2721#define page_align(S) \
+
2722 (((S) + (mparams.page_size - SIZE_T_ONE)) & ~(mparams.page_size - SIZE_T_ONE))
+
2723
+
2724/* granularity-align a size */
+
2725#define granularity_align(S) \
+
2726 (((S) + (mparams.granularity - SIZE_T_ONE)) \
+
2727 & ~(mparams.granularity - SIZE_T_ONE))
+
2728
+
2729
+
2730/* For mmap, use granularity alignment on windows, else page-align */
+
2731#ifdef WIN32
+
2732#define mmap_align(S) granularity_align(S)
+
2733#else
+
2734#define mmap_align(S) page_align(S)
+
2735#endif
+
2736
+
2737/* For sys_alloc, enough padding to ensure can malloc request on success */
+
2738#define SYS_ALLOC_PADDING (TOP_FOOT_SIZE + MALLOC_ALIGNMENT)
+
2739
+
2740#define is_page_aligned(S) \
+
2741 (((size_t) (S) &(mparams.page_size - SIZE_T_ONE)) == 0)
+
2742#define is_granularity_aligned(S) \
+
2743 (((size_t) (S) &(mparams.granularity - SIZE_T_ONE)) == 0)
+
2744
+
2745/* True if segment S holds address A */
+
2746#define segment_holds(S, A) \
+
2747 ((char *) (A) >= S->base && (char *) (A) < S->base + S->size)
+
2748
+
2749/* Return segment holding given address */
+ +
2751{
+
2752 msegmentptr sp = &m->seg;
+
2753
+
2754 for (;;) {
+
2755 if (addr >= sp->base && addr < sp->base + sp->size)
+
2756 return sp;
+
2757
+
2758 if ((sp = sp->next) == 0)
+
2759 return 0;
+
2760 }
+
2761}
+
2762
+
2763/* Return true if segment contains a segment link */
+ +
2765{
+
2766 msegmentptr sp = &m->seg;
+
2767
+
2768 for (;;) {
+
2769 if ((char *) sp >= ss->base && (char *) sp < ss->base + ss->size)
+
2770 return 1;
+
2771
+
2772 if ((sp = sp->next) == 0)
+
2773 return 0;
+
2774 }
+
2775}
+
2776
+
2777#ifndef MORECORE_CANNOT_TRIM
+
2778#define should_trim(M, s) ((s) > (M)->trim_check)
+
2779#else /* MORECORE_CANNOT_TRIM */
+
2780#define should_trim(M, s) (0)
+
2781#endif /* MORECORE_CANNOT_TRIM */
+
2782
+
2783/*
+
2784 * TOP_FOOT_SIZE is padding at the end of a segment, including space
+
2785 * that may be needed to place segment records and fenceposts when new
+
2786 * noncontiguous segments are added.
+
2787 */
+
2788#define TOP_FOOT_SIZE \
+
2789 (align_offset(chunk2mem(0)) + pad_request(sizeof(struct malloc_segment)) + MIN_CHUNK_SIZE)
+
2790
+
2791
+
2792/* ------------------------------- Hooks -------------------------------- */
+
2793
+
2794/*
+
2795 * PREACTION should be defined to return 0 on success, and nonzero on
+
2796 * failure. If you are not using locking, you can redefine these to do
+
2797 * anything you like.
+
2798 */
+
2799
+
2800#if USE_LOCKS
+
2801#define PREACTION(M) ((use_lock(M)) ? ACQUIRE_LOCK(&(M)->mutex) : 0)
+
2802#define POSTACTION(M) { if (use_lock(M)) RELEASE_LOCK(&(M)->mutex); }
+
2803#else /* USE_LOCKS */
+
2804
+
2805#ifndef PREACTION
+
2806#define PREACTION(M) (0)
+
2807#endif /* PREACTION */
+
2808
+
2809#ifndef POSTACTION
+
2810#define POSTACTION(M)
+
2811#endif /* POSTACTION */
+
2812
+
2813#endif /* USE_LOCKS */
+
2814
+
2815/*
+
2816 * CORRUPTION_ERROR_ACTION is triggered upon detected bad addresses.
+
2817 * USAGE_ERROR_ACTION is triggered on detected bad frees and
+
2818 * reallocs. The argument p is an address that might have triggered the
+
2819 * fault. It is ignored by the two predefined actions, but might be
+
2820 * useful in custom actions that try to help diagnose errors.
+
2821 */
+
2822
+
2823#if PROCEED_ON_ERROR
+
2824
+
2825/* A count of the number of corruption errors causing resets */
+
2826int malloc_corruption_error_count;
+
2827
+
2828/* default corruption action */
+
2829static void reset_on_error(mstate m);
+
2830
+
2831#define CORRUPTION_ERROR_ACTION(m) reset_on_error(m)
+
2832#define USAGE_ERROR_ACTION(m, p)
+
2833
+
2834#else /* PROCEED_ON_ERROR */
+
2835
+
2836#ifndef CORRUPTION_ERROR_ACTION
+
2837#define CORRUPTION_ERROR_ACTION(m) ABORT
+
2838#endif /* CORRUPTION_ERROR_ACTION */
+
2839
+
2840#ifndef USAGE_ERROR_ACTION
+
2841#define USAGE_ERROR_ACTION(m, p) ABORT
+
2842#endif /* USAGE_ERROR_ACTION */
+
2843
+
2844#endif /* PROCEED_ON_ERROR */
+
2845
+
2846
+
2847/* -------------------------- Debugging setup ---------------------------- */
+
2848
+
2849#if !DEBUG
+
2850
+
2851#define check_free_chunk(M, P)
+
2852#define check_inuse_chunk(M, P)
+
2853#define check_malloced_chunk(M, P, N)
+
2854#define check_mmapped_chunk(M, P)
+
2855#define check_malloc_state(M)
+
2856#define check_top_chunk(M, P)
+
2857
+
2858#else /* DEBUG */
+
2859#define check_free_chunk(M, P) do_check_free_chunk(M, P)
+
2860#define check_inuse_chunk(M, P) do_check_inuse_chunk(M, P)
+
2861#define check_top_chunk(M, P) do_check_top_chunk(M, P)
+
2862#define check_malloced_chunk(M, P, N) do_check_malloced_chunk(M, P, N)
+
2863#define check_mmapped_chunk(M, P) do_check_mmapped_chunk(M, P)
+
2864#define check_malloc_state(M) do_check_malloc_state(M)
+
2865
+
2866static void do_check_any_chunk(mstate m, mchunkptr p);
+
2867static void do_check_top_chunk(mstate m, mchunkptr p);
+
2868static void do_check_mmapped_chunk(mstate m, mchunkptr p);
+
2869static void do_check_inuse_chunk(mstate m, mchunkptr p);
+
2870static void do_check_free_chunk(mstate m, mchunkptr p);
+
2871static void do_check_malloced_chunk(mstate m, void *mem, size_t s);
+
2872static void do_check_tree(mstate m, tchunkptr t);
+
2873static void do_check_treebin(mstate m, bindex_t i);
+
2874static void do_check_smallbin(mstate m, bindex_t i);
+
2875static void do_check_malloc_state(mstate m);
+
2876static int bin_find(mstate m, mchunkptr x);
+
2877static size_t traverse_and_check(mstate m);
+
2878#endif /* DEBUG */
+
2879
+
2880/* ---------------------------- Indexing Bins ---------------------------- */
+
2881
+
2882#define is_small(s) (((s) >> SMALLBIN_SHIFT) < NSMALLBINS)
+
2883#define small_index(s) (bindex_t) ((s) >> SMALLBIN_SHIFT)
+
2884#define small_index2size(i) ((i) << SMALLBIN_SHIFT)
+
2885#define MIN_SMALL_INDEX (small_index(MIN_CHUNK_SIZE))
+
2886
+
2887/* addressing by index. See above about smallbin repositioning */
+
2888#define smallbin_at(M, i) ((sbinptr) ((char *) &((M)->smallbins[(i) << 1])))
+
2889#define treebin_at(M, i) (&((M)->treebins[i]))
+
2890
+
2891/* assign tree index for size S to variable I. Use x86 asm if possible */
+
2892#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
+
2893#define compute_tree_index(S, I) \
+
2894 { \
+
2895 unsigned int X = S >> TREEBIN_SHIFT; \
+
2896 if (X == 0) \
+
2897 I = 0; \
+
2898 else if (X > 0xFFFF) \
+
2899 I = NTREEBINS - 1; \
+
2900 else { \
+
2901 unsigned int K = (unsigned) sizeof(X) * __CHAR_BIT__ - 1 - (unsigned) __builtin_clz(X); \
+
2902 I = (bindex_t) ((K << 1) + ((S >> (K + (TREEBIN_SHIFT - 1)) & 1))); \
+
2903 } \
+
2904 }
+
2905
+
2906#elif defined(__INTEL_COMPILER)
+
2907#define compute_tree_index(S, I) \
+
2908 { \
+
2909 size_t X = S >> TREEBIN_SHIFT; \
+
2910 if (X == 0) \
+
2911 I = 0; \
+
2912 else if (X > 0xFFFF) \
+
2913 I = NTREEBINS - 1; \
+
2914 else { \
+
2915 unsigned int K = _bit_scan_reverse(X); \
+
2916 I = (bindex_t) ((K << 1) + ((S >> (K + (TREEBIN_SHIFT - 1)) & 1))); \
+
2917 } \
+
2918 }
+
2919
+
2920#elif defined(_MSC_VER) && _MSC_VER >= 1300
+
2921#define compute_tree_index(S, I) \
+
2922 { \
+
2923 size_t X = S >> TREEBIN_SHIFT; \
+
2924 if (X == 0) \
+
2925 I = 0; \
+
2926 else if (X > 0xFFFF) \
+
2927 I = NTREEBINS - 1; \
+
2928 else { \
+
2929 unsigned int K; \
+
2930 _BitScanReverse((DWORD *) &K, (DWORD) X); \
+
2931 I = (bindex_t) ((K << 1) + ((S >> (K + (TREEBIN_SHIFT - 1)) & 1))); \
+
2932 } \
+
2933 }
+
2934
+
2935#else /* GNUC */
+
2936#define compute_tree_index(S, I) \
+
2937 { \
+
2938 size_t X = S >> TREEBIN_SHIFT; \
+
2939 if (X == 0) \
+
2940 I = 0; \
+
2941 else if (X > 0xFFFF) \
+
2942 I = NTREEBINS - 1; \
+
2943 else { \
+
2944 unsigned int Y = (unsigned int) X; \
+
2945 unsigned int N = ((Y - 0x100) >> 16) & 8; \
+
2946 unsigned int K = (((Y <<= N) - 0x1000) >> 16) & 4; \
+
2947 N += K; \
+
2948 N += K = (((Y <<= K) - 0x4000) >> 16) & 2; \
+
2949 K = 14 - N + ((Y <<= K) >> 15); \
+
2950 I = (K << 1) + ((S >> (K + (TREEBIN_SHIFT - 1)) & 1)); \
+
2951 } \
+
2952 }
+
2953#endif /* GNUC */
+
2954
+
2955/* Bit representing maximum resolved size in a treebin at i */
+
2956#define bit_for_tree_index(i) \
+
2957 (i == NTREEBINS - 1) ? (SIZE_T_BITSIZE - 1) : (((i) >> 1) + TREEBIN_SHIFT - 2)
+
2958
+
2959/* Shift placing maximum resolved bit in a treebin at i as sign bit */
+
2960#define leftshift_for_tree_index(i) \
+
2961 ((i == NTREEBINS - 1) ? 0 : \
+
2962 ((SIZE_T_BITSIZE - SIZE_T_ONE) - (((i) >> 1) + TREEBIN_SHIFT - 2)))
+
2963
+
2964/* The size of the smallest chunk held in bin with index i */
+
2965#define minsize_for_tree_index(i) \
+
2966 ((SIZE_T_ONE << (((i) >> 1) + TREEBIN_SHIFT)) \
+
2967 | (((size_t) ((i) & SIZE_T_ONE)) << (((i) >> 1) + TREEBIN_SHIFT - 1)))
+
2968
+
2969
+
2970/* ------------------------ Operations on bin maps ----------------------- */
+
2971
+
2972/* bit corresponding to given index */
+
2973#define idx2bit(i) ((binmap_t) (1) << (i))
+
2974
+
2975/* Mark/Clear bits with given index */
+
2976#define mark_smallmap(M, i) ((M)->smallmap |= idx2bit(i))
+
2977#define clear_smallmap(M, i) ((M)->smallmap &= ~idx2bit(i))
+
2978#define smallmap_is_marked(M, i) ((M)->smallmap & idx2bit(i))
+
2979
+
2980#define mark_treemap(M, i) ((M)->treemap |= idx2bit(i))
+
2981#define clear_treemap(M, i) ((M)->treemap &= ~idx2bit(i))
+
2982#define treemap_is_marked(M, i) ((M)->treemap & idx2bit(i))
+
2983
+
2984/* isolate the least set bit of a bitmap */
+
2985#define least_bit(x) ((x) & -(x))
+
2986
+
2987/* mask with all bits to left of least bit of x on */
+
2988#define left_bits(x) ((x << 1) | -(x << 1))
+
2989
+
2990/* mask with all bits to left of or equal to least bit of x on */
+
2991#define same_or_left_bits(x) ((x) | -(x))
+
2992
+
2993/* index corresponding to given bit. Use x86 asm if possible */
+
2994
+
2995#if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__))
+
2996#define compute_bit2idx(X, I) \
+
2997 { \
+
2998 unsigned int J; \
+
2999 J = __builtin_ctz(X); \
+
3000 I = (bindex_t) J; \
+
3001 }
+
3002
+
3003#elif defined(__INTEL_COMPILER)
+
3004#define compute_bit2idx(X, I) \
+
3005 { \
+
3006 unsigned int J; \
+
3007 J = _bit_scan_forward(X); \
+
3008 I = (bindex_t) J; \
+
3009 }
+
3010
+
3011#elif defined(_MSC_VER) && _MSC_VER >= 1300
+
3012#define compute_bit2idx(X, I) \
+
3013 { \
+
3014 unsigned int J; \
+
3015 _BitScanForward((DWORD *) &J, X); \
+
3016 I = (bindex_t) J; \
+
3017 }
+
3018
+
3019#elif USE_BUILTIN_FFS
+
3020#define compute_bit2idx(X, I) I = ffs(X) - 1
+
3021
+
3022#else /* if defined(__GNUC__) && (defined(__i386__) || defined(__x86_64__)) */
+
3023#define compute_bit2idx(X, I) \
+
3024 { \
+
3025 unsigned int Y = X - 1; \
+
3026 unsigned int K = Y >> (16 - 4) & 16; \
+
3027 unsigned int N = K; Y >>= K; \
+
3028 N += K = Y >> (8 - 3) & 8; Y >>= K; \
+
3029 N += K = Y >> (4 - 2) & 4; Y >>= K; \
+
3030 N += K = Y >> (2 - 1) & 2; Y >>= K; \
+
3031 N += K = Y >> (1 - 0) & 1; Y >>= K; \
+
3032 I = (bindex_t) (N + Y); \
+
3033 }
+
3034#endif /* GNUC */
+
3035
+
3036
+
3037/* ----------------------- Runtime Check Support ------------------------- */
+
3038
+
3039/*
+
3040 * For security, the main invariant is that malloc/free/etc never
+
3041 * writes to a static address other than malloc_state, unless static
+
3042 * malloc_state itself has been corrupted, which cannot occur via
+
3043 * malloc (because of these checks). In essence this means that we
+
3044 * believe all pointers, sizes, maps etc held in malloc_state, but
+
3045 * check all of those linked or offsetted from other embedded data
+
3046 * structures. These checks are interspersed with main code in a way
+
3047 * that tends to minimize their run-time cost.
+
3048 *
+
3049 * When FOOTERS is defined, in addition to range checking, we also
+
3050 * verify footer fields of inuse chunks, which can be used guarantee
+
3051 * that the mstate controlling malloc/free is intact. This is a
+
3052 * streamlined version of the approach described by William Robertson
+
3053 * et al in "Run-time Detection of Heap-based Overflows" LISA'03
+
3054 * http://www.usenix.org/events/lisa03/tech/robertson.html The footer
+
3055 * of an inuse chunk holds the xor of its mstate and a random seed,
+
3056 * that is checked upon calls to free() and realloc(). This is
+
3057 * (probabalistically) unguessable from outside the program, but can be
+
3058 * computed by any code successfully malloc'ing any chunk, so does not
+
3059 * itself provide protection against code that has already broken
+
3060 * security through some other means. Unlike Robertson et al, we
+
3061 * always dynamically check addresses of all offset chunks (previous,
+
3062 * next, etc). This turns out to be cheaper than relying on hashes.
+
3063 */
+
3064
+
3065#if !INSECURE
+
3066/* Check if address a is at least as high as any from MORECORE or MMAP */
+
3067#define ok_address(M, a) ((char *) (a) >= (M)->least_addr)
+
3068/* Check if address of next chunk n is higher than base chunk p */
+
3069#define ok_next(p, n) ((char *) (p) < (char *) (n))
+
3070/* Check if p has inuse status */
+
3071#define ok_inuse(p) is_inuse(p)
+
3072/* Check if p has its pinuse bit on */
+
3073#define ok_pinuse(p) pinuse(p)
+
3074
+
3075#else /* !INSECURE */
+
3076#define ok_address(M, a) (1)
+
3077#define ok_next(b, n) (1)
+
3078#define ok_inuse(p) (1)
+
3079#define ok_pinuse(p) (1)
+
3080#endif /* !INSECURE */
+
3081
+
3082#if (FOOTERS && !INSECURE)
+
3083/* Check if (alleged) mstate m has expected magic field */
+
3084#define ok_magic(M) ((M)->magic == mparams.magic)
+
3085#else /* (FOOTERS && !INSECURE) */
+
3086#define ok_magic(M) (1)
+
3087#endif /* (FOOTERS && !INSECURE) */
+
3088
+
3089/* In gcc, use __builtin_expect to minimize impact of checks */
+
3090#if !INSECURE
+
3091#if defined(__GNUC__) && __GNUC__ >= 3
+
3092#define RTCHECK(e) __builtin_expect(e, 1)
+
3093#else /* GNUC */
+
3094#define RTCHECK(e) (e)
+
3095#endif /* GNUC */
+
3096#else /* !INSECURE */
+
3097#define RTCHECK(e) (1)
+
3098#endif /* !INSECURE */
+
3099
+
3100/* macros to set up inuse chunks with or without footers */
+
3101
+
3102#if !FOOTERS
+
3103
+
3104#define mark_inuse_foot(M, p, s)
+
3105
+
3106/* Macros for setting head/foot of non-mmapped chunks */
+
3107
+
3108/* Set cinuse bit and pinuse bit of next chunk */
+
3109#define set_inuse(M, p, s) \
+
3110 ((p)->head = (((p)->head & PINUSE_BIT) | s | CINUSE_BIT), \
+
3111 ((mchunkptr) (((char *) (p)) + (s)))->head |= PINUSE_BIT)
+
3112
+
3113/* Set cinuse and pinuse of this chunk and pinuse of next chunk */
+
3114#define set_inuse_and_pinuse(M, p, s) \
+
3115 ((p)->head = (s | PINUSE_BIT | CINUSE_BIT), \
+
3116 ((mchunkptr) (((char *) (p)) + (s)))->head |= PINUSE_BIT)
+
3117
+
3118/* Set size, cinuse and pinuse bit of this chunk */
+
3119#define set_size_and_pinuse_of_inuse_chunk(M, p, s) \
+
3120 ((p)->head = (s | PINUSE_BIT | CINUSE_BIT))
+
3121
+
3122#else /* FOOTERS */
+
3123
+
3124/* Set foot of inuse chunk to be xor of mstate and seed */
+
3125#define mark_inuse_foot(M, p, s) \
+
3126 (((mchunkptr) ((char *) (p) + (s)))->prev_foot = ((size_t) (M) ^ mparams.magic))
+
3127
+
3128#define get_mstate_for(p) \
+
3129 ((mstate) (((mchunkptr) ((char *) (p) \
+
3130 + (chunksize(p))))->prev_foot ^ mparams.magic))
+
3131
+
3132#define set_inuse(M, p, s) \
+
3133 ((p)->head = (((p)->head & PINUSE_BIT) | s | CINUSE_BIT), \
+
3134 (((mchunkptr) (((char *) (p)) + (s)))->head |= PINUSE_BIT), \
+
3135 mark_inuse_foot(M, p, s))
+
3136
+
3137#define set_inuse_and_pinuse(M, p, s) \
+
3138 ((p)->head = (s | PINUSE_BIT | CINUSE_BIT), \
+
3139 (((mchunkptr) (((char *) (p)) + (s)))->head |= PINUSE_BIT), \
+
3140 mark_inuse_foot(M, p, s))
+
3141
+
3142#define set_size_and_pinuse_of_inuse_chunk(M, p, s) \
+
3143 ((p)->head = (s | PINUSE_BIT | CINUSE_BIT), \
+
3144 mark_inuse_foot(M, p, s))
+
3145
+
3146#endif /* !FOOTERS */
+
3147
+
3148/* ---------------------------- setting mparams -------------------------- */
+
3149
+
3150#if LOCK_AT_FORK
+
3151static void pre_fork(void){ ACQUIRE_LOCK(&(gm)->mutex); }
+
3152
+
3153static void post_fork_parent(void){ RELEASE_LOCK(&(gm)->mutex); }
+
3154
+
3155static void post_fork_child(void){ INITIAL_LOCK(&(gm)->mutex); }
+
3156
+
3157#endif /* LOCK_AT_FORK */
+
3158
+
3159/* Initialize mparams */
+
3160static int init_mparams(void)
+
3161{
+
3162 #ifdef NEED_GLOBAL_LOCK_INIT
+
3163 if (malloc_global_mutex_status <= 0)
+
3164 init_malloc_global_mutex();
+
3165 #endif
+
3166
+ +
3168 if (mparams.magic == 0) {
+
3169 size_t magic;
+
3170 size_t psize;
+
3171 size_t gsize;
+
3172
+
3173 #ifndef WIN32
+
3174 psize = malloc_getpagesize;
+
3175 gsize = ((DEFAULT_GRANULARITY != 0) ? DEFAULT_GRANULARITY : psize);
+
3176 #else /* WIN32 */
+
3177 {
+
3178 SYSTEM_INFO system_info;
+
3179 GetSystemInfo(&system_info);
+
3180 psize = system_info.dwPageSize;
+
3181 gsize = ((DEFAULT_GRANULARITY != 0) ?
+
3182 DEFAULT_GRANULARITY : system_info.dwAllocationGranularity);
+
3183 }
+
3184 #endif /* WIN32 */
+
3185
+
3186 /* Sanity-check configuration:
+
3187 * size_t must be unsigned and as wide as pointer type.
+
3188 * ints must be at least 4 bytes.
+
3189 * alignment must be at least 8.
+
3190 * Alignment, min chunk size, and page size must all be powers of 2.
+
3191 */
+
3192 if ((sizeof(size_t) != sizeof(char *)) ||
+ +
3194 (sizeof(int) < 4) ||
+
3195 (MALLOC_ALIGNMENT < (size_t) 8U) ||
+ +
3197 ((MCHUNK_SIZE & (MCHUNK_SIZE - SIZE_T_ONE)) != 0) ||
+
3198 ((gsize & (gsize - SIZE_T_ONE)) != 0) ||
+
3199 ((psize & (psize - SIZE_T_ONE)) != 0))
+
3200 ABORT;
+
3201 mparams.granularity = gsize;
+
3202 mparams.page_size = psize;
+ + +
3205 #if MORECORE_CONTIGUOUS
+ +
3207 #else /* MORECORE_CONTIGUOUS */
+ +
3209 #endif /* MORECORE_CONTIGUOUS */
+
3210
+
3211 #if !ONLY_MSPACES
+
3212 /* Set up lock for main malloc area */
+
3213 gm->mflags = mparams.default_mflags;
+
3214 (void) INITIAL_LOCK(&gm->mutex);
+
3215 #endif
+
3216 #if LOCK_AT_FORK
+
3217 pthread_atfork(&pre_fork, &post_fork_parent, &post_fork_child);
+
3218 #endif
+
3219
+
3220 {
+
3221 #if USE_DEV_RANDOM
+
3222 int fd;
+
3223 unsigned char buf[sizeof(size_t)];
+
3224 /* Try to use /dev/urandom, else fall back on using time */
+
3225 if ((fd = open("/dev/urandom", O_RDONLY)) >= 0 &&
+
3226 read(fd, buf, sizeof(buf)) == sizeof(buf))
+
3227 {
+
3228 magic = *((size_t *) buf);
+
3229 close(fd);
+
3230 } else
+
3231 #endif /* USE_DEV_RANDOM */
+
3232 #ifdef WIN32
+
3233 magic = (size_t) (GetTickCount() ^ (size_t) 0x55555555U);
+
3234 #elif defined(LACKS_TIME_H)
+
3235 magic = (size_t) &magic ^ (size_t) 0x55555555U;
+
3236 #else
+
3237 magic = (size_t) (time(0) ^ (size_t) 0x55555555U);
+
3238 #endif
+
3239 magic |= (size_t) 8U; /* ensure nonzero */
+
3240 magic &= ~(size_t) 7U; /* improve chances of fault for bad values */
+
3241 /* Until memory modes commonly available, use volatile-write */
+
3242 (*(volatile size_t *) (&(mparams.magic))) = magic;
+
3243 }
+
3244 }
+
3245
+ +
3247 return 1;
+
3248} /* init_mparams */
+
3249
+
3250/* support for mallopt */
+
3251static int change_mparam(int param_number, int value)
+
3252{
+
3253 size_t val;
+
3254
+ +
3256 val = (value == -1) ? MAX_SIZE_T : (size_t) value;
+
3257 switch (param_number) {
+
3258 case M_TRIM_THRESHOLD:
+
3259 mparams.trim_threshold = val;
+
3260 return 1;
+
3261
+
3262 case M_GRANULARITY:
+
3263 if (val >= mparams.page_size && ((val & (val - 1)) == 0)) {
+
3264 mparams.granularity = val;
+
3265 return 1;
+
3266 } else {
+
3267 return 0;
+
3268 }
+
3269 case M_MMAP_THRESHOLD:
+
3270 mparams.mmap_threshold = val;
+
3271 return 1;
+
3272
+
3273 default:
+
3274 return 0;
+
3275 }
+
3276}
+
3277
+
3278#if DEBUG
+
3279/* ------------------------- Debugging Support --------------------------- */
+
3280
+
3281/* Check properties of any chunk, whether free, inuse, mmapped etc */
+
3282static void do_check_any_chunk(mstate m, mchunkptr p)
+
3283{
+
3284 assert((is_aligned(chunk2mem(p))) || (p->head == FENCEPOST_HEAD));
+
3285 assert(ok_address(m, p));
+
3286}
+
3287
+
3288/* Check properties of top chunk */
+
3289static void do_check_top_chunk(mstate m, mchunkptr p)
+
3290{
+
3291 msegmentptr sp = segment_holding(m, (char *) p);
+
3292 size_t sz = p->head & ~INUSE_BITS; /* third-lowest bit can be set! */
+
3293
+
3294 assert(sp != 0);
+
3295 assert((is_aligned(chunk2mem(p))) || (p->head == FENCEPOST_HEAD));
+
3296 assert(ok_address(m, p));
+
3297 assert(sz == m->topsize);
+
3298 assert(sz > 0);
+
3299 assert(sz == ((sp->base + sp->size) - (char *) p) - TOP_FOOT_SIZE);
+
3300 assert(pinuse(p));
+ +
3302}
+
3303
+
3304/* Check properties of (inuse) mmapped chunks */
+
3305static void do_check_mmapped_chunk(mstate m, mchunkptr p)
+
3306{
+
3307 size_t sz = chunksize(p);
+
3308 size_t len = (sz + (p->prev_foot) + MMAP_FOOT_PAD);
+
3309
+
3310 assert(is_mmapped(p));
+
3311 assert(use_mmap(m));
+
3312 assert((is_aligned(chunk2mem(p))) || (p->head == FENCEPOST_HEAD));
+
3313 assert(ok_address(m, p));
+
3314 assert(!is_small(sz));
+
3315 assert((len & (mparams.page_size - SIZE_T_ONE)) == 0);
+
3316 assert(chunk_plus_offset(p, sz)->head == FENCEPOST_HEAD);
+
3317 assert(chunk_plus_offset(p, sz + SIZE_T_SIZE)->head == 0);
+
3318}
+
3319
+
3320/* Check properties of inuse chunks */
+
3321static void do_check_inuse_chunk(mstate m, mchunkptr p)
+
3322{
+
3323 do_check_any_chunk(m, p);
+
3324 assert(is_inuse(p));
+
3325 assert(next_pinuse(p));
+
3326 /* If not pinuse and not mmapped, previous chunk has OK offset */
+
3327 assert(is_mmapped(p) || pinuse(p) || next_chunk(prev_chunk(p)) == p);
+
3328 if (is_mmapped(p))
+
3329 do_check_mmapped_chunk(m, p);
+
3330}
+
3331
+
3332/* Check properties of free chunks */
+
3333static void do_check_free_chunk(mstate m, mchunkptr p)
+
3334{
+
3335 size_t sz = chunksize(p);
+
3336 mchunkptr next = chunk_plus_offset(p, sz);
+
3337
+
3338 do_check_any_chunk(m, p);
+
3339 assert(!is_inuse(p));
+
3340 assert(!next_pinuse(p));
+
3341 assert(!is_mmapped(p));
+
3342 if (p != m->dv && p != m->top) {
+
3343 if (sz >= MIN_CHUNK_SIZE) {
+
3344 assert((sz & CHUNK_ALIGN_MASK) == 0);
+ +
3346 assert(next->prev_foot == sz);
+
3347 assert(pinuse(p));
+
3348 assert(next == m->top || is_inuse(next));
+
3349 assert(p->fd->bk == p);
+
3350 assert(p->bk->fd == p);
+
3351 } else { /* markers are always of size SIZE_T_SIZE */
+
3352 assert(sz == SIZE_T_SIZE);
+
3353 }
+
3354 }
+
3355}
+
3356
+
3357/* Check properties of malloced chunks at the point they are malloced */
+
3358static void do_check_malloced_chunk(mstate m, void *mem, size_t s)
+
3359{
+
3360 if (mem != 0) {
+
3361 mchunkptr p = mem2chunk(mem);
+
3362 size_t sz = p->head & ~INUSE_BITS;
+
3363 do_check_inuse_chunk(m, p);
+
3364 assert((sz & CHUNK_ALIGN_MASK) == 0);
+
3365 assert(sz >= MIN_CHUNK_SIZE);
+
3366 assert(sz >= s);
+
3367 /* unless mmapped, size is less than MIN_CHUNK_SIZE more than request */
+
3368 assert(is_mmapped(p) || sz < (s + MIN_CHUNK_SIZE));
+
3369 }
+
3370}
+
3371
+
3372/* Check a tree and its subtrees. */
+
3373static void do_check_tree(mstate m, tchunkptr t)
+
3374{
+
3375 tchunkptr head = 0;
+
3376 tchunkptr u = t;
+
3377 bindex_t tindex = t->index;
+
3378 size_t tsize = chunksize(t);
+
3379 bindex_t idx;
+
3380
+
3381 compute_tree_index(tsize, idx);
+
3382 assert(tindex == idx);
+
3383 assert(tsize >= MIN_LARGE_SIZE);
+
3384 assert(tsize >= minsize_for_tree_index(idx));
+
3385 assert((idx == NTREEBINS - 1) || (tsize < minsize_for_tree_index((idx + 1))));
+
3386
+
3387 do { /* traverse through chain of same-sized nodes */
+
3388 do_check_any_chunk(m, ((mchunkptr) u));
+
3389 assert(u->index == tindex);
+
3390 assert(chunksize(u) == tsize);
+
3391 assert(!is_inuse(u));
+
3392 assert(!next_pinuse(u));
+
3393 assert(u->fd->bk == u);
+
3394 assert(u->bk->fd == u);
+
3395 if (u->parent == 0) {
+
3396 assert(u->child[0] == 0);
+
3397 assert(u->child[1] == 0);
+
3398 } else {
+
3399 assert(head == 0); /* only one node on chain has parent */
+
3400 head = u;
+
3401 assert(u->parent != u);
+
3402 assert(u->parent->child[0] == u ||
+
3403 u->parent->child[1] == u ||
+
3404 *((tbinptr *) (u->parent)) == u);
+
3405 if (u->child[0] != 0) {
+
3406 assert(u->child[0]->parent == u);
+
3407 assert(u->child[0] != u);
+
3408 do_check_tree(m, u->child[0]);
+
3409 }
+
3410 if (u->child[1] != 0) {
+
3411 assert(u->child[1]->parent == u);
+
3412 assert(u->child[1] != u);
+
3413 do_check_tree(m, u->child[1]);
+
3414 }
+
3415 if (u->child[0] != 0 && u->child[1] != 0) {
+
3416 assert(chunksize(u->child[0]) < chunksize(u->child[1]));
+
3417 }
+
3418 }
+
3419 u = u->fd;
+
3420 } while (u != t);
+
3421 assert(head != 0);
+
3422} /* do_check_tree */
+
3423
+
3424/* Check all the chunks in a treebin. */
+
3425static void do_check_treebin(mstate m, bindex_t i)
+
3426{
+
3427 tbinptr *tb = treebin_at(m, i);
+
3428 tchunkptr t = *tb;
+
3429 int empty = (m->treemap & (1U << i)) == 0;
+
3430
+
3431 if (t == 0)
+
3432 assert(empty);
+
3433 if (!empty)
+
3434 do_check_tree(m, t);
+
3435}
+
3436
+
3437/* Check all the chunks in a smallbin. */
+
3438static void do_check_smallbin(mstate m, bindex_t i)
+
3439{
+
3440 sbinptr b = smallbin_at(m, i);
+
3441 mchunkptr p = b->bk;
+
3442 unsigned int empty = (m->smallmap & (1U << i)) == 0;
+
3443
+
3444 if (p == b)
+
3445 assert(empty);
+
3446 if (!empty) {
+
3447 for (; p != b; p = p->bk) {
+
3448 size_t size = chunksize(p);
+
3449 mchunkptr q;
+
3450 /* each chunk claims to be free */
+
3451 do_check_free_chunk(m, p);
+
3452 /* chunk belongs in bin */
+
3453 assert(small_index(size) == i);
+
3454 assert(p->bk == b || chunksize(p->bk) == chunksize(p));
+
3455 /* chunk is followed by an inuse chunk */
+
3456 q = next_chunk(p);
+
3457 if (q->head != FENCEPOST_HEAD)
+
3458 do_check_inuse_chunk(m, q);
+
3459 }
+
3460 }
+
3461}
+
3462
+
3463/* Find x in a bin. Used in other check functions. */
+
3464static int bin_find(mstate m, mchunkptr x)
+
3465{
+
3466 size_t size = chunksize(x);
+
3467
+
3468 if (is_small(size)) {
+
3469 bindex_t sidx = small_index(size);
+
3470 sbinptr b = smallbin_at(m, sidx);
+
3471 if (smallmap_is_marked(m, sidx)) {
+
3472 mchunkptr p = b;
+
3473 do {
+
3474 if (p == x)
+
3475 return 1;
+
3476 } while ((p = p->fd) != b);
+
3477 }
+
3478 } else {
+
3479 bindex_t tidx;
+
3480 compute_tree_index(size, tidx);
+
3481 if (treemap_is_marked(m, tidx)) {
+
3482 tchunkptr t = *treebin_at(m, tidx);
+
3483 size_t sizebits = size << leftshift_for_tree_index(tidx);
+
3484 while (t != 0 && chunksize(t) != size) {
+
3485 t = t->child[(sizebits >> (SIZE_T_BITSIZE - SIZE_T_ONE)) & 1];
+
3486 sizebits <<= 1;
+
3487 }
+
3488 if (t != 0) {
+
3489 tchunkptr u = t;
+
3490 do {
+
3491 if (u == (tchunkptr) x)
+
3492 return 1;
+
3493 } while ((u = u->fd) != t);
+
3494 }
+
3495 }
+
3496 }
+
3497 return 0;
+
3498} /* bin_find */
+
3499
+
3500/* Traverse each chunk and check it; return total */
+
3501static size_t traverse_and_check(mstate m)
+
3502{
+
3503 size_t sum = 0;
+
3504
+
3505 if (is_initialized(m)) {
+
3506 msegmentptr s = &m->seg;
+
3507 sum += m->topsize + TOP_FOOT_SIZE;
+
3508 while (s != 0) {
+ +
3510 mchunkptr lastq = 0;
+
3511 assert(pinuse(q));
+
3512 while (segment_holds(s, q) &&
+
3513 q != m->top && q->head != FENCEPOST_HEAD)
+
3514 {
+
3515 sum += chunksize(q);
+
3516 if (is_inuse(q)) {
+
3517 assert(!bin_find(m, q));
+
3518 do_check_inuse_chunk(m, q);
+
3519 } else {
+
3520 assert(q == m->dv || bin_find(m, q));
+
3521 assert(lastq == 0 || is_inuse(lastq)); /* Not 2 consecutive free */
+
3522 do_check_free_chunk(m, q);
+
3523 }
+
3524 lastq = q;
+
3525 q = next_chunk(q);
+
3526 }
+
3527 s = s->next;
+
3528 }
+
3529 }
+
3530 return sum;
+
3531}
+
3532
+
3533/* Check all properties of malloc_state. */
+
3534static void do_check_malloc_state(mstate m)
+
3535{
+
3536 bindex_t i;
+
3537 size_t total;
+
3538
+
3539 /* check bins */
+
3540 for (i = 0; i < NSMALLBINS; ++i)
+
3541 do_check_smallbin(m, i);
+
3542 for (i = 0; i < NTREEBINS; ++i)
+
3543 do_check_treebin(m, i);
+
3544
+
3545 if (m->dvsize != 0) { /* check dv chunk */
+
3546 do_check_any_chunk(m, m->dv);
+
3547 assert(m->dvsize == chunksize(m->dv));
+ +
3549 assert(bin_find(m, m->dv) == 0);
+
3550 }
+
3551
+
3552 if (m->top != 0) { /* check top chunk */
+
3553 do_check_top_chunk(m, m->top);
+
3554 /*assert(m->topsize == chunksize(m->top)); redundant */
+
3555 assert(m->topsize > 0);
+
3556 assert(bin_find(m, m->top) == 0);
+
3557 }
+
3558
+
3559 total = traverse_and_check(m);
+
3560 assert(total <= m->footprint);
+
3561 assert(m->footprint <= m->max_footprint);
+
3562}
+
3563
+
3564#endif /* DEBUG */
+
3565
+
3566/* ----------------------------- statistics ------------------------------ */
+
3567
+
3568#if !NO_MALLINFO
+ +
3570{
+
3571 struct mallinfo nm = { 0, 0, 0, 0, 0, 0, 0, 0, 0, 0 };
+
3572
+ +
3574 if (!PREACTION(m)) {
+ +
3576 if (is_initialized(m)) {
+
3577 size_t nfree = SIZE_T_ONE; /* top always free */
+
3578 size_t mfree = m->topsize + TOP_FOOT_SIZE;
+
3579 size_t sum = mfree;
+
3580 msegmentptr s = &m->seg;
+
3581 while (s != 0) {
+ +
3583 while (segment_holds(s, q) &&
+
3584 q != m->top && q->head != FENCEPOST_HEAD)
+
3585 {
+
3586 size_t sz = chunksize(q);
+
3587 sum += sz;
+
3588 if (!is_inuse(q)) {
+
3589 mfree += sz;
+
3590 ++nfree;
+
3591 }
+
3592 q = next_chunk(q);
+
3593 }
+
3594 s = s->next;
+
3595 }
+
3596
+
3597 nm.arena = sum;
+
3598 nm.ordblks = nfree;
+
3599 nm.hblkhd = m->footprint - sum;
+
3600 nm.usmblks = m->max_footprint;
+
3601 nm.uordblks = m->footprint - mfree;
+
3602 nm.fordblks = mfree;
+
3603 nm.keepcost = m->topsize;
+
3604 }
+
3605
+
3606 POSTACTION(m);
+
3607 }
+
3608 return nm;
+
3609} /* internal_mallinfo */
+
3610
+
3611#endif /* !NO_MALLINFO */
+
3612
+
3613#if !NO_MALLOC_STATS
+ +
3615{
+ +
3617 if (!PREACTION(m)) {
+
3618 size_t maxfp = 0;
+
3619 size_t fp = 0;
+
3620 size_t used = 0;
+ +
3622 if (is_initialized(m)) {
+
3623 msegmentptr s = &m->seg;
+
3624 maxfp = m->max_footprint;
+
3625 fp = m->footprint;
+
3626 used = fp - (m->topsize + TOP_FOOT_SIZE);
+
3627
+
3628 while (s != 0) {
+ +
3630 while (segment_holds(s, q) &&
+
3631 q != m->top && q->head != FENCEPOST_HEAD)
+
3632 {
+
3633 if (!is_inuse(q))
+
3634 used -= chunksize(q);
+
3635 q = next_chunk(q);
+
3636 }
+
3637 s = s->next;
+
3638 }
+
3639 }
+
3640 POSTACTION(m); /* drop lock */
+
3641 fprintf(stderr, "max system bytes = %10lu\n", (unsigned long) (maxfp));
+
3642 fprintf(stderr, "system bytes = %10lu\n", (unsigned long) (fp));
+
3643 fprintf(stderr, "in use bytes = %10lu\n", (unsigned long) (used));
+
3644 }
+
3645}
+
3646
+
3647#endif /* NO_MALLOC_STATS */
+
3648
+
3649/* ----------------------- Operations on smallbins ----------------------- */
+
3650
+
3651/*
+
3652 * Various forms of linking and unlinking are defined as macros. Even
+
3653 * the ones for trees, which are very long but have very short typical
+
3654 * paths. This is ugly but reduces reliance on inlining support of
+
3655 * compilers.
+
3656 */
+
3657
+
3658/* Link a free chunk into a smallbin */
+
3659#define insert_small_chunk(M, P, S) \
+
3660 { \
+
3661 bindex_t I = small_index(S); \
+
3662 mchunkptr B = smallbin_at(M, I); \
+
3663 mchunkptr F = B; \
+
3664 assert(S >= MIN_CHUNK_SIZE); \
+
3665 if (!smallmap_is_marked(M, I)) \
+
3666 mark_smallmap(M, I); \
+
3667 else if (RTCHECK(ok_address(M, B->fd))) \
+
3668 F = B->fd; \
+
3669 else { \
+
3670 CORRUPTION_ERROR_ACTION(M); \
+
3671 } \
+
3672 B->fd = P; \
+
3673 F->bk = P; \
+
3674 P->fd = F; \
+
3675 P->bk = B; \
+
3676 }
+
3677
+
3678/* Unlink a chunk from a smallbin */
+
3679#define unlink_small_chunk(M, P, S) \
+
3680 { \
+
3681 mchunkptr F = P->fd; \
+
3682 mchunkptr B = P->bk; \
+
3683 bindex_t I = small_index(S); \
+
3684 assert(P != B); \
+
3685 assert(P != F); \
+
3686 assert(chunksize(P) == small_index2size(I)); \
+
3687 if (RTCHECK(F == smallbin_at(M, I) || (ok_address(M, F) && F->bk == P))) { \
+
3688 if (B == F) { \
+
3689 clear_smallmap(M, I); \
+
3690 } \
+
3691 else if (RTCHECK(B == smallbin_at(M, I) || \
+
3692 (ok_address(M, B) && B->fd == P))) { \
+
3693 F->bk = B; \
+
3694 B->fd = F; \
+
3695 } \
+
3696 else { \
+
3697 CORRUPTION_ERROR_ACTION(M); \
+
3698 } \
+
3699 } \
+
3700 else { \
+
3701 CORRUPTION_ERROR_ACTION(M); \
+
3702 } \
+
3703 }
+
3704
+
3705/* Unlink the first chunk from a smallbin */
+
3706#define unlink_first_small_chunk(M, B, P, I) \
+
3707 { \
+
3708 mchunkptr F = P->fd; \
+
3709 assert(P != B); \
+
3710 assert(P != F); \
+
3711 assert(chunksize(P) == small_index2size(I)); \
+
3712 if (B == F) { \
+
3713 clear_smallmap(M, I); \
+
3714 } \
+
3715 else if (RTCHECK(ok_address(M, F) && F->bk == P)) { \
+
3716 F->bk = B; \
+
3717 B->fd = F; \
+
3718 } \
+
3719 else { \
+
3720 CORRUPTION_ERROR_ACTION(M); \
+
3721 } \
+
3722 }
+
3723
+
3724/* Replace dv node, binning the old one */
+
3725/* Used only when dvsize known to be small */
+
3726#define replace_dv(M, P, S) \
+
3727 { \
+
3728 size_t DVS = M->dvsize; \
+
3729 assert(is_small(DVS)); \
+
3730 if (DVS != 0) { \
+
3731 mchunkptr DV = M->dv; \
+
3732 insert_small_chunk(M, DV, DVS); \
+
3733 } \
+
3734 M->dvsize = S; \
+
3735 M->dv = P; \
+
3736 }
+
3737
+
3738/* ------------------------- Operations on trees ------------------------- */
+
3739
+
3740/* Insert chunk into tree */
+
3741#define insert_large_chunk(M, X, S) \
+
3742 { \
+
3743 tbinptr *H; \
+
3744 bindex_t I; \
+
3745 compute_tree_index(S, I); \
+
3746 H = treebin_at(M, I); \
+
3747 X->index = I; \
+
3748 X->child[0] = X->child[1] = 0; \
+
3749 if (!treemap_is_marked(M, I)) { \
+
3750 mark_treemap(M, I); \
+
3751 *H = X; \
+
3752 X->parent = (tchunkptr) H; \
+
3753 X->fd = X->bk = X; \
+
3754 } \
+
3755 else { \
+
3756 tchunkptr T = *H; \
+
3757 size_t K = S << leftshift_for_tree_index(I); \
+
3758 for (;;) { \
+
3759 if (chunksize(T) != S) { \
+
3760 tchunkptr *C = &(T->child[(K >> (SIZE_T_BITSIZE - SIZE_T_ONE)) & 1]); \
+
3761 K <<= 1; \
+
3762 if (*C != 0) \
+
3763 T = *C; \
+
3764 else if (RTCHECK(ok_address(M, C))) { \
+
3765 *C = X; \
+
3766 X->parent = T; \
+
3767 X->fd = X->bk = X; \
+
3768 break; \
+
3769 } \
+
3770 else { \
+
3771 CORRUPTION_ERROR_ACTION(M); \
+
3772 break; \
+
3773 } \
+
3774 } \
+
3775 else { \
+
3776 tchunkptr F = T->fd; \
+
3777 if (RTCHECK(ok_address(M, T) && ok_address(M, F))) { \
+
3778 T->fd = F->bk = X; \
+
3779 X->fd = F; \
+
3780 X->bk = T; \
+
3781 X->parent = 0; \
+
3782 break; \
+
3783 } \
+
3784 else { \
+
3785 CORRUPTION_ERROR_ACTION(M); \
+
3786 break; \
+
3787 } \
+
3788 } \
+
3789 } \
+
3790 } \
+
3791 }
+
3792
+
3793/*
+
3794 * Unlink steps:
+
3795 *
+
3796 * 1. If x is a chained node, unlink it from its same-sized fd/bk links
+
3797 * and choose its bk node as its replacement.
+
3798 * 2. If x was the last node of its size, but not a leaf node, it must
+
3799 * be replaced with a leaf node (not merely one with an open left or
+
3800 * right), to make sure that lefts and rights of descendents
+
3801 * correspond properly to bit masks. We use the rightmost descendent
+
3802 * of x. We could use any other leaf, but this is easy to locate and
+
3803 * tends to counteract removal of leftmosts elsewhere, and so keeps
+
3804 * paths shorter than minimally guaranteed. This doesn't loop much
+
3805 * because on average a node in a tree is near the bottom.
+
3806 * 3. If x is the base of a chain (i.e., has parent links) relink
+
3807 * x's parent and children to x's replacement (or null if none).
+
3808 */
+
3809
+
3810#define unlink_large_chunk(M, X) \
+
3811 { \
+
3812 tchunkptr XP = X->parent; \
+
3813 tchunkptr R; \
+
3814 if (X->bk != X) { \
+
3815 tchunkptr F = X->fd; \
+
3816 R = X->bk; \
+
3817 if (RTCHECK(ok_address(M, F) && F->bk == X && R->fd == X)) { \
+
3818 F->bk = R; \
+
3819 R->fd = F; \
+
3820 } \
+
3821 else { \
+
3822 CORRUPTION_ERROR_ACTION(M); \
+
3823 } \
+
3824 } \
+
3825 else { \
+
3826 tchunkptr *RP; \
+
3827 if (((R = *(RP = &(X->child[1]))) != 0) || \
+
3828 ((R = *(RP = &(X->child[0]))) != 0)) { \
+
3829 tchunkptr *CP; \
+
3830 while ((*(CP = &(R->child[1])) != 0) || \
+
3831 (*(CP = &(R->child[0])) != 0)) { \
+
3832 R = *(RP = CP); \
+
3833 } \
+
3834 if (RTCHECK(ok_address(M, RP))) \
+
3835 *RP = 0; \
+
3836 else { \
+
3837 CORRUPTION_ERROR_ACTION(M); \
+
3838 } \
+
3839 } \
+
3840 } \
+
3841 if (XP != 0) { \
+
3842 tbinptr *H = treebin_at(M, X->index); \
+
3843 if (X == *H) { \
+
3844 if ((*H = R) == 0) \
+
3845 clear_treemap(M, X->index); \
+
3846 } \
+
3847 else if (RTCHECK(ok_address(M, XP))) { \
+
3848 if (XP->child[0] == X) \
+
3849 XP->child[0] = R; \
+
3850 else \
+
3851 XP->child[1] = R; \
+
3852 } \
+
3853 else \
+
3854 CORRUPTION_ERROR_ACTION(M); \
+
3855 if (R != 0) { \
+
3856 if (RTCHECK(ok_address(M, R))) { \
+
3857 tchunkptr C0, C1; \
+
3858 R->parent = XP; \
+
3859 if ((C0 = X->child[0]) != 0) { \
+
3860 if (RTCHECK(ok_address(M, C0))) { \
+
3861 R->child[0] = C0; \
+
3862 C0->parent = R; \
+
3863 } \
+
3864 else \
+
3865 CORRUPTION_ERROR_ACTION(M); \
+
3866 } \
+
3867 if ((C1 = X->child[1]) != 0) { \
+
3868 if (RTCHECK(ok_address(M, C1))) { \
+
3869 R->child[1] = C1; \
+
3870 C1->parent = R; \
+
3871 } \
+
3872 else \
+
3873 CORRUPTION_ERROR_ACTION(M); \
+
3874 } \
+
3875 } \
+
3876 else \
+
3877 CORRUPTION_ERROR_ACTION(M); \
+
3878 } \
+
3879 } \
+
3880 }
+
3881
+
3882/* Relays to large vs small bin operations */
+
3883
+
3884#define insert_chunk(M, P, S) \
+
3885 if (is_small(S)) insert_small_chunk(M, P, S) \
+
3886 else { tchunkptr TP = (tchunkptr) (P); insert_large_chunk(M, TP, S); }
+
3887
+
3888#define unlink_chunk(M, P, S) \
+
3889 if (is_small(S)) unlink_small_chunk(M, P, S) \
+
3890 else { tchunkptr TP = (tchunkptr) (P); unlink_large_chunk(M, TP); }
+
3891
+
3892
+
3893/* Relays to internal calls to malloc/free from realloc, memalign etc */
+
3894
+
3895#if ONLY_MSPACES
+
3896#define internal_malloc(m, b) mspace_malloc(m, b)
+
3897#define internal_free(m, mem) mspace_free(m, mem);
+
3898#else /* ONLY_MSPACES */
+
3899#if MSPACES
+
3900#define internal_malloc(m, b) \
+
3901 ((m == gm) ? dlmalloc(b) : mspace_malloc(m, b))
+
3902#define internal_free(m, mem) \
+
3903 if (m == gm) dlfree(mem); else mspace_free(m, mem);
+
3904#else /* MSPACES */
+
3905#define internal_malloc(m, b) dlmalloc(b)
+
3906#define internal_free(m, mem) dlfree(mem)
+
3907#endif /* MSPACES */
+
3908#endif /* ONLY_MSPACES */
+
3909
+
3910/* ----------------------- Direct-mmapping chunks ----------------------- */
+
3911
+
3912/*
+
3913 * Directly mmapped chunks are set up with an offset to the start of
+
3914 * the mmapped region stored in the prev_foot field of the chunk. This
+
3915 * allows reconstruction of the required argument to MUNMAP when freed,
+
3916 * and also allows adjustment of the returned chunk to meet alignment
+
3917 * requirements (especially in memalign).
+
3918 */
+
3919
+
3920/* Malloc using mmap */
+
3921static void* mmap_alloc(mstate m, size_t nb)
+
3922{
+
3923 size_t mmsize = mmap_align(nb + SIX_SIZE_T_SIZES + CHUNK_ALIGN_MASK);
+
3924
+
3925 if (m->footprint_limit != 0) {
+
3926 size_t fp = m->footprint + mmsize;
+
3927 if (fp <= m->footprint || fp > m->footprint_limit)
+
3928 return 0;
+
3929 }
+
3930 if (mmsize > nb) { /* Check for wrap around 0 */
+
3931 char *mm = (char *) (CALL_DIRECT_MMAP(mmsize));
+
3932 if (mm != CMFAIL) {
+
3933 size_t offset = align_offset(chunk2mem(mm));
+
3934 size_t psize = mmsize - offset - MMAP_FOOT_PAD;
+
3935 mchunkptr p = (mchunkptr) (mm + offset);
+
3936 p->prev_foot = offset;
+
3937 p->head = psize;
+
3938 mark_inuse_foot(m, p, psize);
+
3939 chunk_plus_offset(p, psize)->head = FENCEPOST_HEAD;
+
3940 chunk_plus_offset(p, psize + SIZE_T_SIZE)->head = 0;
+
3941
+
3942 if (m->least_addr == 0 || mm < m->least_addr)
+
3943 m->least_addr = mm;
+
3944 if ((m->footprint += mmsize) > m->max_footprint)
+
3945 m->max_footprint = m->footprint;
+ +
3947 check_mmapped_chunk(m, p);
+
3948 return chunk2mem(p);
+
3949 }
+
3950 }
+
3951 return 0;
+
3952}
+
3953
+
3954/* Realloc using mmap */
+
3955static mchunkptr mmap_resize(mstate m, mchunkptr oldp, size_t nb, int flags)
+
3956{
+
3957 size_t oldsize = chunksize(oldp);
+
3958
+
3959 (void) flags; /* placate people compiling -Wunused */
+
3960 if (is_small(nb)) /* Can't shrink mmap regions below small size */
+
3961 return 0;
+
3962
+
3963 /* Keep old chunk if big enough but not too big */
+
3964 if (oldsize >= nb + SIZE_T_SIZE &&
+
3965 (oldsize - nb) <= (mparams.granularity << 1))
+
3966 {
+
3967 return oldp;
+
3968 } else {
+
3969 size_t offset = oldp->prev_foot;
+
3970 size_t oldmmsize = oldsize + offset + MMAP_FOOT_PAD;
+
3971 size_t newmmsize = mmap_align(nb + SIX_SIZE_T_SIZES + CHUNK_ALIGN_MASK);
+
3972 char *cp = (char *) CALL_MREMAP((char *) oldp - offset,
+
3973 oldmmsize, newmmsize, flags);
+
3974 if (cp != CMFAIL) {
+
3975 mchunkptr newp = (mchunkptr) (cp + offset);
+
3976 size_t psize = newmmsize - offset - MMAP_FOOT_PAD;
+
3977 newp->head = psize;
+
3978 mark_inuse_foot(m, newp, psize);
+
3979 chunk_plus_offset(newp, psize)->head = FENCEPOST_HEAD;
+
3980 chunk_plus_offset(newp, psize + SIZE_T_SIZE)->head = 0;
+
3981
+
3982 if (cp < m->least_addr)
+
3983 m->least_addr = cp;
+
3984 if ((m->footprint += newmmsize - oldmmsize) > m->max_footprint)
+
3985 m->max_footprint = m->footprint;
+
3986 check_mmapped_chunk(m, newp);
+
3987 return newp;
+
3988 }
+
3989 }
+
3990 return 0;
+
3991} /* mmap_resize */
+
3992
+
3993/* -------------------------- mspace management -------------------------- */
+
3994
+
3995/* Initialize top chunk and its size */
+
3996static void init_top(mstate m, mchunkptr p, size_t psize)
+
3997{
+
3998 /* Ensure alignment */
+
3999 size_t offset = align_offset(chunk2mem(p));
+
4000
+
4001 p = (mchunkptr) ((char *) p + offset);
+
4002 psize -= offset;
+
4003
+
4004 m->top = p;
+
4005 m->topsize = psize;
+
4006 p->head = psize | PINUSE_BIT;
+
4007 /* set size of fake trailing chunk holding overhead space only once */
+
4008 chunk_plus_offset(p, psize)->head = TOP_FOOT_SIZE;
+
4009 m->trim_check = mparams.trim_threshold; /* reset on each update */
+
4010}
+
4011
+
4012/* Initialize bins for a new mstate that is otherwise zeroed out */
+
4013static void init_bins(mstate m)
+
4014{
+
4015 /* Establish circular links for smallbins */
+
4016 bindex_t i;
+
4017
+
4018 for (i = 0; i < NSMALLBINS; ++i) {
+
4019 sbinptr bin = smallbin_at(m, i);
+
4020 bin->fd = bin->bk = bin;
+
4021 }
+
4022}
+
4023
+
4024#if PROCEED_ON_ERROR
+
4025
+
4026/* default corruption action */
+
4027static void reset_on_error(mstate m)
+
4028{
+
4029 int i;
+
4030
+
4031 ++malloc_corruption_error_count;
+
4032 /* Reinitialize fields to forget about all memory */
+
4033 m->smallmap = m->treemap = 0;
+
4034 m->dvsize = m->topsize = 0;
+
4035 m->seg.base = 0;
+
4036 m->seg.size = 0;
+
4037 m->seg.next = 0;
+
4038 m->top = m->dv = 0;
+
4039 for (i = 0; i < NTREEBINS; ++i)
+
4040 *treebin_at(m, i) = 0;
+
4041 init_bins(m);
+
4042}
+
4043
+
4044#endif /* PROCEED_ON_ERROR */
+
4045
+
4046/* Allocate chunk and prepend remainder with chunk in successor base. */
+
4047static void* prepend_alloc(mstate m, char *newbase, char *oldbase,
+
4048 size_t nb)
+
4049{
+
4050 mchunkptr p = align_as_chunk(newbase);
+
4051 mchunkptr oldfirst = align_as_chunk(oldbase);
+
4052 size_t psize = (char *) oldfirst - (char *) p;
+
4053 mchunkptr q = chunk_plus_offset(p, nb);
+
4054 size_t qsize = psize - nb;
+
4055
+ +
4057
+
4058 assert((char *) oldfirst > (char *) q);
+
4059 assert(pinuse(oldfirst));
+
4060 assert(qsize >= MIN_CHUNK_SIZE);
+
4061
+
4062 /* consolidate remainder with first chunk of old base */
+
4063 if (oldfirst == m->top) {
+
4064 size_t tsize = m->topsize += qsize;
+
4065 m->top = q;
+
4066 q->head = tsize | PINUSE_BIT;
+
4067 check_top_chunk(m, q);
+
4068 } else if (oldfirst == m->dv) {
+
4069 size_t dsize = m->dvsize += qsize;
+
4070 m->dv = q;
+ +
4072 } else {
+
4073 if (!is_inuse(oldfirst)) {
+
4074 size_t nsize = chunksize(oldfirst);
+
4075 unlink_chunk(m, oldfirst, nsize);
+
4076 oldfirst = chunk_plus_offset(oldfirst, nsize);
+
4077 qsize += nsize;
+
4078 }
+
4079 set_free_with_pinuse(q, qsize, oldfirst);
+
4080 insert_chunk(m, q, qsize);
+
4081 check_free_chunk(m, q);
+
4082 }
+
4083
+ +
4085 return chunk2mem(p);
+
4086} /* prepend_alloc */
+
4087
+
4088/* Add a segment to hold a new noncontiguous region */
+
4089static void add_segment(mstate m, char *tbase, size_t tsize, flag_t mmapped)
+
4090{
+
4091 /* Determine locations and sizes of segment, fenceposts, old top */
+
4092 char *old_top = (char *) m->top;
+
4093 msegmentptr oldsp = segment_holding(m, old_top);
+
4094 char *old_end = oldsp->base + oldsp->size;
+
4095 size_t ssize = pad_request(sizeof(struct malloc_segment));
+
4096 char *rawsp = old_end - (ssize + FOUR_SIZE_T_SIZES + CHUNK_ALIGN_MASK);
+
4097 size_t offset = align_offset(chunk2mem(rawsp));
+
4098 char *asp = rawsp + offset;
+
4099 char *csp = (asp < (old_top + MIN_CHUNK_SIZE)) ? old_top : asp;
+
4100 mchunkptr sp = (mchunkptr) csp;
+
4101 msegmentptr ss = (msegmentptr) (chunk2mem(sp));
+
4102 mchunkptr tnext = chunk_plus_offset(sp, ssize);
+
4103 mchunkptr p = tnext;
+
4104 int nfences = 0;
+
4105
+
4106 /* reset top to new space */
+
4107 init_top(m, (mchunkptr) tbase, tsize - TOP_FOOT_SIZE);
+
4108
+
4109 /* Set up segment record */
+
4110 assert(is_aligned(ss));
+ +
4112 *ss = m->seg; /* Push current record */
+
4113 m->seg.base = tbase;
+
4114 m->seg.size = tsize;
+
4115 m->seg.sflags = mmapped;
+
4116 m->seg.next = ss;
+
4117
+
4118 /* Insert trailing fenceposts */
+
4119 for (;;) {
+ +
4121 p->head = FENCEPOST_HEAD;
+
4122 ++nfences;
+
4123 if ((char *) (&(nextp->head)) < old_end)
+
4124 p = nextp;
+
4125 else
+
4126 break;
+
4127 }
+
4128 assert(nfences >= 2);
+
4129
+
4130 /* Insert the rest of old top into a bin as an ordinary free chunk */
+
4131 if (csp != old_top) {
+
4132 mchunkptr q = (mchunkptr) old_top;
+
4133 size_t psize = csp - old_top;
+
4134 mchunkptr tn = chunk_plus_offset(q, psize);
+
4135 set_free_with_pinuse(q, psize, tn);
+
4136 insert_chunk(m, q, psize);
+
4137 }
+
4138
+
4139 check_top_chunk(m, m->top);
+
4140} /* add_segment */
+
4141
+
4142/* -------------------------- System allocation -------------------------- */
+
4143
+
4144/* Get memory from system using MORECORE or MMAP */
+
4145static void* sys_alloc(mstate m, size_t nb)
+
4146{
+
4147 char *tbase = CMFAIL;
+
4148 size_t tsize = 0;
+
4149 flag_t mmap_flag = 0;
+
4150 size_t asize; /* allocation size */
+
4151
+ +
4153
+
4154 /* Directly map large chunks, but only if already initialized */
+
4155 if (use_mmap(m) && nb >= mparams.mmap_threshold && m->topsize != 0) {
+
4156 void *mem = mmap_alloc(m, nb);
+
4157 if (mem != 0)
+
4158 return mem;
+
4159 }
+
4160
+ +
4162 if (asize <= nb)
+
4163 return 0; /* wraparound */
+
4164
+
4165 if (m->footprint_limit != 0) {
+
4166 size_t fp = m->footprint + asize;
+
4167 if (fp <= m->footprint || fp > m->footprint_limit)
+
4168 return 0;
+
4169 }
+
4170
+
4171 /*
+
4172 * Try getting memory in any of three ways (in most-preferred to
+
4173 * least-preferred order):
+
4174 * 1. A call to MORECORE that can normally contiguously extend memory.
+
4175 * (disabled if not MORECORE_CONTIGUOUS or not HAVE_MORECORE or
+
4176 * or main space is mmapped or a previous contiguous call failed)
+
4177 * 2. A call to MMAP new space (disabled if not HAVE_MMAP).
+
4178 * Note that under the default settings, if MORECORE is unable to
+
4179 * fulfill a request, and HAVE_MMAP is true, then mmap is
+
4180 * used as a noncontiguous system allocator. This is a useful backup
+
4181 * strategy for systems with holes in address spaces -- in this case
+
4182 * sbrk cannot contiguously expand the heap, but mmap may be able to
+
4183 * find space.
+
4184 * 3. A call to MORECORE that cannot usually contiguously extend memory.
+
4185 * (disabled if not HAVE_MORECORE)
+
4186 *
+
4187 * In all cases, we need to request enough bytes from system to ensure
+
4188 * we can malloc nb bytes upon success, so pad with enough space for
+
4189 * top_foot, plus alignment-pad to make sure we don't lose bytes if
+
4190 * not on boundary, and round this up to a granularity unit.
+
4191 */
+
4192
+ +
4194 char *br = CMFAIL;
+
4195 size_t ssize = asize; /* sbrk call size */
+
4196 msegmentptr ss = (m->top == 0) ? 0 : segment_holding(m, (char *) m->top);
+ +
4198
+
4199 if (ss == 0) { /* First time through or recovery */
+
4200 char *base = (char *) CALL_MORECORE(0);
+
4201 if (base != CMFAIL) {
+
4202 size_t fp;
+
4203 /* Adjust to end on a page boundary */
+
4204 if (!is_page_aligned(base))
+
4205 ssize += (page_align((size_t) base) - (size_t) base);
+
4206 fp = m->footprint + ssize; /* recheck limits */
+
4207 if (ssize > nb && ssize < HALF_MAX_SIZE_T &&
+
4208 (m->footprint_limit == 0 ||
+
4209 (fp > m->footprint && fp <= m->footprint_limit)) &&
+
4210 (br = (char *) (CALL_MORECORE(ssize))) == base)
+
4211 {
+
4212 tbase = base;
+
4213 tsize = ssize;
+
4214 }
+
4215 }
+
4216 } else {
+
4217 /* Subtract out existing available top space from MORECORE request. */
+
4218 ssize = granularity_align(nb - m->topsize + SYS_ALLOC_PADDING);
+
4219 /* Use mem here only if it did continuously extend old space */
+
4220 if (ssize < HALF_MAX_SIZE_T &&
+
4221 (br = (char *) (CALL_MORECORE(ssize))) == ss->base + ss->size)
+
4222 {
+
4223 tbase = br;
+
4224 tsize = ssize;
+
4225 }
+
4226 }
+
4227
+
4228 if (tbase == CMFAIL) { /* Cope with partial failure */
+
4229 if (br != CMFAIL) { /* Try to use/extend the space we did get */
+
4230 if (ssize < HALF_MAX_SIZE_T &&
+
4231 ssize < nb + SYS_ALLOC_PADDING)
+
4232 {
+
4233 size_t esize = granularity_align(nb + SYS_ALLOC_PADDING - ssize);
+
4234 if (esize < HALF_MAX_SIZE_T) {
+
4235 char *end = (char *) CALL_MORECORE(esize);
+
4236 if (end != CMFAIL) {
+
4237 ssize += esize;
+
4238 } else { /* Can't use; try to release */
+
4239 (void) CALL_MORECORE(-ssize);
+
4240 br = CMFAIL;
+
4241 }
+
4242 }
+
4243 }
+
4244 }
+
4245 if (br != CMFAIL) { /* Use the space we did get */
+
4246 tbase = br;
+
4247 tsize = ssize;
+
4248 } else {
+
4249 disable_contiguous(m); /* Don't try contiguous path in the future */
+
4250 }
+
4251 }
+
4252
+ +
4254 }
+
4255
+
4256 if (HAVE_MMAP && tbase == CMFAIL) { /* Try MMAP */
+
4257 char *mp = (char *) (CALL_MMAP(asize));
+
4258 if (mp != CMFAIL) {
+
4259 tbase = mp;
+
4260 tsize = asize;
+
4261 mmap_flag = USE_MMAP_BIT;
+
4262 }
+
4263 }
+
4264
+
4265 if (HAVE_MORECORE && tbase == CMFAIL) { /* Try noncontiguous MORECORE */
+
4266 if (asize < HALF_MAX_SIZE_T) {
+
4267 char *br = CMFAIL;
+
4268 char *end = CMFAIL;
+ +
4270 br = (char *) (CALL_MORECORE(asize));
+
4271 end = (char *) (CALL_MORECORE(0));
+ +
4273 if (br != CMFAIL && end != CMFAIL && br < end) {
+
4274 size_t ssize = end - br;
+
4275 if (ssize > nb + TOP_FOOT_SIZE) {
+
4276 tbase = br;
+
4277 tsize = ssize;
+
4278 }
+
4279 }
+
4280 }
+
4281 }
+
4282
+
4283 if (tbase != CMFAIL) {
+
4284 if ((m->footprint += tsize) > m->max_footprint)
+
4285 m->max_footprint = m->footprint;
+
4286
+
4287 if (!is_initialized(m)) { /* first-time initialization */
+
4288 if (m->least_addr == 0 || tbase < m->least_addr)
+
4289 m->least_addr = tbase;
+
4290 m->seg.base = tbase;
+
4291 m->seg.size = tsize;
+
4292 m->seg.sflags = mmap_flag;
+
4293 m->magic = mparams.magic;
+ +
4295 init_bins(m);
+
4296 #if !ONLY_MSPACES
+
4297 if (is_global(m)) {
+
4298 init_top(m, (mchunkptr) tbase, tsize - TOP_FOOT_SIZE);
+
4299 } else
+
4300 #endif
+
4301 {
+
4302 /* Offset top by embedded malloc_state */
+ +
4304 init_top(m, mn, (size_t) ((tbase + tsize) - (char *) mn) - TOP_FOOT_SIZE);
+
4305 }
+
4306 } else {
+
4307 /* Try to merge with an existing segment */
+
4308 msegmentptr sp = &m->seg;
+
4309 /* Only consider most recent segment if traversal suppressed */
+
4310 while (sp != 0 && tbase != sp->base + sp->size)
+
4311 sp = (NO_SEGMENT_TRAVERSAL) ? 0 : sp->next;
+
4312 if (sp != 0 &&
+
4313 !is_extern_segment(sp) &&
+
4314 (sp->sflags & USE_MMAP_BIT) == mmap_flag &&
+
4315 segment_holds(sp, m->top)) /* append */
+
4316 {
+
4317 sp->size += tsize;
+
4318 init_top(m, m->top, m->topsize + tsize);
+
4319 } else {
+
4320 if (tbase < m->least_addr)
+
4321 m->least_addr = tbase;
+
4322 sp = &m->seg;
+
4323 while (sp != 0 && sp->base != tbase + tsize)
+
4324 sp = (NO_SEGMENT_TRAVERSAL) ? 0 : sp->next;
+
4325 if (sp != 0 &&
+
4326 !is_extern_segment(sp) &&
+
4327 (sp->sflags & USE_MMAP_BIT) == mmap_flag)
+
4328 {
+
4329 char *oldbase = sp->base;
+
4330 sp->base = tbase;
+
4331 sp->size += tsize;
+
4332 return prepend_alloc(m, tbase, oldbase, nb);
+
4333 } else {
+
4334 add_segment(m, tbase, tsize, mmap_flag);
+
4335 }
+
4336 }
+
4337 }
+
4338
+
4339 if (nb < m->topsize) { /* Allocate from new or extended top space */
+
4340 size_t rsize = m->topsize -= nb;
+
4341 mchunkptr p = m->top;
+
4342 mchunkptr r = m->top = chunk_plus_offset(p, nb);
+
4343 r->head = rsize | PINUSE_BIT;
+ +
4345 check_top_chunk(m, m->top);
+ +
4347 return chunk2mem(p);
+
4348 }
+
4349 }
+
4350
+ +
4352 return 0;
+
4353} /* sys_alloc */
+
4354
+
4355/* ----------------------- system deallocation -------------------------- */
+
4356
+
4357/* Unmap and unlink any mmapped segments that don't contain used chunks */
+ +
4359{
+
4360 size_t released = 0;
+
4361 int nsegs = 0;
+
4362 msegmentptr pred = &m->seg;
+
4363 msegmentptr sp = pred->next;
+
4364
+
4365 while (sp != 0) {
+
4366 char *base = sp->base;
+
4367 size_t size = sp->size;
+
4368 msegmentptr next = sp->next;
+
4369 ++nsegs;
+
4370 if (is_mmapped_segment(sp) && !is_extern_segment(sp)) {
+
4371 mchunkptr p = align_as_chunk(base);
+
4372 size_t psize = chunksize(p);
+
4373 /* Can unmap if first chunk holds entire segment and not pinned */
+
4374 if (!is_inuse(p) && (char *) p + psize >= base + size - TOP_FOOT_SIZE) {
+
4375 tchunkptr tp = (tchunkptr) p;
+
4376 assert(segment_holds(sp, (char *) sp));
+
4377 if (p == m->dv) {
+
4378 m->dv = 0;
+
4379 m->dvsize = 0;
+
4380 } else {
+
4381 unlink_large_chunk(m, tp);
+
4382 }
+
4383 if (CALL_MUNMAP(base, size) == 0) {
+
4384 released += size;
+
4385 m->footprint -= size;
+
4386 /* unlink obsoleted record */
+
4387 sp = pred;
+
4388 sp->next = next;
+
4389 } else { /* back out if cannot unmap */
+
4390 insert_large_chunk(m, tp, psize);
+
4391 }
+
4392 }
+
4393 }
+
4394 if (NO_SEGMENT_TRAVERSAL) /* scan only first segment */
+
4395 break;
+
4396 pred = sp;
+
4397 sp = next;
+
4398 }
+
4399 /* Reset check counter */
+
4400 m->release_checks = (((size_t) nsegs > (size_t) MAX_RELEASE_CHECK_RATE) ?
+
4401 (size_t) nsegs : (size_t) MAX_RELEASE_CHECK_RATE);
+
4402 return released;
+
4403} /* release_unused_segments */
+
4404
+
4405static int sys_trim(mstate m, size_t pad)
+
4406{
+
4407 size_t released = 0;
+
4408
+ +
4410 if (pad < MAX_REQUEST && is_initialized(m)) {
+
4411 pad += TOP_FOOT_SIZE; /* ensure enough room for segment overhead */
+
4412
+
4413 if (m->topsize > pad) {
+
4414 /* Shrink top space in granularity-size units, keeping at least one */
+
4415 size_t unit = mparams.granularity;
+
4416 size_t extra = ((m->topsize - pad + (unit - SIZE_T_ONE)) / unit
+
4417 - SIZE_T_ONE) * unit;
+
4418 msegmentptr sp = segment_holding(m, (char *) m->top);
+
4419
+
4420 if (!is_extern_segment(sp)) {
+
4421 if (is_mmapped_segment(sp)) {
+
4422 if (HAVE_MMAP &&
+
4423 sp->size >= extra &&
+
4424 !has_segment_link(m, sp)) /* can't shrink if pinned */
+
4425 {
+
4426 size_t newsize = sp->size - extra;
+
4427 (void) newsize; /* placate people compiling -Wunused-variable */
+
4428 /* Prefer mremap, fall back to munmap */
+
4429 if ((CALL_MREMAP(sp->base, sp->size, newsize, 0) != MFAIL) ||
+
4430 (CALL_MUNMAP(sp->base + newsize, extra) == 0))
+
4431 {
+
4432 released = extra;
+
4433 }
+
4434 }
+
4435 } else if (HAVE_MORECORE) {
+
4436 if (extra >= HALF_MAX_SIZE_T) /* Avoid wrapping negative */
+
4437 extra = (HALF_MAX_SIZE_T) + SIZE_T_ONE - unit;
+ +
4439 {
+
4440 /* Make sure end of memory is where we last set it. */
+
4441 char *old_br = (char *) (CALL_MORECORE(0));
+
4442 if (old_br == sp->base + sp->size) {
+
4443 char *rel_br = (char *) (CALL_MORECORE(-extra));
+
4444 char *new_br = (char *) (CALL_MORECORE(0));
+
4445 if (rel_br != CMFAIL && new_br < old_br)
+
4446 released = old_br - new_br;
+
4447 }
+
4448 }
+ +
4450 }
+
4451 }
+
4452
+
4453 if (released != 0) {
+
4454 sp->size -= released;
+
4455 m->footprint -= released;
+
4456 init_top(m, m->top, m->topsize - released);
+
4457 check_top_chunk(m, m->top);
+
4458 }
+
4459 }
+
4460
+
4461 /* Unmap any unused mmapped segments */
+
4462 if (HAVE_MMAP)
+
4463 released += release_unused_segments(m);
+
4464
+
4465 /* On failure, disable autotrim to avoid repeated failed future calls */
+
4466 if (released == 0 && m->topsize > m->trim_check)
+ +
4468 }
+
4469
+
4470 return (released != 0) ? 1 : 0;
+
4471} /* sys_trim */
+
4472
+
4473/* Consolidate and bin a chunk. Differs from exported versions
+
4474 * of free mainly in that the chunk need not be marked as inuse.
+
4475 */
+
4476static void dispose_chunk(mstate m, mchunkptr p, size_t psize)
+
4477{
+
4478 mchunkptr next = chunk_plus_offset(p, psize);
+
4479
+
4480 if (!pinuse(p)) {
+
4481 mchunkptr prev;
+
4482 size_t prevsize = p->prev_foot;
+
4483 if (is_mmapped(p)) {
+
4484 psize += prevsize + MMAP_FOOT_PAD;
+
4485 if (CALL_MUNMAP((char *) p - prevsize, psize) == 0)
+
4486 m->footprint -= psize;
+
4487 return;
+
4488 }
+
4489 prev = chunk_minus_offset(p, prevsize);
+
4490 psize += prevsize;
+
4491 p = prev;
+
4492 if (RTCHECK(ok_address(m, prev))) { /* consolidate backward */
+
4493 if (p != m->dv) {
+
4494 unlink_chunk(m, p, prevsize);
+
4495 } else if ((next->head & INUSE_BITS) == INUSE_BITS) {
+
4496 m->dvsize = psize;
+
4497 set_free_with_pinuse(p, psize, next);
+
4498 return;
+
4499 }
+
4500 } else {
+ +
4502 return;
+
4503 }
+
4504 }
+
4505 if (RTCHECK(ok_address(m, next))) {
+
4506 if (!cinuse(next)) { /* consolidate forward */
+
4507 if (next == m->top) {
+
4508 size_t tsize = m->topsize += psize;
+
4509 m->top = p;
+
4510 p->head = tsize | PINUSE_BIT;
+
4511 if (p == m->dv) {
+
4512 m->dv = 0;
+
4513 m->dvsize = 0;
+
4514 }
+
4515 return;
+
4516 } else if (next == m->dv) {
+
4517 size_t dsize = m->dvsize += psize;
+
4518 m->dv = p;
+ +
4520 return;
+
4521 } else {
+
4522 size_t nsize = chunksize(next);
+
4523 psize += nsize;
+
4524 unlink_chunk(m, next, nsize);
+ +
4526 if (p == m->dv) {
+
4527 m->dvsize = psize;
+
4528 return;
+
4529 }
+
4530 }
+
4531 } else {
+
4532 set_free_with_pinuse(p, psize, next);
+
4533 }
+
4534 insert_chunk(m, p, psize);
+
4535 } else {
+ +
4537 }
+
4538} /* dispose_chunk */
+
4539
+
4540/* ---------------------------- malloc --------------------------- */
+
4541
+
4542/* allocate a large request from the best fitting chunk in a treebin */
+
4543static void* tmalloc_large(mstate m, size_t nb)
+
4544{
+
4545 tchunkptr v = 0;
+
4546 size_t rsize = -nb; /* Unsigned negation */
+
4547 tchunkptr t;
+
4548 bindex_t idx;
+
4549
+
4550 compute_tree_index(nb, idx);
+
4551 if ((t = *treebin_at(m, idx)) != 0) {
+
4552 /* Traverse tree for this bin looking for node with size == nb */
+
4553 size_t sizebits = nb << leftshift_for_tree_index(idx);
+
4554 tchunkptr rst = 0; /* The deepest untaken right subtree */
+
4555 for (;;) {
+
4556 tchunkptr rt;
+
4557 size_t trem = chunksize(t) - nb;
+
4558 if (trem < rsize) {
+
4559 v = t;
+
4560 if ((rsize = trem) == 0)
+
4561 break;
+
4562 }
+
4563 rt = t->child[1];
+
4564 t = t->child[(sizebits >> (SIZE_T_BITSIZE - SIZE_T_ONE)) & 1];
+
4565 if (rt != 0 && rt != t)
+
4566 rst = rt;
+
4567 if (t == 0) {
+
4568 t = rst; /* set t to least subtree holding sizes > nb */
+
4569 break;
+
4570 }
+
4571 sizebits <<= 1;
+
4572 }
+
4573 }
+
4574 if (t == 0 && v == 0) { /* set t to root of next non-empty treebin */
+
4575 binmap_t leftbits = left_bits(idx2bit(idx)) & m->treemap;
+
4576 if (leftbits != 0) {
+
4577 bindex_t i;
+
4578 binmap_t leastbit = least_bit(leftbits);
+
4579 compute_bit2idx(leastbit, i);
+
4580 t = *treebin_at(m, i);
+
4581 }
+
4582 }
+
4583
+
4584 while (t != 0) { /* find smallest of tree or subtree */
+
4585 size_t trem = chunksize(t) - nb;
+
4586 if (trem < rsize) {
+
4587 rsize = trem;
+
4588 v = t;
+
4589 }
+
4590 t = leftmost_child(t);
+
4591 }
+
4592
+
4593 /* If dv is a better fit, return 0 so malloc will use it */
+
4594 if (v != 0 && rsize < (size_t) (m->dvsize - nb)) {
+
4595 if (RTCHECK(ok_address(m, v))) { /* split */
+
4596 mchunkptr r = chunk_plus_offset(v, nb);
+
4597 assert(chunksize(v) == rsize + nb);
+
4598 if (RTCHECK(ok_next(v, r))) {
+
4599 unlink_large_chunk(m, v);
+
4600 if (rsize < MIN_CHUNK_SIZE) {
+
4601 set_inuse_and_pinuse(m, v, (rsize + nb));
+
4602 } else {
+ + +
4605 insert_chunk(m, r, rsize);
+
4606 }
+
4607 return chunk2mem(v);
+
4608 }
+
4609 }
+ +
4611 }
+
4612 return 0;
+
4613} /* tmalloc_large */
+
4614
+
4615/* allocate a small request from the best fitting chunk in a treebin */
+
4616static void* tmalloc_small(mstate m, size_t nb)
+
4617{
+
4618 tchunkptr t, v;
+
4619 size_t rsize;
+
4620 bindex_t i;
+
4621 binmap_t leastbit = least_bit(m->treemap);
+
4622
+
4623 compute_bit2idx(leastbit, i);
+
4624 v = t = *treebin_at(m, i);
+
4625 rsize = chunksize(t) - nb;
+
4626
+
4627 while ((t = leftmost_child(t)) != 0) {
+
4628 size_t trem = chunksize(t) - nb;
+
4629 if (trem < rsize) {
+
4630 rsize = trem;
+
4631 v = t;
+
4632 }
+
4633 }
+
4634
+
4635 if (RTCHECK(ok_address(m, v))) {
+
4636 mchunkptr r = chunk_plus_offset(v, nb);
+
4637 assert(chunksize(v) == rsize + nb);
+
4638 if (RTCHECK(ok_next(v, r))) {
+
4639 unlink_large_chunk(m, v);
+
4640 if (rsize < MIN_CHUNK_SIZE) {
+
4641 set_inuse_and_pinuse(m, v, (rsize + nb));
+
4642 } else {
+ + +
4645 replace_dv(m, r, rsize);
+
4646 }
+
4647 return chunk2mem(v);
+
4648 }
+
4649 }
+
4650
+ +
4652 return 0;
+
4653} /* tmalloc_small */
+
4654
+
4655#if !ONLY_MSPACES
+
4656
+
4657void* dlmalloc(size_t bytes)
+
4658{
+
4659 /*
+
4660 * Basic algorithm:
+
4661 * If a small request (< 256 bytes minus per-chunk overhead):
+
4662 * 1. If one exists, use a remainderless chunk in associated smallbin.
+
4663 * (Remainderless means that there are too few excess bytes to
+
4664 * represent as a chunk.)
+
4665 * 2. If it is big enough, use the dv chunk, which is normally the
+
4666 * chunk adjacent to the one used for the most recent small request.
+
4667 * 3. If one exists, split the smallest available chunk in a bin,
+
4668 * saving remainder in dv.
+
4669 * 4. If it is big enough, use the top chunk.
+
4670 * 5. If available, get memory from system and use it
+
4671 * Otherwise, for a large request:
+
4672 * 1. Find the smallest available binned chunk that fits, and use it
+
4673 * if it is better fitting than dv chunk, splitting if necessary.
+
4674 * 2. If better fitting than any binned chunk, use the dv chunk.
+
4675 * 3. If it is big enough, use the top chunk.
+
4676 * 4. If request size >= mmap threshold, try to directly mmap this chunk.
+
4677 * 5. If available, get memory from system and use it
+
4678 *
+
4679 * The ugly goto's here ensure that postaction occurs along all paths.
+
4680 */
+
4681
+
4682 #if USE_LOCKS
+
4683 ensure_initialization(); /* initialize in sys_alloc if not using locks */
+
4684 #endif
+
4685
+
4686 if (!PREACTION(gm)) {
+
4687 void *mem;
+
4688 size_t nb;
+
4689 if (bytes <= MAX_SMALL_REQUEST) {
+
4690 bindex_t idx;
+
4691 binmap_t smallbits;
+
4692 nb = (bytes < MIN_REQUEST) ? MIN_CHUNK_SIZE : pad_request(bytes);
+
4693 idx = small_index(nb);
+
4694 smallbits = gm->smallmap >> idx;
+
4695
+
4696 if ((smallbits & 0x3U) != 0) { /* Remainderless fit to a smallbin. */
+
4697 mchunkptr b, p;
+
4698 idx += ~smallbits & 1; /* Uses next bin if idx empty */
+
4699 b = smallbin_at(gm, idx);
+
4700 p = b->fd;
+
4701 assert(chunksize(p) == small_index2size(idx));
+
4702 unlink_first_small_chunk(gm, b, p, idx);
+ +
4704 mem = chunk2mem(p);
+
4705 check_malloced_chunk(gm, mem, nb);
+
4706 goto postaction;
+
4707 } else if (nb > gm->dvsize) {
+
4708 if (smallbits != 0) { /* Use chunk in next nonempty smallbin */
+
4709 mchunkptr b, p, r;
+
4710 size_t rsize;
+
4711 bindex_t i;
+
4712 binmap_t leftbits = (smallbits << idx) & left_bits(idx2bit(idx));
+
4713 binmap_t leastbit = least_bit(leftbits);
+
4714 compute_bit2idx(leastbit, i);
+
4715 b = smallbin_at(gm, i);
+
4716 p = b->fd;
+ +
4718 unlink_first_small_chunk(gm, b, p, i);
+
4719 rsize = small_index2size(i) - nb;
+
4720 /* Fit here cannot be remainderless if 4byte sizes */
+
4721 if (SIZE_T_SIZE != 4 && rsize < MIN_CHUNK_SIZE) {
+ +
4723 } else {
+ +
4725 r = chunk_plus_offset(p, nb);
+ +
4727 replace_dv(gm, r, rsize);
+
4728 }
+
4729 mem = chunk2mem(p);
+
4730 check_malloced_chunk(gm, mem, nb);
+
4731 goto postaction;
+
4732 } else if (gm->treemap != 0 && (mem = tmalloc_small(gm, nb)) != 0) {
+
4733 check_malloced_chunk(gm, mem, nb);
+
4734 goto postaction;
+
4735 }
+
4736 }
+
4737 } else if (bytes >= MAX_REQUEST) {
+
4738 nb = MAX_SIZE_T; /* Too big to allocate. Force failure (in sys alloc) */
+
4739 } else {
+
4740 nb = pad_request(bytes);
+
4741 if (gm->treemap != 0 && (mem = tmalloc_large(gm, nb)) != 0) {
+
4742 check_malloced_chunk(gm, mem, nb);
+
4743 goto postaction;
+
4744 }
+
4745 }
+
4746
+
4747 if (nb <= gm->dvsize) {
+
4748 size_t rsize = gm->dvsize - nb;
+
4749 mchunkptr p = gm->dv;
+
4750 if (rsize >= MIN_CHUNK_SIZE) { /* split dv */
+
4751 mchunkptr r = gm->dv = chunk_plus_offset(p, nb);
+
4752 gm->dvsize = rsize;
+ + +
4755 } else { /* exhaust dv */
+
4756 size_t dvs = gm->dvsize;
+
4757 gm->dvsize = 0;
+
4758 gm->dv = 0;
+
4759 set_inuse_and_pinuse(gm, p, dvs);
+
4760 }
+
4761 mem = chunk2mem(p);
+
4762 check_malloced_chunk(gm, mem, nb);
+
4763 goto postaction;
+
4764 } else if (nb < gm->topsize) { /* Split top */
+
4765 size_t rsize = gm->topsize -= nb;
+
4766 mchunkptr p = gm->top;
+
4767 mchunkptr r = gm->top = chunk_plus_offset(p, nb);
+
4768 r->head = rsize | PINUSE_BIT;
+ +
4770 mem = chunk2mem(p);
+
4771 check_top_chunk(gm, gm->top);
+
4772 check_malloced_chunk(gm, mem, nb);
+
4773 goto postaction;
+
4774 }
+
4775
+
4776 mem = sys_alloc(gm, nb);
+
4777
+
4778postaction:
+
4779 POSTACTION(gm);
+
4780 return mem;
+
4781 }
+
4782
+
4783 return 0;
+
4784} /* dlmalloc */
+
4785
+
4786/* ---------------------------- free --------------------------- */
+
4787
+
4788void dlfree(void *mem)
+
4789{
+
4790 /*
+
4791 * Consolidate freed chunks with preceeding or succeeding bordering
+
4792 * free chunks, if they exist, and then place in a bin. Intermixed
+
4793 * with special cases for top, dv, mmapped chunks, and usage errors.
+
4794 */
+
4795
+
4796 if (mem != 0) {
+
4797 mchunkptr p = mem2chunk(mem);
+
4798 #if FOOTERS
+
4799 mstate fm = get_mstate_for(p);
+
4800 if (!ok_magic(fm)) {
+ +
4802 return;
+
4803 }
+
4804 #else /* FOOTERS */
+
4805 #define fm gm
+
4806 #endif /* FOOTERS */
+
4807 if (!PREACTION(fm)) {
+ +
4809 if (RTCHECK(ok_address(fm, p) && ok_inuse(p))) {
+
4810 size_t psize = chunksize(p);
+
4811 mchunkptr next = chunk_plus_offset(p, psize);
+
4812 if (!pinuse(p)) {
+
4813 size_t prevsize = p->prev_foot;
+
4814 if (is_mmapped(p)) {
+
4815 psize += prevsize + MMAP_FOOT_PAD;
+
4816 if (CALL_MUNMAP((char *) p - prevsize, psize) == 0)
+
4817 fm->footprint -= psize;
+
4818 goto postaction;
+
4819 } else {
+
4820 mchunkptr prev = chunk_minus_offset(p, prevsize);
+
4821 psize += prevsize;
+
4822 p = prev;
+
4823 if (RTCHECK(ok_address(fm, prev))) { /* consolidate backward */
+
4824 if (p != fm->dv) {
+
4825 unlink_chunk(fm, p, prevsize);
+
4826 } else if ((next->head & INUSE_BITS) == INUSE_BITS) {
+
4827 fm->dvsize = psize;
+
4828 set_free_with_pinuse(p, psize, next);
+
4829 goto postaction;
+
4830 }
+
4831 } else {
+
4832 goto erroraction;
+
4833 }
+
4834 }
+
4835 }
+
4836
+
4837 if (RTCHECK(ok_next(p, next) && ok_pinuse(next))) {
+
4838 if (!cinuse(next)) { /* consolidate forward */
+
4839 if (next == fm->top) {
+
4840 size_t tsize = fm->topsize += psize;
+
4841 fm->top = p;
+
4842 p->head = tsize | PINUSE_BIT;
+
4843 if (p == fm->dv) {
+
4844 fm->dv = 0;
+
4845 fm->dvsize = 0;
+
4846 }
+
4847 if (should_trim(fm, tsize))
+
4848 sys_trim(fm, 0);
+
4849 goto postaction;
+
4850 } else if (next == fm->dv) {
+
4851 size_t dsize = fm->dvsize += psize;
+
4852 fm->dv = p;
+ +
4854 goto postaction;
+
4855 } else {
+
4856 size_t nsize = chunksize(next);
+
4857 psize += nsize;
+
4858 unlink_chunk(fm, next, nsize);
+ +
4860 if (p == fm->dv) {
+
4861 fm->dvsize = psize;
+
4862 goto postaction;
+
4863 }
+
4864 }
+
4865 } else {
+
4866 set_free_with_pinuse(p, psize, next);
+
4867 }
+
4868
+
4869 if (is_small(psize)) {
+
4870 insert_small_chunk(fm, p, psize);
+
4871 check_free_chunk(fm, p);
+
4872 } else {
+
4873 tchunkptr tp = (tchunkptr) p;
+
4874 insert_large_chunk(fm, tp, psize);
+
4875 check_free_chunk(fm, p);
+
4876 if (--fm->release_checks == 0)
+ +
4878 }
+
4879 goto postaction;
+
4880 }
+
4881 }
+
4882erroraction:
+ +
4884postaction:
+
4885 POSTACTION(fm);
+
4886 }
+
4887 }
+
4888 #if !FOOTERS
+
4889 #undef fm
+
4890 #endif /* FOOTERS */
+
4891} /* dlfree */
+
4892
+
4893void* dlcalloc(size_t n_elements, size_t elem_size)
+
4894{
+
4895 void *mem;
+
4896 size_t req = 0;
+
4897
+
4898 if (n_elements != 0) {
+
4899 req = n_elements * elem_size;
+
4900 if (((n_elements | elem_size) & ~(size_t) 0xffff) &&
+
4901 (req / n_elements != elem_size))
+
4902 req = MAX_SIZE_T; /* force downstream failure on overflow */
+
4903 }
+
4904 mem = dlmalloc(req);
+
4905 if (mem != 0 && calloc_must_clear(mem2chunk(mem)))
+
4906 memset(mem, 0, req);
+
4907 return mem;
+
4908}
+
4909
+
4910#endif /* !ONLY_MSPACES */
+
4911
+
4912/* ------------ Internal support for realloc, memalign, etc -------------- */
+
4913
+
4914/* Try to realloc; only in-place unless can_move true */
+ +
4916 int can_move)
+
4917{
+
4918 mchunkptr newp = 0;
+
4919 size_t oldsize = chunksize(p);
+
4920 mchunkptr next = chunk_plus_offset(p, oldsize);
+
4921
+
4922 if (RTCHECK(ok_address(m, p) && ok_inuse(p) &&
+
4923 ok_next(p, next) && ok_pinuse(next)))
+
4924 {
+
4925 if (is_mmapped(p)) {
+
4926 newp = mmap_resize(m, p, nb, can_move);
+
4927 } else if (oldsize >= nb) { /* already big enough */
+
4928 size_t rsize = oldsize - nb;
+
4929 if (rsize >= MIN_CHUNK_SIZE) { /* split off remainder */
+
4930 mchunkptr r = chunk_plus_offset(p, nb);
+
4931 set_inuse(m, p, nb);
+
4932 set_inuse(m, r, rsize);
+
4933 dispose_chunk(m, r, rsize);
+
4934 }
+
4935 newp = p;
+
4936 } else if (next == m->top) { /* extend into top */
+
4937 if (oldsize + m->topsize > nb) {
+
4938 size_t newsize = oldsize + m->topsize;
+
4939 size_t newtopsize = newsize - nb;
+
4940 mchunkptr newtop = chunk_plus_offset(p, nb);
+
4941 set_inuse(m, p, nb);
+
4942 newtop->head = newtopsize | PINUSE_BIT;
+
4943 m->top = newtop;
+
4944 m->topsize = newtopsize;
+
4945 newp = p;
+
4946 }
+
4947 } else if (next == m->dv) { /* extend into dv */
+
4948 size_t dvs = m->dvsize;
+
4949 if (oldsize + dvs >= nb) {
+
4950 size_t dsize = oldsize + dvs - nb;
+
4951 if (dsize >= MIN_CHUNK_SIZE) {
+
4952 mchunkptr r = chunk_plus_offset(p, nb);
+
4953 mchunkptr n = chunk_plus_offset(r, dsize);
+
4954 set_inuse(m, p, nb);
+ +
4956 clear_pinuse(n);
+
4957 m->dvsize = dsize;
+
4958 m->dv = r;
+
4959 } else { /* exhaust dv */
+
4960 size_t newsize = oldsize + dvs;
+
4961 set_inuse(m, p, newsize);
+
4962 m->dvsize = 0;
+
4963 m->dv = 0;
+
4964 }
+
4965 newp = p;
+
4966 }
+
4967 } else if (!cinuse(next)) { /* extend into next free chunk */
+
4968 size_t nextsize = chunksize(next);
+
4969 if (oldsize + nextsize >= nb) {
+
4970 size_t rsize = oldsize + nextsize - nb;
+
4971 unlink_chunk(m, next, nextsize);
+
4972 if (rsize < MIN_CHUNK_SIZE) {
+
4973 size_t newsize = oldsize + nextsize;
+
4974 set_inuse(m, p, newsize);
+
4975 } else {
+
4976 mchunkptr r = chunk_plus_offset(p, nb);
+
4977 set_inuse(m, p, nb);
+
4978 set_inuse(m, r, rsize);
+
4979 dispose_chunk(m, r, rsize);
+
4980 }
+
4981 newp = p;
+
4982 }
+
4983 }
+
4984 } else {
+ +
4986 }
+
4987 return newp;
+
4988} /* try_realloc_chunk */
+
4989
+
4990static void* internal_memalign(mstate m, size_t alignment, size_t bytes)
+
4991{
+
4992 void *mem = 0;
+
4993
+
4994 if (alignment < MIN_CHUNK_SIZE) /* must be at least a minimum chunk size */
+
4995 alignment = MIN_CHUNK_SIZE;
+
4996 if ((alignment & (alignment - SIZE_T_ONE)) != 0) {/* Ensure a power of 2 */
+
4997 size_t a = MALLOC_ALIGNMENT << 1;
+
4998 while (a < alignment) a <<= 1;
+
4999 alignment = a;
+
5000 }
+
5001 if (bytes >= MAX_REQUEST - alignment) {
+
5002 if (m != 0) { /* Test isn't needed but avoids compiler warning */
+ +
5004 }
+
5005 } else {
+
5006 size_t nb = request2size(bytes);
+
5007 size_t req = nb + alignment + MIN_CHUNK_SIZE - CHUNK_OVERHEAD;
+
5008 mem = internal_malloc(m, req);
+
5009 if (mem != 0) {
+
5010 mchunkptr p = mem2chunk(mem);
+
5011 if (PREACTION(m))
+
5012 return 0;
+
5013
+
5014 if ((((size_t) (mem)) & (alignment - 1)) != 0) { /* misaligned */
+
5015 /*
+
5016 * Find an aligned spot inside chunk. Since we need to give
+
5017 * back leading space in a chunk of at least MIN_CHUNK_SIZE, if
+
5018 * the first calculation places us at a spot with less than
+
5019 * MIN_CHUNK_SIZE leader, we can move to the next aligned spot.
+
5020 * We've allocated enough total room so that this is always
+
5021 * possible.
+
5022 */
+
5023 char *br = (char *) mem2chunk((size_t) (((size_t) ((char *) mem + alignment
+
5024 - SIZE_T_ONE))
+
5025 & -alignment));
+
5026 char *pos = ((size_t) (br - (char *) (p)) >= MIN_CHUNK_SIZE) ?
+
5027 br : br + alignment;
+
5028 mchunkptr newp = (mchunkptr) pos;
+
5029 size_t leadsize = pos - (char *) (p);
+
5030 size_t newsize = chunksize(p) - leadsize;
+
5031
+
5032 if (is_mmapped(p)) { /* For mmapped chunks, just adjust offset */
+
5033 newp->prev_foot = p->prev_foot + leadsize;
+
5034 newp->head = newsize;
+
5035 } else { /* Otherwise, give back leader, use the rest */
+
5036 set_inuse(m, newp, newsize);
+
5037 set_inuse(m, p, leadsize);
+
5038 dispose_chunk(m, p, leadsize);
+
5039 }
+
5040 p = newp;
+
5041 }
+
5042
+
5043 /* Give back spare room at the end */
+
5044 if (!is_mmapped(p)) {
+
5045 size_t size = chunksize(p);
+
5046 if (size > nb + MIN_CHUNK_SIZE) {
+
5047 size_t remainder_size = size - nb;
+
5048 mchunkptr remainder = chunk_plus_offset(p, nb);
+
5049 set_inuse(m, p, nb);
+
5050 set_inuse(m, remainder, remainder_size);
+
5051 dispose_chunk(m, remainder, remainder_size);
+
5052 }
+
5053 }
+
5054
+
5055 mem = chunk2mem(p);
+
5056 assert(chunksize(p) >= nb);
+
5057 assert(((size_t) mem & (alignment - 1)) == 0);
+
5058 check_inuse_chunk(m, p);
+
5059 POSTACTION(m);
+
5060 }
+
5061 }
+
5062 return mem;
+
5063} /* internal_memalign */
+
5064
+
5065/*
+
5066 * Common support for independent_X routines, handling
+
5067 * all of the combinations that can result.
+
5068 * The opts arg has:
+
5069 * bit 0 set if all elements are same size (using sizes[0])
+
5070 * bit 1 set if elements should be zeroed
+
5071 */
+
5072static void** ialloc(mstate m,
+
5073 size_t n_elements,
+
5074 size_t * sizes,
+
5075 int opts,
+
5076 void * chunks[])
+
5077{
+
5078 size_t element_size; /* chunksize of each element, if all same */
+
5079 size_t contents_size; /* total size of elements */
+
5080 size_t array_size; /* request size of pointer array */
+
5081 void *mem; /* malloced aggregate space */
+
5082 mchunkptr p; /* corresponding chunk */
+
5083 size_t remainder_size; /* remaining bytes while splitting */
+
5084 void **marray; /* either "chunks" or malloced ptr array */
+
5085 mchunkptr array_chunk; /* chunk for malloced ptr array */
+
5086 flag_t was_enabled; /* to disable mmap */
+
5087 size_t size;
+
5088 size_t i;
+
5089
+ +
5091 /* compute array length, if needed */
+
5092 if (chunks != 0) {
+
5093 if (n_elements == 0)
+
5094 return chunks; /* nothing to do */
+
5095
+
5096 marray = chunks;
+
5097 array_size = 0;
+
5098 } else {
+
5099 /* if empty req, must still return chunk representing empty array */
+
5100 if (n_elements == 0)
+
5101 return (void **) internal_malloc(m, 0);
+
5102
+
5103 marray = 0;
+
5104 array_size = request2size(n_elements * (sizeof(void *)));
+
5105 }
+
5106
+
5107 /* compute total element size */
+
5108 if (opts & 0x1) { /* all-same-size */
+
5109 element_size = request2size(*sizes);
+
5110 contents_size = n_elements * element_size;
+
5111 } else { /* add up all the sizes */
+
5112 element_size = 0;
+
5113 contents_size = 0;
+
5114 for (i = 0; i != n_elements; ++i)
+
5115 contents_size += request2size(sizes[i]);
+
5116 }
+
5117
+
5118 size = contents_size + array_size;
+
5119
+
5120 /*
+
5121 * Allocate the aggregate chunk. First disable direct-mmapping so
+
5122 * malloc won't use it, since we would not be able to later
+
5123 * free/realloc space internal to a segregated mmap region.
+
5124 */
+
5125 was_enabled = use_mmap(m);
+
5126 disable_mmap(m);
+
5127 mem = internal_malloc(m, size - CHUNK_OVERHEAD);
+
5128 if (was_enabled)
+
5129 enable_mmap(m);
+
5130 if (mem == 0)
+
5131 return 0;
+
5132
+
5133 if (PREACTION(m)) return 0;
+
5134
+
5135 p = mem2chunk(mem);
+
5136 remainder_size = chunksize(p);
+
5137
+
5138 assert(!is_mmapped(p));
+
5139
+
5140 if (opts & 0x2) { /* optionally clear the elements */
+
5141 memset((size_t *) mem, 0, remainder_size - SIZE_T_SIZE - array_size);
+
5142 }
+
5143
+
5144 /* If not provided, allocate the pointer array as final part of chunk */
+
5145 if (marray == 0) {
+
5146 size_t array_chunk_size;
+
5147 array_chunk = chunk_plus_offset(p, contents_size);
+
5148 array_chunk_size = remainder_size - contents_size;
+
5149 marray = (void **) (chunk2mem(array_chunk));
+
5150 set_size_and_pinuse_of_inuse_chunk(m, array_chunk, array_chunk_size);
+
5151 remainder_size = contents_size;
+
5152 }
+
5153
+
5154 /* split out elements */
+
5155 for (i = 0;; ++i) {
+
5156 marray[i] = chunk2mem(p);
+
5157 if (i != n_elements - 1) {
+
5158 if (element_size != 0)
+
5159 size = element_size;
+
5160 else
+
5161 size = request2size(sizes[i]);
+
5162 remainder_size -= size;
+ +
5164 p = chunk_plus_offset(p, size);
+
5165 } else { /* the final element absorbs any overallocation slop */
+
5166 set_size_and_pinuse_of_inuse_chunk(m, p, remainder_size);
+
5167 break;
+
5168 }
+
5169 }
+
5170
+
5171 #if DEBUG
+
5172 if (marray != chunks) {
+
5173 /* final element must have exactly exhausted chunk */
+
5174 if (element_size != 0) {
+
5175 assert(remainder_size == element_size);
+
5176 } else {
+
5177 assert(remainder_size == request2size(sizes[i]));
+
5178 }
+
5179 check_inuse_chunk(m, mem2chunk(marray));
+
5180 }
+
5181 for (i = 0; i != n_elements; ++i)
+
5182 check_inuse_chunk(m, mem2chunk(marray[i]));
+
5183
+
5184 #endif /* DEBUG */
+
5185
+
5186 POSTACTION(m);
+
5187 return marray;
+
5188} /* ialloc */
+
5189
+
5190/* Try to free all pointers in the given array.
+
5191 * Note: this could be made faster, by delaying consolidation,
+
5192 * at the price of disabling some user integrity checks, We
+
5193 * still optimize some consolidations by combining adjacent
+
5194 * chunks before freeing, which will occur often if allocated
+
5195 * with ialloc or the array is sorted.
+
5196 */
+
5197static size_t internal_bulk_free(mstate m, void *array[], size_t nelem)
+
5198{
+
5199 size_t unfreed = 0;
+
5200
+
5201 if (!PREACTION(m)) {
+
5202 void **a;
+
5203 void **fence = &(array[nelem]);
+
5204 for (a = array; a != fence; ++a) {
+
5205 void *mem = *a;
+
5206 if (mem != 0) {
+
5207 mchunkptr p = mem2chunk(mem);
+
5208 size_t psize = chunksize(p);
+
5209 #if FOOTERS
+
5210 if (get_mstate_for(p) != m) {
+
5211 ++unfreed;
+
5212 continue;
+
5213 }
+
5214 #endif
+
5215 check_inuse_chunk(m, p);
+
5216 *a = 0;
+
5217 if (RTCHECK(ok_address(m, p) && ok_inuse(p))) {
+
5218 void **b = a + 1; /* try to merge with next chunk */
+
5219 mchunkptr next = next_chunk(p);
+
5220 if (b != fence && *b == chunk2mem(next)) {
+
5221 size_t newsize = chunksize(next) + psize;
+
5222 set_inuse(m, p, newsize);
+
5223 *b = chunk2mem(p);
+
5224 } else {
+
5225 dispose_chunk(m, p, psize);
+
5226 }
+
5227 } else {
+ +
5229 break;
+
5230 }
+
5231 }
+
5232 }
+
5233 if (should_trim(m, m->topsize))
+
5234 sys_trim(m, 0);
+
5235 POSTACTION(m);
+
5236 }
+
5237 return unfreed;
+
5238} /* internal_bulk_free */
+
5239
+
5240/* Traversal */
+
5241#if MALLOC_INSPECT_ALL
+
5242static void internal_inspect_all(mstate m,
+
5243 void ( * handler )(void *start,
+
5244 void * end,
+
5245 size_t used_bytes,
+
5246 void * callback_arg),
+
5247 void * arg)
+
5248{
+
5249 if (is_initialized(m)) {
+
5250 mchunkptr top = m->top;
+
5251 msegmentptr s;
+
5252 for (s = &m->seg; s != 0; s = s->next) {
+ +
5254 while (segment_holds(s, q) && q->head != FENCEPOST_HEAD) {
+
5255 mchunkptr next = next_chunk(q);
+
5256 size_t sz = chunksize(q);
+
5257 size_t used;
+
5258 void *start;
+
5259 if (is_inuse(q)) {
+
5260 used = sz - CHUNK_OVERHEAD; /* must not be mmapped */
+
5261 start = chunk2mem(q);
+
5262 } else {
+
5263 used = 0;
+
5264 if (is_small(sz)) { /* offset by possible bookkeeping */
+
5265 start = (void *) ((char *) q + sizeof(struct malloc_chunk));
+
5266 } else {
+
5267 start = (void *) ((char *) q + sizeof(struct malloc_tree_chunk));
+
5268 }
+
5269 }
+
5270 if (start < (void *) next) /* skip if all space is bookkeeping */
+
5271 handler(start, next, used, arg);
+
5272 if (q == top)
+
5273 break;
+
5274 q = next;
+
5275 }
+
5276 }
+
5277 }
+
5278}
+
5279
+
5280#endif /* MALLOC_INSPECT_ALL */
+
5281
+
5282/* ------------------ Exported realloc, memalign, etc -------------------- */
+
5283
+
5284#if !ONLY_MSPACES
+
5285
+
5286void* dlrealloc(void *oldmem, size_t bytes)
+
5287{
+
5288 void *mem = 0;
+
5289
+
5290 if (oldmem == 0) {
+
5291 mem = dlmalloc(bytes);
+
5292 } else if (bytes >= MAX_REQUEST) {
+ +
5294 }
+
5295 #ifdef REALLOC_ZERO_BYTES_FREES
+
5296 else if (bytes == 0) {
+
5297 dlfree(oldmem);
+
5298 }
+
5299 #endif /* REALLOC_ZERO_BYTES_FREES */
+
5300 else {
+
5301 size_t nb = request2size(bytes);
+
5302 mchunkptr oldp = mem2chunk(oldmem);
+
5303 #if !FOOTERS
+
5304 mstate m = gm;
+
5305 #else /* FOOTERS */
+
5306 mstate m = get_mstate_for(oldp);
+
5307 if (!ok_magic(m)) {
+
5308 USAGE_ERROR_ACTION(m, oldmem);
+
5309 return 0;
+
5310 }
+
5311 #endif /* FOOTERS */
+
5312 if (!PREACTION(m)) {
+
5313 mchunkptr newp = try_realloc_chunk(m, oldp, nb, 1);
+
5314 POSTACTION(m);
+
5315 if (newp != 0) {
+
5316 check_inuse_chunk(m, newp);
+
5317 mem = chunk2mem(newp);
+
5318 } else {
+
5319 mem = internal_malloc(m, bytes);
+
5320 if (mem != 0) {
+
5321 size_t oc = chunksize(oldp) - overhead_for(oldp);
+
5322 memcpy(mem, oldmem, (oc < bytes) ? oc : bytes);
+
5323 internal_free(m, oldmem);
+
5324 }
+
5325 }
+
5326 }
+
5327 }
+
5328 return mem;
+
5329} /* dlrealloc */
+
5330
+
5331void* dlrealloc_in_place(void *oldmem, size_t bytes)
+
5332{
+
5333 void *mem = 0;
+
5334
+
5335 if (oldmem != 0) {
+
5336 if (bytes >= MAX_REQUEST) {
+ +
5338 } else {
+
5339 size_t nb = request2size(bytes);
+
5340 mchunkptr oldp = mem2chunk(oldmem);
+
5341 #if !FOOTERS
+
5342 mstate m = gm;
+
5343 #else /* FOOTERS */
+
5344 mstate m = get_mstate_for(oldp);
+
5345 if (!ok_magic(m)) {
+
5346 USAGE_ERROR_ACTION(m, oldmem);
+
5347 return 0;
+
5348 }
+
5349 #endif /* FOOTERS */
+
5350 if (!PREACTION(m)) {
+
5351 mchunkptr newp = try_realloc_chunk(m, oldp, nb, 0);
+
5352 POSTACTION(m);
+
5353 if (newp == oldp) {
+
5354 check_inuse_chunk(m, newp);
+
5355 mem = oldmem;
+
5356 }
+
5357 }
+
5358 }
+
5359 }
+
5360 return mem;
+
5361}
+
5362
+
5363void* dlmemalign(size_t alignment, size_t bytes)
+
5364{
+
5365 if (alignment <= MALLOC_ALIGNMENT) {
+
5366 return dlmalloc(bytes);
+
5367 }
+
5368 return internal_memalign(gm, alignment, bytes);
+
5369}
+
5370
+
5371int dlposix_memalign(void **pp, size_t alignment, size_t bytes)
+
5372{
+
5373 void *mem = 0;
+
5374
+
5375 if (alignment == MALLOC_ALIGNMENT) {
+
5376 mem = dlmalloc(bytes);
+
5377 } else {
+
5378 size_t d = alignment / sizeof(void *);
+
5379 size_t r = alignment % sizeof(void *);
+
5380 if (r != 0 || d == 0 || (d & (d - SIZE_T_ONE)) != 0) {
+
5381 return EINVAL;
+
5382 } else if (bytes <= MAX_REQUEST - alignment) {
+
5383 if (alignment < MIN_CHUNK_SIZE)
+
5384 alignment = MIN_CHUNK_SIZE;
+
5385 mem = internal_memalign(gm, alignment, bytes);
+
5386 }
+
5387 }
+
5388 if (mem == 0) {
+
5389 return ENOMEM;
+
5390 } else {
+
5391 *pp = mem;
+
5392 return 0;
+
5393 }
+
5394}
+
5395
+
5396void* dlvalloc(size_t bytes)
+
5397{
+
5398 size_t pagesz;
+
5399
+ +
5401 pagesz = mparams.page_size;
+
5402 return dlmemalign(pagesz, bytes);
+
5403}
+
5404
+
5405void* dlpvalloc(size_t bytes)
+
5406{
+
5407 size_t pagesz;
+
5408
+ +
5410 pagesz = mparams.page_size;
+
5411 return dlmemalign(pagesz, (bytes + pagesz - SIZE_T_ONE) & ~(pagesz - SIZE_T_ONE));
+
5412}
+
5413
+
5414void** dlindependent_calloc(size_t n_elements, size_t elem_size,
+
5415 void *chunks[])
+
5416{
+
5417 size_t sz = elem_size; /* serves as 1-element array */
+
5418
+
5419 return ialloc(gm, n_elements, &sz, 3, chunks);
+
5420}
+
5421
+
5422void** dlindependent_comalloc(size_t n_elements, size_t sizes[],
+
5423 void *chunks[])
+
5424{
+
5425 return ialloc(gm, n_elements, sizes, 0, chunks);
+
5426}
+
5427
+
5428size_t dlbulk_free(void *array[], size_t nelem)
+
5429{
+
5430 return internal_bulk_free(gm, array, nelem);
+
5431}
+
5432
+
5433#if MALLOC_INSPECT_ALL
+
5434void dlmalloc_inspect_all(void ( *handler )(void *start,
+
5435 void * end,
+
5436 size_t used_bytes,
+
5437 void * callback_arg),
+
5438 void * arg)
+
5439{
+ +
5441 if (!PREACTION(gm)) {
+
5442 internal_inspect_all(gm, handler, arg);
+
5443 POSTACTION(gm);
+
5444 }
+
5445}
+
5446
+
5447#endif /* MALLOC_INSPECT_ALL */
+
5448
+
5449int dlmalloc_trim(size_t pad)
+
5450{
+
5451 int result = 0;
+
5452
+ +
5454 if (!PREACTION(gm)) {
+
5455 result = sys_trim(gm, pad);
+
5456 POSTACTION(gm);
+
5457 }
+
5458 return result;
+
5459}
+
5460
+ +
5462{
+
5463 return gm->footprint;
+
5464}
+
5465
+ +
5467{
+
5468 return gm->max_footprint;
+
5469}
+
5470
+ +
5472{
+
5473 size_t maf = gm->footprint_limit;
+
5474
+
5475 return maf == 0 ? MAX_SIZE_T : maf;
+
5476}
+
5477
+ +
5479{
+
5480 size_t result; /* invert sense of 0 */
+
5481
+
5482 if (bytes == 0)
+
5483 result = granularity_align(1); /* Use minimal size */
+
5484 if (bytes == MAX_SIZE_T)
+
5485 result = 0; /* disable */
+
5486 else
+
5487 result = granularity_align(bytes);
+
5488 return gm->footprint_limit = result;
+
5489}
+
5490
+
5491#if !NO_MALLINFO
+ +
5493{
+
5494 return internal_mallinfo(gm);
+
5495}
+
5496
+
5497#endif /* NO_MALLINFO */
+
5498
+
5499#if !NO_MALLOC_STATS
+ +
5501{
+ +
5503}
+
5504
+
5505#endif /* NO_MALLOC_STATS */
+
5506
+
5507int dlmallopt(int param_number, int value)
+
5508{
+
5509 return change_mparam(param_number, value);
+
5510}
+
5511
+
5512size_t dlmalloc_usable_size(void *mem)
+
5513{
+
5514 if (mem != 0) {
+
5515 mchunkptr p = mem2chunk(mem);
+
5516 if (is_inuse(p))
+
5517 return chunksize(p) - overhead_for(p);
+
5518 }
+
5519 return 0;
+
5520}
+
5521
+
5522#endif /* !ONLY_MSPACES */
+
5523
+
5524/* ----------------------------- user mspaces ---------------------------- */
+
5525
+
5526#if MSPACES
+
5527
+
5528static mstate init_user_mstate(char *tbase, size_t tsize)
+
5529{
+
5530 size_t msize = pad_request(sizeof(struct malloc_state));
+
5531 mchunkptr mn;
+
5532 mchunkptr msp = align_as_chunk(tbase);
+
5533 mstate m = (mstate) (chunk2mem(msp));
+
5534
+
5535 memset(m, 0, msize);
+
5536 (void) INITIAL_LOCK(&m->mutex);
+
5537 msp->head = (msize | INUSE_BITS);
+
5538 m->seg.base = m->least_addr = tbase;
+
5539 m->seg.size = m->footprint = m->max_footprint = tsize;
+
5540 m->magic = mparams.magic;
+ + +
5543 m->extp = 0;
+
5544 m->exts = 0;
+ +
5546 init_bins(m);
+
5547 mn = next_chunk(mem2chunk(m));
+
5548 init_top(m, mn, (size_t) ((tbase + tsize) - (char *) mn) - TOP_FOOT_SIZE);
+
5549 check_top_chunk(m, m->top);
+
5550 return m;
+
5551}
+
5552
+
5553mspace create_mspace(size_t capacity, int locked)
+
5554{
+
5555 mstate m = 0;
+
5556 size_t msize;
+
5557
+ +
5559 msize = pad_request(sizeof(struct malloc_state));
+
5560 if (capacity < (size_t) -(msize + TOP_FOOT_SIZE + mparams.page_size)) {
+
5561 size_t rs = ((capacity == 0) ? mparams.granularity :
+
5562 (capacity + TOP_FOOT_SIZE + msize));
+
5563 size_t tsize = granularity_align(rs);
+
5564 char *tbase = (char *) (CALL_MMAP(tsize));
+
5565 if (tbase != CMFAIL) {
+
5566 m = init_user_mstate(tbase, tsize);
+
5567 m->seg.sflags = USE_MMAP_BIT;
+
5568 set_lock(m, locked);
+
5569 }
+
5570 }
+
5571 return (mspace) m;
+
5572}
+
5573
+
5574mspace create_mspace_with_base(void *base, size_t capacity, int locked)
+
5575{
+
5576 mstate m = 0;
+
5577 size_t msize;
+
5578
+ +
5580 msize = pad_request(sizeof(struct malloc_state));
+
5581 if (capacity > msize + TOP_FOOT_SIZE &&
+
5582 capacity < (size_t) -(msize + TOP_FOOT_SIZE + mparams.page_size))
+
5583 {
+
5584 m = init_user_mstate((char *) base, capacity);
+
5585 m->seg.sflags = EXTERN_BIT;
+
5586 set_lock(m, locked);
+
5587 }
+
5588 return (mspace) m;
+
5589}
+
5590
+
5591int mspace_track_large_chunks(mspace msp, int enable)
+
5592{
+
5593 int ret = 0;
+
5594 mstate ms = (mstate) msp;
+
5595
+
5596 if (!PREACTION(ms)) {
+
5597 if (!use_mmap(ms)) {
+
5598 ret = 1;
+
5599 }
+
5600 if (!enable) {
+
5601 enable_mmap(ms);
+
5602 } else {
+
5603 disable_mmap(ms);
+
5604 }
+
5605 POSTACTION(ms);
+
5606 }
+
5607 return ret;
+
5608}
+
5609
+
5610size_t destroy_mspace(mspace msp)
+
5611{
+
5612 size_t freed = 0;
+
5613 mstate ms = (mstate) msp;
+
5614
+
5615 if (ok_magic(ms)) {
+
5616 msegmentptr sp = &ms->seg;
+
5617 (void) DESTROY_LOCK(&ms->mutex); /* destroy before unmapped */
+
5618 while (sp != 0) {
+
5619 char *base = sp->base;
+
5620 size_t size = sp->size;
+
5621 flag_t flag = sp->sflags;
+
5622 (void) base; /* placate people compiling -Wunused-variable */
+
5623 sp = sp->next;
+
5624 if ((flag & USE_MMAP_BIT) && !(flag & EXTERN_BIT) &&
+
5625 CALL_MUNMAP(base, size) == 0)
+
5626 freed += size;
+
5627 }
+
5628 } else {
+
5629 USAGE_ERROR_ACTION(ms, ms);
+
5630 }
+
5631 return freed;
+
5632}
+
5633
+
5634/*
+
5635 * mspace versions of routines are near-clones of the global
+
5636 * versions. This is not so nice but better than the alternatives.
+
5637 */
+
5638
+
5639void* mspace_malloc(mspace msp, size_t bytes)
+
5640{
+
5641 mstate ms = (mstate) msp;
+
5642
+
5643 if (!ok_magic(ms)) {
+
5644 USAGE_ERROR_ACTION(ms, ms);
+
5645 return 0;
+
5646 }
+
5647 if (!PREACTION(ms)) {
+
5648 void *mem;
+
5649 size_t nb;
+
5650 if (bytes <= MAX_SMALL_REQUEST) {
+
5651 bindex_t idx;
+
5652 binmap_t smallbits;
+
5653 nb = (bytes < MIN_REQUEST) ? MIN_CHUNK_SIZE : pad_request(bytes);
+
5654 idx = small_index(nb);
+
5655 smallbits = ms->smallmap >> idx;
+
5656
+
5657 if ((smallbits & 0x3U) != 0) { /* Remainderless fit to a smallbin. */
+
5658 mchunkptr b, p;
+
5659 idx += ~smallbits & 1; /* Uses next bin if idx empty */
+
5660 b = smallbin_at(ms, idx);
+
5661 p = b->fd;
+
5662 assert(chunksize(p) == small_index2size(idx));
+
5663 unlink_first_small_chunk(ms, b, p, idx);
+ +
5665 mem = chunk2mem(p);
+
5666 check_malloced_chunk(ms, mem, nb);
+
5667 goto postaction;
+
5668 } else if (nb > ms->dvsize) {
+
5669 if (smallbits != 0) { /* Use chunk in next nonempty smallbin */
+
5670 mchunkptr b, p, r;
+
5671 size_t rsize;
+
5672 bindex_t i;
+
5673 binmap_t leftbits = (smallbits << idx) & left_bits(idx2bit(idx));
+
5674 binmap_t leastbit = least_bit(leftbits);
+
5675 compute_bit2idx(leastbit, i);
+
5676 b = smallbin_at(ms, i);
+
5677 p = b->fd;
+ +
5679 unlink_first_small_chunk(ms, b, p, i);
+
5680 rsize = small_index2size(i) - nb;
+
5681 /* Fit here cannot be remainderless if 4byte sizes */
+
5682 if (SIZE_T_SIZE != 4 && rsize < MIN_CHUNK_SIZE) {
+ +
5684 } else {
+ +
5686 r = chunk_plus_offset(p, nb);
+ +
5688 replace_dv(ms, r, rsize);
+
5689 }
+
5690 mem = chunk2mem(p);
+
5691 check_malloced_chunk(ms, mem, nb);
+
5692 goto postaction;
+
5693 } else if (ms->treemap != 0 && (mem = tmalloc_small(ms, nb)) != 0) {
+
5694 check_malloced_chunk(ms, mem, nb);
+
5695 goto postaction;
+
5696 }
+
5697 }
+
5698 } else if (bytes >= MAX_REQUEST) {
+
5699 nb = MAX_SIZE_T; /* Too big to allocate. Force failure (in sys alloc) */
+
5700 } else {
+
5701 nb = pad_request(bytes);
+
5702 if (ms->treemap != 0 && (mem = tmalloc_large(ms, nb)) != 0) {
+
5703 check_malloced_chunk(ms, mem, nb);
+
5704 goto postaction;
+
5705 }
+
5706 }
+
5707
+
5708 if (nb <= ms->dvsize) {
+
5709 size_t rsize = ms->dvsize - nb;
+
5710 mchunkptr p = ms->dv;
+
5711 if (rsize >= MIN_CHUNK_SIZE) { /* split dv */
+
5712 mchunkptr r = ms->dv = chunk_plus_offset(p, nb);
+
5713 ms->dvsize = rsize;
+ + +
5716 } else { /* exhaust dv */
+
5717 size_t dvs = ms->dvsize;
+
5718 ms->dvsize = 0;
+
5719 ms->dv = 0;
+
5720 set_inuse_and_pinuse(ms, p, dvs);
+
5721 }
+
5722 mem = chunk2mem(p);
+
5723 check_malloced_chunk(ms, mem, nb);
+
5724 goto postaction;
+
5725 } else if (nb < ms->topsize) { /* Split top */
+
5726 size_t rsize = ms->topsize -= nb;
+
5727 mchunkptr p = ms->top;
+
5728 mchunkptr r = ms->top = chunk_plus_offset(p, nb);
+
5729 r->head = rsize | PINUSE_BIT;
+ +
5731 mem = chunk2mem(p);
+
5732 check_top_chunk(ms, ms->top);
+
5733 check_malloced_chunk(ms, mem, nb);
+
5734 goto postaction;
+
5735 }
+
5736
+
5737 mem = sys_alloc(ms, nb);
+
5738
+
5739postaction:
+
5740 POSTACTION(ms);
+
5741 return mem;
+
5742 }
+
5743
+
5744 return 0;
+
5745} /* mspace_malloc */
+
5746
+
5747void mspace_free(mspace msp, void *mem)
+
5748{
+
5749 if (mem != 0) {
+
5750 mchunkptr p = mem2chunk(mem);
+
5751 #if FOOTERS
+
5752 mstate fm = get_mstate_for(p);
+
5753 (void) msp; /* placate people compiling -Wunused */
+
5754 #else /* FOOTERS */
+
5755 mstate fm = (mstate) msp;
+
5756 #endif /* FOOTERS */
+
5757 if (!ok_magic(fm)) {
+ +
5759 return;
+
5760 }
+
5761 if (!PREACTION(fm)) {
+ +
5763 if (RTCHECK(ok_address(fm, p) && ok_inuse(p))) {
+
5764 size_t psize = chunksize(p);
+
5765 mchunkptr next = chunk_plus_offset(p, psize);
+
5766 if (!pinuse(p)) {
+
5767 size_t prevsize = p->prev_foot;
+
5768 if (is_mmapped(p)) {
+
5769 psize += prevsize + MMAP_FOOT_PAD;
+
5770 if (CALL_MUNMAP((char *) p - prevsize, psize) == 0)
+
5771 fm->footprint -= psize;
+
5772 goto postaction;
+
5773 } else {
+
5774 mchunkptr prev = chunk_minus_offset(p, prevsize);
+
5775 psize += prevsize;
+
5776 p = prev;
+
5777 if (RTCHECK(ok_address(fm, prev))) { /* consolidate backward */
+
5778 if (p != fm->dv) {
+
5779 unlink_chunk(fm, p, prevsize);
+
5780 } else if ((next->head & INUSE_BITS) == INUSE_BITS) {
+
5781 fm->dvsize = psize;
+
5782 set_free_with_pinuse(p, psize, next);
+
5783 goto postaction;
+
5784 }
+
5785 } else {
+
5786 goto erroraction;
+
5787 }
+
5788 }
+
5789 }
+
5790
+
5791 if (RTCHECK(ok_next(p, next) && ok_pinuse(next))) {
+
5792 if (!cinuse(next)) { /* consolidate forward */
+
5793 if (next == fm->top) {
+
5794 size_t tsize = fm->topsize += psize;
+
5795 fm->top = p;
+
5796 p->head = tsize | PINUSE_BIT;
+
5797 if (p == fm->dv) {
+
5798 fm->dv = 0;
+
5799 fm->dvsize = 0;
+
5800 }
+
5801 if (should_trim(fm, tsize))
+
5802 sys_trim(fm, 0);
+
5803 goto postaction;
+
5804 } else if (next == fm->dv) {
+
5805 size_t dsize = fm->dvsize += psize;
+
5806 fm->dv = p;
+ +
5808 goto postaction;
+
5809 } else {
+
5810 size_t nsize = chunksize(next);
+
5811 psize += nsize;
+
5812 unlink_chunk(fm, next, nsize);
+ +
5814 if (p == fm->dv) {
+
5815 fm->dvsize = psize;
+
5816 goto postaction;
+
5817 }
+
5818 }
+
5819 } else {
+
5820 set_free_with_pinuse(p, psize, next);
+
5821 }
+
5822
+
5823 if (is_small(psize)) {
+
5824 insert_small_chunk(fm, p, psize);
+
5825 check_free_chunk(fm, p);
+
5826 } else {
+
5827 tchunkptr tp = (tchunkptr) p;
+
5828 insert_large_chunk(fm, tp, psize);
+
5829 check_free_chunk(fm, p);
+
5830 if (--fm->release_checks == 0)
+ +
5832 }
+
5833 goto postaction;
+
5834 }
+
5835 }
+
5836erroraction:
+ +
5838postaction:
+
5839 POSTACTION(fm);
+
5840 }
+
5841 }
+
5842} /* mspace_free */
+
5843
+
5844void* mspace_calloc(mspace msp, size_t n_elements, size_t elem_size)
+
5845{
+
5846 void *mem;
+
5847 size_t req = 0;
+
5848 mstate ms = (mstate) msp;
+
5849
+
5850 if (!ok_magic(ms)) {
+
5851 USAGE_ERROR_ACTION(ms, ms);
+
5852 return 0;
+
5853 }
+
5854 if (n_elements != 0) {
+
5855 req = n_elements * elem_size;
+
5856 if (((n_elements | elem_size) & ~(size_t) 0xffff) &&
+
5857 (req / n_elements != elem_size))
+
5858 req = MAX_SIZE_T; /* force downstream failure on overflow */
+
5859 }
+
5860 mem = internal_malloc(ms, req);
+
5861 if (mem != 0 && calloc_must_clear(mem2chunk(mem)))
+
5862 memset(mem, 0, req);
+
5863 return mem;
+
5864}
+
5865
+
5866void* mspace_realloc(mspace msp, void *oldmem, size_t bytes)
+
5867{
+
5868 void *mem = 0;
+
5869
+
5870 if (oldmem == 0) {
+
5871 mem = mspace_malloc(msp, bytes);
+
5872 } else if (bytes >= MAX_REQUEST) {
+ +
5874 }
+
5875 #ifdef REALLOC_ZERO_BYTES_FREES
+
5876 else if (bytes == 0) {
+
5877 mspace_free(msp, oldmem);
+
5878 }
+
5879 #endif /* REALLOC_ZERO_BYTES_FREES */
+
5880 else {
+
5881 size_t nb = request2size(bytes);
+
5882 mchunkptr oldp = mem2chunk(oldmem);
+
5883 #if !FOOTERS
+
5884 mstate m = (mstate) msp;
+
5885 #else /* FOOTERS */
+
5886 mstate m = get_mstate_for(oldp);
+
5887 if (!ok_magic(m)) {
+
5888 USAGE_ERROR_ACTION(m, oldmem);
+
5889 return 0;
+
5890 }
+
5891 #endif /* FOOTERS */
+
5892 if (!PREACTION(m)) {
+
5893 mchunkptr newp = try_realloc_chunk(m, oldp, nb, 1);
+
5894 POSTACTION(m);
+
5895 if (newp != 0) {
+
5896 check_inuse_chunk(m, newp);
+
5897 mem = chunk2mem(newp);
+
5898 } else {
+
5899 mem = mspace_malloc(m, bytes);
+
5900 if (mem != 0) {
+
5901 size_t oc = chunksize(oldp) - overhead_for(oldp);
+
5902 memcpy(mem, oldmem, (oc < bytes) ? oc : bytes);
+
5903 mspace_free(m, oldmem);
+
5904 }
+
5905 }
+
5906 }
+
5907 }
+
5908 return mem;
+
5909} /* mspace_realloc */
+
5910
+
5911void* mspace_realloc_in_place(mspace msp, void *oldmem, size_t bytes)
+
5912{
+
5913 void *mem = 0;
+
5914
+
5915 if (oldmem != 0) {
+
5916 if (bytes >= MAX_REQUEST) {
+ +
5918 } else {
+
5919 size_t nb = request2size(bytes);
+
5920 mchunkptr oldp = mem2chunk(oldmem);
+
5921 #if !FOOTERS
+
5922 mstate m = (mstate) msp;
+
5923 #else /* FOOTERS */
+
5924 mstate m = get_mstate_for(oldp);
+
5925 (void) msp; /* placate people compiling -Wunused */
+
5926 if (!ok_magic(m)) {
+
5927 USAGE_ERROR_ACTION(m, oldmem);
+
5928 return 0;
+
5929 }
+
5930 #endif /* FOOTERS */
+
5931 if (!PREACTION(m)) {
+
5932 mchunkptr newp = try_realloc_chunk(m, oldp, nb, 0);
+
5933 POSTACTION(m);
+
5934 if (newp == oldp) {
+
5935 check_inuse_chunk(m, newp);
+
5936 mem = oldmem;
+
5937 }
+
5938 }
+
5939 }
+
5940 }
+
5941 return mem;
+
5942}
+
5943
+
5944void* mspace_memalign(mspace msp, size_t alignment, size_t bytes)
+
5945{
+
5946 mstate ms = (mstate) msp;
+
5947
+
5948 if (!ok_magic(ms)) {
+
5949 USAGE_ERROR_ACTION(ms, ms);
+
5950 return 0;
+
5951 }
+
5952 if (alignment <= MALLOC_ALIGNMENT)
+
5953 return mspace_malloc(msp, bytes);
+
5954
+
5955 return internal_memalign(ms, alignment, bytes);
+
5956}
+
5957
+
5958void** mspace_independent_calloc(mspace msp, size_t n_elements,
+
5959 size_t elem_size, void *chunks[])
+
5960{
+
5961 size_t sz = elem_size; /* serves as 1-element array */
+
5962 mstate ms = (mstate) msp;
+
5963
+
5964 if (!ok_magic(ms)) {
+
5965 USAGE_ERROR_ACTION(ms, ms);
+
5966 return 0;
+
5967 }
+
5968 return ialloc(ms, n_elements, &sz, 3, chunks);
+
5969}
+
5970
+
5971void** mspace_independent_comalloc(mspace msp, size_t n_elements,
+
5972 size_t sizes[], void *chunks[])
+
5973{
+
5974 mstate ms = (mstate) msp;
+
5975
+
5976 if (!ok_magic(ms)) {
+
5977 USAGE_ERROR_ACTION(ms, ms);
+
5978 return 0;
+
5979 }
+
5980 return ialloc(ms, n_elements, sizes, 0, chunks);
+
5981}
+
5982
+
5983size_t mspace_bulk_free(mspace msp, void *array[], size_t nelem)
+
5984{
+
5985 return internal_bulk_free((mstate) msp, array, nelem);
+
5986}
+
5987
+
5988#if MALLOC_INSPECT_ALL
+
5989void mspace_inspect_all(mspace msp,
+
5990 void ( * handler )(void *start,
+
5991 void * end,
+
5992 size_t used_bytes,
+
5993 void * callback_arg),
+
5994 void * arg)
+
5995{
+
5996 mstate ms = (mstate) msp;
+
5997
+
5998 if (ok_magic(ms)) {
+
5999 if (!PREACTION(ms)) {
+
6000 internal_inspect_all(ms, handler, arg);
+
6001 POSTACTION(ms);
+
6002 }
+
6003 } else {
+
6004 USAGE_ERROR_ACTION(ms, ms);
+
6005 }
+
6006}
+
6007
+
6008#endif /* MALLOC_INSPECT_ALL */
+
6009
+
6010int mspace_trim(mspace msp, size_t pad)
+
6011{
+
6012 int result = 0;
+
6013 mstate ms = (mstate) msp;
+
6014
+
6015 if (ok_magic(ms)) {
+
6016 if (!PREACTION(ms)) {
+
6017 result = sys_trim(ms, pad);
+
6018 POSTACTION(ms);
+
6019 }
+
6020 } else {
+
6021 USAGE_ERROR_ACTION(ms, ms);
+
6022 }
+
6023 return result;
+
6024}
+
6025
+
6026#if !NO_MALLOC_STATS
+
6027void mspace_malloc_stats(mspace msp)
+
6028{
+
6029 mstate ms = (mstate) msp;
+
6030
+
6031 if (ok_magic(ms)) {
+ +
6033 } else {
+
6034 USAGE_ERROR_ACTION(ms, ms);
+
6035 }
+
6036}
+
6037
+
6038#endif /* NO_MALLOC_STATS */
+
6039
+
6040size_t mspace_footprint(mspace msp)
+
6041{
+
6042 size_t result = 0;
+
6043 mstate ms = (mstate) msp;
+
6044
+
6045 if (ok_magic(ms)) {
+
6046 result = ms->footprint;
+
6047 } else {
+
6048 USAGE_ERROR_ACTION(ms, ms);
+
6049 }
+
6050 return result;
+
6051}
+
6052
+
6053size_t mspace_max_footprint(mspace msp)
+
6054{
+
6055 size_t result = 0;
+
6056 mstate ms = (mstate) msp;
+
6057
+
6058 if (ok_magic(ms)) {
+
6059 result = ms->max_footprint;
+
6060 } else {
+
6061 USAGE_ERROR_ACTION(ms, ms);
+
6062 }
+
6063 return result;
+
6064}
+
6065
+
6066size_t mspace_footprint_limit(mspace msp)
+
6067{
+
6068 size_t result = 0;
+
6069 mstate ms = (mstate) msp;
+
6070
+
6071 if (ok_magic(ms)) {
+
6072 size_t maf = ms->footprint_limit;
+
6073 result = (maf == 0) ? MAX_SIZE_T : maf;
+
6074 } else {
+
6075 USAGE_ERROR_ACTION(ms, ms);
+
6076 }
+
6077 return result;
+
6078}
+
6079
+
6080size_t mspace_set_footprint_limit(mspace msp, size_t bytes)
+
6081{
+
6082 size_t result = 0;
+
6083 mstate ms = (mstate) msp;
+
6084
+
6085 if (ok_magic(ms)) {
+
6086 if (bytes == 0)
+
6087 result = granularity_align(1); /* Use minimal size */
+
6088 if (bytes == MAX_SIZE_T)
+
6089 result = 0; /* disable */
+
6090 else
+
6091 result = granularity_align(bytes);
+
6092 ms->footprint_limit = result;
+
6093 } else {
+
6094 USAGE_ERROR_ACTION(ms, ms);
+
6095 }
+
6096 return result;
+
6097}
+
6098
+
6099#if !NO_MALLINFO
+
6100struct mallinfo mspace_mallinfo(mspace msp)
+
6101{
+
6102 mstate ms = (mstate) msp;
+
6103
+
6104 if (!ok_magic(ms)) {
+
6105 USAGE_ERROR_ACTION(ms, ms);
+
6106 }
+
6107 return internal_mallinfo(ms);
+
6108}
+
6109
+
6110#endif /* NO_MALLINFO */
+
6111
+
6112size_t mspace_usable_size(const void *mem)
+
6113{
+
6114 if (mem != 0) {
+
6115 mchunkptr p = mem2chunk(mem);
+
6116 if (is_inuse(p))
+
6117 return chunksize(p) - overhead_for(p);
+
6118 }
+
6119 return 0;
+
6120}
+
6121
+
6122int mspace_mallopt(int param_number, int value)
+
6123{
+
6124 return change_mparam(param_number, value);
+
6125}
+
6126
+
6127#endif /* MSPACES */
+
6128
+
6129
+
6130/* -------------------- Alternative MORECORE functions ------------------- */
+
6131
+
6132/*
+
6133 * Guidelines for creating a custom version of MORECORE:
+
6134 *
+
6135 * For best performance, MORECORE should allocate in multiples of pagesize.
+
6136 * MORECORE may allocate more memory than requested. (Or even less,
+
6137 * but this will usually result in a malloc failure.)
+
6138 * MORECORE must not allocate memory when given argument zero, but
+
6139 * instead return one past the end address of memory from previous
+
6140 * nonzero call.
+
6141 * For best performance, consecutive calls to MORECORE with positive
+
6142 * arguments should return increasing addresses, indicating that
+
6143 * space has been contiguously extended.
+
6144 * Even though consecutive calls to MORECORE need not return contiguous
+
6145 * addresses, it must be OK for malloc'ed chunks to span multiple
+
6146 * regions in those cases where they do happen to be contiguous.
+
6147 * MORECORE need not handle negative arguments -- it may instead
+
6148 * just return MFAIL when given negative arguments.
+
6149 * Negative arguments are always multiples of pagesize. MORECORE
+
6150 * must not misinterpret negative args as large positive unsigned
+
6151 * args. You can suppress all such calls from even occurring by defining
+
6152 * MORECORE_CANNOT_TRIM,
+
6153 *
+
6154 * As an example alternative MORECORE, here is a custom allocator
+
6155 * kindly contributed for pre-OSX macOS. It uses virtually but not
+
6156 * necessarily physically contiguous non-paged memory (locked in,
+
6157 * present and won't get swapped out). You can use it by uncommenting
+
6158 * this section, adding some #includes, and setting up the appropriate
+
6159 * defines above:
+
6160 *
+
6161 #define MORECORE osMoreCore
+
6162 *
+
6163 * There is also a shutdown routine that should somehow be called for
+
6164 * cleanup upon program exit.
+
6165 *
+
6166 #define MAX_POOL_ENTRIES 100
+
6167 #define MINIMUM_MORECORE_SIZE (64 * 1024U)
+
6168 * static int next_os_pool;
+
6169 * void *our_os_pools[MAX_POOL_ENTRIES];
+
6170 *
+
6171 * void *osMoreCore(int size)
+
6172 * {
+
6173 * void *ptr = 0;
+
6174 * static void *sbrk_top = 0;
+
6175 *
+
6176 * if (size > 0)
+
6177 * {
+
6178 * if (size < MINIMUM_MORECORE_SIZE)
+
6179 * size = MINIMUM_MORECORE_SIZE;
+
6180 * if (CurrentExecutionLevel() == kTaskLevel)
+
6181 * ptr = PoolAllocateResident(size + RM_PAGE_SIZE, 0);
+
6182 * if (ptr == 0)
+
6183 * {
+
6184 * return (void *) MFAIL;
+
6185 * }
+
6186 * // save ptrs so they can be freed during cleanup
+
6187 * our_os_pools[next_os_pool] = ptr;
+
6188 * next_os_pool++;
+
6189 * ptr = (void *) ((((size_t) ptr) + RM_PAGE_MASK) & ~RM_PAGE_MASK);
+
6190 * sbrk_top = (char *) ptr + size;
+
6191 * return ptr;
+
6192 * }
+
6193 * else if (size < 0)
+
6194 * {
+
6195 * // we don't currently support shrink behavior
+
6196 * return (void *) MFAIL;
+
6197 * }
+
6198 * else
+
6199 * {
+
6200 * return sbrk_top;
+
6201 * }
+
6202 * }
+
6203 *
+
6204 * // cleanup any allocated memory pools
+
6205 * // called as last thing before shutting down driver
+
6206 *
+
6207 * void osCleanupMem(void)
+
6208 * {
+
6209 * void **ptr;
+
6210 *
+
6211 * for (ptr = our_os_pools; ptr < &our_os_pools[MAX_POOL_ENTRIES]; ptr++)
+
6212 * if (*ptr)
+
6213 * {
+
6214 * PoolDeallocate(*ptr);
+
6215 * ptr = 0;
+
6216 * }
+
6217 * }
+
6218 *
+
6219 */
+
6220
+
6221
+
6222/* -----------------------------------------------------------------------
+
6223 * History:
+
6224 * v2.8.6 Wed Aug 29 06:57:58 2012 Doug Lea
+
6225 * fix bad comparison in dlposix_memalign
+
6226 * don't reuse adjusted asize in sys_alloc
+
6227 * add LOCK_AT_FORK -- thanks to Kirill Artamonov for the suggestion
+
6228 * reduce compiler warnings -- thanks to all who reported/suggested these
+
6229 *
+
6230 * v2.8.5 Sun May 22 10:26:02 2011 Doug Lea (dl at gee)
+
6231 * Always perform unlink checks unless INSECURE
+
6232 * Add posix_memalign.
+
6233 * Improve realloc to expand in more cases; expose realloc_in_place.
+
6234 * Thanks to Peter Buhr for the suggestion.
+
6235 * Add footprint_limit, inspect_all, bulk_free. Thanks
+
6236 * to Barry Hayes and others for the suggestions.
+
6237 * Internal refactorings to avoid calls while holding locks
+
6238 * Use non-reentrant locks by default. Thanks to Roland McGrath
+
6239 * for the suggestion.
+
6240 * Small fixes to mspace_destroy, reset_on_error.
+
6241 * Various configuration extensions/changes. Thanks
+
6242 * to all who contributed these.
+
6243 *
+
6244 * V2.8.4a Thu Apr 28 14:39:43 2011 (dl at gee.cs.oswego.edu)
+
6245 * Update Creative Commons URL
+
6246 *
+
6247 * V2.8.4 Wed May 27 09:56:23 2009 Doug Lea (dl at gee)
+
6248 * Use zeros instead of prev foot for is_mmapped
+
6249 * Add mspace_track_large_chunks; thanks to Jean Brouwers
+
6250 * Fix set_inuse in internal_realloc; thanks to Jean Brouwers
+
6251 * Fix insufficient sys_alloc padding when using 16byte alignment
+
6252 * Fix bad error check in mspace_footprint
+
6253 * Adaptations for ptmalloc; thanks to Wolfram Gloger.
+
6254 * Reentrant spin locks; thanks to Earl Chew and others
+
6255 * Win32 improvements; thanks to Niall Douglas and Earl Chew
+
6256 * Add NO_SEGMENT_TRAVERSAL and MAX_RELEASE_CHECK_RATE options
+
6257 * Extension hook in malloc_state
+
6258 * Various small adjustments to reduce warnings on some compilers
+
6259 * Various configuration extensions/changes for more platforms. Thanks
+
6260 * to all who contributed these.
+
6261 *
+
6262 * V2.8.3 Thu Sep 22 11:16:32 2005 Doug Lea (dl at gee)
+
6263 * Add max_footprint functions
+
6264 * Ensure all appropriate literals are size_t
+
6265 * Fix conditional compilation problem for some #define settings
+
6266 * Avoid concatenating segments with the one provided
+
6267 * in create_mspace_with_base
+
6268 * Rename some variables to avoid compiler shadowing warnings
+
6269 * Use explicit lock initialization.
+
6270 * Better handling of sbrk interference.
+
6271 * Simplify and fix segment insertion, trimming and mspace_destroy
+
6272 * Reinstate REALLOC_ZERO_BYTES_FREES option from 2.7.x
+
6273 * Thanks especially to Dennis Flanagan for help on these.
+
6274 *
+
6275 * V2.8.2 Sun Jun 12 16:01:10 2005 Doug Lea (dl at gee)
+
6276 * Fix memalign brace error.
+
6277 *
+
6278 * V2.8.1 Wed Jun 8 16:11:46 2005 Doug Lea (dl at gee)
+
6279 * Fix improper #endif nesting in C++
+
6280 * Add explicit casts needed for C++
+
6281 *
+
6282 * V2.8.0 Mon May 30 14:09:02 2005 Doug Lea (dl at gee)
+
6283 * Use trees for large bins
+
6284 * Support mspaces
+
6285 * Use segments to unify sbrk-based and mmap-based system allocation,
+
6286 * removing need for emulation on most platforms without sbrk.
+
6287 * Default safety checks
+
6288 * Optional footer checks. Thanks to William Robertson for the idea.
+
6289 * Internal code refactoring
+
6290 * Incorporate suggestions and platform-specific changes.
+
6291 * Thanks to Dennis Flanagan, Colin Plumb, Niall Douglas,
+
6292 * Aaron Bachmann, Emery Berger, and others.
+
6293 * Speed up non-fastbin processing enough to remove fastbins.
+
6294 * Remove useless cfree() to avoid conflicts with other apps.
+
6295 * Remove internal memcpy, memset. Compilers handle builtins better.
+
6296 * Remove some options that no one ever used and rename others.
+
6297 *
+
6298 * V2.7.2 Sat Aug 17 09:07:30 2002 Doug Lea (dl at gee)
+
6299 * Fix malloc_state bitmap array misdeclaration
+
6300 *
+
6301 * V2.7.1 Thu Jul 25 10:58:03 2002 Doug Lea (dl at gee)
+
6302 * Allow tuning of FIRST_SORTED_BIN_SIZE
+
6303 * Use PTR_UINT as type for all ptr->int casts. Thanks to John Belmonte.
+
6304 * Better detection and support for non-contiguousness of MORECORE.
+
6305 * Thanks to Andreas Mueller, Conal Walsh, and Wolfram Gloger
+
6306 * Bypass most of malloc if no frees. Thanks To Emery Berger.
+
6307 * Fix freeing of old top non-contiguous chunk im sysmalloc.
+
6308 * Raised default trim and map thresholds to 256K.
+
6309 * Fix mmap-related #defines. Thanks to Lubos Lunak.
+
6310 * Fix copy macros; added LACKS_FCNTL_H. Thanks to Neal Walfield.
+
6311 * Branch-free bin calculation
+
6312 * Default trim and mmap thresholds now 256K.
+
6313 *
+
6314 * V2.7.0 Sun Mar 11 14:14:06 2001 Doug Lea (dl at gee)
+
6315 * Introduce independent_comalloc and independent_calloc.
+
6316 * Thanks to Michael Pachos for motivation and help.
+
6317 * Make optional .h file available
+
6318 * Allow > 2GB requests on 32bit systems.
+
6319 * new WIN32 sbrk, mmap, munmap, lock code from <Walter@GeNeSys-e.de>.
+
6320 * Thanks also to Andreas Mueller <a.mueller at paradatec.de>,
+
6321 * and Anonymous.
+
6322 * Allow override of MALLOC_ALIGNMENT (Thanks to Ruud Waij for
+
6323 * helping test this.)
+
6324 * memalign: check alignment arg
+
6325 * realloc: don't try to shift chunks backwards, since this
+
6326 * leads to more fragmentation in some programs and doesn't
+
6327 * seem to help in any others.
+
6328 * Collect all cases in malloc requiring system memory into sysmalloc
+
6329 * Use mmap as backup to sbrk
+
6330 * Place all internal state in malloc_state
+
6331 * Introduce fastbins (although similar to 2.5.1)
+
6332 * Many minor tunings and cosmetic improvements
+
6333 * Introduce USE_PUBLIC_MALLOC_WRAPPERS, USE_MALLOC_LOCK
+
6334 * Introduce MALLOC_FAILURE_ACTION, MORECORE_CONTIGUOUS
+
6335 * Thanks to Tony E. Bennett <tbennett@nvidia.com> and others.
+
6336 * Include errno.h to support default failure action.
+
6337 *
+
6338 * V2.6.6 Sun Dec 5 07:42:19 1999 Doug Lea (dl at gee)
+
6339 * return null for negative arguments
+
6340 * Added Several WIN32 cleanups from Martin C. Fong <mcfong at yahoo.com>
+
6341 * Add 'LACKS_SYS_PARAM_H' for those systems without 'sys/param.h'
+
6342 * (e.g. WIN32 platforms)
+
6343 * Cleanup header file inclusion for WIN32 platforms
+
6344 * Cleanup code to avoid Microsoft Visual C++ compiler complaints
+
6345 * Add 'USE_DL_PREFIX' to quickly allow co-existence with existing
+
6346 * memory allocation routines
+
6347 * Set 'malloc_getpagesize' for WIN32 platforms (needs more work)
+
6348 * Use 'assert' rather than 'ASSERT' in WIN32 code to conform to
+
6349 * usage of 'assert' in non-WIN32 code
+
6350 * Improve WIN32 'sbrk()' emulation's 'findRegion()' routine to
+
6351 * avoid infinite loop
+
6352 * Always call 'fREe()' rather than 'free()'
+
6353 *
+
6354 * V2.6.5 Wed Jun 17 15:57:31 1998 Doug Lea (dl at gee)
+
6355 * Fixed ordering problem with boundary-stamping
+
6356 *
+
6357 * V2.6.3 Sun May 19 08:17:58 1996 Doug Lea (dl at gee)
+
6358 * Added pvalloc, as recommended by H.J. Liu
+
6359 * Added 64bit pointer support mainly from Wolfram Gloger
+
6360 * Added anonymously donated WIN32 sbrk emulation
+
6361 * Malloc, calloc, getpagesize: add optimizations from Raymond Nijssen
+
6362 * malloc_extend_top: fix mask error that caused wastage after
+
6363 * foreign sbrks
+
6364 * Add linux mremap support code from HJ Liu
+
6365 *
+
6366 * V2.6.2 Tue Dec 5 06:52:55 1995 Doug Lea (dl at gee)
+
6367 * Integrated most documentation with the code.
+
6368 * Add support for mmap, with help from
+
6369 * Wolfram Gloger (Gloger@lrz.uni-muenchen.de).
+
6370 * Use last_remainder in more cases.
+
6371 * Pack bins using idea from colin@nyx10.cs.du.edu
+
6372 * Use ordered bins instead of best-fit threshhold
+
6373 * Eliminate block-local decls to simplify tracing and debugging.
+
6374 * Support another case of realloc via move into top
+
6375 * Fix error occuring when initial sbrk_base not word-aligned.
+
6376 * Rely on page size for units instead of SBRK_UNIT to
+
6377 * avoid surprises about sbrk alignment conventions.
+
6378 * Add mallinfo, mallopt. Thanks to Raymond Nijssen
+
6379 * (raymond@es.ele.tue.nl) for the suggestion.
+
6380 * Add `pad' argument to malloc_trim and top_pad mallopt parameter.
+
6381 * More precautions for cases where other routines call sbrk,
+
6382 * courtesy of Wolfram Gloger (Gloger@lrz.uni-muenchen.de).
+
6383 * Added macros etc., allowing use in linux libc from
+
6384 * H.J. Lu (hjl@gnu.ai.mit.edu)
+
6385 * Inverted this history list
+
6386 *
+
6387 * V2.6.1 Sat Dec 2 14:10:57 1995 Doug Lea (dl at gee)
+
6388 * Re-tuned and fixed to behave more nicely with V2.6.0 changes.
+
6389 * Removed all preallocation code since under current scheme
+
6390 * the work required to undo bad preallocations exceeds
+
6391 * the work saved in good cases for most test programs.
+
6392 * No longer use return list or unconsolidated bins since
+
6393 * no scheme using them consistently outperforms those that don't
+
6394 * given above changes.
+
6395 * Use best fit for very large chunks to prevent some worst-cases.
+
6396 * Added some support for debugging
+
6397 *
+
6398 * V2.6.0 Sat Nov 4 07:05:23 1995 Doug Lea (dl at gee)
+
6399 * Removed footers when chunks are in use. Thanks to
+
6400 * Paul Wilson (wilson@cs.texas.edu) for the suggestion.
+
6401 *
+
6402 * V2.5.4 Wed Nov 1 07:54:51 1995 Doug Lea (dl at gee)
+
6403 * Added malloc_trim, with help from Wolfram Gloger
+
6404 * (wmglo@Dent.MED.Uni-Muenchen.DE).
+
6405 *
+
6406 * V2.5.3 Tue Apr 26 10:16:01 1994 Doug Lea (dl at g)
+
6407 *
+
6408 * V2.5.2 Tue Apr 5 16:20:40 1994 Doug Lea (dl at g)
+
6409 * realloc: try to expand in both directions
+
6410 * malloc: swap order of clean-bin strategy;
+
6411 * realloc: only conditionally expand backwards
+
6412 * Try not to scavenge used bins
+
6413 * Use bin counts as a guide to preallocation
+
6414 * Occasionally bin return list chunks in first scan
+
6415 * Add a few optimizations from colin@nyx10.cs.du.edu
+
6416 *
+
6417 * V2.5.1 Sat Aug 14 15:40:43 1993 Doug Lea (dl at g)
+
6418 * faster bin computation & slightly different binning
+
6419 * merged all consolidations to one part of malloc proper
+
6420 * (eliminating old malloc_find_space & malloc_clean_bin)
+
6421 * Scan 2 returns chunks (not just 1)
+
6422 * Propagate failure in realloc if malloc returns 0
+
6423 * Add stuff to allow compilation on non-ANSI compilers
+
6424 * from kpv@research.att.com
+
6425 *
+
6426 * V2.5 Sat Aug 7 07:41:59 1993 Doug Lea (dl at g.oswego.edu)
+
6427 * removed potential for odd address access in prev_chunk
+
6428 * removed dependency on getpagesize.h
+
6429 * misc cosmetics and a bit more internal documentation
+
6430 * anticosmetics: mangled names in macros to evade debugger strangeness
+
6431 * tested on sparc, hp-700, dec-mips, rs6000
+
6432 * with gcc & native cc (hp, dec only) allowing
+
6433 * Detlefs & Zorn comparison study (in SIGPLAN Notices.)
+
6434 *
+
6435 * Trial version Fri Aug 28 13:14:29 1992 Doug Lea (dl at g.oswego.edu)
+
6436 * Based loosely on libg++-1.2X malloc. (It retains some of the overall
+
6437 * structure of old version, but most details differ.)
+
6438 *
+
6439 */
+
6440// GCOV_EXCL_STOP
+
#define cinuse(p)
Definition malloc.c:2304
+
#define USE_LOCK_BIT
Definition malloc.c:1832
+
#define is_aligned(A)
Definition malloc.c:1627
+
#define dlrealloc
Definition malloc.c:829
+
#define compute_tree_index(S, I)
Definition malloc.c:2936
+
#define MALLOC_ALIGNMENT
Definition malloc.c:621
+
#define set_size_and_pinuse_of_inuse_chunk(M, p, s)
Definition malloc.c:3119
+
#define is_page_aligned(S)
Definition malloc.c:2740
+
#define DEFAULT_GRANULARITY
Definition malloc.c:676
+
static void init_top(mstate m, mchunkptr p, size_t psize)
Definition malloc.c:3996
+
#define treemap_is_marked(M, i)
Definition malloc.c:2982
+
#define chunksize(p)
Definition malloc.c:2310
+
#define M_MMAP_THRESHOLD
Definition malloc.c:733
+
static void * tmalloc_small(mstate m, size_t nb)
Definition malloc.c:4616
+
#define dlmalloc_set_footprint_limit
Definition malloc.c:841
+
#define FENCEPOST_HEAD
Definition malloc.c:2301
+
static void * mmap_alloc(mstate m, size_t nb)
Definition malloc.c:3921
+
#define ok_address(M, a)
Definition malloc.c:3067
+
#define dlindependent_calloc
Definition malloc.c:843
+
#define NTREEBINS
Definition malloc.c:2621
+
#define set_size_and_pinuse_of_free_chunk(p, s)
Definition malloc.c:2332
+
#define SIZE_T_ONE
Definition malloc.c:1615
+
struct malloc_tree_chunk * tbinptr
Definition malloc.c:2456
+
#define disable_contiguous(M)
Definition malloc.c:2713
+
#define set_inuse(M, p, s)
Definition malloc.c:3109
+
#define internal_free(m, mem)
Definition malloc.c:3906
+
#define small_index(s)
Definition malloc.c:2883
+
#define M_GRANULARITY
Definition malloc.c:731
+
#define CALL_MORECORE(S)
Definition malloc.c:1736
+
#define chunk_plus_offset(p, s)
Definition malloc.c:2317
+
#define left_bits(x)
Definition malloc.c:2988
+
#define page_align(S)
Definition malloc.c:2721
+
#define CALL_DIRECT_MMAP(s)
Definition malloc.c:1776
+
#define chunk_minus_offset(p, s)
Definition malloc.c:2318
+
unsigned int binmap_t
Definition malloc.c:2243
+
#define ok_inuse(p)
Definition malloc.c:3071
+
#define FOUR_SIZE_T_SIZES
Definition malloc.c:1619
+
#define unlink_large_chunk(M, X)
Definition malloc.c:3810
+
#define CALL_MMAP(s)
Definition malloc.c:1777
+
static void dispose_chunk(mstate m, mchunkptr p, size_t psize)
Definition malloc.c:4476
+
#define align_offset(A)
Definition malloc.c:1630
+
#define SIZE_T_SIZE
Definition malloc.c:1609
+
#define enable_mmap(M)
Definition malloc.c:2705
+
#define RELEASE_MALLOC_GLOBAL_LOCK()
Definition malloc.c:1836
+
#define ensure_initialization()
Definition malloc.c:2679
+
#define is_mmapped(p)
Definition malloc.c:2308
+
#define fm
+
#define segment_holds(S, A)
Definition malloc.c:2746
+
#define replace_dv(M, P, S)
Definition malloc.c:3726
+
#define small_index2size(i)
Definition malloc.c:2884
+
static void * prepend_alloc(mstate m, char *newbase, char *oldbase, size_t nb)
Definition malloc.c:4047
+
static void * tmalloc_large(mstate m, size_t nb)
Definition malloc.c:4543
+
#define TOP_FOOT_SIZE
Definition malloc.c:2788
+
#define DEFAULT_MMAP_THRESHOLD
Definition malloc.c:692
+
#define dlmallopt
Definition malloc.c:834
+
static int sys_trim(mstate m, size_t pad)
Definition malloc.c:4405
+
#define dlmemalign
Definition malloc.c:827
+
#define set_free_with_pinuse(p, s, n)
Definition malloc.c:2336
+
#define mem2chunk(mem)
Definition malloc.c:2267
+
#define CHUNK_ALIGN_MASK
Definition malloc.c:1624
+
#define unlink_first_small_chunk(M, B, P, I)
Definition malloc.c:3706
+
#define granularity_align(S)
Definition malloc.c:2725
+
#define check_inuse_chunk(M, P)
Definition malloc.c:2852
+
unsigned int bindex_t
Definition malloc.c:2242
+
#define is_extern_segment(S)
Definition malloc.c:2527
+
#define check_free_chunk(M, P)
Definition malloc.c:2851
+
#define dlrealloc_in_place
Definition malloc.c:830
+
#define ABORT
Definition malloc.c:627
+
#define internal_malloc(m, b)
Definition malloc.c:3905
+
#define smallmap_is_marked(M, i)
Definition malloc.c:2978
+
static void init_bins(mstate m)
Definition malloc.c:4013
+
#define CALL_MUNMAP(a, s)
Definition malloc.c:1778
+
#define EXTERN_BIT
Definition malloc.c:1798
+
#define ok_next(p, n)
Definition malloc.c:3069
+
#define DLMALLOC_EXPORT
Definition malloc.c:532
+
#define minsize_for_tree_index(i)
Definition malloc.c:2965
+
static mchunkptr mmap_resize(mstate m, mchunkptr oldp, size_t nb, int flags)
Definition malloc.c:3955
+
static void ** ialloc(mstate m, size_t n_elements, size_t *sizes, int opts, void *chunks[])
Definition malloc.c:5072
+
#define INITIAL_LOCK(l)
Definition malloc.c:1833
+
static struct malloc_state _gm_
Definition malloc.c:2684
+
#define leftmost_child(t)
Definition malloc.c:2459
+
#define next_pinuse(p)
Definition malloc.c:2325
+
#define least_bit(x)
Definition malloc.c:2985
+
#define NO_SEGMENT_TRAVERSAL
Definition malloc.c:718
+
#define leftshift_for_tree_index(i)
Definition malloc.c:2960
+
#define USE_MMAP_BIT
Definition malloc.c:1771
+
#define dlbulk_free
Definition malloc.c:845
+
#define set_inuse_and_pinuse(M, p, s)
Definition malloc.c:3114
+
#define use_noncontiguous(M)
Definition malloc.c:2712
+
#define MFAIL
Definition malloc.c:1644
+
#define FORCEINLINE
Definition malloc.c:816
+
static void * sys_alloc(mstate m, size_t nb)
Definition malloc.c:4145
+
#define dlmalloc_trim
Definition malloc.c:835
+
#define is_inuse(p)
Definition malloc.c:2307
+
#define disable_mmap(M)
Definition malloc.c:2709
+
#define MAX_SMALL_REQUEST
Definition malloc.c:2627
+
struct malloc_state * mstate
Definition malloc.c:2655
+
static void * internal_memalign(mstate m, size_t alignment, size_t bytes)
Definition malloc.c:4990
+
#define MAX_REQUEST
Definition malloc.c:2272
+
#define pinuse(p)
Definition malloc.c:2305
+
#define INUSE_BITS
Definition malloc.c:2297
+
#define dlmalloc_footprint
Definition malloc.c:5461
+
#define gm
Definition malloc.c:2685
+
#define dlmalloc
Definition malloc.c:826
+
#define smallbin_at(M, i)
Definition malloc.c:2888
+
#define next_chunk(p)
Definition malloc.c:2321
+
#define align_as_chunk(A)
Definition malloc.c:2269
+
#define MIN_REQUEST
Definition malloc.c:2273
+
#define POSTACTION(M)
Definition malloc.c:2810
+
#define should_trim(M, s)
Definition malloc.c:2778
+
#define dlmalloc_max_footprint
Definition malloc.c:5466
+
#define ok_magic(M)
Definition malloc.c:3086
+
#define HAVE_MORECORE
Definition malloc.c:663
+
static size_t release_unused_segments(mstate m)
Definition malloc.c:4358
+
#define treebin_at(M, i)
Definition malloc.c:2889
+
unsigned int flag_t
Definition malloc.c:2244
+
static int change_mparam(int param_number, int value)
Definition malloc.c:3251
+
#define is_mmapped_segment(S)
Definition malloc.c:2526
+
#define PREACTION(M)
Definition malloc.c:2806
+
#define dlpvalloc
Definition malloc.c:832
+
#define SIZE_T_BITSIZE
Definition malloc.c:1610
+
#define check_top_chunk(M, P)
Definition malloc.c:2856
+
static size_t internal_bulk_free(mstate m, void *array[], size_t nelem)
Definition malloc.c:5197
+
#define dlfree
Definition malloc.c:825
+
#define ACQUIRE_MALLOC_GLOBAL_LOCK()
Definition malloc.c:1835
+
#define PINUSE_BIT
Definition malloc.c:2294
+
#define dlindependent_comalloc
Definition malloc.c:844
+
#define calloc_must_clear(p)
Definition malloc.c:2345
+
struct malloc_chunk * mchunkptr
Definition malloc.c:2240
+
#define is_small(s)
Definition malloc.c:2882
+
#define set_lock(M, L)
Definition malloc.c:2715
+
static int init_mparams(void)
Definition malloc.c:3160
+
#define USAGE_ERROR_ACTION(m, p)
Definition malloc.c:2841
+
static int has_segment_link(mstate m, msegmentptr ss)
Definition malloc.c:2764
+
#define check_mmapped_chunk(M, P)
Definition malloc.c:2854
+
#define request2size(req)
Definition malloc.c:2280
+
#define pad_request(req)
Definition malloc.c:2276
+
#define dlmalloc_usable_size
Definition malloc.c:837
+
#define dlmalloc_inspect_all
Definition malloc.c:842
+
#define dlmallinfo
Definition malloc.c:5492
+
#define MIN_CHUNK_SIZE
Definition malloc.c:2262
+
#define is_global(M)
Definition malloc.c:2686
+
#define mmap_align(S)
Definition malloc.c:2734
+
struct malloc_segment * msegmentptr
Definition malloc.c:2530
+
#define HAVE_MMAP
Definition malloc.c:643
+
#define insert_large_chunk(M, X, S)
Definition malloc.c:3741
+
#define SYS_ALLOC_PADDING
Definition malloc.c:2738
+
struct malloc_chunk * sbinptr
Definition malloc.c:2241
+
#define MIN_LARGE_SIZE
Definition malloc.c:2625
+
#define USE_NONCONTIGUOUS_BIT
Definition malloc.c:1795
+
#define compute_bit2idx(X, I)
Definition malloc.c:3023
+
#define HALF_MAX_SIZE_T
Definition malloc.c:1621
+
#define use_mmap(M)
Definition malloc.c:2704
+
#define CORRUPTION_ERROR_ACTION(m)
Definition malloc.c:2837
+
#define chunk2mem(p)
Definition malloc.c:2266
+
#define DESTROY_LOCK(l)
Definition malloc.c:1834
+
#define clear_pinuse(p)
Definition malloc.c:2312
+
#define unlink_chunk(M, P, S)
Definition malloc.c:3888
+
#define dlposix_memalign
Definition malloc.c:828
+
#define MAX_SIZE_T
Definition malloc.c:587
+
#define overhead_for(p)
Definition malloc.c:2340
+
#define malloc_getpagesize
Definition malloc.c:1595
+
static struct mallinfo internal_mallinfo(mstate m)
Definition malloc.c:3569
+
static struct malloc_params mparams
Definition malloc.c:2676
+
#define CHUNK_OVERHEAD
Definition malloc.c:2253
+
#define MORECORE_CONTIGUOUS
Definition malloc.c:671
+
#define MMAP_FOOT_PAD
Definition malloc.c:2259
+
#define insert_small_chunk(M, P, S)
Definition malloc.c:3659
+
static msegmentptr segment_holding(mstate m, char *addr)
Definition malloc.c:2750
+
struct malloc_tree_chunk * tchunkptr
Definition malloc.c:2455
+
#define ok_pinuse(p)
Definition malloc.c:3073
+
#define check_malloced_chunk(M, P, N)
Definition malloc.c:2853
+
#define dlmalloc_footprint_limit
Definition malloc.c:5471
+
#define mark_inuse_foot(M, p, s)
Definition malloc.c:3104
+
#define MALLOC_FAILURE_ACTION
Definition malloc.c:657
+
#define M_TRIM_THRESHOLD
Definition malloc.c:729
+
#define SIX_SIZE_T_SIZES
Definition malloc.c:1620
+
#define CMFAIL
Definition malloc.c:1645
+
#define dlcalloc
Definition malloc.c:824
+
#define insert_chunk(M, P, S)
Definition malloc.c:3884
+
static void add_segment(mstate m, char *tbase, size_t tsize, flag_t mmapped)
Definition malloc.c:4089
+
#define DEFAULT_TRIM_THRESHOLD
Definition malloc.c:683
+
#define prev_chunk(p)
Definition malloc.c:2322
+
#define idx2bit(i)
Definition malloc.c:2973
+
#define MAX_RELEASE_CHECK_RATE
Definition malloc.c:699
+
#define is_initialized(M)
Definition malloc.c:2690
+
#define MCHUNK_SIZE
Definition malloc.c:2248
+
#define assert(x)
Definition malloc.c:1461
+
#define dlmalloc_stats
Definition malloc.c:5500
+
static void internal_malloc_stats(mstate m)
Definition malloc.c:3614
+
static mchunkptr try_realloc_chunk(mstate m, mchunkptr p, size_t nb, int can_move)
Definition malloc.c:4915
+
#define dlvalloc
Definition malloc.c:831
+
#define check_malloc_state(M)
Definition malloc.c:2855
+
#define CALL_MREMAP(addr, osz, nsz, mv)
Definition malloc.c:1791
+
#define RTCHECK(e)
Definition malloc.c:3094
+
#define NSMALLBINS
Definition malloc.c:2620
+
#define MALLINFO_FIELD_TYPE
Definition malloc.h:79
+
int fd
Definition impl.c:25
+ +
MALLINFO_FIELD_TYPE hblkhd
Definition malloc.c:776
+
MALLINFO_FIELD_TYPE ordblks
Definition malloc.c:773
+
MALLINFO_FIELD_TYPE smblks
Definition malloc.c:774
+
MALLINFO_FIELD_TYPE fsmblks
Definition malloc.c:778
+
MALLINFO_FIELD_TYPE hblks
Definition malloc.c:775
+
MALLINFO_FIELD_TYPE arena
Definition malloc.c:772
+
MALLINFO_FIELD_TYPE keepcost
Definition malloc.c:781
+
MALLINFO_FIELD_TYPE fordblks
Definition malloc.c:780
+
MALLINFO_FIELD_TYPE uordblks
Definition malloc.c:779
+
MALLINFO_FIELD_TYPE usmblks
Definition malloc.c:777
+ +
struct malloc_chunk * fd
Definition malloc.c:2235
+
size_t prev_foot
Definition malloc.c:2233
+
size_t head
Definition malloc.c:2234
+
struct malloc_chunk * bk
Definition malloc.c:2236
+ +
struct malloc_tree_chunk * child[2]
Definition malloc.c:2449
+ + +
struct malloc_tree_chunk * fd
Definition malloc.c:2446
+
struct malloc_tree_chunk * parent
Definition malloc.c:2450
+
bindex_t index
Definition malloc.c:2451
+
struct malloc_tree_chunk * bk
Definition malloc.c:2447
+ +
struct malloc_segment * next
Definition malloc.c:2522
+
size_t size
Definition malloc.c:2521
+
flag_t sflags
Definition malloc.c:2523
+
char * base
Definition malloc.c:2520
+ +
binmap_t treemap
Definition malloc.c:2632
+
size_t exts
Definition malloc.c:2652
+
mchunkptr dv
Definition malloc.c:2636
+
mchunkptr smallbins[(NSMALLBINS+1) *2]
Definition malloc.c:2641
+
size_t magic
Definition malloc.c:2640
+
size_t topsize
Definition malloc.c:2634
+
size_t release_checks
Definition malloc.c:2639
+
void * extp
Definition malloc.c:2651
+
size_t trim_check
Definition malloc.c:2638
+
mchunkptr top
Definition malloc.c:2637
+
binmap_t smallmap
Definition malloc.c:2631
+
flag_t mflags
Definition malloc.c:2646
+
size_t footprint
Definition malloc.c:2643
+
msegment seg
Definition malloc.c:2650
+
size_t max_footprint
Definition malloc.c:2644
+
size_t footprint_limit
Definition malloc.c:2645
+
size_t dvsize
Definition malloc.c:2633
+
char * least_addr
Definition malloc.c:2635
+
tbinptr treebins[NTREEBINS]
Definition malloc.c:2642
+ +
size_t magic
Definition malloc.c:2668
+
size_t mmap_threshold
Definition malloc.c:2671
+
flag_t default_mflags
Definition malloc.c:2673
+
size_t granularity
Definition malloc.c:2670
+
size_t page_size
Definition malloc.c:2669
+
size_t trim_threshold
Definition malloc.c:2672
+
+
+ + + + diff --git a/a01899.map b/a01899.map new file mode 100644 index 00000000..592057cb --- /dev/null +++ b/a01899.map @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01899.md5 b/a01899.md5 new file mode 100644 index 00000000..e0e7b2d9 --- /dev/null +++ b/a01899.md5 @@ -0,0 +1 @@ +f6011564ef67a28269dcbe33d4c3e3bc \ No newline at end of file diff --git a/a01899.svg b/a01899.svg new file mode 100644 index 00000000..4dc4348d --- /dev/null +++ b/a01899.svg @@ -0,0 +1,363 @@ + + + + + + +malloc.c + + +Node1 + + +malloc.c + + + + + +Node2 + + +sys/types.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdio.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +errno.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +time.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +stdlib.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +string.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +unistd.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +sys/param.h + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +../alloc.h + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +stddef.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +conf.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +arax_types.h + + + + + +Node10->Node13 + + + + + + + + +Node15 + + +utils/bitmap.h + + + + + +Node10->Node15 + + + + + + + + +Node13->Node5 + + + + + + + + +Node14 + + +sys/time.h + + + + + +Node13->Node14 + + + + + + + + +Node15->Node11 + + + + + + + + +Node16 + + +spinlock.h + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +stdint.h + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +utils/arax_assert.h + + + + + +Node16->Node18 + + + + + + + + +Node19 + + +compat.h + + + + + +Node18->Node19 + + + + + + + + diff --git a/a01901.html b/a01901.html new file mode 100644 index 00000000..d99bc286 --- /dev/null +++ b/a01901.html @@ -0,0 +1,1247 @@ + + + + + + + +Arax: malloc.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
malloc.h File Reference
+
+
+
#include <stddef.h>
+
+ + Include dependency graph for malloc.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  mallinfo
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Macros

#define ONLY_MSPACES   0 /* define to a value */
 
#define NO_MALLINFO   0
 
#define MSPACES   0
 
#define dlcalloc   calloc
 
#define dlfree   free
 
#define dlmalloc   malloc
 
#define dlmemalign   memalign
 
#define dlposix_memalign   posix_memalign
 
#define dlrealloc   realloc
 
#define dlvalloc   valloc
 
#define dlpvalloc   pvalloc
 
#define dlmallinfo   mallinfo
 
#define dlmallopt   mallopt
 
#define dlmalloc_trim   malloc_trim
 
#define dlmalloc_stats   malloc_stats
 
#define dlmalloc_usable_size   malloc_usable_size
 
#define dlmalloc_footprint   malloc_footprint
 
#define dlmalloc_max_footprint   malloc_max_footprint
 
#define dlmalloc_footprint_limit   malloc_footprint_limit
 
#define dlmalloc_set_footprint_limit   malloc_set_footprint_limit
 
#define dlmalloc_inspect_all   malloc_inspect_all
 
#define dlindependent_calloc   independent_calloc
 
#define dlindependent_comalloc   independent_comalloc
 
#define dlbulk_free   bulk_free
 
#define MALLINFO_FIELD_TYPE   size_t
 
#define STRUCT_MALLINFO_DECLARED   1
 
#define M_TRIM_THRESHOLD   (-1)
 
#define M_GRANULARITY   (-2)
 
#define M_MMAP_THRESHOLD   (-3)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

void * dlmalloc (size_t)
 
void dlfree (void *)
 
void * dlcalloc (size_t, size_t)
 
void * dlrealloc (void *, size_t)
 
void * dlrealloc_in_place (void *, size_t)
 
void * dlmemalign (size_t, size_t)
 
int dlposix_memalign (void **, size_t, size_t)
 
void * dlvalloc (size_t)
 
int dlmallopt (int, int)
 
size_t dlmalloc_set_footprint_limit (size_t bytes)
 
void dlmalloc_inspect_all (void(*handler)(void *, void *, size_t, void *), void *arg)
 
void ** dlindependent_calloc (size_t, size_t, void **)
 
void ** dlindependent_comalloc (size_t, size_t *, void **)
 
size_t dlbulk_free (void **, size_t n_elements)
 
void * dlpvalloc (size_t)
 
int dlmalloc_trim (size_t)
 
size_t dlmalloc_usable_size (const void *)
 
+

Macro Definition Documentation

+ +

◆ dlbulk_free

+ +
+
+ + + + +
#define dlbulk_free   bulk_free
+
+ +

Definition at line 72 of file malloc.h.

+ +
+
+ +

◆ dlcalloc

+ +
+
+ + + + +
#define dlcalloc   calloc
+
+ +

Definition at line 52 of file malloc.h.

+ +
+
+ +

◆ dlfree

+ +
+
+ + + + +
#define dlfree   free
+
+ +

Definition at line 53 of file malloc.h.

+ +
+
+ +

◆ dlindependent_calloc

+ +
+
+ + + + +
#define dlindependent_calloc   independent_calloc
+
+ +

Definition at line 70 of file malloc.h.

+ +
+
+ +

◆ dlindependent_comalloc

+ +
+
+ + + + +
#define dlindependent_comalloc   independent_comalloc
+
+ +

Definition at line 71 of file malloc.h.

+ +
+
+ +

◆ dlmallinfo

+ +
+
+ + + + + + + + +
#define dlmallinfo( void)   mallinfo
+
+ +

Definition at line 60 of file malloc.h.

+ +
+
+ +

◆ dlmalloc

+ +
+
+ + + + +
#define dlmalloc   malloc
+
+ +

Definition at line 54 of file malloc.h.

+ +
+
+ +

◆ dlmalloc_footprint

+ +
+
+ + + + + + + + +
#define dlmalloc_footprint( void)   malloc_footprint
+
+ +

Definition at line 65 of file malloc.h.

+ +
+
+ +

◆ dlmalloc_footprint_limit

+ +
+
+ + + + + + + + +
#define dlmalloc_footprint_limit( void)   malloc_footprint_limit
+
+ +

Definition at line 67 of file malloc.h.

+ +
+
+ +

◆ dlmalloc_inspect_all

+ +
+
+ + + + +
#define dlmalloc_inspect_all   malloc_inspect_all
+
+ +

Definition at line 69 of file malloc.h.

+ +
+
+ +

◆ dlmalloc_max_footprint

+ +
+
+ + + + + + + + +
#define dlmalloc_max_footprint( void)   malloc_max_footprint
+
+ +

Definition at line 66 of file malloc.h.

+ +
+
+ +

◆ dlmalloc_set_footprint_limit

+ +
+
+ + + + +
#define dlmalloc_set_footprint_limit   malloc_set_footprint_limit
+
+ +

Definition at line 68 of file malloc.h.

+ +
+
+ +

◆ dlmalloc_stats

+ +
+
+ + + + + + + + +
#define dlmalloc_stats( void)   malloc_stats
+
+ +

Definition at line 63 of file malloc.h.

+ +
+
+ +

◆ dlmalloc_trim

+ +
+
+ + + + +
#define dlmalloc_trim   malloc_trim
+
+ +

Definition at line 62 of file malloc.h.

+ +
+
+ +

◆ dlmalloc_usable_size

+ +
+
+ + + + +
#define dlmalloc_usable_size   malloc_usable_size
+
+ +

Definition at line 64 of file malloc.h.

+ +
+
+ +

◆ dlmallopt

+ +
+
+ + + + +
#define dlmallopt   mallopt
+
+ +

Definition at line 61 of file malloc.h.

+ +
+
+ +

◆ dlmemalign

+ +
+
+ + + + +
#define dlmemalign   memalign
+
+ +

Definition at line 55 of file malloc.h.

+ +
+
+ +

◆ dlposix_memalign

+ +
+
+ + + + +
#define dlposix_memalign   posix_memalign
+
+ +

Definition at line 56 of file malloc.h.

+ +
+
+ +

◆ dlpvalloc

+ +
+
+ + + + +
#define dlpvalloc   pvalloc
+
+ +

Definition at line 59 of file malloc.h.

+ +
+
+ +

◆ dlrealloc

+ +
+
+ + + + +
#define dlrealloc   realloc
+
+ +

Definition at line 57 of file malloc.h.

+ +
+
+ +

◆ dlvalloc

+ +
+
+ + + + +
#define dlvalloc   valloc
+
+ +

Definition at line 58 of file malloc.h.

+ +
+
+ +

◆ M_GRANULARITY

+ +
+
+ + + + +
#define M_GRANULARITY   (-2)
+
+ +

Definition at line 222 of file malloc.h.

+ +
+
+ +

◆ M_MMAP_THRESHOLD

+ +
+
+ + + + +
#define M_MMAP_THRESHOLD   (-3)
+
+ +

Definition at line 223 of file malloc.h.

+ +
+
+ +

◆ M_TRIM_THRESHOLD

+ +
+
+ + + + +
#define M_TRIM_THRESHOLD   (-1)
+
+ +

Definition at line 221 of file malloc.h.

+ +
+
+ +

◆ MALLINFO_FIELD_TYPE

+ +
+
+ + + + +
#define MALLINFO_FIELD_TYPE   size_t
+
+ +

Definition at line 79 of file malloc.h.

+ +
+
+ +

◆ MSPACES

+ +
+
+ + + + +
#define MSPACES   0
+
+ +

Definition at line 45 of file malloc.h.

+ +
+
+ +

◆ NO_MALLINFO

+ +
+
+ + + + +
#define NO_MALLINFO   0
+
+ +

Definition at line 38 of file malloc.h.

+ +
+
+ +

◆ ONLY_MSPACES

+ +
+
+ + + + +
#define ONLY_MSPACES   0 /* define to a value */
+
+ +

Definition at line 33 of file malloc.h.

+ +
+
+ +

◆ STRUCT_MALLINFO_DECLARED

+ +
+
+ + + + +
#define STRUCT_MALLINFO_DECLARED   1
+
+ +

Definition at line 82 of file malloc.h.

+ +
+
+

Function Documentation

+ +

◆ dlbulk_free()

+ +
+
+ + + + + + + + + + + + + + + + + + +
size_t dlbulk_free (void ** ,
size_t n_elements 
)
+
+ +
+
+ +

◆ dlcalloc()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void * dlcalloc (size_t n_elements,
size_t elem_size 
)
+
+ +

Definition at line 4893 of file malloc.c.

+ +

References calloc_must_clear, dlmalloc, MAX_SIZE_T, and mem2chunk.

+ +
+
+ +

◆ dlfree()

+ +
+
+ + + + + + + + +
void dlfree (void * mem)
+
+
+ +

◆ dlindependent_calloc()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void ** dlindependent_calloc (size_t ,
size_t ,
void **  
)
+
+ +
+
+ +

◆ dlindependent_comalloc()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void ** dlindependent_comalloc (size_t ,
size_t * ,
void **  
)
+
+ +
+
+ +

◆ dlmalloc()

+ +
+
+ + + + + + + + +
void * dlmalloc (size_t bytes)
+
+
+ +

◆ dlmalloc_inspect_all()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void dlmalloc_inspect_all (void(*)(void *, void *, size_t, void *) handler,
void * arg 
)
+
+ +
+
+ +

◆ dlmalloc_set_footprint_limit()

+ +
+
+ + + + + + + + +
size_t dlmalloc_set_footprint_limit (size_t bytes)
+
+ +

Definition at line 5478 of file malloc.c.

+ +

References gm, granularity_align, and MAX_SIZE_T.

+ +
+
+ +

◆ dlmalloc_trim()

+ +
+
+ + + + + + + + +
int dlmalloc_trim (size_t pad)
+
+ +

Definition at line 5449 of file malloc.c.

+ +

References ensure_initialization, gm, POSTACTION, PREACTION, and sys_trim().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ dlmalloc_usable_size()

+ +
+
+ + + + + + + + +
size_t dlmalloc_usable_size (const void * )
+
+ +
+
+ +

◆ dlmallopt()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int dlmallopt (int param_number,
int value 
)
+
+ +

Definition at line 5507 of file malloc.c.

+ +

References change_mparam().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ dlmemalign()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void * dlmemalign (size_t alignment,
size_t bytes 
)
+
+ +

Definition at line 5363 of file malloc.c.

+ +

References dlmalloc, gm, internal_memalign(), and MALLOC_ALIGNMENT.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ dlposix_memalign()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int dlposix_memalign (void ** pp,
size_t alignment,
size_t bytes 
)
+
+ +

Definition at line 5371 of file malloc.c.

+ +

References dlmalloc, gm, internal_memalign(), MALLOC_ALIGNMENT, MAX_REQUEST, MIN_CHUNK_SIZE, and SIZE_T_ONE.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ dlpvalloc()

+ +
+
+ + + + + + + + +
void * dlpvalloc (size_t bytes)
+
+ +

Definition at line 5405 of file malloc.c.

+ +

References dlmemalign, ensure_initialization, mparams, malloc_params::page_size, and SIZE_T_ONE.

+ +
+
+ +

◆ dlrealloc()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void * dlrealloc (void * oldmem,
size_t bytes 
)
+
+ +

Definition at line 5286 of file malloc.c.

+ +

References check_inuse_chunk, chunk2mem, chunksize, dlfree, dlmalloc, gm, internal_free, internal_malloc, MALLOC_FAILURE_ACTION, MAX_REQUEST, mem2chunk, ok_magic, overhead_for, POSTACTION, PREACTION, request2size, try_realloc_chunk(), and USAGE_ERROR_ACTION.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ dlrealloc_in_place()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void * dlrealloc_in_place (void * oldmem,
size_t bytes 
)
+
+ +

Definition at line 5331 of file malloc.c.

+ +

References check_inuse_chunk, gm, MALLOC_FAILURE_ACTION, MAX_REQUEST, mem2chunk, ok_magic, POSTACTION, PREACTION, request2size, try_realloc_chunk(), and USAGE_ERROR_ACTION.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ dlvalloc()

+ +
+
+ + + + + + + + +
void * dlvalloc (size_t bytes)
+
+ +

Definition at line 5396 of file malloc.c.

+ +

References dlmemalign, ensure_initialization, mparams, and malloc_params::page_size.

+ +
+
+
+
+ + + + diff --git a/a01901.js b/a01901.js new file mode 100644 index 00000000..6d176399 --- /dev/null +++ b/a01901.js @@ -0,0 +1,50 @@ +var a01901 = +[ + [ "mallinfo", "a02194.html", "a02194" ], + [ "dlbulk_free", "a01901.html#a6994d926acbbff21ac936e1e100ba801", null ], + [ "dlcalloc", "a01901.html#aeb507216612dc43759952dd835e7596d", null ], + [ "dlfree", "a01901.html#aa2f5410ccf57ee1ae49df754b44be9e3", null ], + [ "dlindependent_calloc", "a01901.html#a17816165d27e812d18ed032f9ced9ad4", null ], + [ "dlindependent_comalloc", "a01901.html#aa4e5c5d50e0cd7dc44b2defcae6226d7", null ], + [ "dlmallinfo", "a01901.html#abf412c713d3ec5ac7f33663fb22e26ca", null ], + [ "dlmalloc", "a01901.html#a86195c783178093d895874a07a15dce1", null ], + [ "dlmalloc_footprint", "a01901.html#ae98e99f811abc5fcc542d1f0372e86b4", null ], + [ "dlmalloc_footprint_limit", "a01901.html#a42285edf4871e3adaab58e7e9ed08831", null ], + [ "dlmalloc_inspect_all", "a01901.html#abea659f429972334d253efab49b6c3b5", null ], + [ "dlmalloc_max_footprint", "a01901.html#a53ed39f9f5df6fda6aad36b40c76557e", null ], + [ "dlmalloc_set_footprint_limit", "a01901.html#a11913f4b10361cf4224a561e727bace7", null ], + [ "dlmalloc_stats", "a01901.html#a523dae557d3a1c150198a2d91c31d0f5", null ], + [ "dlmalloc_trim", "a01901.html#a72a0e1e6edf9ef91c042680574560732", null ], + [ "dlmalloc_usable_size", "a01901.html#abdfd656c28f59dc708ce3dabfade2408", null ], + [ "dlmallopt", "a01901.html#a3dde31382dc8652ffb98335aecd248ab", null ], + [ "dlmemalign", "a01901.html#a41b3d891bf7fa5e5ca08f7898b4fd9e8", null ], + [ "dlposix_memalign", "a01901.html#ad6824f937bf9bdd2cccc9526746108a1", null ], + [ "dlpvalloc", "a01901.html#a9bfff55fd0c29554b7140954b38a54d4", null ], + [ "dlrealloc", "a01901.html#a0498e36f6b1a4293efe80b18b48e86b9", null ], + [ "dlvalloc", "a01901.html#af99ef0a6df3de021fcc2b48da5ced844", null ], + [ "M_GRANULARITY", "a01901.html#a1ff5e3f74801d4cbb5e97ab2d3b8f2e3", null ], + [ "M_MMAP_THRESHOLD", "a01901.html#a0dd09b97e3eb71f8256b8bd441828175", null ], + [ "M_TRIM_THRESHOLD", "a01901.html#ae5e96ee9e20ef7cfcbbb690877fc9fb2", null ], + [ "MALLINFO_FIELD_TYPE", "a01901.html#a53688562ed3d2eda132ae91de874cd98", null ], + [ "MSPACES", "a01901.html#ab69b328d35c5a8e3bdc3463d3603e950", null ], + [ "NO_MALLINFO", "a01901.html#abdaef093c0ac7f4ffca5df2d2b2f0560", null ], + [ "ONLY_MSPACES", "a01901.html#aeb595638a14befbd356f77f8ec2a5c0d", null ], + [ "STRUCT_MALLINFO_DECLARED", "a01901.html#a73031e8be1f35c837c74bee1d205a929", null ], + [ "dlbulk_free", "a01901.html#a9cd6aaddb8d233052b90826b60b9f346", null ], + [ "dlcalloc", "a01901.html#a557252c43fb14a209ead0e6dfe6216ad", null ], + [ "dlfree", "a01901.html#a1b80f9ee2d497077e4741029c8e23700", null ], + [ "dlindependent_calloc", "a01901.html#a2d0363c74cf96e8d816e1a59613d90a2", null ], + [ "dlindependent_comalloc", "a01901.html#af92733b7aeb4b18533b20df52000f7d4", null ], + [ "dlmalloc", "a01901.html#a018ffd885ac72f4cb8ac0f972f6b4900", null ], + [ "dlmalloc_inspect_all", "a01901.html#a36b14cd722ad2016abcd26ca54339ccb", null ], + [ "dlmalloc_set_footprint_limit", "a01901.html#ae992d2a6834aeddac341b4ff6afba5b4", null ], + [ "dlmalloc_trim", "a01901.html#a0cb0780a1d244f7541f85d2ece3999fc", null ], + [ "dlmalloc_usable_size", "a01901.html#aca6332584a5c6206defc32cfc2554f35", null ], + [ "dlmallopt", "a01901.html#a5fa93d3a16f6cd853ca26b8796112770", null ], + [ "dlmemalign", "a01901.html#a789f1726140c8d0ef5b54d893d806262", null ], + [ "dlposix_memalign", "a01901.html#a61f04155b5dceea889ba3cef64968684", null ], + [ "dlpvalloc", "a01901.html#ade3c6d7e2b557fe3af01a7f6979e9396", null ], + [ "dlrealloc", "a01901.html#a79e7e77bbc6d5208678b007bf89aab61", null ], + [ "dlrealloc_in_place", "a01901.html#afc9bc229eecc960b0c2bfd9033b6e2e0", null ], + [ "dlvalloc", "a01901.html#ab3764c29825f2f5caf6bb138e6f2dc12", null ] +]; \ No newline at end of file diff --git a/a01901_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.map b/a01901_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.map new file mode 100644 index 00000000..b0514504 --- /dev/null +++ b/a01901_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01901_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.md5 b/a01901_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.md5 new file mode 100644 index 00000000..fcae18f1 --- /dev/null +++ b/a01901_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.md5 @@ -0,0 +1 @@ +00d9df8d1e9439ccb9953de4c829f382 \ No newline at end of file diff --git a/a01901_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.svg b/a01901_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.svg new file mode 100644 index 00000000..202b6f96 --- /dev/null +++ b/a01901_a018ffd885ac72f4cb8ac0f972f6b4900_cgraph.svg @@ -0,0 +1,201 @@ + + + + + + +dlmalloc + + +Node1 + + +dlmalloc + + + + + +Node2 + + +sys_alloc + + + + + +Node1->Node2 + + + + + + + + +Node9 + + +tmalloc_large + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +tmalloc_small + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +add_segment + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +init_top + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +segment_holding + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +init_bins + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +mmap_alloc + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +prepend_alloc + + + + + +Node2->Node8 + + + + + + + + +Node3->Node4 + + + + + + + + +Node3->Node5 + + + + + + + + diff --git a/a01901_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.map b/a01901_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.map new file mode 100644 index 00000000..b5dc6fd5 --- /dev/null +++ b/a01901_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/a01901_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.md5 b/a01901_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.md5 new file mode 100644 index 00000000..be54a072 --- /dev/null +++ b/a01901_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.md5 @@ -0,0 +1 @@ +c4b044183c8fd837ce9cc9bc18806bed \ No newline at end of file diff --git a/a01901_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.svg b/a01901_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.svg new file mode 100644 index 00000000..569eb751 --- /dev/null +++ b/a01901_a0cb0780a1d244f7541f85d2ece3999fc_cgraph.svg @@ -0,0 +1,111 @@ + + + + + + +dlmalloc_trim + + +Node1 + + +dlmalloc_trim + + + + + +Node2 + + +sys_trim + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +has_segment_link + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +init_top + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +release_unused_segments + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +segment_holding + + + + + +Node2->Node6 + + + + + + + + diff --git a/a01901_a1b80f9ee2d497077e4741029c8e23700_cgraph.map b/a01901_a1b80f9ee2d497077e4741029c8e23700_cgraph.map new file mode 100644 index 00000000..6c1d32ef --- /dev/null +++ b/a01901_a1b80f9ee2d497077e4741029c8e23700_cgraph.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/a01901_a1b80f9ee2d497077e4741029c8e23700_cgraph.md5 b/a01901_a1b80f9ee2d497077e4741029c8e23700_cgraph.md5 new file mode 100644 index 00000000..51297c8c --- /dev/null +++ b/a01901_a1b80f9ee2d497077e4741029c8e23700_cgraph.md5 @@ -0,0 +1 @@ +ba050ca800ae602992738a764b64ada6 \ No newline at end of file diff --git a/a01901_a1b80f9ee2d497077e4741029c8e23700_cgraph.svg b/a01901_a1b80f9ee2d497077e4741029c8e23700_cgraph.svg new file mode 100644 index 00000000..7e2e18fd --- /dev/null +++ b/a01901_a1b80f9ee2d497077e4741029c8e23700_cgraph.svg @@ -0,0 +1,120 @@ + + + + + + +dlfree + + +Node1 + + +dlfree + + + + + +Node2 + + +release_unused_segments + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +sys_trim + + + + + +Node1->Node3 + + + + + + + + +Node3->Node2 + + + + + + + + +Node4 + + +has_segment_link + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +init_top + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +segment_holding + + + + + +Node3->Node6 + + + + + + + + diff --git a/a01901_a5fa93d3a16f6cd853ca26b8796112770_cgraph.map b/a01901_a5fa93d3a16f6cd853ca26b8796112770_cgraph.map new file mode 100644 index 00000000..ac19e3d2 --- /dev/null +++ b/a01901_a5fa93d3a16f6cd853ca26b8796112770_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01901_a5fa93d3a16f6cd853ca26b8796112770_cgraph.md5 b/a01901_a5fa93d3a16f6cd853ca26b8796112770_cgraph.md5 new file mode 100644 index 00000000..d75337ab --- /dev/null +++ b/a01901_a5fa93d3a16f6cd853ca26b8796112770_cgraph.md5 @@ -0,0 +1 @@ +cb57953b15e745508e52647facf2297e \ No newline at end of file diff --git a/a01901_a5fa93d3a16f6cd853ca26b8796112770_cgraph.svg b/a01901_a5fa93d3a16f6cd853ca26b8796112770_cgraph.svg new file mode 100644 index 00000000..a052bd3e --- /dev/null +++ b/a01901_a5fa93d3a16f6cd853ca26b8796112770_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +dlmallopt + + +Node1 + + +dlmallopt + + + + + +Node2 + + +change_mparam + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01901_a61f04155b5dceea889ba3cef64968684_cgraph.map b/a01901_a61f04155b5dceea889ba3cef64968684_cgraph.map new file mode 100644 index 00000000..50c2ae97 --- /dev/null +++ b/a01901_a61f04155b5dceea889ba3cef64968684_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01901_a61f04155b5dceea889ba3cef64968684_cgraph.md5 b/a01901_a61f04155b5dceea889ba3cef64968684_cgraph.md5 new file mode 100644 index 00000000..88a13873 --- /dev/null +++ b/a01901_a61f04155b5dceea889ba3cef64968684_cgraph.md5 @@ -0,0 +1 @@ +65aecc2f1e43a9970e7459f5865c3598 \ No newline at end of file diff --git a/a01901_a61f04155b5dceea889ba3cef64968684_cgraph.svg b/a01901_a61f04155b5dceea889ba3cef64968684_cgraph.svg new file mode 100644 index 00000000..2191de62 --- /dev/null +++ b/a01901_a61f04155b5dceea889ba3cef64968684_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +dlposix_memalign + + +Node1 + + +dlposix_memalign + + + + + +Node2 + + +internal_memalign + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dispose_chunk + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01901_a789f1726140c8d0ef5b54d893d806262_cgraph.map b/a01901_a789f1726140c8d0ef5b54d893d806262_cgraph.map new file mode 100644 index 00000000..6201736a --- /dev/null +++ b/a01901_a789f1726140c8d0ef5b54d893d806262_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01901_a789f1726140c8d0ef5b54d893d806262_cgraph.md5 b/a01901_a789f1726140c8d0ef5b54d893d806262_cgraph.md5 new file mode 100644 index 00000000..c49be093 --- /dev/null +++ b/a01901_a789f1726140c8d0ef5b54d893d806262_cgraph.md5 @@ -0,0 +1 @@ +277520e824fb5d923b5d94aa2791e3bd \ No newline at end of file diff --git a/a01901_a789f1726140c8d0ef5b54d893d806262_cgraph.svg b/a01901_a789f1726140c8d0ef5b54d893d806262_cgraph.svg new file mode 100644 index 00000000..f04bcfd6 --- /dev/null +++ b/a01901_a789f1726140c8d0ef5b54d893d806262_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +dlmemalign + + +Node1 + + +dlmemalign + + + + + +Node2 + + +internal_memalign + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dispose_chunk + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01901_a79e7e77bbc6d5208678b007bf89aab61_cgraph.map b/a01901_a79e7e77bbc6d5208678b007bf89aab61_cgraph.map new file mode 100644 index 00000000..ed7cd86b --- /dev/null +++ b/a01901_a79e7e77bbc6d5208678b007bf89aab61_cgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a01901_a79e7e77bbc6d5208678b007bf89aab61_cgraph.md5 b/a01901_a79e7e77bbc6d5208678b007bf89aab61_cgraph.md5 new file mode 100644 index 00000000..9e72dd8c --- /dev/null +++ b/a01901_a79e7e77bbc6d5208678b007bf89aab61_cgraph.md5 @@ -0,0 +1 @@ +a32e4b80a2a0388240374743d79d4641 \ No newline at end of file diff --git a/a01901_a79e7e77bbc6d5208678b007bf89aab61_cgraph.svg b/a01901_a79e7e77bbc6d5208678b007bf89aab61_cgraph.svg new file mode 100644 index 00000000..7217520a --- /dev/null +++ b/a01901_a79e7e77bbc6d5208678b007bf89aab61_cgraph.svg @@ -0,0 +1,75 @@ + + + + + + +dlrealloc + + +Node1 + + +dlrealloc + + + + + +Node2 + + +try_realloc_chunk + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dispose_chunk + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +mmap_resize + + + + + +Node2->Node4 + + + + + + + + diff --git a/a01901_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.map b/a01901_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.map new file mode 100644 index 00000000..4f422e0a --- /dev/null +++ b/a01901_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a01901_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.md5 b/a01901_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.md5 new file mode 100644 index 00000000..fee6e6b9 --- /dev/null +++ b/a01901_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.md5 @@ -0,0 +1 @@ +9d3df7e6bbbf3d1f2b9369919993738b \ No newline at end of file diff --git a/a01901_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.svg b/a01901_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.svg new file mode 100644 index 00000000..88c50082 --- /dev/null +++ b/a01901_afc9bc229eecc960b0c2bfd9033b6e2e0_cgraph.svg @@ -0,0 +1,75 @@ + + + + + + +dlrealloc_in_place + + +Node1 + + +dlrealloc_in_place + + + + + +Node2 + + +try_realloc_chunk + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +dispose_chunk + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +mmap_resize + + + + + +Node2->Node4 + + + + + + + + diff --git a/a01901_source.html b/a01901_source.html new file mode 100644 index 00000000..5e09ed6a --- /dev/null +++ b/a01901_source.html @@ -0,0 +1,765 @@ + + + + + + + +Arax: malloc.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
malloc.h
+
+
+Go to the documentation of this file.
1/*
+
2 * Default header file for malloc-2.8.x, written by Doug Lea
+
3 * and released to the public domain, as explained at
+
4 * http://creativecommons.org/publicdomain/zero/1.0/
+
5 *
+
6 * This header is for ANSI C/C++ only. You can set any of
+
7 * the following #defines before including:
+
8 *
+
9 * If USE_DL_PREFIX is defined, it is assumed that malloc.c
+
10 * was also compiled with this option, so all routines
+
11 * have names starting with "dl".
+
12 *
+
13 * If HAVE_USR_INCLUDE_MALLOC_H is defined, it is assumed that this
+
14 * file will be #included AFTER <malloc.h>. This is needed only if
+
15 * your system defines a struct mallinfo that is incompatible with the
+
16 * standard one declared here. Otherwise, you can include this file
+
17 * INSTEAD of your system system <malloc.h>. At least on ANSI, all
+
18 * declarations should be compatible with system versions
+
19 *
+
20 * If MSPACES is defined, declarations for mspace versions are included.
+
21 */
+
22
+
23#ifndef MALLOC_280_H
+
24#define MALLOC_280_H
+
25
+
26#ifdef __cplusplus
+
27extern "C" {
+
28#endif
+
29
+
30#include <stddef.h> /* for size_t */
+
31
+
32#ifndef ONLY_MSPACES
+
33#define ONLY_MSPACES 0 /* define to a value */
+
34#elif ONLY_MSPACES != 0
+
35#define ONLY_MSPACES 1
+
36#endif /* ONLY_MSPACES */
+
37#ifndef NO_MALLINFO
+
38#define NO_MALLINFO 0
+
39#endif /* NO_MALLINFO */
+
40
+
41#ifndef MSPACES
+
42#if ONLY_MSPACES
+
43#define MSPACES 1
+
44#else /* ONLY_MSPACES */
+
45#define MSPACES 0
+
46#endif /* ONLY_MSPACES */
+
47#endif /* MSPACES */
+
48
+
49#if !ONLY_MSPACES
+
50
+
51#ifndef USE_DL_PREFIX
+
52#define dlcalloc calloc
+
53#define dlfree free
+
54#define dlmalloc malloc
+
55#define dlmemalign memalign
+
56#define dlposix_memalign posix_memalign
+
57#define dlrealloc realloc
+
58#define dlvalloc valloc
+
59#define dlpvalloc pvalloc
+
60#define dlmallinfo mallinfo
+
61#define dlmallopt mallopt
+
62#define dlmalloc_trim malloc_trim
+
63#define dlmalloc_stats malloc_stats
+
64#define dlmalloc_usable_size malloc_usable_size
+
65#define dlmalloc_footprint malloc_footprint
+
66#define dlmalloc_max_footprint malloc_max_footprint
+
67#define dlmalloc_footprint_limit malloc_footprint_limit
+
68#define dlmalloc_set_footprint_limit malloc_set_footprint_limit
+
69#define dlmalloc_inspect_all malloc_inspect_all
+
70#define dlindependent_calloc independent_calloc
+
71#define dlindependent_comalloc independent_comalloc
+
72#define dlbulk_free bulk_free
+
73#endif /* USE_DL_PREFIX */
+
74
+
75#if !NO_MALLINFO
+
76#ifndef HAVE_USR_INCLUDE_MALLOC_H
+
77#ifndef _MALLOC_H
+
78#ifndef MALLINFO_FIELD_TYPE
+
79#define MALLINFO_FIELD_TYPE size_t
+
80#endif /* MALLINFO_FIELD_TYPE */
+
81#ifndef STRUCT_MALLINFO_DECLARED
+
82#define STRUCT_MALLINFO_DECLARED 1
+
83struct mallinfo
+
84{
+
85 MALLINFO_FIELD_TYPE arena; /* non-mmapped space allocated from system */
+
86 MALLINFO_FIELD_TYPE ordblks; /* number of free chunks */
+
87 MALLINFO_FIELD_TYPE smblks; /* always 0 */
+
88 MALLINFO_FIELD_TYPE hblks; /* always 0 */
+
89 MALLINFO_FIELD_TYPE hblkhd; /* space in mmapped regions */
+
90 MALLINFO_FIELD_TYPE usmblks; /* maximum total allocated space */
+
91 MALLINFO_FIELD_TYPE fsmblks; /* always 0 */
+
92 MALLINFO_FIELD_TYPE uordblks; /* total allocated space */
+
93 MALLINFO_FIELD_TYPE fordblks; /* total free space */
+
94 MALLINFO_FIELD_TYPE keepcost; /* releasable (via malloc_trim) space */
+
95};
+
96#endif /* STRUCT_MALLINFO_DECLARED */
+
97#endif /* _MALLOC_H */
+
98#endif /* HAVE_USR_INCLUDE_MALLOC_H */
+
99#endif /* !NO_MALLINFO */
+
100
+
101/*
+
102 * malloc(size_t n)
+
103 * Returns a pointer to a newly allocated chunk of at least n bytes, or
+
104 * null if no space is available, in which case errno is set to ENOMEM
+
105 * on ANSI C systems.
+
106 *
+
107 * If n is zero, malloc returns a minimum-sized chunk. (The minimum
+
108 * size is 16 bytes on most 32bit systems, and 32 bytes on 64bit
+
109 * systems.) Note that size_t is an unsigned type, so calls with
+
110 * arguments that would be negative if signed are interpreted as
+
111 * requests for huge amounts of space, which will often fail. The
+
112 * maximum supported value of n differs across systems, but is in all
+
113 * cases less than the maximum representable value of a size_t.
+
114 */
+
115void* dlmalloc(size_t);
+
116
+
117/*
+
118 * free(void* p)
+
119 * Releases the chunk of memory pointed to by p, that had been previously
+
120 * allocated using malloc or a related routine such as realloc.
+
121 * It has no effect if p is null. If p was not malloced or already
+
122 * freed, free(p) will by default cuase the current program to abort.
+
123 */
+
124void dlfree(void *);
+
125
+
126/*
+
127 * calloc(size_t n_elements, size_t element_size);
+
128 * Returns a pointer to n_elements * element_size bytes, with all locations
+
129 * set to zero.
+
130 */
+
131void* dlcalloc(size_t, size_t);
+
132
+
133/*
+
134 * realloc(void* p, size_t n)
+
135 * Returns a pointer to a chunk of size n that contains the same data
+
136 * as does chunk p up to the minimum of (n, p's size) bytes, or null
+
137 * if no space is available.
+
138 *
+
139 * The returned pointer may or may not be the same as p. The algorithm
+
140 * prefers extending p in most cases when possible, otherwise it
+
141 * employs the equivalent of a malloc-copy-free sequence.
+
142 *
+
143 * If p is null, realloc is equivalent to malloc.
+
144 *
+
145 * If space is not available, realloc returns null, errno is set (if on
+
146 * ANSI) and p is NOT freed.
+
147 *
+
148 * if n is for fewer bytes than already held by p, the newly unused
+
149 * space is lopped off and freed if possible. realloc with a size
+
150 * argument of zero (re)allocates a minimum-sized chunk.
+
151 *
+
152 * The old unix realloc convention of allowing the last-free'd chunk
+
153 * to be used as an argument to realloc is not supported.
+
154 */
+
155void* dlrealloc(void *, size_t);
+
156
+
157/*
+
158 * realloc_in_place(void* p, size_t n)
+
159 * Resizes the space allocated for p to size n, only if this can be
+
160 * done without moving p (i.e., only if there is adjacent space
+
161 * available if n is greater than p's current allocated size, or n is
+
162 * less than or equal to p's size). This may be used instead of plain
+
163 * realloc if an alternative allocation strategy is needed upon failure
+
164 * to expand space; for example, reallocation of a buffer that must be
+
165 * memory-aligned or cleared. You can use realloc_in_place to trigger
+
166 * these alternatives only when needed.
+
167 *
+
168 * Returns p if successful; otherwise null.
+
169 */
+
170void* dlrealloc_in_place(void *, size_t);
+
171
+
172/*
+
173 * memalign(size_t alignment, size_t n);
+
174 * Returns a pointer to a newly allocated chunk of n bytes, aligned
+
175 * in accord with the alignment argument.
+
176 *
+
177 * The alignment argument should be a power of two. If the argument is
+
178 * not a power of two, the nearest greater power is used.
+
179 * 8-byte alignment is guaranteed by normal malloc calls, so don't
+
180 * bother calling memalign with an argument of 8 or less.
+
181 *
+
182 * Overreliance on memalign is a sure way to fragment space.
+
183 */
+
184void* dlmemalign(size_t, size_t);
+
185
+
186/*
+
187 * int posix_memalign(void** pp, size_t alignment, size_t n);
+
188 * Allocates a chunk of n bytes, aligned in accord with the alignment
+
189 * argument. Differs from memalign only in that it (1) assigns the
+
190 * allocated memory to *pp rather than returning it, (2) fails and
+
191 * returns EINVAL if the alignment is not a power of two (3) fails and
+
192 * returns ENOMEM if memory cannot be allocated.
+
193 */
+
194int dlposix_memalign(void **, size_t, size_t);
+
195
+
196/*
+
197 * valloc(size_t n);
+
198 * Equivalent to memalign(pagesize, n), where pagesize is the page
+
199 * size of the system. If the pagesize is unknown, 4096 is used.
+
200 */
+
201void* dlvalloc(size_t);
+
202
+
203/*
+
204 * mallopt(int parameter_number, int parameter_value)
+
205 * Sets tunable parameters The format is to provide a
+
206 * (parameter-number, parameter-value) pair. mallopt then sets the
+
207 * corresponding parameter to the argument value if it can (i.e., so
+
208 * long as the value is meaningful), and returns 1 if successful else
+
209 * 0. SVID/XPG/ANSI defines four standard param numbers for mallopt,
+
210 * normally defined in malloc.h. None of these are use in this malloc,
+
211 * so setting them has no effect. But this malloc also supports other
+
212 * options in mallopt:
+
213 *
+
214 * Symbol param # default allowed param values
+
215 * M_TRIM_THRESHOLD -1 2*1024*1024 any (-1U disables trimming)
+
216 * M_GRANULARITY -2 page size any power of 2 >= page size
+
217 * M_MMAP_THRESHOLD -3 256*1024 any (or 0 if no MMAP support)
+
218 */
+
219int dlmallopt(int, int);
+
220
+
221#define M_TRIM_THRESHOLD (-1)
+
222#define M_GRANULARITY (-2)
+
223#define M_MMAP_THRESHOLD (-3)
+
224
+
225
+
226/*
+
227 * malloc_footprint();
+
228 * Returns the number of bytes obtained from the system. The total
+
229 * number of bytes allocated by malloc, realloc etc., is less than this
+
230 * value. Unlike mallinfo, this function returns only a precomputed
+
231 * result, so can be called frequently to monitor memory consumption.
+
232 * Even if locks are otherwise defined, this function does not use them,
+
233 * so results might not be up to date.
+
234 */
+
235size_t dlmalloc_footprint(void);
+
236
+
237/*
+
238 * malloc_max_footprint();
+
239 * Returns the maximum number of bytes obtained from the system. This
+
240 * value will be greater than current footprint if deallocated space
+
241 * has been reclaimed by the system. The peak number of bytes allocated
+
242 * by malloc, realloc etc., is less than this value. Unlike mallinfo,
+
243 * this function returns only a precomputed result, so can be called
+
244 * frequently to monitor memory consumption. Even if locks are
+
245 * otherwise defined, this function does not use them, so results might
+
246 * not be up to date.
+
247 */
+
248size_t dlmalloc_max_footprint(void);
+
249
+
250/*
+
251 * malloc_footprint_limit();
+
252 * Returns the number of bytes that the heap is allowed to obtain from
+
253 * the system, returning the last value returned by
+
254 * malloc_set_footprint_limit, or the maximum size_t value if
+
255 * never set. The returned value reflects a permission. There is no
+
256 * guarantee that this number of bytes can actually be obtained from
+
257 * the system.
+
258 */
+
259size_t dlmalloc_footprint_limit(void);
+
260
+
261/*
+
262 * malloc_set_footprint_limit();
+
263 * Sets the maximum number of bytes to obtain from the system, causing
+
264 * failure returns from malloc and related functions upon attempts to
+
265 * exceed this value. The argument value may be subject to page
+
266 * rounding to an enforceable limit; this actual value is returned.
+
267 * Using an argument of the maximum possible size_t effectively
+
268 * disables checks. If the argument is less than or equal to the
+
269 * current malloc_footprint, then all future allocations that require
+
270 * additional system memory will fail. However, invocation cannot
+
271 * retroactively deallocate existing used memory.
+
272 */
+
273size_t dlmalloc_set_footprint_limit(size_t bytes);
+
274
+
275/*
+
276 * malloc_inspect_all(void(*handler)(void *start,
+
277 * void *end,
+
278 * size_t used_bytes,
+
279 * void* callback_arg),
+
280 * void* arg);
+
281 * Traverses the heap and calls the given handler for each managed
+
282 * region, skipping all bytes that are (or may be) used for bookkeeping
+
283 * purposes. Traversal does not include include chunks that have been
+
284 * directly memory mapped. Each reported region begins at the start
+
285 * address, and continues up to but not including the end address. The
+
286 * first used_bytes of the region contain allocated data. If
+
287 * used_bytes is zero, the region is unallocated. The handler is
+
288 * invoked with the given callback argument. If locks are defined, they
+
289 * are held during the entire traversal. It is a bad idea to invoke
+
290 * other malloc functions from within the handler.
+
291 *
+
292 * For example, to count the number of in-use chunks with size greater
+
293 * than 1000, you could write:
+
294 * static int count = 0;
+
295 * void count_chunks(void* start, void* end, size_t used, void* arg) {
+
296 * if (used >= 1000) ++count;
+
297 * }
+
298 * then:
+
299 * malloc_inspect_all(count_chunks, NULL);
+
300 *
+
301 * malloc_inspect_all is compiled only if MALLOC_INSPECT_ALL is defined.
+
302 */
+
303void dlmalloc_inspect_all(void ( *handler )(void *, void *, size_t, void *),
+
304 void *arg);
+
305
+
306#if !NO_MALLINFO
+
307
+
308/*
+
309 * mallinfo()
+
310 * Returns (by copy) a struct containing various summary statistics:
+
311 *
+
312 * arena: current total non-mmapped bytes allocated from system
+
313 * ordblks: the number of free chunks
+
314 * smblks: always zero.
+
315 * hblks: current number of mmapped regions
+
316 * hblkhd: total bytes held in mmapped regions
+
317 * usmblks: the maximum total allocated space. This will be greater
+
318 * than current total if trimming has occurred.
+
319 * fsmblks: always zero
+
320 * uordblks: current total allocated space (normal or mmapped)
+
321 * fordblks: total free space
+
322 * keepcost: the maximum number of bytes that could ideally be released
+
323 * back to system via malloc_trim. ("ideally" means that
+
324 * it ignores page restrictions etc.)
+
325 *
+
326 * Because these fields are ints, but internal bookkeeping may
+
327 * be kept as longs, the reported values may wrap around zero and
+
328 * thus be inaccurate.
+
329 */
+
330
+
331struct mallinfo dlmallinfo(void);
+
332#endif /* NO_MALLINFO */
+
333
+
334/*
+
335 * independent_calloc(size_t n_elements, size_t element_size, void* chunks[]);
+
336 *
+
337 * independent_calloc is similar to calloc, but instead of returning a
+
338 * single cleared space, it returns an array of pointers to n_elements
+
339 * independent elements that can hold contents of size elem_size, each
+
340 * of which starts out cleared, and can be independently freed,
+
341 * realloc'ed etc. The elements are guaranteed to be adjacently
+
342 * allocated (this is not guaranteed to occur with multiple callocs or
+
343 * mallocs), which may also improve cache locality in some
+
344 * applications.
+
345 *
+
346 * The "chunks" argument is optional (i.e., may be null, which is
+
347 * probably the most typical usage). If it is null, the returned array
+
348 * is itself dynamically allocated and should also be freed when it is
+
349 * no longer needed. Otherwise, the chunks array must be of at least
+
350 * n_elements in length. It is filled in with the pointers to the
+
351 * chunks.
+
352 *
+
353 * In either case, independent_calloc returns this pointer array, or
+
354 * null if the allocation failed. If n_elements is zero and "chunks"
+
355 * is null, it returns a chunk representing an array with zero elements
+
356 * (which should be freed if not wanted).
+
357 *
+
358 * Each element must be freed when it is no longer needed. This can be
+
359 * done all at once using bulk_free.
+
360 *
+
361 * independent_calloc simplifies and speeds up implementations of many
+
362 * kinds of pools. It may also be useful when constructing large data
+
363 * structures that initially have a fixed number of fixed-sized nodes,
+
364 * but the number is not known at compile time, and some of the nodes
+
365 * may later need to be freed. For example:
+
366 *
+
367 * struct Node { int item; struct Node* next; };
+
368 *
+
369 * struct Node* build_list() {
+
370 * struct Node** pool;
+
371 * int n = read_number_of_nodes_needed();
+
372 * if (n <= 0) return 0;
+
373 * pool = (struct Node**)(independent_calloc(n, sizeof(struct Node), 0);
+
374 * if (pool == 0) die();
+
375 * // organize into a linked list...
+
376 * struct Node* first = pool[0];
+
377 * for (i = 0; i < n-1; ++i)
+
378 * pool[i]->next = pool[i+1];
+
379 * free(pool); // Can now free the array (or not, if it is needed later)
+
380 * return first;
+
381 * }
+
382 */
+
383void** dlindependent_calloc(size_t, size_t, void **);
+
384
+
385/*
+
386 * independent_comalloc(size_t n_elements, size_t sizes[], void* chunks[]);
+
387 *
+
388 * independent_comalloc allocates, all at once, a set of n_elements
+
389 * chunks with sizes indicated in the "sizes" array. It returns
+
390 * an array of pointers to these elements, each of which can be
+
391 * independently freed, realloc'ed etc. The elements are guaranteed to
+
392 * be adjacently allocated (this is not guaranteed to occur with
+
393 * multiple callocs or mallocs), which may also improve cache locality
+
394 * in some applications.
+
395 *
+
396 * The "chunks" argument is optional (i.e., may be null). If it is null
+
397 * the returned array is itself dynamically allocated and should also
+
398 * be freed when it is no longer needed. Otherwise, the chunks array
+
399 * must be of at least n_elements in length. It is filled in with the
+
400 * pointers to the chunks.
+
401 *
+
402 * In either case, independent_comalloc returns this pointer array, or
+
403 * null if the allocation failed. If n_elements is zero and chunks is
+
404 * null, it returns a chunk representing an array with zero elements
+
405 * (which should be freed if not wanted).
+
406 *
+
407 * Each element must be freed when it is no longer needed. This can be
+
408 * done all at once using bulk_free.
+
409 *
+
410 * independent_comallac differs from independent_calloc in that each
+
411 * element may have a different size, and also that it does not
+
412 * automatically clear elements.
+
413 *
+
414 * independent_comalloc can be used to speed up allocation in cases
+
415 * where several structs or objects must always be allocated at the
+
416 * same time. For example:
+
417 *
+
418 * struct Head { ... }
+
419 * struct Foot { ... }
+
420 *
+
421 * void send_message(char* msg) {
+
422 * int msglen = strlen(msg);
+
423 * size_t sizes[3] = { sizeof(struct Head), msglen, sizeof(struct Foot) };
+
424 * void* chunks[3];
+
425 * if (independent_comalloc(3, sizes, chunks) == 0)
+
426 * die();
+
427 * struct Head* head = (struct Head*)(chunks[0]);
+
428 * char* body = (char*)(chunks[1]);
+
429 * struct Foot* foot = (struct Foot*)(chunks[2]);
+
430 * // ...
+
431 * }
+
432 *
+
433 * In general though, independent_comalloc is worth using only for
+
434 * larger values of n_elements. For small values, you probably won't
+
435 * detect enough difference from series of malloc calls to bother.
+
436 *
+
437 * Overuse of independent_comalloc can increase overall memory usage,
+
438 * since it cannot reuse existing noncontiguous small chunks that
+
439 * might be available for some of the elements.
+
440 */
+
441void** dlindependent_comalloc(size_t, size_t *, void **);
+
442
+
443/*
+
444 * bulk_free(void* array[], size_t n_elements)
+
445 * Frees and clears (sets to null) each non-null pointer in the given
+
446 * array. This is likely to be faster than freeing them one-by-one.
+
447 * If footers are used, pointers that have been allocated in different
+
448 * mspaces are not freed or cleared, and the count of all such pointers
+
449 * is returned. For large arrays of pointers with poor locality, it
+
450 * may be worthwhile to sort this array before calling bulk_free.
+
451 */
+
452size_t dlbulk_free(void **, size_t n_elements);
+
453
+
454/*
+
455 * pvalloc(size_t n);
+
456 * Equivalent to valloc(minimum-page-that-holds(n)), that is,
+
457 * round up n to nearest pagesize.
+
458 */
+
459void* dlpvalloc(size_t);
+
460
+
461/*
+
462 * malloc_trim(size_t pad);
+
463 *
+
464 * If possible, gives memory back to the system (via negative arguments
+
465 * to sbrk) if there is unused memory at the `high' end of the malloc
+
466 * pool or in unused MMAP segments. You can call this after freeing
+
467 * large blocks of memory to potentially reduce the system-level memory
+
468 * requirements of a program. However, it cannot guarantee to reduce
+
469 * memory. Under some allocation patterns, some large free blocks of
+
470 * memory will be locked between two used chunks, so they cannot be
+
471 * given back to the system.
+
472 *
+
473 * The `pad' argument to malloc_trim represents the amount of free
+
474 * trailing space to leave untrimmed. If this argument is zero, only
+
475 * the minimum amount of memory to maintain internal data structures
+
476 * will be left. Non-zero arguments can be supplied to maintain enough
+
477 * trailing space to service future expected allocations without having
+
478 * to re-obtain memory from the system.
+
479 *
+
480 * Malloc_trim returns 1 if it actually released any memory, else 0.
+
481 */
+
482int dlmalloc_trim(size_t);
+
483
+
484/*
+
485 * malloc_stats();
+
486 * Prints on stderr the amount of space obtained from the system (both
+
487 * via sbrk and mmap), the maximum amount (which may be more than
+
488 * current if malloc_trim and/or munmap got called), and the current
+
489 * number of bytes allocated via malloc (or realloc, etc) but not yet
+
490 * freed. Note that this is the number of bytes allocated, not the
+
491 * number requested. It will be larger than the number requested
+
492 * because of alignment and bookkeeping overhead. Because it includes
+
493 * alignment wastage as being in use, this figure may be greater than
+
494 * zero even when no user-level chunks are allocated.
+
495 *
+
496 * The reported current and maximum system memory can be inaccurate if
+
497 * a program makes other calls to system memory allocation functions
+
498 * (normally sbrk) outside of malloc.
+
499 *
+
500 * malloc_stats prints only the most commonly interesting statistics.
+
501 * More information can be obtained by calling mallinfo.
+
502 *
+
503 * malloc_stats is not compiled if NO_MALLOC_STATS is defined.
+
504 */
+
505void dlmalloc_stats(void);
+
506
+
507#endif /* !ONLY_MSPACES */
+
508
+
509/*
+
510 * malloc_usable_size(void* p);
+
511 *
+
512 * Returns the number of bytes you can actually use in
+
513 * an allocated chunk, which may be more than you requested (although
+
514 * often not) due to alignment and minimum size constraints.
+
515 * You can use this many bytes without worrying about
+
516 * overwriting other allocated objects. This is not a particularly great
+
517 * programming practice. malloc_usable_size can be more useful in
+
518 * debugging and assertions, for example:
+
519 *
+
520 * p = malloc(n);
+
521 * assert(malloc_usable_size(p) >= 256);
+
522 */
+
523size_t dlmalloc_usable_size(const void *);
+
524
+
525#if MSPACES
+
526
+
527/*
+
528 * mspace is an opaque type representing an independent
+
529 * region of space that supports mspace_malloc, etc.
+
530 */
+
531typedef void *mspace;
+
532
+
533/*
+
534 * create_mspace creates and returns a new independent space with the
+
535 * given initial capacity, or, if 0, the default granularity size. It
+
536 * returns null if there is no system memory available to create the
+
537 * space. If argument locked is non-zero, the space uses a separate
+
538 * lock to control access. The capacity of the space will grow
+
539 * dynamically as needed to service mspace_malloc requests. You can
+
540 * control the sizes of incremental increases of this space by
+
541 * compiling with a different DEFAULT_GRANULARITY or dynamically
+
542 * setting with mallopt(M_GRANULARITY, value).
+
543 */
+
544mspace create_mspace(size_t capacity, int locked);
+
545
+
546/*
+
547 * destroy_mspace destroys the given space, and attempts to return all
+
548 * of its memory back to the system, returning the total number of
+
549 * bytes freed. After destruction, the results of access to all memory
+
550 * used by the space become undefined.
+
551 */
+
552size_t destroy_mspace(mspace msp);
+
553
+
554/*
+
555 * create_mspace_with_base uses the memory supplied as the initial base
+
556 * of a new mspace. Part (less than 128*sizeof(size_t) bytes) of this
+
557 * space is used for bookkeeping, so the capacity must be at least this
+
558 * large. (Otherwise 0 is returned.) When this initial space is
+
559 * exhausted, additional memory will be obtained from the system.
+
560 * Destroying this space will deallocate all additionally allocated
+
561 * space (if possible) but not the initial base.
+
562 */
+
563mspace create_mspace_with_base(void *base, size_t capacity, int locked);
+
564
+
565/*
+
566 * mspace_track_large_chunks controls whether requests for large chunks
+
567 * are allocated in their own untracked mmapped regions, separate from
+
568 * others in this mspace. By default large chunks are not tracked,
+
569 * which reduces fragmentation. However, such chunks are not
+
570 * necessarily released to the system upon destroy_mspace. Enabling
+
571 * tracking by setting to true may increase fragmentation, but avoids
+
572 * leakage when relying on destroy_mspace to release all memory
+
573 * allocated using this space. The function returns the previous
+
574 * setting.
+
575 */
+
576int mspace_track_large_chunks(mspace msp, int enable);
+
577
+
578#if !NO_MALLINFO
+
579
+
580/*
+
581 * mspace_mallinfo behaves as mallinfo, but reports properties of
+
582 * the given space.
+
583 */
+
584struct mallinfo mspace_mallinfo(mspace msp);
+
585#endif /* NO_MALLINFO */
+
586
+
587/*
+
588 * An alias for mallopt.
+
589 */
+
590int mspace_mallopt(int, int);
+
591
+
592/*
+
593 * The following operate identically to their malloc counterparts
+
594 * but operate only for the given mspace argument
+
595 */
+
596void* mspace_malloc(mspace msp, size_t bytes);
+
597void mspace_free(mspace msp, void *mem);
+
598void* mspace_calloc(mspace msp, size_t n_elements, size_t elem_size);
+
599void* mspace_realloc(mspace msp, void *mem, size_t newsize);
+
600void* mspace_realloc_in_place(mspace msp, void *mem, size_t newsize);
+
601void* mspace_memalign(mspace msp, size_t alignment, size_t bytes);
+
602void** mspace_independent_calloc(mspace msp, size_t n_elements,
+
603 size_t elem_size, void *chunks[]);
+
604void** mspace_independent_comalloc(mspace msp, size_t n_elements,
+
605 size_t sizes[], void *chunks[]);
+
606size_t mspace_bulk_free(mspace msp, void **, size_t n_elements);
+
607size_t mspace_usable_size(const void *mem);
+
608void mspace_malloc_stats(mspace msp);
+
609int mspace_trim(mspace msp, size_t pad);
+
610size_t mspace_footprint(mspace msp);
+
611size_t mspace_max_footprint(mspace msp);
+
612size_t mspace_footprint_limit(mspace msp);
+
613size_t mspace_set_footprint_limit(mspace msp, size_t bytes);
+
614void mspace_inspect_all(mspace msp,
+
615 void ( *handler )(void *, void *, size_t, void *),
+
616 void *arg);
+
617#endif /* MSPACES */
+
618
+
619#ifdef __cplusplus
+
620}; /* end of extern "C" */
+
621#endif
+
622
+
623#endif /* MALLOC_280_H */
+
#define dlrealloc_in_place
Definition malloc.c:830
+
#define dlrealloc
Definition malloc.h:57
+
#define dlmalloc_set_footprint_limit
Definition malloc.h:68
+
#define dlindependent_calloc
Definition malloc.h:70
+
#define dlmallopt
Definition malloc.h:61
+
#define dlmemalign
Definition malloc.h:55
+
#define dlmalloc_footprint_limit
Definition malloc.h:67
+
#define dlmalloc_stats
Definition malloc.h:63
+
#define MALLINFO_FIELD_TYPE
Definition malloc.h:79
+
#define dlmalloc_max_footprint
Definition malloc.h:66
+
#define dlbulk_free
Definition malloc.h:72
+
#define dlmalloc_trim
Definition malloc.h:62
+
#define dlmalloc
Definition malloc.h:54
+
#define dlpvalloc
Definition malloc.h:59
+
#define dlfree
Definition malloc.h:53
+
#define dlindependent_comalloc
Definition malloc.h:71
+
#define dlmalloc_usable_size
Definition malloc.h:64
+
#define dlmalloc_inspect_all
Definition malloc.h:69
+
#define dlmallinfo
Definition malloc.h:60
+
#define dlposix_memalign
Definition malloc.h:56
+
#define dlmalloc_footprint
Definition malloc.h:65
+
#define dlcalloc
Definition malloc.h:52
+
#define dlvalloc
Definition malloc.h:58
+ +
MALLINFO_FIELD_TYPE hblkhd
Definition malloc.c:776
+
MALLINFO_FIELD_TYPE ordblks
Definition malloc.c:773
+
MALLINFO_FIELD_TYPE smblks
Definition malloc.c:774
+
MALLINFO_FIELD_TYPE fsmblks
Definition malloc.c:778
+
MALLINFO_FIELD_TYPE hblks
Definition malloc.c:775
+
MALLINFO_FIELD_TYPE arena
Definition malloc.c:772
+
MALLINFO_FIELD_TYPE keepcost
Definition malloc.c:781
+
MALLINFO_FIELD_TYPE fordblks
Definition malloc.c:780
+
MALLINFO_FIELD_TYPE uordblks
Definition malloc.c:779
+
MALLINFO_FIELD_TYPE usmblks
Definition malloc.c:777
+
+
+ + + + diff --git a/a01902.map b/a01902.map new file mode 100644 index 00000000..682fd6fe --- /dev/null +++ b/a01902.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01902.md5 b/a01902.md5 new file mode 100644 index 00000000..9b1e34d4 --- /dev/null +++ b/a01902.md5 @@ -0,0 +1 @@ +f6c3df9784d9385e18b1b642f469b210 \ No newline at end of file diff --git a/a01902.svg b/a01902.svg new file mode 100644 index 00000000..c94809f9 --- /dev/null +++ b/a01902.svg @@ -0,0 +1,39 @@ + + + + + + +malloc.h + + +Node1 + + +malloc.h + + + + + +Node2 + + +stddef.h + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01903.map b/a01903.map new file mode 100644 index 00000000..ec032f86 --- /dev/null +++ b/a01903.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01903.md5 b/a01903.md5 new file mode 100644 index 00000000..80a4deed --- /dev/null +++ b/a01903.md5 @@ -0,0 +1 @@ +3bd3e27b024b6a5a9b83202f323b0c41 \ No newline at end of file diff --git a/a01903.svg b/a01903.svg new file mode 100644 index 00000000..f96df3e6 --- /dev/null +++ b/a01903.svg @@ -0,0 +1,57 @@ + + + + + + +malloc.h + + +Node1 + + +malloc.h + + + + + +Node2 + + +alloc.c + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +test.c + + + + + +Node1->Node3 + + + + + + + + diff --git a/a01904.html b/a01904.html new file mode 100644 index 00000000..f834a1a2 --- /dev/null +++ b/a01904.html @@ -0,0 +1,247 @@ + + + + + + + +Arax: test.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
test.c File Reference
+
+
+
#include <stdio.h>
+#include <stdlib.h>
+#include "malloc.h"
+
+ + Include dependency graph for test.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + +

+Macros

#define POOL_SIZE   1024 * 1024 * 1024
 
#define ALLOC_SIZE   1024
 
+ + + +

+Functions

int main (int argc, char *argv[])
 
+ + + + + +

+Variables

char * pool
 
void ** pointers
 
+

Macro Definition Documentation

+ +

◆ ALLOC_SIZE

+ +
+
+ + + + +
#define ALLOC_SIZE   1024
+
+ +

Definition at line 5 of file test.c.

+ +
+
+ +

◆ POOL_SIZE

+ +
+
+ + + + +
#define POOL_SIZE   1024 * 1024 * 1024
+
+ +

Definition at line 4 of file test.c.

+ +
+
+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int main (int argc,
char * argv[] 
)
+
+ +

Definition at line 9 of file test.c.

+ +

References ALLOC_SIZE, pointers, pool, and POOL_SIZE.

+ +
+
+

Variable Documentation

+ +

◆ pointers

+ +
+
+ + + + +
void** pointers
+
+ +

Definition at line 7 of file test.c.

+ +

Referenced by main().

+ +
+
+ +

◆ pool

+ +
+
+ + + + +
char* pool
+
+ +

Definition at line 6 of file test.c.

+ +

Referenced by main().

+ +
+
+
+
+ + + + diff --git a/a01904.js b/a01904.js new file mode 100644 index 00000000..71548271 --- /dev/null +++ b/a01904.js @@ -0,0 +1,8 @@ +var a01904 = +[ + [ "ALLOC_SIZE", "a01904.html#af4b82a302bb6293cf6b77464247cb1f8", null ], + [ "POOL_SIZE", "a01904.html#aa2ac54564b3514084afd2c5dafe9d232", null ], + [ "main", "a01904.html#a0ddf1224851353fc92bfbff6f499fa97", null ], + [ "pointers", "a01904.html#ae4dd276c544cacda6b9f61b6ca27d046", null ], + [ "pool", "a01904.html#a5510f97d9da7b2312ea591d6f3ce27a6", null ] +]; \ No newline at end of file diff --git a/a01904_source.html b/a01904_source.html new file mode 100644 index 00000000..453679d2 --- /dev/null +++ b/a01904_source.html @@ -0,0 +1,142 @@ + + + + + + + +Arax: test.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
test.c
+
+
+Go to the documentation of this file.
1#include <stdio.h>
+
2#include <stdlib.h>
+
3#include "malloc.h"
+
4#define POOL_SIZE 1024 * 1024 * 1024
+
5#define ALLOC_SIZE 1024
+
6char *pool;
+
7void **pointers; // Wont fill this, but better safe
+
8
+
9int main(int argc, char *argv[])
+
10{
+
11 int allocs = 0;
+
12
+
13 pool = malloc(POOL_SIZE);
+
14 pointers = malloc((POOL_SIZE / ALLOC_SIZE) * sizeof(void *));
+
15
+
16 mspace mem = create_mspace_with_base(pool, POOL_SIZE, 1);
+
17
+
18 while ( (pointers[allocs] = mspace_malloc(mem, ALLOC_SIZE)) ) {
+
19 allocs++;
+
20 }
+
21 printf("Allocations: %d\n", allocs);
+
22 mspace_bulk_free(mem, pointers, allocs);
+
23
+
24 free(pointers);
+
25 free(pool);
+
26
+
27 return 0;
+
28}
+ +
int main(int argc, char *argv[])
Definition test.c:9
+
char * pool
Definition test.c:6
+
#define POOL_SIZE
Definition test.c:4
+
void ** pointers
Definition test.c:7
+
#define ALLOC_SIZE
Definition test.c:5
+
+
+ + + + diff --git a/a01905.map b/a01905.map new file mode 100644 index 00000000..706d9a42 --- /dev/null +++ b/a01905.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/a01905.md5 b/a01905.md5 new file mode 100644 index 00000000..12742826 --- /dev/null +++ b/a01905.md5 @@ -0,0 +1 @@ +400ab7a95c2f02a15b95fe83dd6ec97a \ No newline at end of file diff --git a/a01905.svg b/a01905.svg new file mode 100644 index 00000000..09f1245d --- /dev/null +++ b/a01905.svg @@ -0,0 +1,93 @@ + + + + + + +test.c + + +Node1 + + +test.c + + + + + +Node2 + + +stdio.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stdlib.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +malloc.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +stddef.h + + + + + +Node4->Node5 + + + + + + + + diff --git a/a01907.html b/a01907.html new file mode 100644 index 00000000..5cb2d6e7 --- /dev/null +++ b/a01907.html @@ -0,0 +1,660 @@ + + + + + + + +Arax: impl.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
impl.c File Reference
+
+
+
#include <arax.h>
+#include <arax_pipe.h>
+#include "core/arax_data.h"
+#include "utils/config.h"
+#include "utils/system.h"
+#include "utils/timer.h"
+#include <sys/mman.h>
+#include <fcntl.h>
+#include <unistd.h>
+#include <stdlib.h>
+#include <string.h>
+
+ + Include dependency graph for impl.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + +

+Macros

#define arax_pipe_get()   arax_state.vpipe
 
#define GO_FAIL(MSG)   ({ err = __LINE__; err_msg = MSG; goto FAIL; })
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

arax_pipe_s_arax_init (int wait_controller)
 
arax_pipe_sarax_init ()
 
arax_pipe_sarax_controller_init_start ()
 
void arax_controller_init_done ()
 
uint64_t arax_instance_uid ()
 
void arax_exit ()
 
int arax_clean ()
 
void arax_accel_set_physical (arax_accel *vaccel, arax_accel *phys)
 
void arax_accel_list_free_pre_locked (arax_accel **accels)
 
int arax_accel_list (arax_accel_type_e type, int physical, arax_accel ***accels)
 
void arax_accel_list_free (arax_accel **accels)
 
arax_accel_type_e arax_accel_type (arax_accel *accel)
 
arax_accel_state_e arax_accel_stat (arax_accel *accel, arax_accel_stats_s *stat)
 
int arax_accel_acquire_phys (arax_accel **accel)
 
arax_accelarax_accel_acquire_type (arax_accel_type_e type)
 
void arax_accel_release (arax_accel **accel)
 
arax_procarax_proc_register (const char *func_name)
 
arax_procarax_proc_get (const char *func_name)
 
int arax_proc_put (arax_proc *func)
 
int check_semantics (size_t in_count, arax_data **input, size_t out_count, arax_data **output)
 
arax_taskarax_task_issue (arax_accel *accel, arax_proc *proc, const void *host_init, size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count, arax_data **dev_out)
 
arax_task_state_e arax_task_issue_sync (arax_accel *accel, arax_proc *proc, void *host_init, size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count, arax_data **dev_out)
 
arax_task_state_e arax_task_stat (arax_task *task, arax_task_stats_s *stats)
 
arax_task_state_e arax_task_wait (arax_task *task)
 
void arax_task_free (arax_task *task)
 
arax_buffer_s ARAX_BUFFER (size_t size)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Variables

const char * arax_version = "VT_VERSION " ARAX_GIT_REV " - " ARAX_GIT_BRANCH
 
struct { 
 
   arax_pipe_s *   vpipe 
 
   char   shm_file [1024] 
 
   uint64_t   threads 
 
   uint64_t   instance_uid 
 
   uint64_t   task_uid 
 
   volatile uint64_t   initialized 
 
   size_t   initialy_available 
 
   char *   config_path 
 
   int   fd 
 
arax_state 
 
+

Macro Definition Documentation

+ +

◆ arax_pipe_get

+ +
+
+ + + + + + + +
#define arax_pipe_get()   arax_state.vpipe
+
+ +

Definition at line 29 of file impl.c.

+ +
+
+ +

◆ GO_FAIL

+ +
+
+ + + + + + + + +
#define GO_FAIL( MSG)   ({ err = __LINE__; err_msg = MSG; goto FAIL; })
+
+ +

Definition at line 31 of file impl.c.

+ +
+
+

Function Documentation

+ +

◆ _arax_init()

+ +
+
+ + + + + + + + +
arax_pipe_s * _arax_init (int wait_controller)
+
+ +

Definition at line 33 of file impl.c.

+ +

References arax_pipe_get_available_size(), arax_pipe_have_to_mmap(), arax_pipe_init(), arax_pipe_mmap_address(), arax_state, async_condition_lock(), async_condition_unlock(), async_condition_wait(), async_meta_init_always(), CONFIG_FILE, GO_FAIL, system_mmap(), system_process_id(), system_total_memory(), utils_config_alloc_path(), utils_config_get_bool(), utils_config_get_size(), utils_config_get_source(), and utils_config_get_str().

+ +

Referenced by arax_controller_init_start(), and arax_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_list_free_pre_locked()

+ +
+
+ + + + + + + + +
void arax_accel_list_free_pre_locked (arax_accel ** accels)
+
+ +

Definition at line 294 of file impl.c.

+ +

References arax_object_ref_dec_pre_locked().

+ +

Referenced by arax_accel_list().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_controller_init_done()

+ +
+
+ + + + + + + +
void arax_controller_init_done ()
+
+

Should only be called by the controller process, after it is ready to recieve tasks. See arax_controller_init_start().

+ +

Definition at line 143 of file impl.c.

+ +

References arax_state, and async_condition_notify().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_controller_init_start()

+ +
+
+ + + + + + + +
arax_pipe_s * arax_controller_init_start ()
+
+

Similar to arax_init().

+

As this should be called only by the controller, prior to any other Arax function.

+

After the controller process is initialized and ready to recieve tasks arax_controller_init_done should be called.

+ +

Definition at line 138 of file impl.c.

+ +

References _arax_init().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_instance_uid()

+ +
+
+ + + + + + + +
uint64_t arax_instance_uid ()
+
+ +

Definition at line 151 of file impl.c.

+ +

References arax_state.

+ +
+
+ +

◆ check_semantics()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int check_semantics (size_t in_count,
arax_data ** input,
size_t out_count,
arax_data ** output 
)
+
+ +

Definition at line 422 of file impl.c.

+ +

References ARAX_TYPE_DATA, arax_data_s::obj, and arax_object_s::type.

+ +

Referenced by arax_task_issue().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+

Variable Documentation

+ +

◆ [struct]

+ +
+
+ + + + +
struct { ... } arax_state
+
+Initial value:
=
+
{ (void *) CONF_ARAX_MMAP_BASE, { '\0' }, 0, 0, 0, 0, 0, NULL, 0 }
+
+

Referenced by _arax_init(), arax_controller_init_done(), arax_exit(), and arax_instance_uid().

+ +
+
+ +

◆ arax_version

+ +
+
+ + + + +
const char* arax_version = "VT_VERSION " ARAX_GIT_REV " - " ARAX_GIT_BRANCH
+
+ +

Definition at line 13 of file impl.c.

+ +
+
+ +

◆ config_path

+ +
+
+ + + + +
char* config_path
+
+ +

Definition at line 24 of file impl.c.

+ +

Referenced by arax_clean().

+ +
+
+ +

◆ fd

+ +
+
+ + + + +
int fd
+
+ +

Definition at line 25 of file impl.c.

+ +

Referenced by async_meta_exit(), init_mparams(), and system_mmap().

+ +
+
+ +

◆ initialized

+ +
+
+ + + + +
volatile uint64_t initialized
+
+ +

Definition at line 22 of file impl.c.

+ +
+
+ +

◆ initialy_available

+ +
+
+ + + + +
size_t initialy_available
+
+ +

Definition at line 23 of file impl.c.

+ +
+
+ +

◆ instance_uid

+ +
+
+ + + + +
uint64_t instance_uid
+
+ +

Definition at line 20 of file impl.c.

+ +
+
+ +

◆ shm_file

+ +
+
+ + + + +
char shm_file[1024]
+
+ +

Definition at line 18 of file impl.c.

+ +

Referenced by arax_clean(), and async_meta_init_always().

+ +
+
+ +

◆ task_uid

+ +
+
+ + + + +
uint64_t task_uid
+
+ +

Definition at line 21 of file impl.c.

+ +
+
+ +

◆ threads

+ +
+
+ + + + +
uint64_t threads
+
+ +

Definition at line 19 of file impl.c.

+ +
+
+ +

◆ vpipe

+ + +
+
+ + + + diff --git a/a01907.js b/a01907.js new file mode 100644 index 00000000..2081ea87 --- /dev/null +++ b/a01907.js @@ -0,0 +1,42 @@ +var a01907 = +[ + [ "arax_pipe_get", "a01907.html#a2bb516831dd4d0d04092f7d82b2b9889", null ], + [ "GO_FAIL", "a01907.html#a720b3883b819944cf4e9edd9b0d6c9db", null ], + [ "_arax_init", "a01907.html#a02fd608f651d254148dc74f0ae371dfe", null ], + [ "arax_accel_acquire_phys", "a02175.html#gaf8a10ab4e51e59c464ab3ab473e4a0f7", null ], + [ "arax_accel_acquire_type", "a02175.html#ga008252bb9afc2990fa2c5f4b980c9f27", null ], + [ "arax_accel_list", "a02175.html#ga7f1598b99463c5ef533a457f225b4c0b", null ], + [ "arax_accel_list_free", "a02175.html#ga41bcefd54b929d1a638d174da051130f", null ], + [ "arax_accel_list_free_pre_locked", "a01907.html#a4cb362223e9e7a76f4c5695080db2755", null ], + [ "arax_accel_release", "a02175.html#ga497b17905d4c7ee2f5ee831d367ece92", null ], + [ "arax_accel_set_physical", "a02175.html#ga30b30e50de286842c7942a7e3e163578", null ], + [ "arax_accel_stat", "a02175.html#gadd7613438ee9db973f6abf9259956bd5", null ], + [ "arax_accel_type", "a02175.html#ga03cf4cdda8950d49fb9cb2e766d7a162", null ], + [ "ARAX_BUFFER", "a02178.html#ga9260ad2dd766aec3274c518e2e312b1f", null ], + [ "arax_clean", "a02174.html#ga4bae55e86ffc384b3c1d2da3580f5c42", null ], + [ "arax_controller_init_done", "a01907.html#a57a9203f163a9c8c78e22bde5fa4efbc", null ], + [ "arax_controller_init_start", "a01907.html#aa6e4832b06bd5757be4502d2de7b3026", null ], + [ "arax_exit", "a02174.html#ga8ac7e88ed7b8a1e2ff8aa435ac6b58ec", null ], + [ "arax_init", "a02174.html#gae1d371a2840849690acce147e7a205da", null ], + [ "arax_instance_uid", "a01907.html#a4720c7ee3ec8423a6cca1b4d4346c488", null ], + [ "arax_proc_get", "a02176.html#ga739047efb2b454e6c1ac54138ef2985d", null ], + [ "arax_proc_put", "a02176.html#ga70242aa6d9591e5fa3dbb36f1e27a896", null ], + [ "arax_proc_register", "a02176.html#gafad2dafb4a231390f02b7c866295b7d9", null ], + [ "arax_task_free", "a02177.html#ga55195957c1cde1508257782716aa6db3", null ], + [ "arax_task_issue", "a02177.html#gac9f0f3fbb14da879d3ff09bd367bbb24", null ], + [ "arax_task_issue_sync", "a02177.html#ga1418f4cd7336bf77cce7b955a1bf7077", null ], + [ "arax_task_stat", "a02177.html#gafd8ed07de431241d4a3e20ddb1eaede5", null ], + [ "arax_task_wait", "a02177.html#gacb098c0a8c3908f3fdd32e7ea7d780bb", null ], + [ "check_semantics", "a01907.html#a226d4d420328a42fd671699ae60c4c3a", null ], + [ "arax_state", "a01907.html#a8c515f9d7e4c8083b7452515d3e75096", null ], + [ "arax_version", "a01907.html#af2c3a9899e643a65fdeed8c95c5ef12d", null ], + [ "config_path", "a01907.html#a3de5ffd6fd04ae24583c706e938fb46e", null ], + [ "fd", "a01907.html#a6f8059414f0228f0256115e024eeed4b", null ], + [ "initialized", "a01907.html#a180b930566aef88fc50339a0e600979a", null ], + [ "initialy_available", "a01907.html#ae9849204a03ab51cab7078fd8a1922bf", null ], + [ "instance_uid", "a01907.html#a08c54f64f0e01265bafb63766f96707e", null ], + [ "shm_file", "a01907.html#a1efb21672d3d03723a3438c024c7e9b8", null ], + [ "task_uid", "a01907.html#a5b9e51ce781e49cf53d0bde45cb37a92", null ], + [ "threads", "a01907.html#aa94eb0857e9029089299368b1484e851", null ], + [ "vpipe", "a01907.html#a3e33e864e90b18efe53fbac5962d44ea", null ] +]; \ No newline at end of file diff --git a/a01907_a02fd608f651d254148dc74f0ae371dfe_cgraph.map b/a01907_a02fd608f651d254148dc74f0ae371dfe_cgraph.map new file mode 100644 index 00000000..d132cfd8 --- /dev/null +++ b/a01907_a02fd608f651d254148dc74f0ae371dfe_cgraph.map @@ -0,0 +1,120 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01907_a02fd608f651d254148dc74f0ae371dfe_cgraph.md5 b/a01907_a02fd608f651d254148dc74f0ae371dfe_cgraph.md5 new file mode 100644 index 00000000..aefd6953 --- /dev/null +++ b/a01907_a02fd608f651d254148dc74f0ae371dfe_cgraph.md5 @@ -0,0 +1 @@ +7bcd9570cc68391c1a80518a53dca36b \ No newline at end of file diff --git a/a01907_a02fd608f651d254148dc74f0ae371dfe_cgraph.svg b/a01907_a02fd608f651d254148dc74f0ae371dfe_cgraph.svg new file mode 100644 index 00000000..6644632d --- /dev/null +++ b/a01907_a02fd608f651d254148dc74f0ae371dfe_cgraph.svg @@ -0,0 +1,1074 @@ + + + + + + +_arax_init + + +Node1 + + +_arax_init + + + + + +Node2 + + +arax_pipe_get_available_size + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +arax_pipe_have_to_mmap + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +arax_pipe_init + + + + + +Node1->Node5 + + + + + + + + +Node21 + + +utils_config_alloc_path + + + + + +Node1->Node21 + + + + + + + + +Node24 + + +utils_config_get_bool + + + + + +Node1->Node24 + + + + + + + + +Node31 + + +utils_config_get_source + + + + + +Node1->Node31 + + + + + + + + +Node36 + + +arax_pipe_mmap_address + + + + + +Node1->Node36 + + + + + + + + +Node37 + + +async_condition_lock + + + + + +Node1->Node37 + + + + + + + + +Node39 + + +async_condition_unlock + + + + + +Node1->Node39 + + + + + + + + +Node40 + + +async_condition_wait + + + + + +Node1->Node40 + + + + + + + + +Node42 + + +async_meta_init_always + + + + + +Node1->Node42 + + + + + + + + +Node47 + + +utils_config_get_str + + + + + +Node1->Node47 + + + + + + + + +Node48 + + +system_mmap + + + + + +Node1->Node48 + + + + + + + + +Node49 + + +system_process_id + + + + + +Node1->Node49 + + + + + + + + +Node50 + + +system_total_memory + + + + + +Node1->Node50 + + + + + + + + +Node51 + + +utils_config_get_size + + + + + +Node1->Node51 + + + + + + + + +Node3 + + +arax_throttle_get_available_size + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +arax_object_repo_init + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +utils_list_init + + + + + +Node5->Node7 + + + + + + + + +Node9 + + +arax_pipe_add_process + + + + + +Node5->Node9 + + + + + + + + +Node10 + + +arax_throttle_init + + + + + +Node5->Node10 + + + + + + + + +Node11 + + +async_condition_init + + + + + +Node5->Node11 + + + + + + + + +Node17 + + +arch_alloc_init_always + + + + + +Node5->Node17 + + + + + + + + +Node18 + + +arch_alloc_init_once + + + + + +Node5->Node18 + + + + + + + + +Node20 + + +async_meta_init_once + + + + + +Node5->Node20 + + + + + + + + +Node35 + + +utils_kv_init + + + + + +Node5->Node35 + + + + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +utils_list_node_init + + + + + +Node7->Node8 + + + + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +async_completion_complete + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +async_completion_init + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +async_condition_unlock + + + + + +Node11->Node14 + + + + + + + + +Node16 + + +async_semaphore_init + + + + + +Node11->Node16 + + + + + + + + +Node19 + + +utils_bitmap_init + + + + + +Node18->Node19 + + + + + + + + +Node20->Node7 + + + + + + + + +Node20->Node21 + + + + + + + + +Node23 + + +utils_config_free_path + + + + + +Node20->Node23 + + + + + + + + +Node20->Node24 + + + + + + + + +Node22 + + +system_home_path + + + + + +Node21->Node22 + + + + + + + + +Node25 + + +utils_config_get_int + + + + + +Node24->Node25 + + + + + + + + +Node26 + + +utils_config_get_long + + + + + +Node25->Node26 + + + + + + + + +Node27 + + +_utils_config_get_str + + + + + +Node26->Node27 + + + + + + + + +Node32 + + +utils_config_write_long + + + + + +Node26->Node32 + + + + + + + + +Node28 + + +conf_get + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +system_env_var + + + + + +Node28->Node29 + + + + + + + + +Node30 + + +system_file_size + + + + + +Node28->Node30 + + + + + + + + +Node28->Node31 + + + + + + + + +Node31->Node29 + + + + + + + + +Node33 + + +utils_config_write_str + + + + + +Node32->Node33 + + + + + + + + +Node33->Node28 + + + + + + + + +Node34 + + +conf_set + + + + + +Node33->Node34 + + + + + + + + +Node34->Node31 + + + + + + + + +Node38 + + +async_completion_wait + + + + + +Node37->Node38 + + + + + + + + +Node39->Node12 + + + + + + + + +Node40->Node12 + + + + + + + + +Node40->Node38 + + + + + + + + +Node41 + + +async_semaphore_dec + + + + + +Node40->Node41 + + + + + + + + +Node42->Node21 + + + + + + + + +Node42->Node23 + + + + + + + + +Node43 + + +async_thread + + + + + +Node42->Node43 + + + + + + + + +Node42->Node47 + + + + + + + + +Node44 + + +async_completion_check + + + + + +Node43->Node44 + + + + + + + + +Node45 + + +getVmID + + + + + +Node43->Node45 + + + + + + + + +Node46 + + +utils_list_del + + + + + +Node43->Node46 + + + + + + + + +Node47->Node27 + + + + + + + + +Node47->Node33 + + + + + + + + +Node48->Node30 + + + + + + + + +Node51->Node26 + + + + + + + + diff --git a/a01907_a02fd608f651d254148dc74f0ae371dfe_icgraph.map b/a01907_a02fd608f651d254148dc74f0ae371dfe_icgraph.map new file mode 100644 index 00000000..3681541b --- /dev/null +++ b/a01907_a02fd608f651d254148dc74f0ae371dfe_icgraph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/a01907_a02fd608f651d254148dc74f0ae371dfe_icgraph.md5 b/a01907_a02fd608f651d254148dc74f0ae371dfe_icgraph.md5 new file mode 100644 index 00000000..d93d8a90 --- /dev/null +++ b/a01907_a02fd608f651d254148dc74f0ae371dfe_icgraph.md5 @@ -0,0 +1 @@ +526dc1b11089fdbdfcbe4d479e6e4643 \ No newline at end of file diff --git a/a01907_a02fd608f651d254148dc74f0ae371dfe_icgraph.svg b/a01907_a02fd608f651d254148dc74f0ae371dfe_icgraph.svg new file mode 100644 index 00000000..d50508bd --- /dev/null +++ b/a01907_a02fd608f651d254148dc74f0ae371dfe_icgraph.svg @@ -0,0 +1,167 @@ + + + + + + +_arax_init + + +Node1 + + +_arax_init + + + + + +Node2 + + +arax_controller_init +_start + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_plot_register +_metric + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_ptr_valid + + + + + +Node3->Node5 + + + + + + + + +Node5->Node4 + + + + + + + + +Node6 + + +_arax_assert_obj + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_data_ref + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +arax_data_ref_offset + + + + + +Node5->Node8 + + + + + + + + +Node7->Node8 + + + + + + + + diff --git a/a01907_a226d4d420328a42fd671699ae60c4c3a_icgraph.map b/a01907_a226d4d420328a42fd671699ae60c4c3a_icgraph.map new file mode 100644 index 00000000..829c3e6a --- /dev/null +++ b/a01907_a226d4d420328a42fd671699ae60c4c3a_icgraph.map @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/a01907_a226d4d420328a42fd671699ae60c4c3a_icgraph.md5 b/a01907_a226d4d420328a42fd671699ae60c4c3a_icgraph.md5 new file mode 100644 index 00000000..0a8af427 --- /dev/null +++ b/a01907_a226d4d420328a42fd671699ae60c4c3a_icgraph.md5 @@ -0,0 +1 @@ +52ad62c00933f406f7711966eda4ab59 \ No newline at end of file diff --git a/a01907_a226d4d420328a42fd671699ae60c4c3a_icgraph.svg b/a01907_a226d4d420328a42fd671699ae60c4c3a_icgraph.svg new file mode 100644 index 00000000..f33924ed --- /dev/null +++ b/a01907_a226d4d420328a42fd671699ae60c4c3a_icgraph.svg @@ -0,0 +1,157 @@ + + + + + + +check_semantics + + +Node1 + + +check_semantics + + + + + +Node2 + + +arax_task_issue + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_allocate +_remote + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_get + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +arax_data_set + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +arax_task_issue_sync + + + + + +Node2->Node8 + + + + + + + + +Node5 + + +arax_data_memcpy + + + + + +Node4->Node5 + + + + + + + + +Node6->Node5 + + + + + + + + diff --git a/a01907_a4cb362223e9e7a76f4c5695080db2755_cgraph.map b/a01907_a4cb362223e9e7a76f4c5695080db2755_cgraph.map new file mode 100644 index 00000000..dfa69444 --- /dev/null +++ b/a01907_a4cb362223e9e7a76f4c5695080db2755_cgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01907_a4cb362223e9e7a76f4c5695080db2755_cgraph.md5 b/a01907_a4cb362223e9e7a76f4c5695080db2755_cgraph.md5 new file mode 100644 index 00000000..d1d994f1 --- /dev/null +++ b/a01907_a4cb362223e9e7a76f4c5695080db2755_cgraph.md5 @@ -0,0 +1 @@ +b37f4fe1f4366be05c226e3468727813 \ No newline at end of file diff --git a/a01907_a4cb362223e9e7a76f4c5695080db2755_cgraph.svg b/a01907_a4cb362223e9e7a76f4c5695080db2755_cgraph.svg new file mode 100644 index 00000000..a45bdf66 --- /dev/null +++ b/a01907_a4cb362223e9e7a76f4c5695080db2755_cgraph.svg @@ -0,0 +1,203 @@ + + + + + + +arax_accel_list_free_pre_locked + + +Node1 + + +arax_accel_list_free +_pre_locked + + + + + +Node2 + + +arax_object_ref_dec +_pre_locked + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_size_inc + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +utils_list_del + + + + + +Node2->Node11 + + + + + + + + +Node4 + + +arax_throttle_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_condition_notify + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +async_condition_unlock + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_semaphore_inc + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +async_completion_complete + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01907_a4cb362223e9e7a76f4c5695080db2755_icgraph.map b/a01907_a4cb362223e9e7a76f4c5695080db2755_icgraph.map new file mode 100644 index 00000000..db603d0e --- /dev/null +++ b/a01907_a4cb362223e9e7a76f4c5695080db2755_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01907_a4cb362223e9e7a76f4c5695080db2755_icgraph.md5 b/a01907_a4cb362223e9e7a76f4c5695080db2755_icgraph.md5 new file mode 100644 index 00000000..6b3d9a00 --- /dev/null +++ b/a01907_a4cb362223e9e7a76f4c5695080db2755_icgraph.md5 @@ -0,0 +1 @@ +af6372bf13ac9069206f60970b13894f \ No newline at end of file diff --git a/a01907_a4cb362223e9e7a76f4c5695080db2755_icgraph.svg b/a01907_a4cb362223e9e7a76f4c5695080db2755_icgraph.svg new file mode 100644 index 00000000..49cff405 --- /dev/null +++ b/a01907_a4cb362223e9e7a76f4c5695080db2755_icgraph.svg @@ -0,0 +1,40 @@ + + + + + + +arax_accel_list_free_pre_locked + + +Node1 + + +arax_accel_list_free +_pre_locked + + + + + +Node2 + + +arax_accel_list + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01907_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.map b/a01907_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.map new file mode 100644 index 00000000..1af12496 --- /dev/null +++ b/a01907_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01907_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.md5 b/a01907_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.md5 new file mode 100644 index 00000000..b169e67d --- /dev/null +++ b/a01907_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.md5 @@ -0,0 +1 @@ +16471aca56431bd68e19e9ae46a37f1c \ No newline at end of file diff --git a/a01907_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.svg b/a01907_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.svg new file mode 100644 index 00000000..b5c0f6f9 --- /dev/null +++ b/a01907_a57a9203f163a9c8c78e22bde5fa4efbc_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_controller_init_done + + +Node1 + + +arax_controller_init_done + + + + + +Node2 + + +async_condition_notify + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_semaphore_inc + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01907_aa6e4832b06bd5757be4502d2de7b3026_cgraph.map b/a01907_aa6e4832b06bd5757be4502d2de7b3026_cgraph.map new file mode 100644 index 00000000..5cfe53d1 --- /dev/null +++ b/a01907_aa6e4832b06bd5757be4502d2de7b3026_cgraph.map @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01907_aa6e4832b06bd5757be4502d2de7b3026_cgraph.md5 b/a01907_aa6e4832b06bd5757be4502d2de7b3026_cgraph.md5 new file mode 100644 index 00000000..780af866 --- /dev/null +++ b/a01907_aa6e4832b06bd5757be4502d2de7b3026_cgraph.md5 @@ -0,0 +1 @@ +788a4f55cb2eb13d0403bd14ec3f33a3 \ No newline at end of file diff --git a/a01907_aa6e4832b06bd5757be4502d2de7b3026_cgraph.svg b/a01907_aa6e4832b06bd5757be4502d2de7b3026_cgraph.svg new file mode 100644 index 00000000..a8e4bfeb --- /dev/null +++ b/a01907_aa6e4832b06bd5757be4502d2de7b3026_cgraph.svg @@ -0,0 +1,1066 @@ + + + + + + +arax_controller_init_start + + +Node1 + + +arax_controller_init +_start + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_get_available_size + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +arax_pipe_have_to_mmap + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +arax_pipe_init + + + + + +Node2->Node6 + + + + + + + + +Node22 + + +utils_config_alloc_path + + + + + +Node2->Node22 + + + + + + + + +Node25 + + +utils_config_get_bool + + + + + +Node2->Node25 + + + + + + + + +Node32 + + +utils_config_get_source + + + + + +Node2->Node32 + + + + + + + + +Node37 + + +arax_pipe_mmap_address + + + + + +Node2->Node37 + + + + + + + + +Node38 + + +async_condition_lock + + + + + +Node2->Node38 + + + + + + + + +Node40 + + +async_condition_unlock + + + + + +Node2->Node40 + + + + + + + + +Node41 + + +async_condition_wait + + + + + +Node2->Node41 + + + + + + + + +Node43 + + +async_meta_init_always + + + + + +Node2->Node43 + + + + + + + + +Node48 + + +utils_config_get_str + + + + + +Node2->Node48 + + + + + + + + +Node49 + + +system_mmap + + + + + +Node2->Node49 + + + + + + + + +Node50 + + +system_process_id + + + + + +Node2->Node50 + + + + + + + + +Node51 + + +system_total_memory + + + + + +Node2->Node51 + + + + + + + + +Node52 + + +utils_config_get_size + + + + + +Node2->Node52 + + + + + + + + +Node4 + + +arax_throttle_get_available_size + + + + + +Node3->Node4 + + + + + + + + +Node7 + + +arax_object_repo_init + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +utils_list_init + + + + + +Node6->Node8 + + + + + + + + +Node10 + + +arax_pipe_add_process + + + + + +Node6->Node10 + + + + + + + + +Node11 + + +arax_throttle_init + + + + + +Node6->Node11 + + + + + + + + +Node12 + + +async_condition_init + + + + + +Node6->Node12 + + + + + + + + +Node18 + + +arch_alloc_init_always + + + + + +Node6->Node18 + + + + + + + + +Node19 + + +arch_alloc_init_once + + + + + +Node6->Node19 + + + + + + + + +Node21 + + +async_meta_init_once + + + + + +Node6->Node21 + + + + + + + + +Node36 + + +utils_kv_init + + + + + +Node6->Node36 + + + + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +utils_list_node_init + + + + + +Node8->Node9 + + + + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +async_completion_complete + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +async_completion_init + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +async_condition_unlock + + + + + +Node12->Node15 + + + + + + + + +Node17 + + +async_semaphore_init + + + + + +Node12->Node17 + + + + + + + + +Node20 + + +utils_bitmap_init + + + + + +Node19->Node20 + + + + + + + + +Node21->Node8 + + + + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +utils_config_free_path + + + + + +Node21->Node24 + + + + + + + + +Node21->Node25 + + + + + + + + +Node23 + + +system_home_path + + + + + +Node22->Node23 + + + + + + + + +Node26 + + +utils_config_get_int + + + + + +Node25->Node26 + + + + + + + + +Node27 + + +utils_config_get_long + + + + + +Node26->Node27 + + + + + + + + +Node28 + + +_utils_config_get_str + + + + + +Node27->Node28 + + + + + + + + +Node33 + + +utils_config_write_long + + + + + +Node27->Node33 + + + + + + + + +Node29 + + +conf_get + + + + + +Node28->Node29 + + + + + + + + +Node30 + + +system_env_var + + + + + +Node29->Node30 + + + + + + + + +Node31 + + +system_file_size + + + + + +Node29->Node31 + + + + + + + + +Node29->Node32 + + + + + + + + +Node32->Node30 + + + + + + + + +Node34 + + +utils_config_write_str + + + + + +Node33->Node34 + + + + + + + + +Node34->Node29 + + + + + + + + +Node39 + + +async_completion_wait + + + + + +Node38->Node39 + + + + + + + + +Node40->Node13 + + + + + + + + +Node41->Node13 + + + + + + + + +Node41->Node39 + + + + + + + + +Node42 + + +async_semaphore_dec + + + + + +Node41->Node42 + + + + + + + + +Node43->Node22 + + + + + + + + +Node43->Node24 + + + + + + + + +Node44 + + +async_thread + + + + + +Node43->Node44 + + + + + + + + +Node43->Node48 + + + + + + + + +Node45 + + +async_completion_check + + + + + +Node44->Node45 + + + + + + + + +Node46 + + +getVmID + + + + + +Node44->Node46 + + + + + + + + +Node47 + + +utils_list_del + + + + + +Node44->Node47 + + + + + + + + +Node48->Node28 + + + + + + + + +Node48->Node34 + + + + + + + + +Node49->Node31 + + + + + + + + +Node52->Node27 + + + + + + + + diff --git a/a01907_source.html b/a01907_source.html new file mode 100644 index 00000000..fbf9eacc --- /dev/null +++ b/a01907_source.html @@ -0,0 +1,767 @@ + + + + + + + +Arax: impl.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
impl.c
+
+
+Go to the documentation of this file.
1#include <arax.h>
+
2#include <arax_pipe.h>
+
3#include "core/arax_data.h"
+
4#include "utils/config.h"
+
5#include "utils/system.h"
+
6#include "utils/timer.h"
+
7#include <sys/mman.h>
+
8#include <fcntl.h>
+
9#include <unistd.h>
+
10#include <stdlib.h>
+
11#include <string.h>
+
12
+
13const char *arax_version = "VT_VERSION " ARAX_GIT_REV " - " ARAX_GIT_BRANCH;
+
14
+
15struct
+
16{
+ +
18 char shm_file[1024];
+
19 uint64_t threads;
+
20 uint64_t instance_uid;
+
21 uint64_t task_uid;
+
22 volatile uint64_t initialized;
+ + +
25 int fd;
+
26} arax_state =
+
27{ (void *) CONF_ARAX_MMAP_BASE, { '\0' }, 0, 0, 0, 0, 0, NULL, 0 };
+
28
+
29#define arax_pipe_get() arax_state.vpipe
+
30
+
31#define GO_FAIL(MSG) ({ err = __LINE__; err_msg = MSG; goto FAIL; })
+
32
+
33arax_pipe_s* _arax_init(int wait_controller)
+
34{
+
35 arax_pipe_s *shm_addr = 0;
+
36 int err = 0;
+
37 size_t shm_size = 0;
+
38 size_t shm_off = 0;
+
39 int shm_trunc = 0;
+
40 int shm_ivshmem = 0;
+
41 int enforce_version = 0;
+
42 const char *err_msg = "No Error Set";
+
43
+
44 if (__sync_fetch_and_add(&(arax_state.threads), 1) != 0) { // I am not the first but stuff might not yet be initialized
+
45 while (!arax_state.initialized); // wait for initialization
+
46 goto GOOD;
+
47 }
+
48
+
49 arax_state.config_path = utils_config_alloc_path(ARAX_CONFIG_FILE);
+
50
+
51 printf("Config:%s\n", (utils_config_get_source() == CONFIG_FILE) ? ARAX_CONFIG_FILE : "ARAX_CONF");
+
52
+
53 /* Required Confguration Keys */
+
54 if (!utils_config_get_str(arax_state.config_path, "shm_file", arax_state.shm_file, 1024, 0) )
+
55 GO_FAIL("No shm_file set in config");
+
56
+
57 /* Default /4 of system memory*/
+
58 shm_size = system_total_memory() / 4;
+
59
+
60 utils_config_get_size(arax_state.config_path, "shm_size", &shm_size, shm_size);
+
61
+
62 if (!shm_size || shm_size > system_total_memory() )
+
63 GO_FAIL("shm_size exceeds system memory");
+
64
+
65 /* Optional Confguration Keys */
+
66 utils_config_get_size(arax_state.config_path, "shm_off", &shm_off, 0);
+
67 utils_config_get_bool(arax_state.config_path, "shm_trunc", &shm_trunc, 1);
+
68 utils_config_get_bool(arax_state.config_path, "shm_ivshmem", &shm_ivshmem, 0);
+
69 utils_config_get_bool(arax_state.config_path, "enforce_version", &enforce_version, 1);
+
70
+
71 if (shm_ivshmem) {
+
72 shm_off += 4096; /* Skip register section */
+
73 shm_trunc = 0; /* Don't truncate ivshm device */
+
74 }
+
75
+
76 if (system_mmap((void **) &(arax_state.vpipe), &(arax_state.fd), arax_state.shm_file, shm_size, shm_off,
+
77 shm_trunc))
+
78 {
+
79 if (arax_state.fd < 0)
+
80 GO_FAIL("Could not open shm_file");
+
81 if (arax_state.vpipe == NULL)
+
82 GO_FAIL("Could not first mmap shm_file");
+
83 }
+
84
+
85 shm_addr = arax_pipe_mmap_address(arax_state.vpipe);
+
86
+ +
88 if (shm_addr != arax_state.vpipe) {
+
89 munmap(arax_state.vpipe, arax_state.vpipe->shm_size); // unmap misplaced map.
+
90
+
91 arax_state.vpipe = shm_addr; // Place mmap where we want it
+
92
+
93 if (system_mmap((void **) &(arax_state.vpipe), &(arax_state.fd), arax_state.shm_file, shm_size, shm_off,
+
94 0) || arax_state.vpipe != shm_addr)
+
95 GO_FAIL("Could not mmap shm_file in proper address");
+
96 }
+
97 } else { // Proccess was already mmaped (although we forgot about it :-S
+
98 arax_state.vpipe = shm_addr;
+
99 }
+
100
+
101 arax_state.vpipe = arax_pipe_init(arax_state.vpipe, shm_size, enforce_version);
+
102
+
103 if (!arax_state.vpipe)
+
104 GO_FAIL("Could not initialize arax_pipe");
+
105
+
106 arax_state.initialy_available = arax_pipe_get_available_size(arax_state.vpipe);
+
107
+
108 async_meta_init_always(&(arax_state.vpipe->async) );
+
109 printf("ShmFile:%s\n", arax_state.shm_file);
+
110 printf("ShmLocation:%p\n", arax_state.vpipe);
+
111 printf("ShmSize:%zu\n", arax_state.vpipe->shm_size);
+
112 arax_state.instance_uid = __sync_fetch_and_add(&(arax_state.vpipe->last_uid), 1);
+
113 printf("InstanceUID:%zu\n", arax_state.instance_uid);
+
114 arax_state.initialized = 1;
+
115GOOD:
+
116 if (wait_controller) {
+
117 async_condition_lock(&(arax_state.vpipe->cntrl_ready_cond));
+
118 while (arax_state.vpipe->cntrl_ready == 0)
+
119 async_condition_wait(&(arax_state.vpipe->cntrl_ready_cond));
+
120 async_condition_unlock(&(arax_state.vpipe->cntrl_ready_cond));
+
121 }
+
122 return arax_state.vpipe;
+
123
+
124FAIL:
+
125 printf("%c[31mprepare_arax Failed on line %d (conf:%s,file:%s,shm:%p)\n\
+
126 Why:%s%c[0m\n", 27, err, ARAX_CONFIG_FILE, arax_state.shm_file,
+
127 arax_state.vpipe, err_msg, 27);
+
128 munmap(arax_state.vpipe, arax_state.vpipe->shm_size);
+
129 exit(1);
+
130} /* arax_task_init */
+
131
+ +
133{
+
134 // All applications will wait for the controller/server initialization.
+
135 return _arax_init(1);
+
136}
+
137
+ +
139{
+
140 return _arax_init(0);
+
141}
+
142
+ +
144{
+
145 arax_state.vpipe->cntrl_ready = 1;
+
146 async_condition_notify(&(arax_state.vpipe->cntrl_ready_cond));
+
147}
+
148
+
149#undef GO_FAIL
+
150
+ +
152{
+
153 return arax_state.instance_uid;
+
154}
+
155
+ +
157{
+
158 int last;
+
159
+
160 if (arax_state.vpipe) {
+
161 if (__sync_fetch_and_add(&(arax_state.threads), -1) == 1) { // Last thread of process
+
162 last = arax_pipe_exit(arax_state.vpipe);
+
163
+
164 if (last) {
+
165 size_t available = arax_pipe_get_available_size(arax_state.vpipe);
+
166 arax_assert(available == arax_state.initialy_available);
+
167
+
168 if (available != arax_state.initialy_available) {
+
169 printf("\033[1;31mERROR : shm LEAK !!\n\033[0m");
+
170 }
+
171 }
+
172
+ +
174 munmap(arax_state.vpipe, arax_state.vpipe->shm_size);
+
175 arax_state.vpipe = (void *) CONF_ARAX_MMAP_BASE;
+
176
+ +
178 printf("arax_pipe_exit() = %d\n", last);
+
179 close(arax_state.fd);
+
180 arax_state.fd = 0;
+
181 if (last) {
+
182 if (!arax_clean() )
+
183 printf("Could not delete \"%s\"\n", arax_state.shm_file);
+
184 }
+
185 }
+
186 } else {
+
187 fprintf(stderr,
+
188 "WARNING:arax_exit() called with no matching\
+
189 call to arax_init()!\n");
+
190 }
+
191} /* arax_exit */
+
192
+ +
194{
+
195 char shm_file[1024];
+
196
+
197 char *config_path = utils_config_alloc_path(ARAX_CONFIG_FILE);
+
198
+
199 if (!utils_config_get_str(config_path, "shm_file", shm_file, 1024, 0) )
+
200 arax_assert(!"No shm_file set in config");
+
201
+
202 int ret = shm_unlink(shm_file);
+
203
+ +
205
+
206 return ret == 0;
+
207}
+
208
+ +
210{
+
211 arax_assert(phys);
+
212 arax_assert(vaccel);
+
213 arax_vaccel_s *acl = (arax_vaccel_s *) vaccel;
+
214
+
215 arax_assert(acl);
+
216 arax_accel_add_vaccel(phys, acl);
+
217}
+
218
+ +
220
+
221int arax_accel_list(arax_accel_type_e type, int physical, arax_accel ***accels)
+
222{
+ + +
225 utils_list_s *acc_list;
+
226
+
227 arax_accel_s **acl = 0;
+
228 int accel_count = 0;
+
229 arax_object_type_e ltype;
+
230
+
231
+
232 if (physical)
+
233 ltype = ARAX_TYPE_PHYS_ACCEL;
+
234 else
+
235 ltype = ARAX_TYPE_VIRT_ACCEL;
+
236
+ +
238
+
239 acc_list =
+
240 arax_object_list_lock(&(vpipe->objs), ltype);
+
241
+
242 if (accels) { /* Want the accels */
+
243 if (*accels)
+ +
245 *accels = malloc( (acc_list->length + 1) * sizeof(arax_accel *) );
+
246 acl = (arax_accel_s **) *accels;
+
247 }
+
248
+
249 if (physical) {
+
250 arax_accel_s *accel = 0;
+
251 utils_list_for_each(*acc_list, itr){
+
252 accel = (arax_accel_s *) itr->owner;
+
253 if (!type || accel->type == type) {
+
254 accel_count++;
+
255 if (acl) {
+
256 arax_object_ref_inc(&(accel->obj));
+
257 *acl = accel;
+
258 acl++;
+
259 }
+
260 }
+
261 }
+
262 } else {
+
263 arax_vaccel_s *accel = 0;
+
264 utils_list_for_each(*acc_list, itr){
+
265 accel = (arax_vaccel_s *) itr->owner;
+
266 if (!type || accel->type == type) {
+
267 accel_count++;
+
268 if (acl) {
+
269 arax_object_ref_inc(&(accel->obj));
+
270 *acl = (arax_accel_s *) accel;
+
271 acl++;
+
272 }
+
273 }
+
274 }
+
275 }
+
276 if (acl)
+
277 *acl = 0; // delimiter
+ +
279
+
280 return accel_count;
+
281} /* arax_accel_list */
+
282
+ +
284{
+
285 arax_object_s **itr = (arax_object_s **) accels;
+
286
+
287 while (*itr) {
+ +
289 itr++;
+
290 }
+
291 free(accels);
+
292}
+
293
+ +
295{
+
296 arax_object_s **itr = (arax_object_s **) accels;
+
297
+
298 while (*itr) {
+ +
300 itr++;
+
301 }
+
302 free(accels);
+
303}
+
304
+ +
306{
+
307 arax_accel_s *_accel;
+
308
+
309 _accel = accel;
+
310
+
311 return _accel->type;
+
312}
+
313
+ +
315{
+
316 arax_accel_s *_accel;
+ +
318
+
319 _accel = accel;
+
320
+
321 switch (_accel->obj.type) {
+ +
323 ret = arax_accel_get_stat(_accel, stat);
+
324 break;
+ +
326 ret = arax_vaccel_get_stat((arax_vaccel_s *) _accel, stat);
+
327 break;
+
328 default:
+
329 ret = accel_failed; /* Not very 'correct' */
+
330 }
+
331
+
332 return ret;
+
333}
+
334
+ +
336{
+ +
338 arax_accel_s *_accel;
+
339 int return_value = 0;
+
340
+
341
+ +
343
+
344 _accel = *accel;
+
345
+
346 if (_accel->obj.type == ARAX_TYPE_PHYS_ACCEL) {
+
347 *accel = arax_vaccel_init(vpipe, "FILL", _accel->type, _accel);
+
348 return_value = 1;
+
349 }
+
350
+
351 return return_value;
+
352}
+
353
+ +
355{
+ +
357 arax_accel_s *_accel = 0;
+
358
+ +
360
+
361 _accel = (arax_accel_s *) arax_vaccel_init(vpipe, "FILL", type, 0);
+
362
+
363 return (arax_accel *) _accel;
+
364}
+
365
+ +
367{
+
368 arax_vaccel_s *_accel;
+
369
+
370 _accel = *accel;
+
371
+
372 switch (_accel->obj.type) {
+ + +
375 arax_object_ref_dec(&(_accel->obj));
+
376 *accel = 0;
+
377 return;
+
378
+
379 default:
+
380 arax_assert(!"Non accelerator type passed in arax_accel_release");
+
381 }
+
382}
+
383
+
384arax_proc* arax_proc_register(const char *func_name)
+
385{
+ +
387 arax_proc_s *proc = 0;
+
388
+
389
+ +
391 proc = arax_pipe_find_proc(vpipe, func_name);
+
392
+
393 if (!proc) { /* Proc has not been declared */
+
394 proc = arax_proc_init(&(vpipe->objs), func_name);
+
395 }
+
396
+
397 return proc;
+
398}
+
399
+
400arax_proc* arax_proc_get(const char *func_name)
+
401{
+ +
403 arax_proc_s *proc = arax_pipe_find_proc(vpipe, func_name);
+
404
+
405 if (proc)
+
406 arax_object_ref_inc(&(proc->obj));
+
407 else
+
408 fprintf(stderr, "Proc %s not found!\n", func_name);
+
409
+
410 return proc;
+
411}
+
412
+ +
414{
+
415 arax_proc_s *proc = func;
+
416 /* Decrease user count */
+
417 int return_value = arax_object_ref_dec(&(proc->obj));
+
418
+
419 return return_value;
+
420}
+
421
+
422int check_semantics(size_t in_count, arax_data **input, size_t out_count,
+
423 arax_data **output)
+
424{
+
425 size_t io_cnt;
+
426 size_t dup_cnt;
+
427 size_t all_io = out_count + in_count;
+
428 arax_data_s *temp_data_1 = 0;
+
429 arax_data_s *temp_data_2 = 0;
+
430
+
431 for (io_cnt = 0; io_cnt < all_io; io_cnt++) {
+
432 // Choose from input or output
+
433 if (io_cnt < in_count)
+
434 temp_data_1 = input[io_cnt];
+
435 else
+
436 temp_data_1 = output[io_cnt - in_count];
+
437 // check Validity temp_data_1
+
438 if (!temp_data_1) {
+
439 fprintf(stderr, "NULL input #%lu\n", io_cnt);
+
440 return 0;
+
441 }
+
442 if (temp_data_1->obj.type != ARAX_TYPE_DATA) {
+
443 fprintf(stderr, "Input #%lu not valid data\n", io_cnt);
+
444 return 0;
+
445 }
+
446 // Check duplicates
+
447 for (dup_cnt = 0; dup_cnt < all_io; dup_cnt++) {
+
448 // Choose from input or output
+
449 if (dup_cnt < in_count)
+
450 temp_data_2 = input[dup_cnt];
+
451 else
+
452 temp_data_2 = output[dup_cnt - in_count];
+
453 // check Validity temp_data_2
+
454 if (!temp_data_2) {
+
455 fprintf(stderr, "NULL input #%lu\n", dup_cnt);
+
456 return 0;
+
457 }
+
458 if (temp_data_2->obj.type != ARAX_TYPE_DATA) {
+
459 fprintf(stderr, "Input #%lu not valid data\n", dup_cnt);
+
460 return 0;
+
461 }
+
462 }
+
463 }
+
464 return 1;
+
465} /* check_semantics */
+
466
+
467arax_task* arax_task_issue(arax_accel *accel, arax_proc *proc, const void *host_init, size_t host_size,
+
468 size_t in_count, arax_data **dev_in, size_t out_count,
+
469 arax_data **dev_out)
+
470{
+
471 // printf("%s %s\n",__func__, ((arax_proc_s*)proc)->obj.name) ;
+
472
+ +
474 arax_task_msg_s *task;
+
475
+
476 arax_assert(check_semantics(in_count, dev_in, out_count, dev_out));
+
477
+
478 task = arax_task_alloc(vpipe, accel, proc, host_size, in_count, dev_in, out_count, dev_out);
+
479
+
480 arax_assert(task);
+
481
+
482 if (host_size && host_init)
+
483 memcpy(arax_task_host_data(task, host_size), host_init, host_size);
+
484
+
485 arax_task_submit(task);
+
486
+
487 return task;
+
488} /* arax_task_issue */
+
489
+ +
491 size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count,
+
492 arax_data **dev_out)
+
493{
+
494 arax_task *task = arax_task_issue(accel, proc, host_init, host_size, in_count, dev_in, out_count, dev_out);
+
495 arax_task_state_e status = arax_task_wait(task);
+
496
+
497 arax_task_free(task);
+
498
+
499 return status;
+
500}
+
501
+ +
503{
+
504 arax_task_msg_s *_task = task;
+
505 arax_task_state_e ret = 0;
+
506
+
507 ret = _task->state;
+
508
+
509 if (stats)
+
510 memcpy(stats, &(_task->stats), sizeof(*stats));
+
511
+
512 return ret;
+
513}
+
514
+ +
516{
+
517 arax_task_msg_s *_task = task;
+
518
+
519 arax_task_wait_done(_task);
+
520
+
521 return _task->state;
+
522}
+
523
+ +
525{
+
526 arax_task_msg_s *_task = task;
+
527
+
528 arax_object_ref_dec(&(_task->obj));
+
529}
+
530
+ +
532{
+ +
534
+
535 arax_data_s *vd = arax_data_init(vpipe, size);
+
536
+
537 return vd;
+
538}
+ + +
void arax_task
Definition arax_types.h:51
+
enum arax_accel_state arax_accel_state_e
+
void arax_accel
Definition arax_types.h:9
+
enum arax_accel_type arax_accel_type_e
+
void arax_proc
Definition arax_types.h:14
+
arax_accel_type
Definition arax_types.h:83
+
arax_task_state_e
Definition arax_types.h:62
+
@ accel_failed
Definition arax_types.h:43
+
void * arax_buffer_s
Definition arax_types.h:102
+
void arax_data
Definition arax_types.h:56
+
#define arax_assert(EXPR)
Definition arax_assert.h:7
+ +
@ CONFIG_FILE
Definition config.h:143
+
#define utils_list_for_each(list, itr)
Definition list.h:96
+ + + +
enum arax_object_type arax_object_type_e
+
@ ARAX_TYPE_DATA
Definition arax_object.h:19
+
@ ARAX_TYPE_VIRT_ACCEL
Definition arax_object.h:17
+
@ ARAX_TYPE_PHYS_ACCEL
Definition arax_object.h:16
+
void async_condition_wait(async_condition_s *cond)
+
void async_condition_unlock(async_condition_s *cond)
+
void async_condition_notify(async_condition_s *cond)
+
void async_meta_init_always(async_meta_s *meta)
+
void async_condition_lock(async_condition_s *cond)
+
arax_pipe_s * _arax_init(int wait_controller)
Definition impl.c:33
+
uint64_t instance_uid
Definition impl.c:20
+
volatile uint64_t initialized
Definition impl.c:22
+
char shm_file[1024]
Definition impl.c:18
+
int check_semantics(size_t in_count, arax_data **input, size_t out_count, arax_data **output)
Definition impl.c:422
+
#define arax_pipe_get()
Definition impl.c:29
+
char * config_path
Definition impl.c:24
+
arax_pipe_s * vpipe
Definition impl.c:17
+
uint64_t arax_instance_uid()
Definition impl.c:151
+
void arax_accel_list_free_pre_locked(arax_accel **accels)
Definition impl.c:294
+
void arax_controller_init_done()
Definition impl.c:143
+
uint64_t task_uid
Definition impl.c:21
+
int fd
Definition impl.c:25
+
#define GO_FAIL(MSG)
Definition impl.c:31
+
struct @0 arax_state
+
arax_pipe_s * arax_controller_init_start()
Definition impl.c:138
+
uint64_t threads
Definition impl.c:19
+
size_t initialy_available
Definition impl.c:23
+
const char * arax_version
Definition impl.c:13
+
arax_accel_state_e arax_accel_get_stat(arax_accel_s *accel, arax_accel_stats_s *stat)
Definition arax_accel.c:89
+
void arax_accel_add_vaccel(arax_accel_s *accel, arax_vaccel_s *vaccel)
Definition arax_accel.c:108
+
arax_data_s * arax_data_init(arax_pipe_s *vpipe, size_t size)
Definition arax_data.c:16
+
int arax_object_ref_dec_pre_locked(arax_object_s *obj)
+
void arax_object_ref_inc(arax_object_s *obj)
+
utils_list_s * arax_object_list_lock(arax_object_repo_s *repo, arax_object_type_e type)
+
void arax_object_list_unlock(arax_object_repo_s *repo, arax_object_type_e type)
+
int arax_object_ref_dec(arax_object_s *obj)
+
arax_proc_s * arax_pipe_find_proc(arax_pipe_s *pipe, const char *name)
Definition arax_pipe.c:219
+
int arax_pipe_have_to_mmap(arax_pipe_s *pipe, int pid)
Definition arax_pipe.c:126
+
int arax_pipe_exit(arax_pipe_s *pipe)
Definition arax_pipe.c:241
+
void arax_pipe_mark_unmap(arax_pipe_s *pipe, int pid)
Definition arax_pipe.c:148
+
void * arax_pipe_mmap_address(arax_pipe_s *pipe)
Definition arax_pipe.c:165
+
size_t arax_pipe_get_available_size(arax_pipe_s *pipe)
Definition arax_pipe.c:265
+
arax_pipe_s * arax_pipe_init(void *mem, size_t size, int enforce_version)
Definition arax_pipe.c:5
+
arax_proc_s * arax_proc_init(arax_object_repo_s *repo, const char *name)
Definition arax_proc.c:4
+
void arax_task_wait_done(arax_task_msg_s *msg)
Definition arax_task.c:77
+
arax_task_msg_s * arax_task_alloc(arax_pipe_s *vpipe, arax_accel *accel, arax_proc *proc, size_t host_size, int ins, arax_data **dev_in, int outs, arax_data **dev_out)
Definition arax_task.c:7
+
void * arax_task_host_data(arax_task_msg_s *task, size_t size)
Definition arax_task.c:51
+
void arax_task_submit(arax_task_msg_s *task)
Definition arax_task.c:64
+
arax_accel_state_e arax_vaccel_get_stat(arax_vaccel_s *accel, arax_accel_stats_s *stat)
+
arax_vaccel_s * arax_vaccel_init(arax_pipe_s *pipe, const char *name, arax_accel_type_e type, arax_accel_s *accel)
Definition arax_vaccel.c:3
+
enum utils_config_source utils_config_get_source()
Definition config.c:242
+
int utils_config_get_str(char *path, const char *key, char *value, size_t value_size, const char *def_val)
Definition config.c:164
+
int utils_config_get_size(char *path, const char *key, size_t *value, size_t def_val)
Definition config.c:226
+
void utils_config_free_path(char *path)
Definition config.c:128
+
int utils_config_get_bool(char *path, const char *key, int *value, int def_val)
Definition config.c:178
+
char * utils_config_alloc_path(const char *path)
Definition config.c:94
+
int system_process_id()
Definition system.c:91
+
size_t system_total_memory()
Definition system.c:13
+
int system_mmap(void **base, int *fd, const char *file, size_t shm_size, size_t shm_off, int truncate)
Definition system.c:37
+
int arax_clean()
Definition impl.c:193
+
void arax_exit()
Definition impl.c:156
+
arax_pipe_s * arax_init()
Definition impl.c:132
+
arax_accel * arax_accel_acquire_type(arax_accel_type_e type)
Definition impl.c:354
+
void arax_accel_set_physical(arax_accel *vaccel, arax_accel *phys)
Definition impl.c:209
+
void arax_accel_list_free(arax_accel **accels)
Definition impl.c:283
+
void arax_accel_release(arax_accel **accel)
Definition impl.c:366
+
int arax_accel_list(arax_accel_type_e type, int physical, arax_accel ***accels)
Definition impl.c:221
+
arax_accel_state_e arax_accel_stat(arax_accel *accel, arax_accel_stats_s *stat)
Definition impl.c:314
+
int arax_accel_acquire_phys(arax_accel **accel)
Definition impl.c:335
+
int arax_proc_put(arax_proc *func)
Definition impl.c:413
+
arax_proc * arax_proc_get(const char *func_name)
Definition impl.c:400
+
arax_proc * arax_proc_register(const char *func_name)
Definition impl.c:384
+
arax_task_state_e arax_task_issue_sync(arax_accel *accel, arax_proc *proc, void *host_init, size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count, arax_data **dev_out)
Definition impl.c:490
+
void arax_task_free(arax_task *task)
Definition impl.c:524
+
arax_task * arax_task_issue(arax_accel *accel, arax_proc *proc, const void *host_init, size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count, arax_data **dev_out)
Definition impl.c:467
+
arax_task_state_e arax_task_wait(arax_task *task)
Definition impl.c:515
+
arax_task_state_e arax_task_stat(arax_task *task, arax_task_stats_s *stats)
Definition impl.c:502
+
arax_buffer_s ARAX_BUFFER(size_t size)
Definition impl.c:531
+ +
arax_object_s obj
Definition arax_accel.h:16
+
arax_accel_type_e type
Definition arax_accel.h:17
+ +
arax_object_s obj
Definition arax_data.h:38
+ +
arax_object_type_e type
Definition arax_object.h:45
+ +
arax_object_s obj
Definition arax_proc.h:17
+ +
arax_object_s obj
Definition arax_task.h:11
+
arax_task_state_e state
Definition arax_task.h:19
+
arax_task_stats_s stats
Definition arax_task.h:20
+ +
arax_object_s obj
Definition arax_vaccel.h:31
+
arax_accel_type_e type
Definition arax_vaccel.h:32
+ +
void * owner
Definition list.h:14
+ +
size_t length
Definition list.h:19
+ +
arax_object_repo_s objs
Definition arax_pipe.h:33
+ + +
+
+ + + + diff --git a/a01908.map b/a01908.map new file mode 100644 index 00000000..a2510db3 --- /dev/null +++ b/a01908.map @@ -0,0 +1,98 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01908.md5 b/a01908.md5 new file mode 100644 index 00000000..a166c9da --- /dev/null +++ b/a01908.md5 @@ -0,0 +1 @@ +fd5a4b0b31c7dfcf052f8f12e1346360 \ No newline at end of file diff --git a/a01908.svg b/a01908.svg new file mode 100644 index 00000000..39778c1e --- /dev/null +++ b/a01908.svg @@ -0,0 +1,876 @@ + + + + + + +impl.c + + +Node1 + + +impl.c + + + + + +Node2 + + +arax.h + + + + + +Node1->Node2 + + + + + + + + +Node9 + + +arax_pipe.h + + + + + +Node1->Node9 + + + + + + + + +Node26 + + +core/arax_data.h + + + + + +Node1->Node26 + + + + + + + + +Node27 + + +utils/config.h + + + + + +Node1->Node27 + + + + + + + + +Node28 + + +utils/system.h + + + + + +Node1->Node28 + + + + + + + + +Node30 + + +utils/timer.h + + + + + +Node1->Node30 + + + + + + + + +Node31 + + +unistd.h + + + + + +Node1->Node31 + + + + + + + + +Node32 + + +sys/mman.h + + + + + +Node1->Node32 + + + + + + + + +Node33 + + +fcntl.h + + + + + +Node1->Node33 + + + + + + + + +Node34 + + +stdlib.h + + + + + +Node1->Node34 + + + + + + + + +Node35 + + +string.h + + + + + +Node1->Node35 + + + + + + + + +Node3 + + +stdio.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stddef.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_types.h + + + + + +Node2->Node5 + + + + + + + + +Node8 + + +core/arax_accel_types.h + + + + + +Node2->Node8 + + + + + + + + +Node6 + + +sys/time.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +time.h + + + + + +Node5->Node7 + + + + + + + + +Node8->Node5 + + + + + + + + +Node9->Node2 + + + + + + + + +Node10 + + +utils/Kv.h + + + + + +Node9->Node10 + + + + + + + + +Node16 + + +utils/queue.h + + + + + +Node9->Node16 + + + + + + + + +Node17 + + +core/arax_accel.h + + + + + +Node9->Node17 + + + + + + + + +Node24 + + +core/arax_task.h + + + + + +Node9->Node24 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +conf.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +spinlock.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +stdint.h + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +utils/arax_assert.h + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +compat.h + + + + + +Node14->Node15 + + + + + + + + +Node16->Node4 + + + + + + + + +Node16->Node11 + + + + + + + + +Node16->Node12 + + + + + + + + +Node16->Node13 + + + + + + + + +Node17->Node2 + + + + + + + + +Node18 + + +async.h + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +core/arax_vaccel.h + + + + + +Node17->Node19 + + + + + + + + +Node23 + + +core/arax_throttle.h + + + + + +Node17->Node23 + + + + + + + + +Node19->Node16 + + + + + + + + +Node19->Node17 + + + + + + + + +Node19->Node18 + + + + + + + + +Node20 + + +core/arax_object.h + + + + + +Node19->Node20 + + + + + + + + +Node20->Node12 + + + + + + + + +Node21 + + +utils/list.h + + + + + +Node20->Node21 + + + + + + + + +Node22 + + +arch/alloc.h + + + + + +Node20->Node22 + + + + + + + + +Node21->Node4 + + + + + + + + +Node21->Node13 + + + + + + + + +Node23->Node18 + + + + + + + + +Node24->Node18 + + + + + + + + +Node25 + + +core/arax_proc.h + + + + + +Node24->Node25 + + + + + + + + +Node25->Node2 + + + + + + + + +Node25->Node20 + + + + + + + + +Node26->Node2 + + + + + + + + +Node26->Node11 + + + + + + + + +Node26->Node17 + + + + + + + + +Node26->Node18 + + + + + + + + +Node26->Node20 + + + + + + + + +Node27->Node4 + + + + + + + + +Node28->Node4 + + + + + + + + +Node29 + + +sys/types.h + + + + + +Node28->Node29 + + + + + + + + +Node30->Node2 + + + + + + + + +Node30->Node31 + + + + + + + + diff --git a/a01913.html b/a01913.html new file mode 100644 index 00000000..27225820 --- /dev/null +++ b/a01913.html @@ -0,0 +1,828 @@ + + + + + + + +Arax: arax_accel.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_accel.c File Reference
+
+
+
#include "arax_pipe.h"
+#include <string.h>
+#include <stdlib.h>
+
+ + Include dependency graph for arax_accel.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

arax_accel_sarax_accel_init (arax_pipe_s *pipe, const char *name, arax_accel_type_e type, size_t size, size_t capacity)
 
void arax_accel_wait_for_task (arax_accel_s *accel)
 
void arax_accel_add_task (arax_accel_s *accel)
 
size_t arax_accel_pending_tasks (arax_accel_s *accel)
 
void ARAX_THROTTLE_DEBUG_ACCEL_FUNC() arax_accel_size_inc (arax_accel *accel, size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS)
 
void ARAX_THROTTLE_DEBUG_ACCEL_FUNC() arax_accel_size_dec (arax_accel *accel, size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS)
 
size_t arax_accel_get_available_size (arax_accel *accel)
 
size_t arax_accel_get_total_size (arax_accel *accel)
 
const char * arax_accel_get_name (arax_accel_s *accel)
 
arax_accel_state_e arax_accel_get_stat (arax_accel_s *accel, arax_accel_stats_s *stat)
 
void arax_accel_inc_revision (arax_accel_s *accel)
 
size_t arax_accel_get_revision (arax_accel_s *accel)
 
void arax_accel_add_vaccel (arax_accel_s *accel, arax_vaccel_s *vaccel)
 
size_t arax_accel_get_assigned_vaccels (arax_accel_s *accel, arax_vaccel_s ***vaccel)
 
void arax_accel_del_vaccel (arax_accel_s *accel, arax_vaccel_s *vaccel)
 
 ARAX_OBJ_DTOR_DECL (arax_accel_s)
 
+

Function Documentation

+ +

◆ arax_accel_add_task()

+ +
+
+ + + + + + + + +
void arax_accel_add_task (arax_accel_saccel)
+
+

Increase the number of tasks of accel and notify blocked arax_accel_wait_for_task() callers.

+

This function increases the number of pending tasks of this arax_accel_s (arax_accel_s::tasks).

+ +

Definition at line 38 of file arax_accel.c.

+ +

References async_condition_lock(), async_condition_notify(), async_condition_unlock(), arax_accel_s::lock, and arax_accel_s::tasks.

+ +

Referenced by arax_vaccel_add_task().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_add_vaccel()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_accel_add_vaccel (arax_accel_saccel,
arax_vaccel_svaccel 
)
+
+

Add (register) a virtual accell vaccel to physical accelerator accel.

+

If vaccel is already assigned to accel, the function is no-op. If vaccel is not yet assigned to any accel, it will be assigned to accel. In any other behaviour is undefined.

+
Note
This call should be matched to calls of arax_accel_del_vaccel()
+
Parameters
+ + + +
accelA physical accelerator
vaccelA virtual accelerator to be linked with accel
+
+
+ +

Definition at line 108 of file arax_accel.c.

+ +

References arax_accel_inc_revision(), arax_assert, arax_assert_obj, arax_pipe_remove_orphan_vaccel(), ARAX_TYPE_PHYS_ACCEL, ARAX_TYPE_VIRT_ACCEL, arax_vaccel_queue_size(), async_condition_lock(), async_condition_notify(), async_condition_unlock(), arax_accel_s::lock, arax_vaccel_s::lock, arax_vaccel_s::obj, arax_vaccel_s::phys, arax_object_repo_s::pipe, arax_object_s::repo, arax_accel_s::tasks, utils_list_add(), utils_spinlock_lock, utils_spinlock_unlock, arax_accel_s::vaccels, and arax_vaccel_s::vaccels.

+ +

Referenced by arax_accel_set_physical(), and arax_vaccel_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_del_vaccel()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_accel_del_vaccel (arax_accel_saccel,
arax_vaccel_svaccel 
)
+
+

Delete (unregister) a virtual accell vaccel from physical accelerator accel.

+
Note
This call should be matched to calls of arax_accel_add_vaccel()
+
Parameters
+ + + +
accelA physical accelerator
vaccelA virtual accelerator to be unlinked from accel
+
+
+ +

Definition at line 156 of file arax_accel.c.

+ +

References arax_accel_inc_revision(), arax_assert, arax_assert_obj, ARAX_TYPE_PHYS_ACCEL, ARAX_TYPE_VIRT_ACCEL, arax_vaccel_queue_size(), async_condition_lock(), async_condition_notify(), async_condition_unlock(), arax_accel_s::lock, arax_vaccel_s::lock, arax_vaccel_s::phys, arax_accel_s::tasks, utils_list_del(), utils_spinlock_lock, utils_spinlock_unlock, arax_accel_s::vaccels, and arax_vaccel_s::vaccels.

+ +

Referenced by ARAX_OBJ_DTOR_DECL().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_get_assigned_vaccels()

+ +
+
+ + + + + + + + + + + + + + + + + + +
size_t arax_accel_get_assigned_vaccels (arax_accel_saccel,
arax_vaccel_s *** vaccel 
)
+
+

Return all arax_vaccel_s objects 'assigned' to accel.

+

The initial value of vaccel does not matter. The value of vaccel will be overwriten by a malloc call. After the call, the user is responsible for freeing vaccel using free().

+
Parameters
+ + +
vaccelPointer to unallocated array that will contain assigned arax_vaccel_sobjects.
+
+
+
Returns
Size of vaccel array, in number of objects/pointers.
+ +

Definition at line 143 of file arax_accel.c.

+ +

References async_condition_lock(), async_condition_unlock(), utils_list_s::length, arax_accel_s::lock, utils_list_to_array(), and arax_accel_s::vaccels.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_get_available_size()

+ +
+
+ + + + + + + + +
size_t arax_accel_get_available_size (arax_accelaccel)
+
+

Gets available size of GPU

+
Parameters
+ + +
accelA physical accelerator
+
+
+
Returns
Avaliable size of accelerator
+ +

Definition at line 67 of file arax_accel.c.

+ +

References arax_assert_obj, arax_throttle_get_available_size(), ARAX_TYPE_PHYS_ACCEL, and arax_accel_s::throttle.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_get_name()

+ +
+
+ + + + + + + + +
const char * arax_accel_get_name (arax_accel_saccel)
+
+

Get name.

+ +

Definition at line 83 of file arax_accel.c.

+ +

References arax_assert_obj, ARAX_TYPE_PHYS_ACCEL, arax_object_s::name, and arax_accel_s::obj.

+ +

Referenced by arax_pipe_find_accel().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_get_revision()

+ +
+
+ + + + + + + + +
size_t arax_accel_get_revision (arax_accel_saccel)
+
+

Get 'revision' of accelerator.

+
Parameters
+ + +
accelA physical accelerator
+
+
+
Returns
Revision
+ +

Definition at line 102 of file arax_accel.c.

+ +

References arax_assert_obj, ARAX_TYPE_PHYS_ACCEL, and arax_accel_s::revision.

+ +
+
+ +

◆ arax_accel_get_stat()

+ +
+
+ + + + + + + + + + + + + + + + + + +
arax_accel_state_e arax_accel_get_stat (arax_accel_saccel,
arax_accel_stats_sstat 
)
+
+

Get stats.

+
Parameters
+ + +
accelA physical accelerator
+
+
+ +

Definition at line 89 of file arax_accel.c.

+ +

References arax_assert_obj, ARAX_TYPE_PHYS_ACCEL, and arax_accel_s::state.

+ +

Referenced by arax_accel_stat(), and arax_vaccel_get_stat().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_get_total_size()

+ +
+
+ + + + + + + + +
size_t arax_accel_get_total_size (arax_accelaccel)
+
+

Gets available size of GPU

+
Parameters
+ + +
accelA physical accelerator
+
+
+
Returns
Total size of accelerator
+ +

Definition at line 75 of file arax_accel.c.

+ +

References arax_assert_obj, arax_throttle_get_total_size(), ARAX_TYPE_PHYS_ACCEL, and arax_accel_s::throttle.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_inc_revision()

+ +
+
+ + + + + + + + +
void arax_accel_inc_revision (arax_accel_saccel)
+
+

Increase 'revision' of accelerator.

+
Parameters
+ + +
accelA physical accelerator
+
+
+ +

Definition at line 96 of file arax_accel.c.

+ +

References arax_assert_obj, ARAX_TYPE_PHYS_ACCEL, and arax_accel_s::revision.

+ +

Referenced by arax_accel_add_vaccel(), and arax_accel_del_vaccel().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_init()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
arax_accel_s * arax_accel_init (arax_pipe_spipe,
const char * name,
arax_accel_type_e type,
size_t size,
size_t capacity 
)
+
+

Allocate and initialize a arax_accel descriptor with the provided arguments. @pipe A valid arax_pipe_s* instance. @pipe Name of new accelerator. @type Accelerator type/architecture. @size Available accelerator memory in bytes.

Returns
An initialized arax_accel instance on success, or NULL on failure.
+ +

Definition at line 5 of file arax_accel.c.

+ +

References accel_idle, arax_object_register(), arax_throttle_init(), ARAX_TYPE_PHYS_ACCEL, arax_vaccel_init(), arax_pipe::async, async_condition_init(), arax_accel_s::free_vaq, arax_accel_s::lock, arax_pipe::objs, arax_accel_s::revision, arax_accel_s::state, arax_accel_s::tasks, arax_accel_s::throttle, arax_accel_s::type, utils_list_init(), and arax_accel_s::vaccels.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_pending_tasks()

+ +
+
+ + + + + + + + +
size_t arax_accel_pending_tasks (arax_accel_saccel)
+
+

Return pending tasks for accel.

+ +

Definition at line 46 of file arax_accel.c.

+ +

References arax_accel_s::tasks.

+ +
+
+ +

◆ arax_accel_size_dec()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void ARAX_THROTTLE_DEBUG_ACCEL_FUNC() arax_accel_size_dec (arax_accelaccel,
size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS 
)
+
+

Decrements available size of gpu by sz

+
Parameters
+ + + +
accelA physical accelerator
szsize of removed data
+
+
+ +

Definition at line 59 of file arax_accel.c.

+ +

References arax_assert_obj, arax_throttle_size_dec(), ARAX_TYPE_PHYS_ACCEL, and arax_accel_s::throttle.

+ +

Referenced by arax_data_allocate_remote().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_size_inc()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void ARAX_THROTTLE_DEBUG_ACCEL_FUNC() arax_accel_size_inc (arax_accelaccel,
size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS 
)
+
+

Increments available size of accelerator by sz

+
Parameters
+ + + +
accelA physical accelerator
szSize of added data
+
+
+ +

Definition at line 51 of file arax_accel.c.

+ +

References arax_assert_obj, arax_throttle_size_inc(), ARAX_TYPE_PHYS_ACCEL, and arax_accel_s::throttle.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_wait_for_task()

+ +
+
+ + + + + + + + +
void arax_accel_wait_for_task (arax_accel_saccel)
+
+

Block until a task is added to any of the arax_vaccel_s assigned to accel.

+

This function reduces the number of pending tasks of this arax_accel_s (arax_accel_s::tasks).

+ +

Definition at line 26 of file arax_accel.c.

+ +

References async_condition_lock(), async_condition_unlock(), async_condition_wait(), arax_accel_s::lock, and arax_accel_s::tasks.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ ARAX_OBJ_DTOR_DECL()

+ +
+
+ + + + + + + + +
ARAX_OBJ_DTOR_DECL (arax_accel_s )
+
+ +

Definition at line 180 of file arax_accel.c.

+ +

References arax_accel_release(), arax_assert, arax_assert_obj, ARAX_TYPE_PHYS_ACCEL, async_condition_lock(), async_condition_unlock(), arax_accel_s::free_vaq, utils_list_s::length, arax_accel_s::lock, arax_object_s::name, arax_accel_s::obj, and arax_accel_s::vaccels.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01913.js b/a01913.js new file mode 100644 index 00000000..e61b6d76 --- /dev/null +++ b/a01913.js @@ -0,0 +1,19 @@ +var a01913 = +[ + [ "arax_accel_add_task", "a01913.html#ab6afd8cc035237c811ce6a1b7727acc3", null ], + [ "arax_accel_add_vaccel", "a01913.html#af0b933c02a24d69c1efa40179f60288f", null ], + [ "arax_accel_del_vaccel", "a01913.html#aa3f384ca4812e46dedce753be42654df", null ], + [ "arax_accel_get_assigned_vaccels", "a01913.html#aa164c99d44fec2d7296a76c8926eb585", null ], + [ "arax_accel_get_available_size", "a01913.html#a40082ae256676bd58f960128433237c1", null ], + [ "arax_accel_get_name", "a01913.html#a800ddc33d183998387064192c52d7ca5", null ], + [ "arax_accel_get_revision", "a01913.html#ae7bd1c4717b7a98611219be467eec092", null ], + [ "arax_accel_get_stat", "a01913.html#a73c0d51ef869f0cebc943169142626b6", null ], + [ "arax_accel_get_total_size", "a01913.html#a1c89dce1734d8093f7a443d71a5ebb94", null ], + [ "arax_accel_inc_revision", "a01913.html#aed864d2fab73a39a8c98356f7bca1304", null ], + [ "arax_accel_init", "a01913.html#a0706a66a62ca8710342ac1c097b703ed", null ], + [ "arax_accel_pending_tasks", "a01913.html#a213d2b8f851f79eb9216a34098da41b5", null ], + [ "arax_accel_size_dec", "a01913.html#a503b6bc6d5be49fd8715f62c7174c28e", null ], + [ "arax_accel_size_inc", "a01913.html#a9443355ad3d09b08427e538d75cab254", null ], + [ "arax_accel_wait_for_task", "a01913.html#a415e79d6e82e45f24bcd1742c146a0da", null ], + [ "ARAX_OBJ_DTOR_DECL", "a01913.html#a871ba8da471f464d7e10b13d5db07101", null ] +]; \ No newline at end of file diff --git a/a01913_a0706a66a62ca8710342ac1c097b703ed_cgraph.map b/a01913_a0706a66a62ca8710342ac1c097b703ed_cgraph.map new file mode 100644 index 00000000..12c2b9a5 --- /dev/null +++ b/a01913_a0706a66a62ca8710342ac1c097b703ed_cgraph.map @@ -0,0 +1,85 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01913_a0706a66a62ca8710342ac1c097b703ed_cgraph.md5 b/a01913_a0706a66a62ca8710342ac1c097b703ed_cgraph.md5 new file mode 100644 index 00000000..d796044f --- /dev/null +++ b/a01913_a0706a66a62ca8710342ac1c097b703ed_cgraph.md5 @@ -0,0 +1 @@ +4236a55798ecfc51d20a7a8d4de28499 \ No newline at end of file diff --git a/a01913_a0706a66a62ca8710342ac1c097b703ed_cgraph.svg b/a01913_a0706a66a62ca8710342ac1c097b703ed_cgraph.svg new file mode 100644 index 00000000..563c3c30 --- /dev/null +++ b/a01913_a0706a66a62ca8710342ac1c097b703ed_cgraph.svg @@ -0,0 +1,761 @@ + + + + + + +arax_accel_init + + +Node1 + + +arax_accel_init + + + + + +Node2 + + +arax_object_register + + + + + +Node1->Node2 + + + + + + + + +Node15 + + +arax_throttle_init + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +async_condition_init + + + + + +Node1->Node16 + + + + + + + + +Node21 + + +arax_vaccel_init + + + + + +Node1->Node21 + + + + + + + + +Node34 + + +utils_list_init + + + + + +Node1->Node34 + + + + + + + + +Node3 + + +arax_pipe_size_dec + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +arch_alloc_allocate + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +utils_list_add + + + + + +Node2->Node12 + + + + + + + + +Node14 + + +utils_list_node_init + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +arax_throttle_size_dec + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_condition_unlock + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +async_condition_wait + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_completion_complete + + + + + +Node7->Node8 + + + + + + + + +Node9->Node6 + + + + + + + + +Node9->Node8 + + + + + + + + +Node10 + + +async_semaphore_dec + + + + + +Node9->Node10 + + + + + + + + +Node13 + + +utils_list_node_add + + + + + +Node12->Node13 + + + + + + + + +Node15->Node16 + + + + + + + + +Node16->Node8 + + + + + + + + +Node17 + + +async_completion_init + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +async_condition_unlock + + + + + +Node16->Node18 + + + + + + + + +Node20 + + +async_semaphore_init + + + + + +Node16->Node20 + + + + + + + + +Node19 + + +async_completion_complete + + + + + +Node18->Node19 + + + + + + + + +Node21->Node2 + + + + + + + + +Node21->Node14 + + + + + + + + +Node22 + + +arax_accel_add_vaccel + + + + + +Node21->Node22 + + + + + + + + +Node32 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node21->Node32 + + + + + + + + +Node33 + + +utils_queue_init + + + + + +Node21->Node33 + + + + + + + + +Node22->Node5 + + + + + + + + +Node22->Node7 + + + + + + + + +Node22->Node12 + + + + + + + + +Node23 + + +arax_accel_inc_revision + + + + + +Node22->Node23 + + + + + + + + +Node24 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node22->Node24 + + + + + + + + +Node27 + + +arax_vaccel_queue_size + + + + + +Node22->Node27 + + + + + + + + +Node30 + + +async_condition_notify + + + + + +Node22->Node30 + + + + + + + + +Node24->Node5 + + + + + + + + +Node24->Node7 + + + + + + + + +Node25 + + +utils_list_del + + + + + +Node24->Node25 + + + + + + + + +Node26 + + +utils_list_node_linked + + + + + +Node24->Node26 + + + + + + + + +Node28 + + +arax_vaccel_queue + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +utils_queue_used_slots + + + + + +Node27->Node29 + + + + + + + + +Node31 + + +async_semaphore_inc + + + + + +Node30->Node31 + + + + + + + + +Node32->Node5 + + + + + + + + +Node32->Node7 + + + + + + + + +Node32->Node12 + + + + + + + + +Node32->Node30 + + + + + + + + +Node34->Node14 + + + + + + + + diff --git a/a01913_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.map b/a01913_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.map new file mode 100644 index 00000000..25384c17 --- /dev/null +++ b/a01913_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01913_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.md5 b/a01913_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.md5 new file mode 100644 index 00000000..1f254b8c --- /dev/null +++ b/a01913_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.md5 @@ -0,0 +1 @@ +cb67216becb922d13774495ca6d53c4b \ No newline at end of file diff --git a/a01913_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.svg b/a01913_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.svg new file mode 100644 index 00000000..59f09e71 --- /dev/null +++ b/a01913_a1c89dce1734d8093f7a443d71a5ebb94_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_accel_get_total_size + + +Node1 + + +arax_accel_get_total_size + + + + + +Node2 + + +arax_throttle_get_total_size + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01913_a40082ae256676bd58f960128433237c1_cgraph.map b/a01913_a40082ae256676bd58f960128433237c1_cgraph.map new file mode 100644 index 00000000..8a5a84f3 --- /dev/null +++ b/a01913_a40082ae256676bd58f960128433237c1_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01913_a40082ae256676bd58f960128433237c1_cgraph.md5 b/a01913_a40082ae256676bd58f960128433237c1_cgraph.md5 new file mode 100644 index 00000000..b7f5c71f --- /dev/null +++ b/a01913_a40082ae256676bd58f960128433237c1_cgraph.md5 @@ -0,0 +1 @@ +3d5a53b6bf48d1909c13e76c408f3fe6 \ No newline at end of file diff --git a/a01913_a40082ae256676bd58f960128433237c1_cgraph.svg b/a01913_a40082ae256676bd58f960128433237c1_cgraph.svg new file mode 100644 index 00000000..e5e96bc1 --- /dev/null +++ b/a01913_a40082ae256676bd58f960128433237c1_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_accel_get_available_size + + +Node1 + + +arax_accel_get_available_size + + + + + +Node2 + + +arax_throttle_get_available_size + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01913_a415e79d6e82e45f24bcd1742c146a0da_cgraph.map b/a01913_a415e79d6e82e45f24bcd1742c146a0da_cgraph.map new file mode 100644 index 00000000..b19551c8 --- /dev/null +++ b/a01913_a415e79d6e82e45f24bcd1742c146a0da_cgraph.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/a01913_a415e79d6e82e45f24bcd1742c146a0da_cgraph.md5 b/a01913_a415e79d6e82e45f24bcd1742c146a0da_cgraph.md5 new file mode 100644 index 00000000..62484a45 --- /dev/null +++ b/a01913_a415e79d6e82e45f24bcd1742c146a0da_cgraph.md5 @@ -0,0 +1 @@ +72dfa1bd6b5371ab74887be991aeefcf \ No newline at end of file diff --git a/a01913_a415e79d6e82e45f24bcd1742c146a0da_cgraph.svg b/a01913_a415e79d6e82e45f24bcd1742c146a0da_cgraph.svg new file mode 100644 index 00000000..7d3e88f9 --- /dev/null +++ b/a01913_a415e79d6e82e45f24bcd1742c146a0da_cgraph.svg @@ -0,0 +1,147 @@ + + + + + + +arax_accel_wait_for_task + + +Node1 + + +arax_accel_wait_for_task + + + + + +Node2 + + +async_condition_lock + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +async_condition_unlock + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +async_condition_wait + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +async_completion_wait + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_completion_complete + + + + + +Node4->Node5 + + + + + + + + +Node6->Node3 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +async_semaphore_dec + + + + + +Node6->Node7 + + + + + + + + diff --git a/a01913_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.map b/a01913_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.map new file mode 100644 index 00000000..66e09716 --- /dev/null +++ b/a01913_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/a01913_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.md5 b/a01913_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.md5 new file mode 100644 index 00000000..b1448627 --- /dev/null +++ b/a01913_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.md5 @@ -0,0 +1 @@ +01bd71686b7cf1db96ad9a5ec76b0c1b \ No newline at end of file diff --git a/a01913_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.svg b/a01913_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.svg new file mode 100644 index 00000000..2d40ea62 --- /dev/null +++ b/a01913_a503b6bc6d5be49fd8715f62c7174c28e_cgraph.svg @@ -0,0 +1,165 @@ + + + + + + +arax_accel_size_dec + + +Node1 + + +arax_accel_size_dec + + + + + +Node2 + + +arax_throttle_size_dec + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_condition_lock + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_condition_unlock + + + + + +Node2->Node5 + + + + + + + + +Node7 + + +async_condition_wait + + + + + +Node2->Node7 + + + + + + + + +Node4 + + +async_completion_wait + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +async_completion_complete + + + + + +Node5->Node6 + + + + + + + + +Node7->Node4 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +async_semaphore_dec + + + + + +Node7->Node8 + + + + + + + + diff --git a/a01913_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.map b/a01913_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.map new file mode 100644 index 00000000..b2c8d3ea --- /dev/null +++ b/a01913_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01913_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.md5 b/a01913_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.md5 new file mode 100644 index 00000000..fa80577e --- /dev/null +++ b/a01913_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.md5 @@ -0,0 +1 @@ +9eaf680f0d564dec7c4870eae4998c44 \ No newline at end of file diff --git a/a01913_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.svg b/a01913_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.svg new file mode 100644 index 00000000..10c5d745 --- /dev/null +++ b/a01913_a503b6bc6d5be49fd8715f62c7174c28e_icgraph.svg @@ -0,0 +1,40 @@ + + + + + + +arax_accel_size_dec + + +Node1 + + +arax_accel_size_dec + + + + + +Node2 + + +arax_data_allocate +_remote + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01913_a73c0d51ef869f0cebc943169142626b6_icgraph.map b/a01913_a73c0d51ef869f0cebc943169142626b6_icgraph.map new file mode 100644 index 00000000..2ddd2950 --- /dev/null +++ b/a01913_a73c0d51ef869f0cebc943169142626b6_icgraph.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/a01913_a73c0d51ef869f0cebc943169142626b6_icgraph.md5 b/a01913_a73c0d51ef869f0cebc943169142626b6_icgraph.md5 new file mode 100644 index 00000000..5da5da10 --- /dev/null +++ b/a01913_a73c0d51ef869f0cebc943169142626b6_icgraph.md5 @@ -0,0 +1 @@ +7cb1bdcdd6ceba965016536a403be355 \ No newline at end of file diff --git a/a01913_a73c0d51ef869f0cebc943169142626b6_icgraph.svg b/a01913_a73c0d51ef869f0cebc943169142626b6_icgraph.svg new file mode 100644 index 00000000..bec0af05 --- /dev/null +++ b/a01913_a73c0d51ef869f0cebc943169142626b6_icgraph.svg @@ -0,0 +1,66 @@ + + + + + + +arax_accel_get_stat + + +Node1 + + +arax_accel_get_stat + + + + + +Node2 + + +arax_accel_stat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_vaccel_get_stat + + + + + +Node1->Node3 + + + + + + + + +Node3->Node2 + + + + + + + + diff --git a/a01913_a800ddc33d183998387064192c52d7ca5_icgraph.map b/a01913_a800ddc33d183998387064192c52d7ca5_icgraph.map new file mode 100644 index 00000000..a8313b6a --- /dev/null +++ b/a01913_a800ddc33d183998387064192c52d7ca5_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01913_a800ddc33d183998387064192c52d7ca5_icgraph.md5 b/a01913_a800ddc33d183998387064192c52d7ca5_icgraph.md5 new file mode 100644 index 00000000..568698e1 --- /dev/null +++ b/a01913_a800ddc33d183998387064192c52d7ca5_icgraph.md5 @@ -0,0 +1 @@ +ca778358083193765ea260589b72afb0 \ No newline at end of file diff --git a/a01913_a800ddc33d183998387064192c52d7ca5_icgraph.svg b/a01913_a800ddc33d183998387064192c52d7ca5_icgraph.svg new file mode 100644 index 00000000..95562744 --- /dev/null +++ b/a01913_a800ddc33d183998387064192c52d7ca5_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_accel_get_name + + +Node1 + + +arax_accel_get_name + + + + + +Node2 + + +arax_pipe_find_accel + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01913_a871ba8da471f464d7e10b13d5db07101_cgraph.map b/a01913_a871ba8da471f464d7e10b13d5db07101_cgraph.map new file mode 100644 index 00000000..bb3498e5 --- /dev/null +++ b/a01913_a871ba8da471f464d7e10b13d5db07101_cgraph.map @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01913_a871ba8da471f464d7e10b13d5db07101_cgraph.md5 b/a01913_a871ba8da471f464d7e10b13d5db07101_cgraph.md5 new file mode 100644 index 00000000..a55f3b37 --- /dev/null +++ b/a01913_a871ba8da471f464d7e10b13d5db07101_cgraph.md5 @@ -0,0 +1 @@ +af9b76ff5ad3885a2cef45dcd0b65636 \ No newline at end of file diff --git a/a01913_a871ba8da471f464d7e10b13d5db07101_cgraph.svg b/a01913_a871ba8da471f464d7e10b13d5db07101_cgraph.svg new file mode 100644 index 00000000..5611c3f7 --- /dev/null +++ b/a01913_a871ba8da471f464d7e10b13d5db07101_cgraph.svg @@ -0,0 +1,237 @@ + + + + + + +ARAX_OBJ_DTOR_DECL + + +Node1 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2 + + +arax_accel_release + + + + + +Node1->Node2 + + + + + + + + +Node6 + + +async_condition_lock + + + + + +Node1->Node6 + + + + + + + + +Node10 + + +async_condition_unlock + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +arax_object_ref_dec + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_pipe_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node12 + + +utils_list_del + + + + + +Node3->Node12 + + + + + + + + +Node5 + + +arax_throttle_size_inc + + + + + +Node4->Node5 + + + + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_condition_notify + + + + + +Node5->Node8 + + + + + + + + +Node5->Node10 + + + + + + + + +Node7 + + +async_completion_wait + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_semaphore_inc + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +async_completion_complete + + + + + +Node10->Node11 + + + + + + + + diff --git a/a01913_a9443355ad3d09b08427e538d75cab254_cgraph.map b/a01913_a9443355ad3d09b08427e538d75cab254_cgraph.map new file mode 100644 index 00000000..410dc8fe --- /dev/null +++ b/a01913_a9443355ad3d09b08427e538d75cab254_cgraph.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/a01913_a9443355ad3d09b08427e538d75cab254_cgraph.md5 b/a01913_a9443355ad3d09b08427e538d75cab254_cgraph.md5 new file mode 100644 index 00000000..15eb5728 --- /dev/null +++ b/a01913_a9443355ad3d09b08427e538d75cab254_cgraph.md5 @@ -0,0 +1 @@ +852f3a77922860144b95c2b90d9530a2 \ No newline at end of file diff --git a/a01913_a9443355ad3d09b08427e538d75cab254_cgraph.svg b/a01913_a9443355ad3d09b08427e538d75cab254_cgraph.svg new file mode 100644 index 00000000..8ac053ef --- /dev/null +++ b/a01913_a9443355ad3d09b08427e538d75cab254_cgraph.svg @@ -0,0 +1,147 @@ + + + + + + +arax_accel_size_inc + + +Node1 + + +arax_accel_size_inc + + + + + +Node2 + + +arax_throttle_size_inc + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_condition_lock + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_condition_notify + + + + + +Node2->Node5 + + + + + + + + +Node7 + + +async_condition_unlock + + + + + +Node2->Node7 + + + + + + + + +Node4 + + +async_completion_wait + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +async_semaphore_inc + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_completion_complete + + + + + +Node7->Node8 + + + + + + + + diff --git a/a01913_aa164c99d44fec2d7296a76c8926eb585_cgraph.map b/a01913_aa164c99d44fec2d7296a76c8926eb585_cgraph.map new file mode 100644 index 00000000..309ef65f --- /dev/null +++ b/a01913_aa164c99d44fec2d7296a76c8926eb585_cgraph.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/a01913_aa164c99d44fec2d7296a76c8926eb585_cgraph.md5 b/a01913_aa164c99d44fec2d7296a76c8926eb585_cgraph.md5 new file mode 100644 index 00000000..487b57c6 --- /dev/null +++ b/a01913_aa164c99d44fec2d7296a76c8926eb585_cgraph.md5 @@ -0,0 +1 @@ +cd5cf629c09a284ad700051121597370 \ No newline at end of file diff --git a/a01913_aa164c99d44fec2d7296a76c8926eb585_cgraph.svg b/a01913_aa164c99d44fec2d7296a76c8926eb585_cgraph.svg new file mode 100644 index 00000000..3718c523 --- /dev/null +++ b/a01913_aa164c99d44fec2d7296a76c8926eb585_cgraph.svg @@ -0,0 +1,112 @@ + + + + + + +arax_accel_get_assigned_vaccels + + +Node1 + + +arax_accel_get_assigned +_vaccels + + + + + +Node2 + + +async_condition_lock + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +async_condition_unlock + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +utils_list_to_array + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +async_completion_wait + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_completion_complete + + + + + +Node4->Node5 + + + + + + + + diff --git a/a01913_aa3f384ca4812e46dedce753be42654df_cgraph.map b/a01913_aa3f384ca4812e46dedce753be42654df_cgraph.map new file mode 100644 index 00000000..8b1bf80e --- /dev/null +++ b/a01913_aa3f384ca4812e46dedce753be42654df_cgraph.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01913_aa3f384ca4812e46dedce753be42654df_cgraph.md5 b/a01913_aa3f384ca4812e46dedce753be42654df_cgraph.md5 new file mode 100644 index 00000000..1108bf46 --- /dev/null +++ b/a01913_aa3f384ca4812e46dedce753be42654df_cgraph.md5 @@ -0,0 +1 @@ +4bba2fd0b9eed89ea5944e25f0659b7f \ No newline at end of file diff --git a/a01913_aa3f384ca4812e46dedce753be42654df_cgraph.svg b/a01913_aa3f384ca4812e46dedce753be42654df_cgraph.svg new file mode 100644 index 00000000..9fc68cec --- /dev/null +++ b/a01913_aa3f384ca4812e46dedce753be42654df_cgraph.svg @@ -0,0 +1,219 @@ + + + + + + +arax_accel_del_vaccel + + +Node1 + + +arax_accel_del_vaccel + + + + + +Node2 + + +arax_accel_inc_revision + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_vaccel_queue_size + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +async_condition_lock + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +async_condition_notify + + + + + +Node1->Node8 + + + + + + + + +Node10 + + +async_condition_unlock + + + + + +Node1->Node10 + + + + + + + + +Node12 + + +utils_list_del + + + + + +Node1->Node12 + + + + + + + + +Node4 + + +arax_vaccel_queue + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +utils_queue_used_slots + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +async_completion_wait + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_semaphore_inc + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +async_completion_complete + + + + + +Node10->Node11 + + + + + + + + diff --git a/a01913_aa3f384ca4812e46dedce753be42654df_icgraph.map b/a01913_aa3f384ca4812e46dedce753be42654df_icgraph.map new file mode 100644 index 00000000..6a536201 --- /dev/null +++ b/a01913_aa3f384ca4812e46dedce753be42654df_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01913_aa3f384ca4812e46dedce753be42654df_icgraph.md5 b/a01913_aa3f384ca4812e46dedce753be42654df_icgraph.md5 new file mode 100644 index 00000000..ddfda3e7 --- /dev/null +++ b/a01913_aa3f384ca4812e46dedce753be42654df_icgraph.md5 @@ -0,0 +1 @@ +e299000e4143118a99eaf1eb659fcd53 \ No newline at end of file diff --git a/a01913_aa3f384ca4812e46dedce753be42654df_icgraph.svg b/a01913_aa3f384ca4812e46dedce753be42654df_icgraph.svg new file mode 100644 index 00000000..f2180aa3 --- /dev/null +++ b/a01913_aa3f384ca4812e46dedce753be42654df_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_accel_del_vaccel + + +Node1 + + +arax_accel_del_vaccel + + + + + +Node2 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01913_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.map b/a01913_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.map new file mode 100644 index 00000000..6dc4b9af --- /dev/null +++ b/a01913_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/a01913_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.md5 b/a01913_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.md5 new file mode 100644 index 00000000..49914a55 --- /dev/null +++ b/a01913_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.md5 @@ -0,0 +1 @@ +983fb83d1d493823fffe0a57c94d48e1 \ No newline at end of file diff --git a/a01913_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.svg b/a01913_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.svg new file mode 100644 index 00000000..afcf27f0 --- /dev/null +++ b/a01913_ab6afd8cc035237c811ce6a1b7727acc3_cgraph.svg @@ -0,0 +1,129 @@ + + + + + + +arax_accel_add_task + + +Node1 + + +arax_accel_add_task + + + + + +Node2 + + +async_condition_lock + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +async_condition_notify + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +async_condition_unlock + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +async_completion_wait + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_semaphore_inc + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_completion_complete + + + + + +Node6->Node7 + + + + + + + + diff --git a/a01913_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.map b/a01913_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.map new file mode 100644 index 00000000..d1a4c0f3 --- /dev/null +++ b/a01913_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01913_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.md5 b/a01913_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.md5 new file mode 100644 index 00000000..35d010ab --- /dev/null +++ b/a01913_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.md5 @@ -0,0 +1 @@ +375b1e2bd414d28c6a507e0eee55f395 \ No newline at end of file diff --git a/a01913_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.svg b/a01913_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.svg new file mode 100644 index 00000000..3e94b375 --- /dev/null +++ b/a01913_ab6afd8cc035237c811ce6a1b7727acc3_icgraph.svg @@ -0,0 +1,193 @@ + + + + + + +arax_accel_add_task + + +Node1 + + +arax_accel_add_task + + + + + +Node2 + + +arax_vaccel_add_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_task_submit + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_task_issue + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data_allocate +_remote + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_data_get + + + + + +Node4->Node6 + + + + + + + + +Node8 + + +arax_data_set + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +arax_task_issue_sync + + + + + +Node4->Node10 + + + + + + + + +Node7 + + +arax_data_memcpy + + + + + +Node6->Node7 + + + + + + + + +Node8->Node7 + + + + + + + + diff --git a/a01913_aed864d2fab73a39a8c98356f7bca1304_icgraph.map b/a01913_aed864d2fab73a39a8c98356f7bca1304_icgraph.map new file mode 100644 index 00000000..25a91400 --- /dev/null +++ b/a01913_aed864d2fab73a39a8c98356f7bca1304_icgraph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/a01913_aed864d2fab73a39a8c98356f7bca1304_icgraph.md5 b/a01913_aed864d2fab73a39a8c98356f7bca1304_icgraph.md5 new file mode 100644 index 00000000..f765c0d8 --- /dev/null +++ b/a01913_aed864d2fab73a39a8c98356f7bca1304_icgraph.md5 @@ -0,0 +1 @@ +1ee1acb1ca89ff1f045abfc96686dc8a \ No newline at end of file diff --git a/a01913_aed864d2fab73a39a8c98356f7bca1304_icgraph.svg b/a01913_aed864d2fab73a39a8c98356f7bca1304_icgraph.svg new file mode 100644 index 00000000..28aaa125 --- /dev/null +++ b/a01913_aed864d2fab73a39a8c98356f7bca1304_icgraph.svg @@ -0,0 +1,165 @@ + + + + + + +arax_accel_inc_revision + + +Node1 + + +arax_accel_inc_revision + + + + + +Node2 + + +arax_accel_add_vaccel + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +arax_accel_del_vaccel + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +arax_accel_set_physical + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_vaccel_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_accel_acquire_phys + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_accel_acquire_type + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_accel_init + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01913_af0b933c02a24d69c1efa40179f60288f_cgraph.map b/a01913_af0b933c02a24d69c1efa40179f60288f_cgraph.map new file mode 100644 index 00000000..4489e701 --- /dev/null +++ b/a01913_af0b933c02a24d69c1efa40179f60288f_cgraph.map @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01913_af0b933c02a24d69c1efa40179f60288f_cgraph.md5 b/a01913_af0b933c02a24d69c1efa40179f60288f_cgraph.md5 new file mode 100644 index 00000000..c6cc8865 --- /dev/null +++ b/a01913_af0b933c02a24d69c1efa40179f60288f_cgraph.md5 @@ -0,0 +1 @@ +574963a77945763d672509daa5dc7c24 \ No newline at end of file diff --git a/a01913_af0b933c02a24d69c1efa40179f60288f_cgraph.svg b/a01913_af0b933c02a24d69c1efa40179f60288f_cgraph.svg new file mode 100644 index 00000000..3eac4759 --- /dev/null +++ b/a01913_af0b933c02a24d69c1efa40179f60288f_cgraph.svg @@ -0,0 +1,310 @@ + + + + + + +arax_accel_add_vaccel + + +Node1 + + +arax_accel_add_vaccel + + + + + +Node2 + + +arax_accel_inc_revision + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +async_condition_lock + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +async_condition_unlock + + + + + +Node1->Node6 + + + + + + + + +Node10 + + +arax_vaccel_queue_size + + + + + +Node1->Node10 + + + + + + + + +Node13 + + +async_condition_notify + + + + + +Node1->Node13 + + + + + + + + +Node15 + + +utils_list_add + + + + + +Node1->Node15 + + + + + + + + +Node3->Node4 + + + + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +utils_list_del + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +utils_list_node_linked + + + + + +Node3->Node9 + + + + + + + + +Node5 + + +async_completion_wait + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_completion_complete + + + + + +Node6->Node7 + + + + + + + + +Node11 + + +arax_vaccel_queue + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +utils_queue_used_slots + + + + + +Node10->Node12 + + + + + + + + +Node14 + + +async_semaphore_inc + + + + + +Node13->Node14 + + + + + + + + +Node16 + + +utils_list_node_add + + + + + +Node15->Node16 + + + + + + + + diff --git a/a01913_af0b933c02a24d69c1efa40179f60288f_icgraph.map b/a01913_af0b933c02a24d69c1efa40179f60288f_icgraph.map new file mode 100644 index 00000000..4af22b58 --- /dev/null +++ b/a01913_af0b933c02a24d69c1efa40179f60288f_icgraph.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/a01913_af0b933c02a24d69c1efa40179f60288f_icgraph.md5 b/a01913_af0b933c02a24d69c1efa40179f60288f_icgraph.md5 new file mode 100644 index 00000000..9831e84a --- /dev/null +++ b/a01913_af0b933c02a24d69c1efa40179f60288f_icgraph.md5 @@ -0,0 +1 @@ +e445c4c04a1062652c16bdf1243f542f \ No newline at end of file diff --git a/a01913_af0b933c02a24d69c1efa40179f60288f_icgraph.svg b/a01913_af0b933c02a24d69c1efa40179f60288f_icgraph.svg new file mode 100644 index 00000000..7c3d942e --- /dev/null +++ b/a01913_af0b933c02a24d69c1efa40179f60288f_icgraph.svg @@ -0,0 +1,111 @@ + + + + + + +arax_accel_add_vaccel + + +Node1 + + +arax_accel_add_vaccel + + + + + +Node2 + + +arax_accel_set_physical + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_vaccel_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_accel_acquire_phys + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_accel_acquire_type + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_accel_init + + + + + +Node3->Node6 + + + + + + + + diff --git a/a01913_source.html b/a01913_source.html new file mode 100644 index 00000000..05bedeac --- /dev/null +++ b/a01913_source.html @@ -0,0 +1,373 @@ + + + + + + + +Arax: arax_accel.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_accel.c
+
+
+Go to the documentation of this file.
1#include "arax_pipe.h"
+
2#include <string.h>
+
3#include <stdlib.h>
+
4
+
5arax_accel_s* arax_accel_init(arax_pipe_s *pipe, const char *name,
+
6 arax_accel_type_e type, size_t size, size_t capacity)
+
7{
+ + +
10 name, sizeof(arax_accel_s), 1);
+
11
+
12 if (!obj) // GCOV_EXCL_LINE
+
13 return obj; // GCOV_EXCL_LINE
+
14
+
15 async_condition_init(&(pipe->async), &(obj->lock));
+
16 obj->tasks = 0;
+
17 utils_list_init(&(obj->vaccels));
+
18 obj->type = type;
+
19 obj->state = accel_idle;
+
20 obj->revision = 0;
+
21 arax_throttle_init(&(pipe->async), &(obj->throttle), size, capacity);
+
22 obj->free_vaq = arax_vaccel_init(pipe, name, type, obj);
+
23 return obj;
+
24}
+
25
+ +
27{
+
28 async_condition_lock(&(accel->lock));
+
29
+
30 while (accel->tasks == 0)
+
31 async_condition_wait(&(accel->lock));
+
32
+
33 accel->tasks--;
+
34
+ +
36}
+
37
+ +
39{
+
40 async_condition_lock(&(accel->lock));
+
41 accel->tasks++;
+ + +
44}
+
45
+ +
47{
+
48 return accel->tasks;
+
49}
+
50
+ + + +
54 arax_accel_s *phys = accel;
+
55
+
56 arax_throttle_size_inc(&(phys->throttle), sz);
+
57}
+
58
+ + + +
62 arax_accel_s *phys = accel;
+
63
+
64 arax_throttle_size_dec(&(phys->throttle), sz);
+
65}
+
66
+ +
68{
+ +
70 arax_accel_s *phys = accel;
+
71
+ +
73}
+
74
+ +
76{
+ +
78 arax_accel_s *phys = accel;
+
79
+ +
81}
+
82
+ +
84{
+ +
86 return accel->obj.name;
+
87}
+
88
+ +
90{
+ +
92 /* TODO: IMPLEMENT stat memcpy */
+
93 return accel->state;
+
94}
+
95
+ +
97{
+ +
99 __sync_fetch_and_add(&(accel->revision), 1);
+
100}
+
101
+ +
103{
+ +
105 return accel->revision;
+
106}
+
107
+ +
109{
+ + +
112
+
113 if ( (vaccel->phys) == accel)
+
114 return;
+
115
+
116 arax_assert(vaccel->phys == 0);
+
117
+ +
119
+
120 utils_spinlock_lock(&(vaccel->lock));
+
121
+
122 if ( (vaccel->phys) != accel) {
+
123 async_condition_lock(&(accel->lock));
+
124
+
125 utils_list_add(&(accel->vaccels), &(vaccel->vaccels));
+
126
+
127 int tasks = arax_vaccel_queue_size(vaccel);
+
128
+
129 if (tasks) {
+
130 accel->tasks += tasks;
+
131 async_condition_notify(&(accel->lock));
+
132 }
+
133
+
134 vaccel->phys = accel;
+
135
+
136 async_condition_unlock(&(accel->lock));
+ +
138 }
+
139
+
140 utils_spinlock_unlock(&(vaccel->lock));
+
141} /* arax_accel_add_vaccel */
+
142
+ +
144{
+
145 size_t count = 0;
+
146
+
147 async_condition_lock(&(accel->lock));
+
148 count = accel->vaccels.length;
+
149 *vaccel = malloc(sizeof(arax_vaccel_s *) * count);
+
150 utils_list_to_array(&(accel->vaccels), (void **) *vaccel);
+
151 async_condition_unlock(&(accel->lock));
+
152
+
153 return count;
+
154}
+
155
+ +
157{
+ + + +
161 arax_assert(vaccel->phys == accel);
+
162
+
163 utils_spinlock_lock(&(vaccel->lock));
+
164 async_condition_lock(&(accel->lock));
+
165
+
166 int tasks = arax_vaccel_queue_size(vaccel);
+
167
+
168 if (tasks) {
+
169 accel->tasks -= (tasks - 1);
+
170 async_condition_notify(&(accel->lock));
+
171 }
+
172 utils_list_del(&(accel->vaccels), &(vaccel->vaccels));
+
173 vaccel->phys = 0;
+
174
+
175 async_condition_unlock(&(accel->lock));
+ +
177 utils_spinlock_unlock(&(vaccel->lock));
+
178}
+
179
+ +
181{
+ +
183 arax_accel_s *accel = (arax_accel_s *) obj;
+
184
+
185 async_condition_lock(&(accel->lock));
+
186 if (accel->vaccels.length) {
+
187 fprintf(stderr, "Erasing physical accelerator %s "
+
188 "with %lu attached virtual accelerators!\n",
+
189 accel->obj.name, accel->vaccels.length);
+
190 arax_assert("Erasing physical accelerator with dangling virtual accels");
+
191 }
+
192 async_condition_unlock(&(accel->lock));
+
193 arax_accel_release((arax_accel **) (&accel->free_vaq));
+
194}
+ +
enum arax_accel_state arax_accel_state_e
+
void arax_accel
Definition arax_types.h:9
+
enum arax_accel_type arax_accel_type_e
+
@ accel_idle
Definition arax_types.h:44
+
#define arax_assert(EXPR)
Definition arax_assert.h:7
+
#define arax_assert_obj(OBJ, TYPE)
Definition arax_assert.h:12
+
#define ARAX_THROTTLE_DEBUG_ACCEL_PARAMS
Definition arax_accel.h:96
+
#define ARAX_THROTTLE_DEBUG_ACCEL_FUNC(FUNC)
Definition arax_accel.h:97
+
@ ARAX_TYPE_VIRT_ACCEL
Definition arax_object.h:17
+
@ ARAX_TYPE_PHYS_ACCEL
Definition arax_object.h:16
+
#define ARAX_OBJ_DTOR_DECL(TYPE)
+
void async_condition_wait(async_condition_s *cond)
+
void async_condition_unlock(async_condition_s *cond)
+
void async_condition_notify(async_condition_s *cond)
+
void async_condition_init(async_meta_s *meta, async_condition_s *cond)
+
void async_condition_lock(async_condition_s *cond)
+
arax_accel_s * arax_accel_init(arax_pipe_s *pipe, const char *name, arax_accel_type_e type, size_t size, size_t capacity)
Definition arax_accel.c:5
+
size_t arax_accel_get_total_size(arax_accel *accel)
Definition arax_accel.c:75
+
size_t arax_accel_pending_tasks(arax_accel_s *accel)
Definition arax_accel.c:46
+
size_t arax_accel_get_available_size(arax_accel *accel)
Definition arax_accel.c:67
+
void arax_accel_wait_for_task(arax_accel_s *accel)
Definition arax_accel.c:26
+
void ARAX_THROTTLE_DEBUG_ACCEL_FUNC() arax_accel_size_dec(arax_accel *accel, size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS)
Definition arax_accel.c:59
+
arax_accel_state_e arax_accel_get_stat(arax_accel_s *accel, arax_accel_stats_s *stat)
Definition arax_accel.c:89
+
const char * arax_accel_get_name(arax_accel_s *accel)
Definition arax_accel.c:83
+
void ARAX_THROTTLE_DEBUG_ACCEL_FUNC() arax_accel_size_inc(arax_accel *accel, size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS)
Definition arax_accel.c:51
+
size_t arax_accel_get_assigned_vaccels(arax_accel_s *accel, arax_vaccel_s ***vaccel)
Definition arax_accel.c:143
+
void arax_accel_del_vaccel(arax_accel_s *accel, arax_vaccel_s *vaccel)
Definition arax_accel.c:156
+
void arax_accel_add_task(arax_accel_s *accel)
Definition arax_accel.c:38
+
size_t arax_accel_get_revision(arax_accel_s *accel)
Definition arax_accel.c:102
+
void arax_accel_inc_revision(arax_accel_s *accel)
Definition arax_accel.c:96
+
void arax_accel_add_vaccel(arax_accel_s *accel, arax_vaccel_s *vaccel)
Definition arax_accel.c:108
+
arax_object_s * arax_object_register(arax_object_repo_s *repo, arax_object_type_e type, const char *name, size_t size, const int ref_count)
Definition arax_object.c:98
+
void arax_pipe_remove_orphan_vaccel(arax_pipe_s *pipe, arax_vaccel_s *vac)
Definition arax_pipe.c:100
+
size_t arax_throttle_get_available_size(arax_throttle_s *thr)
+
void ARAX_THROTTLE_DEBUG_FUNC() arax_throttle_size_inc(arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS)
+
void ARAX_THROTTLE_DEBUG_FUNC() arax_throttle_size_dec(arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS)
+
void arax_throttle_init(async_meta_s *meta, arax_throttle_s *thr, size_t a_sz, size_t t_sz)
+
size_t arax_throttle_get_total_size(arax_throttle_s *thr)
+
arax_vaccel_s * arax_vaccel_init(arax_pipe_s *pipe, const char *name, arax_accel_type_e type, arax_accel_s *accel)
Definition arax_vaccel.c:3
+
unsigned int arax_vaccel_queue_size(arax_vaccel_s *vaccel)
+
utils_list_node_s * utils_list_del(utils_list_s *list, utils_list_node_s *node)
Definition list.c:26
+
utils_list_s * utils_list_init(void *mem)
Definition list.c:3
+
void utils_list_add(utils_list_s *list, utils_list_node_s *node)
Definition list.c:20
+
size_t utils_list_to_array(utils_list_s *list, void **array)
Definition list.c:58
+
#define utils_spinlock_lock(V)
Definition queue.c:35
+
#define utils_spinlock_unlock(V)
Definition queue.c:36
+
void arax_accel_release(arax_accel **accel)
Definition impl.c:366
+ +
size_t tasks
Definition arax_accel.h:21
+
arax_throttle_s throttle
Definition arax_accel.h:23
+
utils_list_s vaccels
Definition arax_accel.h:20
+
async_condition_s lock
Definition arax_accel.h:19
+
arax_object_s obj
Definition arax_accel.h:16
+
arax_accel_state_e state
Definition arax_accel.h:18
+
arax_accel_type_e type
Definition arax_accel.h:17
+
arax_vaccel_s * free_vaq
Definition arax_accel.h:25
+
size_t revision
Definition arax_accel.h:22
+
arax_pipe_s * pipe
Definition arax_object.h:29
+ +
arax_object_repo_s * repo
Definition arax_object.h:42
+ +
utils_spinlock lock
Definition arax_vaccel.h:34
+
arax_object_s obj
Definition arax_vaccel.h:31
+
arax_accel_s * phys
Definition arax_vaccel.h:38
+
utils_list_node_s vaccels
Definition arax_vaccel.h:35
+
size_t length
Definition list.h:19
+ +
async_meta_s async
Definition arax_pipe.h:34
+
arax_object_repo_s objs
Definition arax_pipe.h:33
+ +
+
+ + + + diff --git a/a01914.map b/a01914.map new file mode 100644 index 00000000..62865f0b --- /dev/null +++ b/a01914.map @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01914.md5 b/a01914.md5 new file mode 100644 index 00000000..d504bb92 --- /dev/null +++ b/a01914.md5 @@ -0,0 +1 @@ +e58eb90a31d62add2734996af47b14bd \ No newline at end of file diff --git a/a01914.svg b/a01914.svg new file mode 100644 index 00000000..528c5576 --- /dev/null +++ b/a01914.svg @@ -0,0 +1,642 @@ + + + + + + +arax_accel.c + + +Node1 + + +arax_accel.c + + + + + +Node2 + + +arax_pipe.h + + + + + +Node1->Node2 + + + + + + + + +Node26 + + +string.h + + + + + +Node1->Node26 + + + + + + + + +Node27 + + +stdlib.h + + + + + +Node1->Node27 + + + + + + + + +Node3 + + +arax.h + + + + + +Node2->Node3 + + + + + + + + +Node10 + + +utils/Kv.h + + + + + +Node2->Node10 + + + + + + + + +Node16 + + +utils/queue.h + + + + + +Node2->Node16 + + + + + + + + +Node17 + + +core/arax_accel.h + + + + + +Node2->Node17 + + + + + + + + +Node24 + + +core/arax_task.h + + + + + +Node2->Node24 + + + + + + + + +Node4 + + +stdio.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +stddef.h + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_types.h + + + + + +Node3->Node6 + + + + + + + + +Node9 + + +core/arax_accel_types.h + + + + + +Node3->Node9 + + + + + + + + +Node7 + + +sys/time.h + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +time.h + + + + + +Node6->Node8 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10->Node5 + + + + + + + + +Node11 + + +conf.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +spinlock.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +stdint.h + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +utils/arax_assert.h + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +compat.h + + + + + +Node14->Node15 + + + + + + + + +Node16->Node5 + + + + + + + + +Node16->Node11 + + + + + + + + +Node16->Node12 + + + + + + + + +Node16->Node13 + + + + + + + + +Node17->Node3 + + + + + + + + +Node18 + + +async.h + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +core/arax_vaccel.h + + + + + +Node17->Node19 + + + + + + + + +Node23 + + +core/arax_throttle.h + + + + + +Node17->Node23 + + + + + + + + +Node19->Node16 + + + + + + + + +Node19->Node17 + + + + + + + + +Node19->Node18 + + + + + + + + +Node20 + + +core/arax_object.h + + + + + +Node19->Node20 + + + + + + + + +Node20->Node12 + + + + + + + + +Node21 + + +utils/list.h + + + + + +Node20->Node21 + + + + + + + + +Node22 + + +arch/alloc.h + + + + + +Node20->Node22 + + + + + + + + +Node21->Node5 + + + + + + + + +Node21->Node13 + + + + + + + + +Node23->Node18 + + + + + + + + +Node24->Node18 + + + + + + + + +Node25 + + +core/arax_proc.h + + + + + +Node24->Node25 + + + + + + + + +Node25->Node3 + + + + + + + + +Node25->Node20 + + + + + + + + diff --git a/a01916.html b/a01916.html new file mode 100644 index 00000000..c654bc22 --- /dev/null +++ b/a01916.html @@ -0,0 +1,278 @@ + + + + + + + +Arax: arax_accel_types.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_accel_types.c File Reference
+
+
+
#include "arax_types.h"
+#include <strings.h>
+
+ + Include dependency graph for arax_accel_types.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  arax_accel_type_map
 
+ + + + + + + +

+Functions

int arax_accel_valid_type (arax_accel_type_e type)
 
const char * arax_accel_type_to_str (arax_accel_type_e type)
 
arax_accel_type_e arax_accel_type_from_str (const char *type)
 
+ + + +

+Variables

struct arax_accel_type_map types_map [ARAX_ACCEL_TYPES]
 
+

Function Documentation

+ +

◆ arax_accel_type_from_str()

+ +
+
+ + + + + + + + +
arax_accel_type_e arax_accel_type_from_str (const char * type)
+
+

Convert a string to the matching arax_accel_type_e value. type will be compared ignoring capitalization with the string in types_map variable in arax_accel_types.c.

+

NOTE: This function should not be used in critical paths!

+
Returns
A value from arax_accel_type_e, if no match is found returns ARAX_ACCEL_TYPES
+ +

Definition at line 35 of file arax_accel_types.c.

+ +

References ANY, ARAX_ACCEL_TYPES, arax_accel_type_map::str, arax_accel_type_map::type, and types_map.

+ +
+
+ +

◆ arax_accel_type_to_str()

+ +
+
+ + + + + + + + +
const char * arax_accel_type_to_str (arax_accel_type_e type)
+
+

Convert a arax_accel_type_e value to a human readable string. If type not a valid arax_accel_type_e value NULL is returned. NOTE: This function should not be used in critical paths!

+
Returns
A character representation for the given type,NULL on error.
+ +

Definition at line 27 of file arax_accel_types.c.

+ +

References arax_accel_valid_type(), arax_accel_type_map::str, arax_accel_type_map::type, and types_map.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_valid_type()

+ +
+
+ + + + + + + + +
int arax_accel_valid_type (arax_accel_type_e type)
+
+

Test type, to ensure it is a valid arax_accel_type_e value.

+
Parameters
+ + +
typeValue to be checked.
+
+
+
Returns
1 if type is a valid arax_accel_type_e value, 0 otherwise.
+ +

Definition at line 22 of file arax_accel_types.c.

+ +

References ARAX_ACCEL_TYPES, and arax_accel_type_map::type.

+ +

Referenced by arax_accel_type_to_str(), arax_proc_can_run_at(), and arax_proc_get_functor().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+

Variable Documentation

+ +

◆ types_map

+ +
+
+ + + + +
struct arax_accel_type_map types_map[ARAX_ACCEL_TYPES]
+
+Initial value:
= {
+
{ "any", ANY },
+
{ "gpu", GPU },
+
{ "gpu_soft", GPU_SOFT },
+
{ "cpu", CPU },
+
{ "sda", SDA },
+
{ "nano_arm", NANO_ARM },
+
{ "nano_core", NANO_CORE },
+
{ "Open_CL", OPEN_CL },
+
{ "HIP", HIP }
+
}
+
@ CPU
Definition arax_types.h:87
+
@ GPU_SOFT
Definition arax_types.h:86
+
@ OPEN_CL
Definition arax_types.h:91
+
@ HIP
Definition arax_types.h:92
+
@ NANO_ARM
Definition arax_types.h:89
+
@ GPU
Definition arax_types.h:85
+
@ ANY
Definition arax_types.h:84
+
@ NANO_CORE
Definition arax_types.h:90
+
@ SDA
Definition arax_types.h:88
+
+

Definition at line 10 of file arax_accel_types.c.

+ +

Referenced by arax_accel_type_from_str(), and arax_accel_type_to_str().

+ +
+
+
+
+ + + + diff --git a/a01916.js b/a01916.js new file mode 100644 index 00000000..df870760 --- /dev/null +++ b/a01916.js @@ -0,0 +1,8 @@ +var a01916 = +[ + [ "arax_accel_type_map", "a02250.html", "a02250" ], + [ "arax_accel_type_from_str", "a01916.html#ac8636df4c6e6f00739caad9910698f3c", null ], + [ "arax_accel_type_to_str", "a01916.html#aadc678cace81fa112fa6baad1c190539", null ], + [ "arax_accel_valid_type", "a01916.html#a18229452e0f07cdd4b0b06fbdc2a5d61", null ], + [ "types_map", "a01916.html#a8ed114b6acd463d017e6e0502b5107f2", null ] +]; \ No newline at end of file diff --git a/a01916_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.map b/a01916_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.map new file mode 100644 index 00000000..51c8c9f7 --- /dev/null +++ b/a01916_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/a01916_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.md5 b/a01916_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.md5 new file mode 100644 index 00000000..8b8d4e61 --- /dev/null +++ b/a01916_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.md5 @@ -0,0 +1 @@ +efc1b354885b71c142d02d4b46c8bf76 \ No newline at end of file diff --git a/a01916_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.svg b/a01916_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.svg new file mode 100644 index 00000000..ddd4fe7f --- /dev/null +++ b/a01916_a18229452e0f07cdd4b0b06fbdc2a5d61_icgraph.svg @@ -0,0 +1,93 @@ + + + + + + +arax_accel_valid_type + + +Node1 + + +arax_accel_valid_type + + + + + +Node2 + + +arax_accel_type_to_str + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_proc_can_run_at + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_proc_get_functor + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +arax_proc_set_functor + + + + + +Node4->Node5 + + + + + + + + diff --git a/a01916_aadc678cace81fa112fa6baad1c190539_cgraph.map b/a01916_aadc678cace81fa112fa6baad1c190539_cgraph.map new file mode 100644 index 00000000..801ff6ac --- /dev/null +++ b/a01916_aadc678cace81fa112fa6baad1c190539_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01916_aadc678cace81fa112fa6baad1c190539_cgraph.md5 b/a01916_aadc678cace81fa112fa6baad1c190539_cgraph.md5 new file mode 100644 index 00000000..112871d2 --- /dev/null +++ b/a01916_aadc678cace81fa112fa6baad1c190539_cgraph.md5 @@ -0,0 +1 @@ +ef47c85140db192acae745a68a59baff \ No newline at end of file diff --git a/a01916_aadc678cace81fa112fa6baad1c190539_cgraph.svg b/a01916_aadc678cace81fa112fa6baad1c190539_cgraph.svg new file mode 100644 index 00000000..e9a61ff6 --- /dev/null +++ b/a01916_aadc678cace81fa112fa6baad1c190539_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_accel_type_to_str + + +Node1 + + +arax_accel_type_to_str + + + + + +Node2 + + +arax_accel_valid_type + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01916_source.html b/a01916_source.html new file mode 100644 index 00000000..8eeda023 --- /dev/null +++ b/a01916_source.html @@ -0,0 +1,176 @@ + + + + + + + +Arax: arax_accel_types.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_accel_types.c
+
+
+Go to the documentation of this file.
1#include "arax_types.h"
+
2#include <strings.h>
+
3
+ +
5{
+
6 const char * str;
+ +
8};
+
9
+ +
11 { "any", ANY },
+
12 { "gpu", GPU },
+
13 { "gpu_soft", GPU_SOFT },
+
14 { "cpu", CPU },
+
15 { "sda", SDA },
+
16 { "nano_arm", NANO_ARM },
+
17 { "nano_core", NANO_CORE },
+
18 { "Open_CL", OPEN_CL },
+
19 { "HIP", HIP }
+
20};
+
21
+ +
23{
+
24 return type < ARAX_ACCEL_TYPES;
+
25}
+
26
+ +
28{
+ +
30 return types_map[type].str;
+
31
+
32 return 0;
+
33}
+
34
+ +
36{
+ +
38
+
39 if (!type)
+
40 return ARAX_ACCEL_TYPES;
+
41
+
42 for (cnt = ANY; cnt < ARAX_ACCEL_TYPES; cnt++) {
+
43 if (!types_map[cnt].str)
+
44 continue;
+
45 if (!strcasecmp(type, types_map[cnt].str))
+
46 break;
+
47 }
+
48 return cnt;
+
49}
+ +
enum arax_accel_type arax_accel_type_e
+
@ CPU
Definition arax_types.h:87
+
@ GPU_SOFT
Definition arax_types.h:86
+
@ OPEN_CL
Definition arax_types.h:91
+
@ HIP
Definition arax_types.h:92
+
@ ARAX_ACCEL_TYPES
Definition arax_types.h:93
+
@ NANO_ARM
Definition arax_types.h:89
+
@ GPU
Definition arax_types.h:85
+
@ ANY
Definition arax_types.h:84
+
@ NANO_CORE
Definition arax_types.h:90
+
@ SDA
Definition arax_types.h:88
+
int arax_accel_valid_type(arax_accel_type_e type)
+
struct arax_accel_type_map types_map[ARAX_ACCEL_TYPES]
+
const char * arax_accel_type_to_str(arax_accel_type_e type)
+
arax_accel_type_e arax_accel_type_from_str(const char *type)
+ +
arax_accel_type_e type
+ +
+
+ + + + diff --git a/a01917.map b/a01917.map new file mode 100644 index 00000000..eeb36d04 --- /dev/null +++ b/a01917.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/a01917.md5 b/a01917.md5 new file mode 100644 index 00000000..a5f1353a --- /dev/null +++ b/a01917.md5 @@ -0,0 +1 @@ +051062554dd4332adf2a0e8213ed252d \ No newline at end of file diff --git a/a01917.svg b/a01917.svg new file mode 100644 index 00000000..7cd51dc0 --- /dev/null +++ b/a01917.svg @@ -0,0 +1,93 @@ + + + + + + +arax_accel_types.c + + +Node1 + + +arax_accel_types.c + + + + + +Node2 + + +arax_types.h + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +strings.h + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +sys/time.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +time.h + + + + + +Node2->Node4 + + + + + + + + diff --git a/a01919.html b/a01919.html new file mode 100644 index 00000000..d6c12f44 --- /dev/null +++ b/a01919.html @@ -0,0 +1,1204 @@ + + + + + + + +Arax: arax_data.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_data.c File Reference
+
+
+
#include "arax_data.h"
+#include "arax_task.h"
+#include "arax_data_private.h"
+#include "arax_pipe.h"
+#include "arax_ptr.h"
+#include <string.h>
+#include <stdlib.h>
+#include "utils/system.h"
+
+ + Include dependency graph for arax_data.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + + + +

+Macros

#define printd(...)
 
#define VDFLAG(DATA, FLAG)   (DATA->flags & FLAG)
 
#define VD_BUFF_OWNER(BUFF)   *(arax_data_s **) ((char *) BUFF - sizeof(size_t *))
 
#define TYPE_MASK(A, B)   ( ( (A) *ARAX_TYPE_COUNT ) + (B) )
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

arax_data_sarax_data_init (arax_pipe_s *vpipe, size_t size)
 
arax_data_sarax_data_init_aligned (arax_pipe_s *vpipe, size_t size, size_t align)
 
void arax_data_get (arax_data *data, void *user)
 
void arax_data_set (arax_data *data, arax_accel *accel, const void *user)
 
void arax_data_memcpy (arax_accel *accel, arax_data_s *dst, arax_data_s *src, int block)
 
void arax_data_migrate_accel (arax_data_s *data, arax_accel *accel)
 
void arax_data_allocate_remote (arax_data_s *data, arax_accel *accel)
 
void arax_data_set_accel (arax_data_s *data, arax_accel *accel)
 
void arax_data_set_remote (arax_data_s *data, arax_accel *accel, void *remt)
 
void arax_data_arg_init (arax_data_s *data, arax_accel *accel)
 
void arax_data_input_init (arax_data_s *data, arax_accel *accel)
 
void arax_data_output_init (arax_data_s *data, arax_accel *accel)
 
size_t arax_data_size (arax_data *data)
 
void * arax_data_deref (arax_data *data)
 
arax_dataarax_data_ref (void *data)
 
arax_dataarax_data_ref_offset (arax_pipe_s *vpipe, void *data)
 
void arax_data_free (arax_data *data)
 
int arax_data_has_remote (arax_data *data)
 
void arax_data_stat (arax_data *data, const char *file, size_t line)
 
 ARAX_OBJ_DTOR_DECL (arax_data_s)
 
+

Macro Definition Documentation

+ +

◆ printd

+ +
+
+ + + + + + + + +
#define printd( ...)
+
+ +

Definition at line 11 of file arax_data.c.

+ +
+
+ +

◆ TYPE_MASK

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define TYPE_MASK( A,
 
)   ( ( (A) *ARAX_TYPE_COUNT ) + (B) )
+
+ +

Definition at line 115 of file arax_data.c.

+ +
+
+ +

◆ VD_BUFF_OWNER

+ +
+
+ + + + + + + + +
#define VD_BUFF_OWNER( BUFF)   *(arax_data_s **) ((char *) BUFF - sizeof(size_t *))
+
+ +

Definition at line 14 of file arax_data.c.

+ +
+
+ +

◆ VDFLAG

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define VDFLAG( DATA,
 FLAG 
)   (DATA->flags & FLAG)
+
+ +

Definition at line 13 of file arax_data.c.

+ +
+
+

Function Documentation

+ +

◆ arax_data_allocate_remote()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_data_allocate_remote (arax_data_sdata,
arax_accelaccel 
)
+
+

Initialize data remote (accelerator) buffer.

Parameters
+ + +
dataArax data.
+
+
+ +

Definition at line 162 of file arax_data.c.

+ +

References arax_data_s::accel, arax_accel_size_dec(), arax_assert, arax_assert_obj, arax_data_size(), arax_object_ref_inc(), arax_proc_get(), arax_task_free(), arax_task_issue(), arax_task_wait(), ARAX_THROTTLE_DEBUG_PRINT, ARAX_TYPE_DATA, ARAX_TYPE_VIRT_ACCEL, CPU, arax_data_s::remote, and task_completed.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_arg_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_data_arg_init (arax_data_sdata,
arax_accelaccel 
)
+
+ +

Definition at line 220 of file arax_data.c.

+ +

References arax_assert, arax_assert_obj, arax_data_migrate_accel(), and ARAX_TYPE_DATA.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_deref()

+ +
+
+ + + + + + + + +
void * arax_data_deref (arax_datadata)
+
+

Get pointer to buffer for use from CPU.

+
Parameters
+ + +
dataValid arax_data pointer.
+
+
+
Returns
Ram point to arax_data buffer.NULL on failure.
+ +

Definition at line 260 of file arax_data.c.

+ +

References arax_assert_obj, ARAX_THROTTLE_DEBUG_PRINT, ARAX_TYPE_DATA, and arax_data_s::buffer.

+ +

Referenced by arax_data_memcpy(), arax_data_ref_offset(), and arax_data_stat().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_free()

+ +
+
+ + + + + + + + +
void arax_data_free (arax_datadata)
+
+

Mark data for deletion.

+ +

Definition at line 325 of file arax_data.c.

+ +

References arax_assert_obj, arax_object_ref_dec(), ARAX_TYPE_DATA, and arax_data_s::obj.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_get()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_data_get (arax_datadata,
void * user 
)
+
+

Get the data of data, and copy them to user.

+
Note
This is a blocking call.
+
Parameters
+ + + +
dataA valid arax_data_s instance.
userAn allocated memory of at least arax_data_size() bytes.
+
+
+ +

Definition at line 52 of file arax_data.c.

+ +

References arax_data_s::accel, arax_assert, arax_assert_obj, arax_data_size(), arax_proc_get(), arax_proc_put(), arax_task_free(), arax_task_host_data(), arax_task_issue(), arax_task_wait(), ARAX_TYPE_DATA, and task_completed.

+ +

Referenced by arax_data_memcpy().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_has_remote()

+ +
+
+ + + + + + + + +
int arax_data_has_remote (arax_datadata)
+
+

Returns true if data has been allocated on the remote accelerator.

+
Parameters
+ + +
dataData to be queried.
+
+
+
Returns
1 if data has a remote accelerator allocation, 0 otherwise.
+ +

Definition at line 334 of file arax_data.c.

+ +

References arax_assert_obj, ARAX_TYPE_DATA, and arax_data_s::remote.

+ +
+
+ +

◆ arax_data_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
arax_data_s * arax_data_init (arax_pipe_svpipe,
size_t size 
)
+
+

Initialize a new arax_data_s object.

Parameters
+ + + +
vpipeValid arax_pipe_s instance.
sizeSize of data in bytes.
+
+
+ +

Definition at line 16 of file arax_data.c.

+ +

References arax_data_init_aligned(), and vpipe.

+ +

Referenced by ARAX_BUFFER().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_init_aligned()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
arax_data_s * arax_data_init_aligned (arax_pipe_svpipe,
size_t size,
size_t align 
)
+
+

Initialize a new arax_data_s object, with an aligned buffer.

Parameters
+ + + + +
vpipeValid arax_pipe_s instance.
sizeSize of data in bytes.
alignalignment of buffer in bytes, power of two.
+
+
+ +

Definition at line 21 of file arax_data.c.

+ +

References arax_data_s::align, arax_assert, ARAX_BUFF_ALLOC_SIZE, arax_object_register(), ARAX_TYPE_DATA, arax_data_s::buffer, arax_data_s::flags, arax_pipe::objs, arax_data_s::phys, arax_data_s::size, and vpipe.

+ +

Referenced by arax_data_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_input_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_data_input_init (arax_data_sdata,
arax_accelaccel 
)
+
+ +

Definition at line 229 of file arax_data.c.

+ +

References arax_assert, arax_assert_obj, arax_data_migrate_accel(), arax_object_ref_inc(), ARAX_TYPE_DATA, and arax_data_s::obj.

+ +

Referenced by arax_task_alloc().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_memcpy()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void arax_data_memcpy (arax_accelaccel,
arax_data_sdst,
arax_data_ssrc,
int block 
)
+
+

Copy data of src to dst.

+

@Note src and dst must have the same size. @Note If src and dst are the same, function is no-op.

+
Parameters
+ + + + + +
accelAccelerator/fifo to use.
dstDestination buffer.
srcSource buffer.
blockIf true function returns only when copy has completed.
+
+
+ +

Definition at line 95 of file arax_data.c.

+ +

References arax_assert, arax_assert_obj, arax_data_deref(), arax_data_get(), arax_data_set(), arax_data_size(), ARAX_TYPE_DATA, and arax_data_s::flags.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_migrate_accel()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_data_migrate_accel (arax_data_sdata,
arax_accelaccel 
)
+
+

Migrate data accelerator location to accel.

+

\NOTE: Does not yet support migration across physical devices.

+ +

Definition at line 117 of file arax_data.c.

+ +

References arax_data_s::accel, arax_assert, arax_assert_obj, arax_object_ref_dec(), arax_object_ref_inc(), arax_object_type_to_str(), ARAX_TYPE_DATA, ARAX_TYPE_VIRT_ACCEL, arax_vaccel_s::phys, arax_data_s::remote, and TYPE_MASK.

+ +

Referenced by arax_data_arg_init(), arax_data_input_init(), and arax_data_output_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_output_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_data_output_init (arax_data_sdata,
arax_accelaccel 
)
+
+ +

Definition at line 240 of file arax_data.c.

+ +

References arax_assert, arax_assert_obj, arax_data_migrate_accel(), arax_object_ref_inc(), ARAX_TYPE_DATA, and arax_data_s::obj.

+ +

Referenced by arax_task_alloc().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_ref()

+ +
+
+ + + + + + + + +
arax_data * arax_data_ref (void * data)
+
+

Get pointer to arax_data object from related CPU buffer data. Undefined behaviour if data is not a value returned by arax_data_deref.

Returns
pointer to arax_data.NULL on failure.
+ +

Definition at line 274 of file arax_data.c.

+ +

References arax_assert, arax_ptr_valid(), ARAX_TYPE_DATA, arax_data_s::obj, arax_object_s::type, and VD_BUFF_OWNER.

+ +

Referenced by arax_data_ref_offset().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_ref_offset()

+ +
+
+ + + + + + + + + + + + + + + + + + +
arax_data * arax_data_ref_offset (arax_pipe_svpipe,
void * data 
)
+
+

Get pointer to arax_data object from data that points 'inside' related CPU buffer .

Returns
pointer to arax_data.NULL on failure.
+ +

Definition at line 295 of file arax_data.c.

+ +

References arax_assert, arax_data_deref(), arax_data_ref(), arax_data_size(), arax_object_list_lock(), arax_object_list_unlock(), arax_ptr_valid(), ARAX_TYPE_DATA, arax_pipe::objs, utils_list_node::owner, utils_list_for_each, and vpipe.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_set()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void arax_data_set (arax_datadata,
arax_accelaccel,
const void * user 
)
+
+

Copy data from user to 'c data.

+
Note
This is a NON blocking call.
+
Parameters
+ + + + +
dataA valid arax_data_s instance.
accelAccelerator/fifo to use.
userAn allocated memory of at least arax_data_size() bytes.
+
+
+ +

Definition at line 75 of file arax_data.c.

+ +

References arax_data_s::accel, arax_assert, arax_assert_obj, arax_data_size(), arax_object_ref_inc(), arax_proc_get(), arax_proc_put(), arax_task_issue(), and ARAX_TYPE_DATA.

+ +

Referenced by arax_data_memcpy().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_set_accel()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_data_set_accel (arax_data_sdata,
arax_accelaccel 
)
+
+

Set accelerator to data and increment reference counters.

Parameters
+ + + +
dataA valid arax_data_s instance.
accelAccelerator/fifo to use.
+
+
+ +

Definition at line 195 of file arax_data.c.

+ +

References arax_data_s::accel, arax_assert_obj, arax_object_ref_inc(), ARAX_TYPE_DATA, and ARAX_TYPE_VIRT_ACCEL.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_set_remote()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void arax_data_set_remote (arax_data_sdata,
arax_accelaccel,
void * remt 
)
+
+

Set data remote (accelerator) buffer to point to remt, owned by accel.

Note
This call only be called for arax_data that have no alocated remote buffers (i.e. arax_data_has_remote() returns 0)
+
Parameters
+ + +
dataArax data.
+
+
+ +

Definition at line 206 of file arax_data.c.

+ +

References arax_data_s::accel, arax_assert, arax_assert_obj, arax_object_ref_inc(), ARAX_TYPE_DATA, ARAX_TYPE_VIRT_ACCEL, CPU, arax_data_s::flags, OTHR_REMT, and arax_data_s::remote.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_size()

+ +
+
+ + + + + + + + +
size_t arax_data_size (arax_datadata)
+
+

Return size of provided arax_data object.

Parameters
+ + +
dataValid arax_data pointer.
+
+
+
Returns
Return size of data of provided arax_data object.
+ +

Definition at line 251 of file arax_data.c.

+ +

References arax_assert_obj, ARAX_TYPE_DATA, and arax_data_s::size.

+ +

Referenced by arax_data_allocate_remote(), arax_data_get(), arax_data_memcpy(), arax_data_ref_offset(), arax_data_set(), arax_data_stat(), and ARAX_OBJ_DTOR_DECL().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_data_stat()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void arax_data_stat (arax_datadata,
const char * file,
size_t line 
)
+
+

Print debug info for 'c data.

+ +

Definition at line 346 of file arax_data.c.

+ +

References arax_assert_obj, arax_data_deref(), arax_data_size(), ARAX_TYPE_DATA, arax_data_s::flags, and OTHR_REMT.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ ARAX_OBJ_DTOR_DECL()

+ +
+
+ + + + + + + + +
ARAX_OBJ_DTOR_DECL (arax_data_s )
+
+ +

Definition at line 373 of file arax_data.c.

+ +

References arax_data_s::accel, arax_assert, arax_assert_obj, arax_data_size(), arax_object_ref_dec(), arax_proc_get(), arax_task_issue(), ARAX_THROTTLE_DEBUG_PRINT, ARAX_TYPE_COUNT, ARAX_TYPE_DATA, ARAX_TYPE_VIRT_ACCEL, arax_data_s::flags, arax_accel_s::free_vaq, OTHR_REMT, arax_data_s::phys, arax_data_s::remote, and arax_data_s::size.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01919.js b/a01919.js new file mode 100644 index 00000000..796f21a9 --- /dev/null +++ b/a01919.js @@ -0,0 +1,27 @@ +var a01919 = +[ + [ "printd", "a01919.html#a4f2705df522fd01ea20cea002f2d4304", null ], + [ "TYPE_MASK", "a01919.html#a980bfe6b3424f0710fd3268f6fb0b0fd", null ], + [ "VD_BUFF_OWNER", "a01919.html#a9cfc4824ef6366d0a0203973fee59cb7", null ], + [ "VDFLAG", "a01919.html#a79bcfecb44a55cae834171d418dad602", null ], + [ "arax_data_allocate_remote", "a01919.html#af8ede6fc8d207004035f45d945688d2c", null ], + [ "arax_data_arg_init", "a01919.html#a113a3c52b0c3b4f3b390921ee4c5022e", null ], + [ "arax_data_deref", "a01919.html#a1c74d47b5c2c866aa3a61bec0dde4e0d", null ], + [ "arax_data_free", "a01919.html#a96e0520e5569748ce1172bafca24fafe", null ], + [ "arax_data_get", "a01919.html#a696bc4319d0f6c6baa7d797a8df6b56f", null ], + [ "arax_data_has_remote", "a01919.html#a63f5c3c2031eba8a556afffda63f1528", null ], + [ "arax_data_init", "a01919.html#aeefe449d4a278e9fc4b9c5f7e31000a1", null ], + [ "arax_data_init_aligned", "a01919.html#a526989df37e605824d846b7ba54b43ea", null ], + [ "arax_data_input_init", "a01919.html#a1dc669466d6f52d5be8af2d991512ac2", null ], + [ "arax_data_memcpy", "a01919.html#a7d8356bd5c8b6a8d7dffc6ba94cc22e5", null ], + [ "arax_data_migrate_accel", "a01919.html#a4b65f90a821aca384f0ca1cff7bd1846", null ], + [ "arax_data_output_init", "a01919.html#a18d07d808917e0b971d46332e9e64da4", null ], + [ "arax_data_ref", "a01919.html#afeaab7d93372f0752d59c70d9c5940e7", null ], + [ "arax_data_ref_offset", "a01919.html#ac1f7fb20b3a23b388bea24f1b46a33a8", null ], + [ "arax_data_set", "a01919.html#a8995f71dba475975efc37756783cfce9", null ], + [ "arax_data_set_accel", "a01919.html#ad4f10e1a58d989e93ad8d6318f9d4162", null ], + [ "arax_data_set_remote", "a01919.html#aca0dcc5fe70fd3aa9aa77ee4b8b9aac1", null ], + [ "arax_data_size", "a01919.html#a369e660e3e344bc697d98174059ead3c", null ], + [ "arax_data_stat", "a01919.html#a6c43ea323f2de1675b00e48330a12e2a", null ], + [ "ARAX_OBJ_DTOR_DECL", "a01919.html#af735744d0f8bec04394639a841d2ba0f", null ] +]; \ No newline at end of file diff --git a/a01919_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.map b/a01919_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.map new file mode 100644 index 00000000..95fb2804 --- /dev/null +++ b/a01919_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.map @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01919_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.md5 b/a01919_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.md5 new file mode 100644 index 00000000..10b8d061 --- /dev/null +++ b/a01919_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.md5 @@ -0,0 +1 @@ +4f5f5377cbfe8e5494849e2b64d3157b \ No newline at end of file diff --git a/a01919_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.svg b/a01919_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.svg new file mode 100644 index 00000000..85ae31a4 --- /dev/null +++ b/a01919_a113a3c52b0c3b4f3b390921ee4c5022e_cgraph.svg @@ -0,0 +1,255 @@ + + + + + + +arax_data_arg_init + + +Node1 + + +arax_data_arg_init + + + + + +Node2 + + +arax_data_migrate_accel + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_object_ref_dec + + + + + +Node2->Node3 + + + + + + + + +Node13 + + +arax_object_ref_inc + + + + + +Node2->Node13 + + + + + + + + +Node14 + + +arax_object_type_to_str + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +arax_pipe_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node12 + + +utils_list_del + + + + + +Node3->Node12 + + + + + + + + +Node5 + + +arax_throttle_size_inc + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +async_condition_lock + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_condition_notify + + + + + +Node5->Node8 + + + + + + + + +Node10 + + +async_condition_unlock + + + + + +Node5->Node10 + + + + + + + + +Node7 + + +async_completion_wait + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_semaphore_inc + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +async_completion_complete + + + + + +Node10->Node11 + + + + + + + + diff --git a/a01919_a18d07d808917e0b971d46332e9e64da4_cgraph.map b/a01919_a18d07d808917e0b971d46332e9e64da4_cgraph.map new file mode 100644 index 00000000..e77199f5 --- /dev/null +++ b/a01919_a18d07d808917e0b971d46332e9e64da4_cgraph.map @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01919_a18d07d808917e0b971d46332e9e64da4_cgraph.md5 b/a01919_a18d07d808917e0b971d46332e9e64da4_cgraph.md5 new file mode 100644 index 00000000..8a0e733e --- /dev/null +++ b/a01919_a18d07d808917e0b971d46332e9e64da4_cgraph.md5 @@ -0,0 +1 @@ +349aceec2b22340368f573f67cb5da5c \ No newline at end of file diff --git a/a01919_a18d07d808917e0b971d46332e9e64da4_cgraph.svg b/a01919_a18d07d808917e0b971d46332e9e64da4_cgraph.svg new file mode 100644 index 00000000..a9902295 --- /dev/null +++ b/a01919_a18d07d808917e0b971d46332e9e64da4_cgraph.svg @@ -0,0 +1,264 @@ + + + + + + +arax_data_output_init + + +Node1 + + +arax_data_output_init + + + + + +Node2 + + +arax_data_migrate_accel + + + + + +Node1->Node2 + + + + + + + + +Node13 + + +arax_object_ref_inc + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +arax_object_ref_dec + + + + + +Node2->Node3 + + + + + + + + +Node2->Node13 + + + + + + + + +Node14 + + +arax_object_type_to_str + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +arax_pipe_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node12 + + +utils_list_del + + + + + +Node3->Node12 + + + + + + + + +Node5 + + +arax_throttle_size_inc + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +async_condition_lock + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_condition_notify + + + + + +Node5->Node8 + + + + + + + + +Node10 + + +async_condition_unlock + + + + + +Node5->Node10 + + + + + + + + +Node7 + + +async_completion_wait + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_semaphore_inc + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +async_completion_complete + + + + + +Node10->Node11 + + + + + + + + diff --git a/a01919_a18d07d808917e0b971d46332e9e64da4_icgraph.map b/a01919_a18d07d808917e0b971d46332e9e64da4_icgraph.map new file mode 100644 index 00000000..32fcd460 --- /dev/null +++ b/a01919_a18d07d808917e0b971d46332e9e64da4_icgraph.map @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/a01919_a18d07d808917e0b971d46332e9e64da4_icgraph.md5 b/a01919_a18d07d808917e0b971d46332e9e64da4_icgraph.md5 new file mode 100644 index 00000000..8044a1d5 --- /dev/null +++ b/a01919_a18d07d808917e0b971d46332e9e64da4_icgraph.md5 @@ -0,0 +1 @@ +f758d2fc3f307e59b263edda2a298d2d \ No newline at end of file diff --git a/a01919_a18d07d808917e0b971d46332e9e64da4_icgraph.svg b/a01919_a18d07d808917e0b971d46332e9e64da4_icgraph.svg new file mode 100644 index 00000000..29499f6e --- /dev/null +++ b/a01919_a18d07d808917e0b971d46332e9e64da4_icgraph.svg @@ -0,0 +1,175 @@ + + + + + + +arax_data_output_init + + +Node1 + + +arax_data_output_init + + + + + +Node2 + + +arax_task_alloc + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_task_issue + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_allocate +_remote + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data_get + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +arax_data_set + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +arax_task_issue_sync + + + + + +Node3->Node9 + + + + + + + + +Node6 + + +arax_data_memcpy + + + + + +Node5->Node6 + + + + + + + + +Node7->Node6 + + + + + + + + diff --git a/a01919_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.map b/a01919_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.map new file mode 100644 index 00000000..246380bf --- /dev/null +++ b/a01919_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a01919_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.md5 b/a01919_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.md5 new file mode 100644 index 00000000..f17093db --- /dev/null +++ b/a01919_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.md5 @@ -0,0 +1 @@ +74626b0c67cacc511963de54dad2dde4 \ No newline at end of file diff --git a/a01919_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.svg b/a01919_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.svg new file mode 100644 index 00000000..8430f92d --- /dev/null +++ b/a01919_a1c74d47b5c2c866aa3a61bec0dde4e0d_icgraph.svg @@ -0,0 +1,75 @@ + + + + + + +arax_data_deref + + +Node1 + + +arax_data_deref + + + + + +Node2 + + +arax_data_memcpy + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_ref_offset + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_data_stat + + + + + +Node1->Node4 + + + + + + + + diff --git a/a01919_a1dc669466d6f52d5be8af2d991512ac2_cgraph.map b/a01919_a1dc669466d6f52d5be8af2d991512ac2_cgraph.map new file mode 100644 index 00000000..7dd9fb50 --- /dev/null +++ b/a01919_a1dc669466d6f52d5be8af2d991512ac2_cgraph.map @@ -0,0 +1,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01919_a1dc669466d6f52d5be8af2d991512ac2_cgraph.md5 b/a01919_a1dc669466d6f52d5be8af2d991512ac2_cgraph.md5 new file mode 100644 index 00000000..f69cd49b --- /dev/null +++ b/a01919_a1dc669466d6f52d5be8af2d991512ac2_cgraph.md5 @@ -0,0 +1 @@ +4a99b9f675bff967d1695651ff825bf6 \ No newline at end of file diff --git a/a01919_a1dc669466d6f52d5be8af2d991512ac2_cgraph.svg b/a01919_a1dc669466d6f52d5be8af2d991512ac2_cgraph.svg new file mode 100644 index 00000000..892db0a4 --- /dev/null +++ b/a01919_a1dc669466d6f52d5be8af2d991512ac2_cgraph.svg @@ -0,0 +1,264 @@ + + + + + + +arax_data_input_init + + +Node1 + + +arax_data_input_init + + + + + +Node2 + + +arax_data_migrate_accel + + + + + +Node1->Node2 + + + + + + + + +Node13 + + +arax_object_ref_inc + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +arax_object_ref_dec + + + + + +Node2->Node3 + + + + + + + + +Node2->Node13 + + + + + + + + +Node14 + + +arax_object_type_to_str + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +arax_pipe_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node12 + + +utils_list_del + + + + + +Node3->Node12 + + + + + + + + +Node5 + + +arax_throttle_size_inc + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +async_condition_lock + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_condition_notify + + + + + +Node5->Node8 + + + + + + + + +Node10 + + +async_condition_unlock + + + + + +Node5->Node10 + + + + + + + + +Node7 + + +async_completion_wait + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_semaphore_inc + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +async_completion_complete + + + + + +Node10->Node11 + + + + + + + + diff --git a/a01919_a1dc669466d6f52d5be8af2d991512ac2_icgraph.map b/a01919_a1dc669466d6f52d5be8af2d991512ac2_icgraph.map new file mode 100644 index 00000000..6a36f34a --- /dev/null +++ b/a01919_a1dc669466d6f52d5be8af2d991512ac2_icgraph.map @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/a01919_a1dc669466d6f52d5be8af2d991512ac2_icgraph.md5 b/a01919_a1dc669466d6f52d5be8af2d991512ac2_icgraph.md5 new file mode 100644 index 00000000..32fa753e --- /dev/null +++ b/a01919_a1dc669466d6f52d5be8af2d991512ac2_icgraph.md5 @@ -0,0 +1 @@ +7698d0ac21708e95bef5c90dc93e963b \ No newline at end of file diff --git a/a01919_a1dc669466d6f52d5be8af2d991512ac2_icgraph.svg b/a01919_a1dc669466d6f52d5be8af2d991512ac2_icgraph.svg new file mode 100644 index 00000000..52a74c8b --- /dev/null +++ b/a01919_a1dc669466d6f52d5be8af2d991512ac2_icgraph.svg @@ -0,0 +1,175 @@ + + + + + + +arax_data_input_init + + +Node1 + + +arax_data_input_init + + + + + +Node2 + + +arax_task_alloc + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_task_issue + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_allocate +_remote + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data_get + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +arax_data_set + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +arax_task_issue_sync + + + + + +Node3->Node9 + + + + + + + + +Node6 + + +arax_data_memcpy + + + + + +Node5->Node6 + + + + + + + + +Node7->Node6 + + + + + + + + diff --git a/a01919_a369e660e3e344bc697d98174059ead3c_icgraph.map b/a01919_a369e660e3e344bc697d98174059ead3c_icgraph.map new file mode 100644 index 00000000..49d5c523 --- /dev/null +++ b/a01919_a369e660e3e344bc697d98174059ead3c_icgraph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/a01919_a369e660e3e344bc697d98174059ead3c_icgraph.md5 b/a01919_a369e660e3e344bc697d98174059ead3c_icgraph.md5 new file mode 100644 index 00000000..84f24238 --- /dev/null +++ b/a01919_a369e660e3e344bc697d98174059ead3c_icgraph.md5 @@ -0,0 +1 @@ +e973fabdc4495c216a0f756d0338c1fb \ No newline at end of file diff --git a/a01919_a369e660e3e344bc697d98174059ead3c_icgraph.svg b/a01919_a369e660e3e344bc697d98174059ead3c_icgraph.svg new file mode 100644 index 00000000..9bd70a83 --- /dev/null +++ b/a01919_a369e660e3e344bc697d98174059ead3c_icgraph.svg @@ -0,0 +1,166 @@ + + + + + + +arax_data_size + + +Node1 + + +arax_data_size + + + + + +Node2 + + +arax_data_allocate +_remote + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_get + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_data_memcpy + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +arax_data_ref_offset + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +arax_data_set + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +arax_data_stat + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node1->Node8 + + + + + + + + +Node3->Node4 + + + + + + + + +Node6->Node4 + + + + + + + + diff --git a/a01919_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.map b/a01919_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.map new file mode 100644 index 00000000..7f9c2dc7 --- /dev/null +++ b/a01919_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.map @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01919_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.md5 b/a01919_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.md5 new file mode 100644 index 00000000..95de1ba3 --- /dev/null +++ b/a01919_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.md5 @@ -0,0 +1 @@ +a16db108056366e8bebd3f8cab4f3d85 \ No newline at end of file diff --git a/a01919_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.svg b/a01919_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.svg new file mode 100644 index 00000000..b2d9e22a --- /dev/null +++ b/a01919_a4b65f90a821aca384f0ca1cff7bd1846_cgraph.svg @@ -0,0 +1,237 @@ + + + + + + +arax_data_migrate_accel + + +Node1 + + +arax_data_migrate_accel + + + + + +Node2 + + +arax_object_ref_dec + + + + + +Node1->Node2 + + + + + + + + +Node12 + + +arax_object_ref_inc + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +arax_object_type_to_str + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +arax_pipe_size_inc + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +utils_list_del + + + + + +Node2->Node11 + + + + + + + + +Node4 + + +arax_throttle_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_condition_notify + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +async_condition_unlock + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_semaphore_inc + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +async_completion_complete + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01919_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.map b/a01919_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.map new file mode 100644 index 00000000..e563b2b6 --- /dev/null +++ b/a01919_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.map @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01919_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.md5 b/a01919_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.md5 new file mode 100644 index 00000000..907b6cfe --- /dev/null +++ b/a01919_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.md5 @@ -0,0 +1 @@ +e1531c654049759163197c0835400b15 \ No newline at end of file diff --git a/a01919_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.svg b/a01919_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.svg new file mode 100644 index 00000000..c23f88be --- /dev/null +++ b/a01919_a4b65f90a821aca384f0ca1cff7bd1846_icgraph.svg @@ -0,0 +1,238 @@ + + + + + + +arax_data_migrate_accel + + +Node1 + + +arax_data_migrate_accel + + + + + +Node2 + + +arax_data_arg_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_input_init + + + + + +Node1->Node3 + + + + + + + + +Node12 + + +arax_data_output_init + + + + + +Node1->Node12 + + + + + + + + +Node4 + + +arax_task_alloc + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_task_issue + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_data_allocate +_remote + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_data_get + + + + + +Node5->Node7 + + + + + + + + +Node9 + + +arax_data_set + + + + + +Node5->Node9 + + + + + + + + +Node10 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node5->Node10 + + + + + + + + +Node11 + + +arax_task_issue_sync + + + + + +Node5->Node11 + + + + + + + + +Node8 + + +arax_data_memcpy + + + + + +Node7->Node8 + + + + + + + + +Node9->Node8 + + + + + + + + +Node12->Node4 + + + + + + + + diff --git a/a01919_a526989df37e605824d846b7ba54b43ea_cgraph.map b/a01919_a526989df37e605824d846b7ba54b43ea_cgraph.map new file mode 100644 index 00000000..60c779cc --- /dev/null +++ b/a01919_a526989df37e605824d846b7ba54b43ea_cgraph.map @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01919_a526989df37e605824d846b7ba54b43ea_cgraph.md5 b/a01919_a526989df37e605824d846b7ba54b43ea_cgraph.md5 new file mode 100644 index 00000000..d1f6ff58 --- /dev/null +++ b/a01919_a526989df37e605824d846b7ba54b43ea_cgraph.md5 @@ -0,0 +1 @@ +6370fcebc524f43a1000bf0118d8a62c \ No newline at end of file diff --git a/a01919_a526989df37e605824d846b7ba54b43ea_cgraph.svg b/a01919_a526989df37e605824d846b7ba54b43ea_cgraph.svg new file mode 100644 index 00000000..5a341e81 --- /dev/null +++ b/a01919_a526989df37e605824d846b7ba54b43ea_cgraph.svg @@ -0,0 +1,273 @@ + + + + + + +arax_data_init_aligned + + +Node1 + + +arax_data_init_aligned + + + + + +Node2 + + +arax_object_register + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_size_dec + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +arch_alloc_allocate + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +utils_list_add + + + + + +Node2->Node12 + + + + + + + + +Node14 + + +utils_list_node_init + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +arax_throttle_size_dec + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_condition_unlock + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +async_condition_wait + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_completion_complete + + + + + +Node7->Node8 + + + + + + + + +Node9->Node6 + + + + + + + + +Node9->Node8 + + + + + + + + +Node10 + + +async_semaphore_dec + + + + + +Node9->Node10 + + + + + + + + +Node13 + + +utils_list_node_add + + + + + +Node12->Node13 + + + + + + + + diff --git a/a01919_a526989df37e605824d846b7ba54b43ea_icgraph.map b/a01919_a526989df37e605824d846b7ba54b43ea_icgraph.map new file mode 100644 index 00000000..bd62ecec --- /dev/null +++ b/a01919_a526989df37e605824d846b7ba54b43ea_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01919_a526989df37e605824d846b7ba54b43ea_icgraph.md5 b/a01919_a526989df37e605824d846b7ba54b43ea_icgraph.md5 new file mode 100644 index 00000000..2a001463 --- /dev/null +++ b/a01919_a526989df37e605824d846b7ba54b43ea_icgraph.md5 @@ -0,0 +1 @@ +088af034490305d61b739ffb33136e64 \ No newline at end of file diff --git a/a01919_a526989df37e605824d846b7ba54b43ea_icgraph.svg b/a01919_a526989df37e605824d846b7ba54b43ea_icgraph.svg new file mode 100644 index 00000000..f22ad4ba --- /dev/null +++ b/a01919_a526989df37e605824d846b7ba54b43ea_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_data_init_aligned + + +Node1 + + +arax_data_init_aligned + + + + + +Node2 + + +arax_data_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +ARAX_BUFFER + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01919_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.map b/a01919_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.map new file mode 100644 index 00000000..2ce32a21 --- /dev/null +++ b/a01919_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.map @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01919_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.md5 b/a01919_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.md5 new file mode 100644 index 00000000..5209a4f8 --- /dev/null +++ b/a01919_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.md5 @@ -0,0 +1 @@ +7db1285fcbbe13db4fd13f5329a201fe \ No newline at end of file diff --git a/a01919_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.svg b/a01919_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.svg new file mode 100644 index 00000000..ddaba9b5 --- /dev/null +++ b/a01919_a696bc4319d0f6c6baa7d797a8df6b56f_cgraph.svg @@ -0,0 +1,984 @@ + + + + + + +arax_data_get + + +Node1 + + +arax_data_get + + + + + +Node2 + + +arax_data_size + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_proc_get + + + + + +Node1->Node3 + + + + + + + + +Node8 + + +arax_proc_put + + + + + +Node1->Node8 + + + + + + + + +Node19 + + +arax_task_free + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +arax_task_host_data + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +arax_task_issue + + + + + +Node1->Node21 + + + + + + + + +Node42 + + +arax_task_wait + + + + + +Node1->Node42 + + + + + + + + +Node4 + + +arax_object_ref_inc + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_pipe_find_proc + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_object_list_lock + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_object_list_unlock + + + + + +Node5->Node7 + + + + + + + + +Node9 + + +arax_object_ref_dec + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_pipe_size_inc + + + + + +Node9->Node10 + + + + + + + + +Node18 + + +utils_list_del + + + + + +Node9->Node18 + + + + + + + + +Node11 + + +arax_throttle_size_inc + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +async_condition_lock + + + + + +Node11->Node12 + + + + + + + + +Node14 + + +async_condition_notify + + + + + +Node11->Node14 + + + + + + + + +Node16 + + +async_condition_unlock + + + + + +Node11->Node16 + + + + + + + + +Node13 + + +async_completion_wait + + + + + +Node12->Node13 + + + + + + + + +Node15 + + +async_semaphore_inc + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +async_completion_complete + + + + + +Node16->Node17 + + + + + + + + +Node19->Node9 + + + + + + + + +Node21->Node20 + + + + + + + + +Node22 + + +arax_task_alloc + + + + + +Node21->Node22 + + + + + + + + +Node37 + + +arax_task_submit + + + + + +Node21->Node37 + + + + + + + + +Node41 + + +check_semantics + + + + + +Node21->Node41 + + + + + + + + +Node23 + + +arax_data_input_init + + + + + +Node22->Node23 + + + + + + + + +Node26 + + +arax_data_output_init + + + + + +Node22->Node26 + + + + + + + + +Node27 + + +arax_object_register + + + + + +Node22->Node27 + + + + + + + + +Node36 + + +async_completion_init + + + + + +Node22->Node36 + + + + + + + + +Node23->Node4 + + + + + + + + +Node24 + + +arax_data_migrate_accel + + + + + +Node23->Node24 + + + + + + + + +Node24->Node4 + + + + + + + + +Node24->Node9 + + + + + + + + +Node25 + + +arax_object_type_to_str + + + + + +Node24->Node25 + + + + + + + + +Node26->Node4 + + + + + + + + +Node26->Node24 + + + + + + + + +Node28 + + +arax_pipe_size_dec + + + + + +Node27->Node28 + + + + + + + + +Node32 + + +arch_alloc_allocate + + + + + +Node27->Node32 + + + + + + + + +Node33 + + +utils_list_add + + + + + +Node27->Node33 + + + + + + + + +Node35 + + +utils_list_node_init + + + + + +Node27->Node35 + + + + + + + + +Node29 + + +arax_throttle_size_dec + + + + + +Node28->Node29 + + + + + + + + +Node29->Node12 + + + + + + + + +Node29->Node16 + + + + + + + + +Node30 + + +async_condition_wait + + + + + +Node29->Node30 + + + + + + + + +Node30->Node13 + + + + + + + + +Node30->Node17 + + + + + + + + +Node31 + + +async_semaphore_dec + + + + + +Node30->Node31 + + + + + + + + +Node34 + + +utils_list_node_add + + + + + +Node33->Node34 + + + + + + + + +Node36->Node35 + + + + + + + + +Node37->Node4 + + + + + + + + +Node38 + + +arax_vaccel_add_task + + + + + +Node37->Node38 + + + + + + + + +Node39 + + +arax_accel_add_task + + + + + +Node38->Node39 + + + + + + + + +Node40 + + +utils_queue_push + + + + + +Node38->Node40 + + + + + + + + +Node39->Node12 + + + + + + + + +Node39->Node14 + + + + + + + + +Node39->Node16 + + + + + + + + +Node43 + + +arax_task_wait_done + + + + + +Node42->Node43 + + + + + + + + +Node44 + + +async_completion_wait + + + + + +Node43->Node44 + + + + + + + + +Node45 + + +_add_completion + + + + + +Node44->Node45 + + + + + + + + +Node46 + + +getVmID + + + + + +Node44->Node46 + + + + + + + + +Node45->Node33 + + + + + + + + diff --git a/a01919_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.map b/a01919_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.map new file mode 100644 index 00000000..9fba639e --- /dev/null +++ b/a01919_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01919_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.md5 b/a01919_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.md5 new file mode 100644 index 00000000..2247560d --- /dev/null +++ b/a01919_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.md5 @@ -0,0 +1 @@ +75307463b3f2d082c5b8d362bc4f5c23 \ No newline at end of file diff --git a/a01919_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.svg b/a01919_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.svg new file mode 100644 index 00000000..045adbe0 --- /dev/null +++ b/a01919_a696bc4319d0f6c6baa7d797a8df6b56f_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_data_get + + +Node1 + + +arax_data_get + + + + + +Node2 + + +arax_data_memcpy + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01919_a6c43ea323f2de1675b00e48330a12e2a_cgraph.map b/a01919_a6c43ea323f2de1675b00e48330a12e2a_cgraph.map new file mode 100644 index 00000000..2a6d5d0b --- /dev/null +++ b/a01919_a6c43ea323f2de1675b00e48330a12e2a_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01919_a6c43ea323f2de1675b00e48330a12e2a_cgraph.md5 b/a01919_a6c43ea323f2de1675b00e48330a12e2a_cgraph.md5 new file mode 100644 index 00000000..fa7aadb1 --- /dev/null +++ b/a01919_a6c43ea323f2de1675b00e48330a12e2a_cgraph.md5 @@ -0,0 +1 @@ +d00fc64f08de3fdc5744ed86b617fe5a \ No newline at end of file diff --git a/a01919_a6c43ea323f2de1675b00e48330a12e2a_cgraph.svg b/a01919_a6c43ea323f2de1675b00e48330a12e2a_cgraph.svg new file mode 100644 index 00000000..66133e08 --- /dev/null +++ b/a01919_a6c43ea323f2de1675b00e48330a12e2a_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_data_stat + + +Node1 + + +arax_data_stat + + + + + +Node2 + + +arax_data_deref + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_size + + + + + +Node1->Node3 + + + + + + + + diff --git a/a01919_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.map b/a01919_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.map new file mode 100644 index 00000000..98fec6f6 --- /dev/null +++ b/a01919_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.map @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01919_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.md5 b/a01919_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.md5 new file mode 100644 index 00000000..60e446c2 --- /dev/null +++ b/a01919_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.md5 @@ -0,0 +1 @@ +254ee6d713c0d121a94c98dc654c6d43 \ No newline at end of file diff --git a/a01919_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.svg b/a01919_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.svg new file mode 100644 index 00000000..05684adc --- /dev/null +++ b/a01919_a7d8356bd5c8b6a8d7dffc6ba94cc22e5_cgraph.svg @@ -0,0 +1,1092 @@ + + + + + + +arax_data_memcpy + + +Node1 + + +arax_data_memcpy + + + + + +Node2 + + +arax_data_deref + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_get + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_data_size + + + + + +Node1->Node4 + + + + + + + + +Node49 + + +arax_data_set + + + + + +Node1->Node49 + + + + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_proc_get + + + + + +Node3->Node5 + + + + + + + + +Node10 + + +arax_proc_put + + + + + +Node3->Node10 + + + + + + + + +Node21 + + +arax_task_free + + + + + +Node3->Node21 + + + + + + + + +Node22 + + +arax_task_host_data + + + + + +Node3->Node22 + + + + + + + + +Node23 + + +arax_task_issue + + + + + +Node3->Node23 + + + + + + + + +Node44 + + +arax_task_wait + + + + + +Node3->Node44 + + + + + + + + +Node6 + + +arax_object_ref_inc + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_pipe_find_proc + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +arax_object_list_lock + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_object_list_unlock + + + + + +Node7->Node9 + + + + + + + + +Node11 + + +arax_object_ref_dec + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_pipe_size_inc + + + + + +Node11->Node12 + + + + + + + + +Node20 + + +utils_list_del + + + + + +Node11->Node20 + + + + + + + + +Node13 + + +arax_throttle_size_inc + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +async_condition_lock + + + + + +Node13->Node14 + + + + + + + + +Node16 + + +async_condition_notify + + + + + +Node13->Node16 + + + + + + + + +Node18 + + +async_condition_unlock + + + + + +Node13->Node18 + + + + + + + + +Node15 + + +async_completion_wait + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +async_semaphore_inc + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +async_completion_complete + + + + + +Node18->Node19 + + + + + + + + +Node21->Node11 + + + + + + + + +Node23->Node22 + + + + + + + + +Node24 + + +arax_task_alloc + + + + + +Node23->Node24 + + + + + + + + +Node39 + + +arax_task_submit + + + + + +Node23->Node39 + + + + + + + + +Node43 + + +check_semantics + + + + + +Node23->Node43 + + + + + + + + +Node25 + + +arax_data_input_init + + + + + +Node24->Node25 + + + + + + + + +Node28 + + +arax_data_output_init + + + + + +Node24->Node28 + + + + + + + + +Node29 + + +arax_object_register + + + + + +Node24->Node29 + + + + + + + + +Node38 + + +async_completion_init + + + + + +Node24->Node38 + + + + + + + + +Node25->Node6 + + + + + + + + +Node26 + + +arax_data_migrate_accel + + + + + +Node25->Node26 + + + + + + + + +Node26->Node6 + + + + + + + + +Node26->Node11 + + + + + + + + +Node27 + + +arax_object_type_to_str + + + + + +Node26->Node27 + + + + + + + + +Node28->Node6 + + + + + + + + +Node28->Node26 + + + + + + + + +Node30 + + +arax_pipe_size_dec + + + + + +Node29->Node30 + + + + + + + + +Node34 + + +arch_alloc_allocate + + + + + +Node29->Node34 + + + + + + + + +Node35 + + +utils_list_add + + + + + +Node29->Node35 + + + + + + + + +Node37 + + +utils_list_node_init + + + + + +Node29->Node37 + + + + + + + + +Node31 + + +arax_throttle_size_dec + + + + + +Node30->Node31 + + + + + + + + +Node31->Node14 + + + + + + + + +Node31->Node18 + + + + + + + + +Node32 + + +async_condition_wait + + + + + +Node31->Node32 + + + + + + + + +Node32->Node15 + + + + + + + + +Node32->Node19 + + + + + + + + +Node33 + + +async_semaphore_dec + + + + + +Node32->Node33 + + + + + + + + +Node36 + + +utils_list_node_add + + + + + +Node35->Node36 + + + + + + + + +Node38->Node37 + + + + + + + + +Node39->Node6 + + + + + + + + +Node40 + + +arax_vaccel_add_task + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +arax_accel_add_task + + + + + +Node40->Node41 + + + + + + + + +Node42 + + +utils_queue_push + + + + + +Node40->Node42 + + + + + + + + +Node41->Node14 + + + + + + + + +Node41->Node16 + + + + + + + + +Node41->Node18 + + + + + + + + +Node45 + + +arax_task_wait_done + + + + + +Node44->Node45 + + + + + + + + +Node46 + + +async_completion_wait + + + + + +Node45->Node46 + + + + + + + + +Node47 + + +_add_completion + + + + + +Node46->Node47 + + + + + + + + +Node48 + + +getVmID + + + + + +Node46->Node48 + + + + + + + + +Node47->Node35 + + + + + + + + +Node49->Node4 + + + + + + + + +Node49->Node5 + + + + + + + + +Node49->Node6 + + + + + + + + +Node49->Node10 + + + + + + + + +Node49->Node23 + + + + + + + + diff --git a/a01919_a8995f71dba475975efc37756783cfce9_cgraph.map b/a01919_a8995f71dba475975efc37756783cfce9_cgraph.map new file mode 100644 index 00000000..1ddef1db --- /dev/null +++ b/a01919_a8995f71dba475975efc37756783cfce9_cgraph.map @@ -0,0 +1,96 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01919_a8995f71dba475975efc37756783cfce9_cgraph.md5 b/a01919_a8995f71dba475975efc37756783cfce9_cgraph.md5 new file mode 100644 index 00000000..de604ffd --- /dev/null +++ b/a01919_a8995f71dba475975efc37756783cfce9_cgraph.md5 @@ -0,0 +1 @@ +6dc87b7f1795ccb7abd8d18a537955ca \ No newline at end of file diff --git a/a01919_a8995f71dba475975efc37756783cfce9_cgraph.svg b/a01919_a8995f71dba475975efc37756783cfce9_cgraph.svg new file mode 100644 index 00000000..9a72327a --- /dev/null +++ b/a01919_a8995f71dba475975efc37756783cfce9_cgraph.svg @@ -0,0 +1,858 @@ + + + + + + +arax_data_set + + +Node1 + + +arax_data_set + + + + + +Node2 + + +arax_data_size + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_object_ref_inc + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_proc_get + + + + + +Node1->Node4 + + + + + + + + +Node8 + + +arax_proc_put + + + + + +Node1->Node8 + + + + + + + + +Node19 + + +arax_task_issue + + + + + +Node1->Node19 + + + + + + + + +Node4->Node3 + + + + + + + + +Node5 + + +arax_pipe_find_proc + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_object_list_lock + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_object_list_unlock + + + + + +Node5->Node7 + + + + + + + + +Node9 + + +arax_object_ref_dec + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_pipe_size_inc + + + + + +Node9->Node10 + + + + + + + + +Node18 + + +utils_list_del + + + + + +Node9->Node18 + + + + + + + + +Node11 + + +arax_throttle_size_inc + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +async_condition_lock + + + + + +Node11->Node12 + + + + + + + + +Node14 + + +async_condition_notify + + + + + +Node11->Node14 + + + + + + + + +Node16 + + +async_condition_unlock + + + + + +Node11->Node16 + + + + + + + + +Node13 + + +async_completion_wait + + + + + +Node12->Node13 + + + + + + + + +Node15 + + +async_semaphore_inc + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +async_completion_complete + + + + + +Node16->Node17 + + + + + + + + +Node20 + + +arax_task_alloc + + + + + +Node19->Node20 + + + + + + + + +Node35 + + +arax_task_host_data + + + + + +Node19->Node35 + + + + + + + + +Node36 + + +arax_task_submit + + + + + +Node19->Node36 + + + + + + + + +Node40 + + +check_semantics + + + + + +Node19->Node40 + + + + + + + + +Node21 + + +arax_data_input_init + + + + + +Node20->Node21 + + + + + + + + +Node24 + + +arax_data_output_init + + + + + +Node20->Node24 + + + + + + + + +Node25 + + +arax_object_register + + + + + +Node20->Node25 + + + + + + + + +Node34 + + +async_completion_init + + + + + +Node20->Node34 + + + + + + + + +Node21->Node3 + + + + + + + + +Node22 + + +arax_data_migrate_accel + + + + + +Node21->Node22 + + + + + + + + +Node22->Node3 + + + + + + + + +Node22->Node9 + + + + + + + + +Node23 + + +arax_object_type_to_str + + + + + +Node22->Node23 + + + + + + + + +Node24->Node3 + + + + + + + + +Node24->Node22 + + + + + + + + +Node26 + + +arax_pipe_size_dec + + + + + +Node25->Node26 + + + + + + + + +Node30 + + +arch_alloc_allocate + + + + + +Node25->Node30 + + + + + + + + +Node31 + + +utils_list_add + + + + + +Node25->Node31 + + + + + + + + +Node33 + + +utils_list_node_init + + + + + +Node25->Node33 + + + + + + + + +Node27 + + +arax_throttle_size_dec + + + + + +Node26->Node27 + + + + + + + + +Node27->Node12 + + + + + + + + +Node27->Node16 + + + + + + + + +Node28 + + +async_condition_wait + + + + + +Node27->Node28 + + + + + + + + +Node28->Node13 + + + + + + + + +Node28->Node17 + + + + + + + + +Node29 + + +async_semaphore_dec + + + + + +Node28->Node29 + + + + + + + + +Node32 + + +utils_list_node_add + + + + + +Node31->Node32 + + + + + + + + +Node34->Node33 + + + + + + + + +Node36->Node3 + + + + + + + + +Node37 + + +arax_vaccel_add_task + + + + + +Node36->Node37 + + + + + + + + +Node38 + + +arax_accel_add_task + + + + + +Node37->Node38 + + + + + + + + +Node39 + + +utils_queue_push + + + + + +Node37->Node39 + + + + + + + + +Node38->Node12 + + + + + + + + +Node38->Node14 + + + + + + + + +Node38->Node16 + + + + + + + + diff --git a/a01919_a8995f71dba475975efc37756783cfce9_icgraph.map b/a01919_a8995f71dba475975efc37756783cfce9_icgraph.map new file mode 100644 index 00000000..ee6583c1 --- /dev/null +++ b/a01919_a8995f71dba475975efc37756783cfce9_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01919_a8995f71dba475975efc37756783cfce9_icgraph.md5 b/a01919_a8995f71dba475975efc37756783cfce9_icgraph.md5 new file mode 100644 index 00000000..959171c0 --- /dev/null +++ b/a01919_a8995f71dba475975efc37756783cfce9_icgraph.md5 @@ -0,0 +1 @@ +9000b2f00ebf8d914c378dc45f9dd6bb \ No newline at end of file diff --git a/a01919_a8995f71dba475975efc37756783cfce9_icgraph.svg b/a01919_a8995f71dba475975efc37756783cfce9_icgraph.svg new file mode 100644 index 00000000..835a3947 --- /dev/null +++ b/a01919_a8995f71dba475975efc37756783cfce9_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_data_set + + +Node1 + + +arax_data_set + + + + + +Node2 + + +arax_data_memcpy + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01919_a96e0520e5569748ce1172bafca24fafe_cgraph.map b/a01919_a96e0520e5569748ce1172bafca24fafe_cgraph.map new file mode 100644 index 00000000..aaccfa76 --- /dev/null +++ b/a01919_a96e0520e5569748ce1172bafca24fafe_cgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01919_a96e0520e5569748ce1172bafca24fafe_cgraph.md5 b/a01919_a96e0520e5569748ce1172bafca24fafe_cgraph.md5 new file mode 100644 index 00000000..a7d90bec --- /dev/null +++ b/a01919_a96e0520e5569748ce1172bafca24fafe_cgraph.md5 @@ -0,0 +1 @@ +81372d58cdcfadd5bc0b2ff731fab00f \ No newline at end of file diff --git a/a01919_a96e0520e5569748ce1172bafca24fafe_cgraph.svg b/a01919_a96e0520e5569748ce1172bafca24fafe_cgraph.svg new file mode 100644 index 00000000..9b41e6ba --- /dev/null +++ b/a01919_a96e0520e5569748ce1172bafca24fafe_cgraph.svg @@ -0,0 +1,201 @@ + + + + + + +arax_data_free + + +Node1 + + +arax_data_free + + + + + +Node2 + + +arax_object_ref_dec + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_size_inc + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +utils_list_del + + + + + +Node2->Node11 + + + + + + + + +Node4 + + +arax_throttle_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_condition_notify + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +async_condition_unlock + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_semaphore_inc + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +async_completion_complete + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01919_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.map b/a01919_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.map new file mode 100644 index 00000000..9d67fa4f --- /dev/null +++ b/a01919_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.map @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01919_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.md5 b/a01919_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.md5 new file mode 100644 index 00000000..3117ce6f --- /dev/null +++ b/a01919_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.md5 @@ -0,0 +1 @@ +e5d80e0a41e7cffe2131e7a3f45110c3 \ No newline at end of file diff --git a/a01919_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.svg b/a01919_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.svg new file mode 100644 index 00000000..f077d45c --- /dev/null +++ b/a01919_ac1f7fb20b3a23b388bea24f1b46a33a8_cgraph.svg @@ -0,0 +1,1029 @@ + + + + + + +arax_data_ref_offset + + +Node1 + + +arax_data_ref_offset + + + + + +Node2 + + +arax_data_deref + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_ref + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_ptr_valid + + + + + +Node1->Node4 + + + + + + + + +Node57 + + +arax_data_size + + + + + +Node1->Node57 + + + + + + + + +Node58 + + +arax_object_list_lock + + + + + +Node1->Node58 + + + + + + + + +Node59 + + +arax_object_list_unlock + + + + + +Node1->Node59 + + + + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +_arax_init + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_pipe_get_available_size + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +arax_pipe_have_to_mmap + + + + + +Node6->Node9 + + + + + + + + +Node10 + + +arax_pipe_init + + + + + +Node6->Node10 + + + + + + + + +Node26 + + +utils_config_alloc_path + + + + + +Node6->Node26 + + + + + + + + +Node29 + + +utils_config_get_bool + + + + + +Node6->Node29 + + + + + + + + +Node41 + + +arax_pipe_mmap_address + + + + + +Node6->Node41 + + + + + + + + +Node42 + + +async_condition_lock + + + + + +Node6->Node42 + + + + + + + + +Node44 + + +async_condition_unlock + + + + + +Node6->Node44 + + + + + + + + +Node45 + + +async_condition_wait + + + + + +Node6->Node45 + + + + + + + + +Node47 + + +async_meta_init_always + + + + + +Node6->Node47 + + + + + + + + +Node52 + + +utils_config_get_str + + + + + +Node6->Node52 + + + + + + + + +Node53 + + +system_mmap + + + + + +Node6->Node53 + + + + + + + + +Node54 + + +system_process_id + + + + + +Node6->Node54 + + + + + + + + +Node55 + + +system_total_memory + + + + + +Node6->Node55 + + + + + + + + +Node56 + + +utils_config_get_size + + + + + +Node6->Node56 + + + + + + + + +Node36 + + +utils_config_get_source + + + + + +Node6->Node36 + + + + + + + + +Node8 + + +arax_throttle_get_available_size + + + + + +Node7->Node8 + + + + + + + + +Node11 + + +arax_object_repo_init + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +utils_list_init + + + + + +Node10->Node12 + + + + + + + + +Node14 + + +arax_pipe_add_process + + + + + +Node10->Node14 + + + + + + + + +Node15 + + +arax_throttle_init + + + + + +Node10->Node15 + + + + + + + + +Node16 + + +async_condition_init + + + + + +Node10->Node16 + + + + + + + + +Node22 + + +arch_alloc_init_always + + + + + +Node10->Node22 + + + + + + + + +Node23 + + +arch_alloc_init_once + + + + + +Node10->Node23 + + + + + + + + +Node25 + + +async_meta_init_once + + + + + +Node10->Node25 + + + + + + + + +Node40 + + +utils_kv_init + + + + + +Node10->Node40 + + + + + + + + +Node11->Node12 + + + + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +async_completion_complete + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +async_completion_init + + + + + +Node16->Node18 + + + + + + + + +Node19 + + +async_condition_unlock + + + + + +Node16->Node19 + + + + + + + + +Node24 + + +utils_bitmap_init + + + + + +Node23->Node24 + + + + + + + + +Node25->Node12 + + + + + + + + +Node25->Node26 + + + + + + + + +Node28 + + +utils_config_free_path + + + + + +Node25->Node28 + + + + + + + + +Node25->Node29 + + + + + + + + +Node27 + + +system_home_path + + + + + +Node26->Node27 + + + + + + + + +Node30 + + +utils_config_get_int + + + + + +Node29->Node30 + + + + + + + + +Node31 + + +utils_config_get_long + + + + + +Node30->Node31 + + + + + + + + +Node32 + + +_utils_config_get_str + + + + + +Node31->Node32 + + + + + + + + +Node43 + + +async_completion_wait + + + + + +Node42->Node43 + + + + + + + + +Node44->Node17 + + + + + + + + +Node45->Node17 + + + + + + + + +Node45->Node43 + + + + + + + + +Node46 + + +async_semaphore_dec + + + + + +Node45->Node46 + + + + + + + + +Node47->Node26 + + + + + + + + +Node47->Node28 + + + + + + + + +Node48 + + +async_thread + + + + + +Node47->Node48 + + + + + + + + +Node47->Node52 + + + + + + + + +Node52->Node32 + + + + + + + + +Node38 + + +utils_config_write_str + + + + + +Node52->Node38 + + + + + + + + +Node35 + + +system_file_size + + + + + +Node53->Node35 + + + + + + + + +Node56->Node31 + + + + + + + + +Node34 + + +system_env_var + + + + + +Node36->Node34 + + + + + + + + diff --git a/a01919_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.map b/a01919_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.map new file mode 100644 index 00000000..acf6a150 --- /dev/null +++ b/a01919_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01919_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.md5 b/a01919_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.md5 new file mode 100644 index 00000000..0f627316 --- /dev/null +++ b/a01919_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.md5 @@ -0,0 +1 @@ +a787945afd506bd8568f33af83f19d8d \ No newline at end of file diff --git a/a01919_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.svg b/a01919_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.svg new file mode 100644 index 00000000..fdcffef1 --- /dev/null +++ b/a01919_aca0dcc5fe70fd3aa9aa77ee4b8b9aac1_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_data_set_remote + + +Node1 + + +arax_data_set_remote + + + + + +Node2 + + +arax_object_ref_inc + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01919_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.map b/a01919_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.map new file mode 100644 index 00000000..884f178c --- /dev/null +++ b/a01919_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01919_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.md5 b/a01919_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.md5 new file mode 100644 index 00000000..0a8ee05d --- /dev/null +++ b/a01919_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.md5 @@ -0,0 +1 @@ +8f2d09624d2878a3365d90bd3206ad6e \ No newline at end of file diff --git a/a01919_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.svg b/a01919_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.svg new file mode 100644 index 00000000..a1ee97c7 --- /dev/null +++ b/a01919_ad4f10e1a58d989e93ad8d6318f9d4162_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_data_set_accel + + +Node1 + + +arax_data_set_accel + + + + + +Node2 + + +arax_object_ref_inc + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.map b/a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.map new file mode 100644 index 00000000..493ed4e8 --- /dev/null +++ b/a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.map @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.md5 b/a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.md5 new file mode 100644 index 00000000..69b348f4 --- /dev/null +++ b/a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.md5 @@ -0,0 +1 @@ +9640d5e2c0ef38887e908e5ae48f8475 \ No newline at end of file diff --git a/a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.svg b/a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.svg new file mode 100644 index 00000000..83987bde --- /dev/null +++ b/a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_cgraph.svg @@ -0,0 +1,291 @@ + + + + + + +arax_data_init + + +Node1 + + +arax_data_init + + + + + +Node2 + + +arax_data_init_aligned + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_object_register + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_pipe_size_dec + + + + + +Node3->Node4 + + + + + + + + +Node12 + + +arch_alloc_allocate + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +utils_list_add + + + + + +Node3->Node13 + + + + + + + + +Node15 + + +utils_list_node_init + + + + + +Node3->Node15 + + + + + + + + +Node5 + + +arax_throttle_size_dec + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +async_condition_lock + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_condition_unlock + + + + + +Node5->Node8 + + + + + + + + +Node10 + + +async_condition_wait + + + + + +Node5->Node10 + + + + + + + + +Node7 + + +async_completion_wait + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_completion_complete + + + + + +Node8->Node9 + + + + + + + + +Node10->Node7 + + + + + + + + +Node10->Node9 + + + + + + + + +Node11 + + +async_semaphore_dec + + + + + +Node10->Node11 + + + + + + + + +Node14 + + +utils_list_node_add + + + + + +Node13->Node14 + + + + + + + + diff --git a/a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.map b/a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.map new file mode 100644 index 00000000..5293aaac --- /dev/null +++ b/a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.md5 b/a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.md5 new file mode 100644 index 00000000..bcf26240 --- /dev/null +++ b/a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.md5 @@ -0,0 +1 @@ +ecb68866981c392db7373311b8e86d2d \ No newline at end of file diff --git a/a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.svg b/a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.svg new file mode 100644 index 00000000..8e877929 --- /dev/null +++ b/a01919_aeefe449d4a278e9fc4b9c5f7e31000a1_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_data_init + + +Node1 + + +arax_data_init + + + + + +Node2 + + +ARAX_BUFFER + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01919_af735744d0f8bec04394639a841d2ba0f_cgraph.map b/a01919_af735744d0f8bec04394639a841d2ba0f_cgraph.map new file mode 100644 index 00000000..4dca8b3c --- /dev/null +++ b/a01919_af735744d0f8bec04394639a841d2ba0f_cgraph.map @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01919_af735744d0f8bec04394639a841d2ba0f_cgraph.md5 b/a01919_af735744d0f8bec04394639a841d2ba0f_cgraph.md5 new file mode 100644 index 00000000..44092ad7 --- /dev/null +++ b/a01919_af735744d0f8bec04394639a841d2ba0f_cgraph.md5 @@ -0,0 +1 @@ +4e2b628572cc74cd7939810f93b0e076 \ No newline at end of file diff --git a/a01919_af735744d0f8bec04394639a841d2ba0f_cgraph.svg b/a01919_af735744d0f8bec04394639a841d2ba0f_cgraph.svg new file mode 100644 index 00000000..888d314f --- /dev/null +++ b/a01919_af735744d0f8bec04394639a841d2ba0f_cgraph.svg @@ -0,0 +1,831 @@ + + + + + + +ARAX_OBJ_DTOR_DECL + + +Node1 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2 + + +arax_data_size + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_object_ref_dec + + + + + +Node1->Node3 + + + + + + + + +Node13 + + +arax_proc_get + + + + + +Node1->Node13 + + + + + + + + +Node18 + + +arax_task_issue + + + + + +Node1->Node18 + + + + + + + + +Node4 + + +arax_pipe_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node12 + + +utils_list_del + + + + + +Node3->Node12 + + + + + + + + +Node5 + + +arax_throttle_size_inc + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +async_condition_lock + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_condition_notify + + + + + +Node5->Node8 + + + + + + + + +Node10 + + +async_condition_unlock + + + + + +Node5->Node10 + + + + + + + + +Node7 + + +async_completion_wait + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_semaphore_inc + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +async_completion_complete + + + + + +Node10->Node11 + + + + + + + + +Node14 + + +arax_object_ref_inc + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +arax_pipe_find_proc + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +arax_object_list_lock + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +arax_object_list_unlock + + + + + +Node15->Node17 + + + + + + + + +Node19 + + +arax_task_alloc + + + + + +Node18->Node19 + + + + + + + + +Node34 + + +arax_task_host_data + + + + + +Node18->Node34 + + + + + + + + +Node35 + + +arax_task_submit + + + + + +Node18->Node35 + + + + + + + + +Node39 + + +check_semantics + + + + + +Node18->Node39 + + + + + + + + +Node20 + + +arax_data_input_init + + + + + +Node19->Node20 + + + + + + + + +Node23 + + +arax_data_output_init + + + + + +Node19->Node23 + + + + + + + + +Node24 + + +arax_object_register + + + + + +Node19->Node24 + + + + + + + + +Node33 + + +async_completion_init + + + + + +Node19->Node33 + + + + + + + + +Node20->Node14 + + + + + + + + +Node21 + + +arax_data_migrate_accel + + + + + +Node20->Node21 + + + + + + + + +Node21->Node3 + + + + + + + + +Node21->Node14 + + + + + + + + +Node22 + + +arax_object_type_to_str + + + + + +Node21->Node22 + + + + + + + + +Node23->Node14 + + + + + + + + +Node23->Node21 + + + + + + + + +Node25 + + +arax_pipe_size_dec + + + + + +Node24->Node25 + + + + + + + + +Node29 + + +arch_alloc_allocate + + + + + +Node24->Node29 + + + + + + + + +Node30 + + +utils_list_add + + + + + +Node24->Node30 + + + + + + + + +Node32 + + +utils_list_node_init + + + + + +Node24->Node32 + + + + + + + + +Node26 + + +arax_throttle_size_dec + + + + + +Node25->Node26 + + + + + + + + +Node26->Node6 + + + + + + + + +Node26->Node10 + + + + + + + + +Node27 + + +async_condition_wait + + + + + +Node26->Node27 + + + + + + + + +Node27->Node7 + + + + + + + + +Node27->Node11 + + + + + + + + +Node28 + + +async_semaphore_dec + + + + + +Node27->Node28 + + + + + + + + +Node31 + + +utils_list_node_add + + + + + +Node30->Node31 + + + + + + + + +Node33->Node32 + + + + + + + + +Node35->Node14 + + + + + + + + +Node36 + + +arax_vaccel_add_task + + + + + +Node35->Node36 + + + + + + + + +Node37 + + +arax_accel_add_task + + + + + +Node36->Node37 + + + + + + + + +Node38 + + +utils_queue_push + + + + + +Node36->Node38 + + + + + + + + +Node37->Node6 + + + + + + + + +Node37->Node8 + + + + + + + + +Node37->Node10 + + + + + + + + diff --git a/a01919_af8ede6fc8d207004035f45d945688d2c_cgraph.map b/a01919_af8ede6fc8d207004035f45d945688d2c_cgraph.map new file mode 100644 index 00000000..00007375 --- /dev/null +++ b/a01919_af8ede6fc8d207004035f45d945688d2c_cgraph.map @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01919_af8ede6fc8d207004035f45d945688d2c_cgraph.md5 b/a01919_af8ede6fc8d207004035f45d945688d2c_cgraph.md5 new file mode 100644 index 00000000..a89bd9b4 --- /dev/null +++ b/a01919_af8ede6fc8d207004035f45d945688d2c_cgraph.md5 @@ -0,0 +1 @@ +919fbe290348dfca0f3ff5dd95c467d7 \ No newline at end of file diff --git a/a01919_af8ede6fc8d207004035f45d945688d2c_cgraph.svg b/a01919_af8ede6fc8d207004035f45d945688d2c_cgraph.svg new file mode 100644 index 00000000..bda59c33 --- /dev/null +++ b/a01919_af8ede6fc8d207004035f45d945688d2c_cgraph.svg @@ -0,0 +1,985 @@ + + + + + + +arax_data_allocate_remote + + +Node1 + + +arax_data_allocate +_remote + + + + + +Node2 + + +arax_accel_size_dec + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +arax_data_size + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +arax_object_ref_inc + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +arax_proc_get + + + + + +Node1->Node12 + + + + + + + + +Node16 + + +arax_task_free + + + + + +Node1->Node16 + + + + + + + + +Node23 + + +arax_task_issue + + + + + +Node1->Node23 + + + + + + + + +Node42 + + +arax_task_wait + + + + + +Node1->Node42 + + + + + + + + +Node3 + + +arax_throttle_size_dec + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +async_condition_lock + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +async_condition_unlock + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +async_condition_wait + + + + + +Node3->Node8 + + + + + + + + +Node5 + + +async_completion_wait + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_completion_complete + + + + + +Node6->Node7 + + + + + + + + +Node8->Node5 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +async_semaphore_dec + + + + + +Node8->Node9 + + + + + + + + +Node12->Node11 + + + + + + + + +Node13 + + +arax_pipe_find_proc + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +arax_object_list_lock + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +arax_object_list_unlock + + + + + +Node13->Node15 + + + + + + + + +Node17 + + +arax_object_ref_dec + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +arax_pipe_size_inc + + + + + +Node17->Node18 + + + + + + + + +Node22 + + +utils_list_del + + + + + +Node17->Node22 + + + + + + + + +Node19 + + +arax_throttle_size_inc + + + + + +Node18->Node19 + + + + + + + + +Node19->Node4 + + + + + + + + +Node19->Node6 + + + + + + + + +Node20 + + +async_condition_notify + + + + + +Node19->Node20 + + + + + + + + +Node21 + + +async_semaphore_inc + + + + + +Node20->Node21 + + + + + + + + +Node24 + + +arax_task_alloc + + + + + +Node23->Node24 + + + + + + + + +Node36 + + +arax_task_host_data + + + + + +Node23->Node36 + + + + + + + + +Node37 + + +arax_task_submit + + + + + +Node23->Node37 + + + + + + + + +Node41 + + +check_semantics + + + + + +Node23->Node41 + + + + + + + + +Node25 + + +arax_data_input_init + + + + + +Node24->Node25 + + + + + + + + +Node28 + + +arax_data_output_init + + + + + +Node24->Node28 + + + + + + + + +Node29 + + +arax_object_register + + + + + +Node24->Node29 + + + + + + + + +Node35 + + +async_completion_init + + + + + +Node24->Node35 + + + + + + + + +Node25->Node11 + + + + + + + + +Node26 + + +arax_data_migrate_accel + + + + + +Node25->Node26 + + + + + + + + +Node26->Node11 + + + + + + + + +Node26->Node17 + + + + + + + + +Node27 + + +arax_object_type_to_str + + + + + +Node26->Node27 + + + + + + + + +Node28->Node11 + + + + + + + + +Node28->Node26 + + + + + + + + +Node30 + + +arax_pipe_size_dec + + + + + +Node29->Node30 + + + + + + + + +Node31 + + +arch_alloc_allocate + + + + + +Node29->Node31 + + + + + + + + +Node32 + + +utils_list_add + + + + + +Node29->Node32 + + + + + + + + +Node34 + + +utils_list_node_init + + + + + +Node29->Node34 + + + + + + + + +Node30->Node3 + + + + + + + + +Node33 + + +utils_list_node_add + + + + + +Node32->Node33 + + + + + + + + +Node35->Node34 + + + + + + + + +Node37->Node11 + + + + + + + + +Node38 + + +arax_vaccel_add_task + + + + + +Node37->Node38 + + + + + + + + +Node39 + + +arax_accel_add_task + + + + + +Node38->Node39 + + + + + + + + +Node40 + + +utils_queue_push + + + + + +Node38->Node40 + + + + + + + + +Node39->Node4 + + + + + + + + +Node39->Node6 + + + + + + + + +Node39->Node20 + + + + + + + + +Node43 + + +arax_task_wait_done + + + + + +Node42->Node43 + + + + + + + + +Node44 + + +async_completion_wait + + + + + +Node43->Node44 + + + + + + + + +Node45 + + +_add_completion + + + + + +Node44->Node45 + + + + + + + + +Node46 + + +getVmID + + + + + +Node44->Node46 + + + + + + + + +Node45->Node32 + + + + + + + + diff --git a/a01919_afeaab7d93372f0752d59c70d9c5940e7_cgraph.map b/a01919_afeaab7d93372f0752d59c70d9c5940e7_cgraph.map new file mode 100644 index 00000000..fc8a5015 --- /dev/null +++ b/a01919_afeaab7d93372f0752d59c70d9c5940e7_cgraph.map @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01919_afeaab7d93372f0752d59c70d9c5940e7_cgraph.md5 b/a01919_afeaab7d93372f0752d59c70d9c5940e7_cgraph.md5 new file mode 100644 index 00000000..7edb6f95 --- /dev/null +++ b/a01919_afeaab7d93372f0752d59c70d9c5940e7_cgraph.md5 @@ -0,0 +1 @@ +548879cb3c149d0f0235f78ca799dade \ No newline at end of file diff --git a/a01919_afeaab7d93372f0752d59c70d9c5940e7_cgraph.svg b/a01919_afeaab7d93372f0752d59c70d9c5940e7_cgraph.svg new file mode 100644 index 00000000..436448c6 --- /dev/null +++ b/a01919_afeaab7d93372f0752d59c70d9c5940e7_cgraph.svg @@ -0,0 +1,1020 @@ + + + + + + +arax_data_ref + + +Node1 + + +arax_data_ref + + + + + +Node2 + + +arax_ptr_valid + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +_arax_init + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_pipe_get_available_size + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +arax_pipe_have_to_mmap + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +arax_pipe_init + + + + + +Node4->Node8 + + + + + + + + +Node24 + + +utils_config_alloc_path + + + + + +Node4->Node24 + + + + + + + + +Node27 + + +utils_config_get_bool + + + + + +Node4->Node27 + + + + + + + + +Node39 + + +arax_pipe_mmap_address + + + + + +Node4->Node39 + + + + + + + + +Node40 + + +async_condition_lock + + + + + +Node4->Node40 + + + + + + + + +Node42 + + +async_condition_unlock + + + + + +Node4->Node42 + + + + + + + + +Node43 + + +async_condition_wait + + + + + +Node4->Node43 + + + + + + + + +Node45 + + +async_meta_init_always + + + + + +Node4->Node45 + + + + + + + + +Node50 + + +utils_config_get_str + + + + + +Node4->Node50 + + + + + + + + +Node51 + + +system_mmap + + + + + +Node4->Node51 + + + + + + + + +Node52 + + +system_process_id + + + + + +Node4->Node52 + + + + + + + + +Node53 + + +system_total_memory + + + + + +Node4->Node53 + + + + + + + + +Node54 + + +utils_config_get_size + + + + + +Node4->Node54 + + + + + + + + +Node34 + + +utils_config_get_source + + + + + +Node4->Node34 + + + + + + + + +Node6 + + +arax_throttle_get_available_size + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +arax_object_repo_init + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +utils_list_init + + + + + +Node8->Node10 + + + + + + + + +Node12 + + +arax_pipe_add_process + + + + + +Node8->Node12 + + + + + + + + +Node13 + + +arax_throttle_init + + + + + +Node8->Node13 + + + + + + + + +Node14 + + +async_condition_init + + + + + +Node8->Node14 + + + + + + + + +Node20 + + +arch_alloc_init_always + + + + + +Node8->Node20 + + + + + + + + +Node21 + + +arch_alloc_init_once + + + + + +Node8->Node21 + + + + + + + + +Node23 + + +async_meta_init_once + + + + + +Node8->Node23 + + + + + + + + +Node38 + + +utils_kv_init + + + + + +Node8->Node38 + + + + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +utils_list_node_init + + + + + +Node10->Node11 + + + + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +async_completion_complete + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +async_completion_init + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +async_condition_unlock + + + + + +Node14->Node17 + + + + + + + + +Node19 + + +async_semaphore_init + + + + + +Node14->Node19 + + + + + + + + +Node22 + + +utils_bitmap_init + + + + + +Node21->Node22 + + + + + + + + +Node23->Node10 + + + + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +utils_config_free_path + + + + + +Node23->Node26 + + + + + + + + +Node23->Node27 + + + + + + + + +Node25 + + +system_home_path + + + + + +Node24->Node25 + + + + + + + + +Node28 + + +utils_config_get_int + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +utils_config_get_long + + + + + +Node28->Node29 + + + + + + + + +Node30 + + +_utils_config_get_str + + + + + +Node29->Node30 + + + + + + + + +Node41 + + +async_completion_wait + + + + + +Node40->Node41 + + + + + + + + +Node42->Node15 + + + + + + + + +Node43->Node15 + + + + + + + + +Node43->Node41 + + + + + + + + +Node44 + + +async_semaphore_dec + + + + + +Node43->Node44 + + + + + + + + +Node45->Node24 + + + + + + + + +Node45->Node26 + + + + + + + + +Node46 + + +async_thread + + + + + +Node45->Node46 + + + + + + + + +Node45->Node50 + + + + + + + + +Node47 + + +async_completion_check + + + + + +Node46->Node47 + + + + + + + + +Node48 + + +getVmID + + + + + +Node46->Node48 + + + + + + + + +Node49 + + +utils_list_del + + + + + +Node46->Node49 + + + + + + + + +Node50->Node30 + + + + + + + + +Node36 + + +utils_config_write_str + + + + + +Node50->Node36 + + + + + + + + +Node33 + + +system_file_size + + + + + +Node51->Node33 + + + + + + + + +Node54->Node29 + + + + + + + + +Node32 + + +system_env_var + + + + + +Node34->Node32 + + + + + + + + diff --git a/a01919_afeaab7d93372f0752d59c70d9c5940e7_icgraph.map b/a01919_afeaab7d93372f0752d59c70d9c5940e7_icgraph.map new file mode 100644 index 00000000..b62c55cc --- /dev/null +++ b/a01919_afeaab7d93372f0752d59c70d9c5940e7_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01919_afeaab7d93372f0752d59c70d9c5940e7_icgraph.md5 b/a01919_afeaab7d93372f0752d59c70d9c5940e7_icgraph.md5 new file mode 100644 index 00000000..682e70dd --- /dev/null +++ b/a01919_afeaab7d93372f0752d59c70d9c5940e7_icgraph.md5 @@ -0,0 +1 @@ +2498ba139a761df34f5f0a446277ea50 \ No newline at end of file diff --git a/a01919_afeaab7d93372f0752d59c70d9c5940e7_icgraph.svg b/a01919_afeaab7d93372f0752d59c70d9c5940e7_icgraph.svg new file mode 100644 index 00000000..494be1b9 --- /dev/null +++ b/a01919_afeaab7d93372f0752d59c70d9c5940e7_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_data_ref + + +Node1 + + +arax_data_ref + + + + + +Node2 + + +arax_data_ref_offset + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01919_source.html b/a01919_source.html new file mode 100644 index 00000000..b8d74127 --- /dev/null +++ b/a01919_source.html @@ -0,0 +1,589 @@ + + + + + + + +Arax: arax_data.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_data.c
+
+
+Go to the documentation of this file.
1#include "arax_data.h"
+
2#include "arax_task.h"
+
3#include "arax_data_private.h"
+
4#include "arax_pipe.h"
+
5#include "arax_ptr.h"
+
6#include <string.h>
+
7#include <stdlib.h>
+
8#include "utils/system.h"
+
9
+
10// #define printd(...) fprintf(__VA_ARGS__)
+
11#define printd(...)
+
12
+
13#define VDFLAG(DATA, FLAG) (DATA->flags & FLAG)// ((size_t*)BUFF-1) same pointer arithmetics//
+
14#define VD_BUFF_OWNER(BUFF) *(arax_data_s **) ((char *) BUFF - sizeof(size_t *))
+
15
+ +
17{
+
18 return arax_data_init_aligned(vpipe, size, 1);
+
19} /* arax_data_init */
+
20
+ +
22{
+
23 arax_data_s *data;
+
24 size_t alloc_size = sizeof(arax_data_s) + ARAX_BUFF_ALLOC_SIZE(size, align);
+
25
+
26 arax_assert(align);
+
27
+ + +
30 "UNUSED", alloc_size, 1);
+
31
+
32 if (!data) // GCOV_EXCL_LINE
+
33 return 0; // GCOV_EXCL_LINE
+
34
+
35 uint64_t *buff_ptr = (uint64_t *) (data + 1); // Skip the struct
+
36
+
37 buff_ptr++; // Skip a back_pointer
+
38 buff_ptr = (uint64_t *) (((char *) buff_ptr) + align - (((size_t) buff_ptr) % align));// Align ptr;
+
39 arax_data_s **back_pointer = (arax_data_s **) (buff_ptr - 1);
+
40
+
41 *back_pointer = data;
+
42
+
43 data->size = size;
+
44 data->buffer = buff_ptr;
+
45 data->align = align;
+
46 data->flags = 0;
+
47 data->phys = 0; // required for migration
+
48
+
49 return data;
+
50} /* arax_data_init_aligned */
+
51
+
52void arax_data_get(arax_data *data, void *user)
+
53{
+
54 arax_proc_s *get_proc = arax_proc_get(__func__);
+
55
+ +
57 arax_data_s *vd = (arax_data_s *) data;
+
58
+
59 arax_assert(vd->accel);
+
60
+
61 // We must wait all previous operations to complete to ensure we get
+
62 // up to date data.Also have to synchronize data up to shm.
+
63
+
64 arax_task_msg_s *task = arax_task_issue(vd->accel, get_proc, 0, arax_data_size(data), 0, 0, 1, &data);
+
65
+ +
67
+
68 memcpy(user, arax_task_host_data(task, arax_data_size(vd)), arax_data_size(vd));
+
69
+
70 arax_task_free(task);
+
71
+
72 arax_proc_put(get_proc);
+
73}
+
74
+
75void arax_data_set(arax_data *data, arax_accel *accel, const void *user)
+
76{
+
77 arax_proc_s *set_proc = arax_proc_get(__func__);
+
78
+ +
80 arax_data_s *vd = (arax_data_s *) data;
+
81
+
82 // If already submitted to a vac, it should be at the same
+
83 arax_assert( (!(vd->accel)) || (vd->accel == accel) );
+
84 if (vd->accel == 0)
+ +
86 vd->accel = accel;
+
87
+
88 size_t size = arax_data_size(vd);
+
89
+
90 arax_task_issue(accel, set_proc, (void *) user, size, 0, 0, 1, &data);
+
91
+
92 arax_proc_put(set_proc);
+
93}
+
94
+
95void arax_data_memcpy(arax_accel *accel, arax_data_s *dst, arax_data_s *src, int block)
+
96{
+ + +
99
+
100 if (dst == src)
+
101 return;
+
102
+
103 if (arax_data_size(dst) != arax_data_size(src)) {
+
104 fprintf(stderr, "%s(%p,%p): Size mismatch (%lu,%lu)\n", __func__, dst, src, arax_data_size(dst),
+
105 arax_data_size(src));
+
106 arax_assert(!"Size mismatch");
+
107 }
+
108 fprintf(stderr, "%s(%p,%p)[%lu,%lu]\n", __func__, dst, src, dst->flags, src->flags);
+
109
+
110 arax_data_get(src, 0);
+
111
+
112 arax_data_set(dst, accel, arax_data_deref(src));
+
113}
+
114
+
115#define TYPE_MASK(A, B) ( ( (A) *ARAX_TYPE_COUNT ) + (B) )
+
116
+ +
118{
+ +
120 arax_assert(accel); // Must be given a valid accelerator
+
121
+
122 if (data->accel == accel) // Already assigned to accel - nop
+
123 return;
+
124
+
125 if (!data->accel) { // Unassinged data - assign and increase accel
+
126 arax_assert(!data->remote); // How can you have a remote ptr, with no accel?
+ +
128 data->accel = accel;
+
129 return;
+
130 }
+
131
+
132 arax_object_type_e data_accel_type = ((arax_object_s *) (data->accel))->type;
+
133 arax_object_type_e accel_accel_type = ((arax_object_s *) (accel))->type;
+
134
+
135 switch (TYPE_MASK(data_accel_type, accel_accel_type) ) {
+ +
137 arax_vaccel_s *dvac = (arax_vaccel_s *) (data->accel);
+
138 arax_vaccel_s *avac = (arax_vaccel_s *) (accel);
+
139 if (dvac->phys == avac->phys) { // Both use the same physical accel - just migrate ref counts
+ + +
142 data->accel = accel;
+
143 return;
+
144 } else { // Device 2 Device migration - migrate data and ref counts
+
145 fprintf(stderr, "Different device data migration!\n");
+
146 arax_assert(!"arax_data_migrate_accel: D2D not implemented!");
+
147 }
+
148 }
+
149 break;
+
150 default: {
+
151 fprintf(stderr, "%s():Data migration not implemented(%s:%s,%s:%s)!\n",
+
152 __func__,
+
153 arax_object_type_to_str(data_accel_type), ((arax_object_s *) (data->accel))->name,
+
154 arax_object_type_to_str(accel_accel_type), ((arax_object_s *) (accel))->name
+
155 );
+
156 arax_assert(!"No migration possible");
+
157 }
+
158 break;
+
159 }
+
160} /* arax_data_migrate_accel */
+
161
+ +
163{
+ + +
166
+
167 if ( ((arax_vaccel_s *) accel)->type == CPU)
+
168 return; // CPU does not have a 'remote', so nothing to do
+
169
+
170 if (data->remote) {
+
171 arax_assert(data->accel); // Allocate remote must have accel
+
172 return; // Nothing left to do
+
173 }
+
174
+
175 if (!accel) {
+ +
177 data->accel = accel;
+
178 }
+
179
+
180 ARAX_THROTTLE_DEBUG_PRINT("%s(%p) - start\n", __func__, data);
+
181
+
182 arax_proc_s *alloc_data = arax_proc_get("alloc_data");
+
183 arax_task_msg_s *task = arax_task_issue(accel, alloc_data, 0, 0, 0, 0, 1, (arax_data **) &data);
+
184
+ +
186 arax_task_free(task);
+
187 arax_assert(data->remote); // Ensure remote was allocated
+
188
+
189 arax_assert(data->accel == accel);
+
190
+
191 arax_accel_size_dec(((arax_vaccel_s *) accel)->phys, arax_data_size(data));
+
192 ARAX_THROTTLE_DEBUG_PRINT("%s(%p) - end\n", __func__, data);
+
193}
+
194
+ +
196{
+ + +
199
+
200 if (data->accel != accel) {
+
201 data->accel = accel;
+
202 arax_object_ref_inc(accel);
+
203 }
+
204}
+
205
+
206void arax_data_set_remote(arax_data_s *data, arax_accel *accel, void *remt)
+
207{
+ + +
210 arax_assert(((arax_vaccel_s *) accel)->type != CPU);
+
211 arax_assert(data->accel == 0);
+
212 arax_assert(data->remote == 0);
+
213
+ +
215 data->accel = accel;
+
216 data->remote = remt;
+
217 data->flags |= OTHR_REMT;
+
218}
+
219
+ +
221{
+
222 // check errors
+ +
224 arax_assert(accel);
+
225
+
226 arax_data_migrate_accel(data, accel);
+
227}
+
228
+ +
230{
+
231 // check errors
+ +
233 arax_assert(accel);
+
234
+
235 arax_object_ref_inc(&(data->obj));
+
236
+
237 arax_data_migrate_accel(data, accel);
+
238}
+
239
+ +
241{
+
242 // check errors
+ +
244 arax_assert(accel);
+
245
+
246 arax_object_ref_inc(&(data->obj));
+
247
+
248 arax_data_migrate_accel(data, accel);
+
249}
+
250
+ +
252{
+ +
254 arax_data_s *vdata;
+
255
+
256 vdata = data;
+
257 return vdata->size;
+
258}
+
259
+ +
261{
+ +
263 arax_data_s *vdata;
+
264
+
265 vdata = (arax_data_s *) data;
+
266
+
267 ARAX_THROTTLE_DEBUG_PRINT("%s(%p) - start\n", __func__, data);
+
268
+
269 ARAX_THROTTLE_DEBUG_PRINT("%s(%p) - end\n", __func__, data);
+
270
+
271 return vdata->buffer;
+
272}
+
273
+ +
275{
+
276 arax_assert(data);
+
277
+
278 arax_data_s *vdata = VD_BUFF_OWNER(data);
+
279
+
280 // GCOV_EXCL_START
+
281 if (!vdata)
+
282 return 0;
+
283
+
284 if (!arax_ptr_valid(vdata))
+
285 return 0;
+
286
+
287 if (vdata->obj.type != ARAX_TYPE_DATA)
+
288 return 0;
+
289
+
290 // GCOV_EXCL_STOP
+
291
+
292 return vdata;
+
293}
+
294
+ +
296{
+
297 arax_assert(data);
+ +
299 // Might be at the start
+
300 arax_data_s *ret = arax_data_ref(data);
+
301
+
302 if (ret)
+
303 return ret;
+
304
+ + +
307
+
308 utils_list_for_each(*datas, itr)
+
309 {
+
310 arax_data_s *vd = (arax_data_s *) (itr->owner);
+
311 void *start = arax_data_deref(vd);
+
312 void *end = start + arax_data_size(vd);
+
313
+
314 if (data > start && data < end) {
+
315 ret = vd;
+
316 break; // Found it!
+
317 }
+
318 }
+
319
+ +
321
+
322 return ret;
+
323}
+
324
+ +
326{
+ +
328 arax_data_s *vdata;
+
329
+
330 vdata = (arax_data_s *) data;
+
331 arax_object_ref_dec(&(vdata->obj));
+
332}
+
333
+ +
335{
+ +
337 arax_data_s *vdata;
+
338
+
339 vdata = (arax_data_s *) data;
+
340
+
341 return !!(vdata->remote);
+
342}
+
343
+
344#undef arax_data_stat
+
345
+
346void arax_data_stat(arax_data *data, const char *file, size_t line)
+
347{
+ +
349 arax_data_s *vdata;
+
350
+
351 vdata = (arax_data_s *) data;
+
352
+
353 file += strlen(file);
+
354 while (*file != '/')
+
355 file--;
+
356
+
357 int scsum = 0;
+
358 int cnt;
+
359 char *bytes = arax_data_deref(data);
+
360
+
361 for (cnt = 0; cnt < arax_data_size(data); cnt++) {
+
362 scsum += *bytes;
+
363 bytes++;
+
364 }
+
365
+
366 fprintf(stderr, "%s(%p)[%lu]:Flags(%s) %08x ?????? @%lu:%s\n", __func__, vdata, arax_data_size(vdata),
+
367 (vdata->flags & OTHR_REMT) ? "O" : " ",
+
368 scsum,
+
369 line, file
+
370 );
+
371} /* arax_data_stat */
+
372
+ +
374{
+ +
376 arax_data_s *data = (arax_data_s *) obj;
+
377
+
378 ARAX_THROTTLE_DEBUG_PRINT("%s(%p) - START\n", __func__, data);
+
379
+
380 if (data->remote && ((data->flags & OTHR_REMT) == 0)) {
+
381 if (!data->phys) {
+
382 fprintf(stderr, "arax_data(%p) dtor called, with dangling remote, with no accel!\n", data);
+
383 arax_assert(!"Orphan dangling remote");
+
384 } else {
+
385 void *args[4] =
+
386 { data, data->remote, (void *) (size_t) data->size, (arax_vaccel_s *) data->phys };
+
387 ARAX_THROTTLE_DEBUG_PRINT("Atempt to free %p %p size:%lu\n", data, data->remote, arax_data_size(data));
+
388 arax_proc_s *free = arax_proc_get("free");
+
389 arax_task_issue(data->phys->free_vaq, free, args, sizeof(args), 0, 0, 0, 0);
+ +
391 }
+
392 } else {
+
393 if (data->accel) {
+
394 arax_assert(((arax_object_s *) (data->accel))->type == ARAX_TYPE_VIRT_ACCEL);
+ +
396 } else {
+
397 fprintf(stderr, "arax_data(%p,%s,size:%lu) dtor called, data possibly unused!\n", data, obj->name, arax_data_size(
+
398 data));
+
399 }
+
400 }
+
401
+
402 obj->type = ARAX_TYPE_COUNT;
+
403}
+ +
void arax_accel
Definition arax_types.h:9
+
@ CPU
Definition arax_types.h:87
+
@ task_completed
Definition arax_types.h:65
+
void arax_data
Definition arax_types.h:56
+
#define arax_assert(EXPR)
Definition arax_assert.h:7
+
#define arax_assert_obj(OBJ, TYPE)
Definition arax_assert.h:12
+
#define utils_list_for_each(list, itr)
Definition list.h:96
+ + +
@ OTHR_REMT
Definition arax_data.h:29
+
#define arax_data_stat(DATA)
Definition arax_data.h:152
+
#define ARAX_BUFF_ALLOC_SIZE(SIZE, ALIGN)
Definition arax_data.h:16
+ +
enum arax_object_type arax_object_type_e
+
@ ARAX_TYPE_DATA
Definition arax_object.h:19
+
@ ARAX_TYPE_COUNT
Definition arax_object.h:21
+
@ ARAX_TYPE_VIRT_ACCEL
Definition arax_object.h:17
+
#define ARAX_OBJ_DTOR_DECL(TYPE)
+ + +
#define ARAX_THROTTLE_DEBUG_PRINT(...)
+
arax_pipe_s * vpipe
Definition impl.c:17
+
void ARAX_THROTTLE_DEBUG_ACCEL_FUNC() arax_accel_size_dec(arax_accel *accel, size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS)
Definition arax_accel.c:59
+
void arax_data_arg_init(arax_data_s *data, arax_accel *accel)
Definition arax_data.c:220
+
void arax_data_output_init(arax_data_s *data, arax_accel *accel)
Definition arax_data.c:240
+
void * arax_data_deref(arax_data *data)
Definition arax_data.c:260
+
void arax_data_input_init(arax_data_s *data, arax_accel *accel)
Definition arax_data.c:229
+
size_t arax_data_size(arax_data *data)
Definition arax_data.c:251
+
void arax_data_migrate_accel(arax_data_s *data, arax_accel *accel)
Definition arax_data.c:117
+
arax_data_s * arax_data_init_aligned(arax_pipe_s *vpipe, size_t size, size_t align)
Definition arax_data.c:21
+
int arax_data_has_remote(arax_data *data)
Definition arax_data.c:334
+
void arax_data_get(arax_data *data, void *user)
Definition arax_data.c:52
+
void arax_data_memcpy(arax_accel *accel, arax_data_s *dst, arax_data_s *src, int block)
Definition arax_data.c:95
+
void arax_data_set(arax_data *data, arax_accel *accel, const void *user)
Definition arax_data.c:75
+
void arax_data_free(arax_data *data)
Definition arax_data.c:325
+
#define TYPE_MASK(A, B)
Definition arax_data.c:115
+
#define VD_BUFF_OWNER(BUFF)
Definition arax_data.c:14
+
arax_data * arax_data_ref_offset(arax_pipe_s *vpipe, void *data)
Definition arax_data.c:295
+
void arax_data_set_remote(arax_data_s *data, arax_accel *accel, void *remt)
Definition arax_data.c:206
+
void arax_data_set_accel(arax_data_s *data, arax_accel *accel)
Definition arax_data.c:195
+
arax_data_s * arax_data_init(arax_pipe_s *vpipe, size_t size)
Definition arax_data.c:16
+
void arax_data_allocate_remote(arax_data_s *data, arax_accel *accel)
Definition arax_data.c:162
+
arax_data * arax_data_ref(void *data)
Definition arax_data.c:274
+
arax_object_s * arax_object_register(arax_object_repo_s *repo, arax_object_type_e type, const char *name, size_t size, const int ref_count)
Definition arax_object.c:98
+
const char * arax_object_type_to_str(arax_object_type_e type)
Definition arax_object.c:90
+
void arax_object_ref_inc(arax_object_s *obj)
+
utils_list_s * arax_object_list_lock(arax_object_repo_s *repo, arax_object_type_e type)
+
void arax_object_list_unlock(arax_object_repo_s *repo, arax_object_type_e type)
+
int arax_object_ref_dec(arax_object_s *obj)
+
int arax_ptr_valid(const void *ptr)
Definition arax_ptr.c:4
+
void * arax_task_host_data(arax_task_msg_s *task, size_t size)
Definition arax_task.c:51
+
int arax_proc_put(arax_proc *func)
Definition impl.c:413
+
arax_proc * arax_proc_get(const char *func_name)
Definition impl.c:400
+
void arax_task_free(arax_task *task)
Definition impl.c:524
+
arax_task * arax_task_issue(arax_accel *accel, arax_proc *proc, const void *host_init, size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count, arax_data **dev_out)
Definition impl.c:467
+
arax_task_state_e arax_task_wait(arax_task *task)
Definition impl.c:515
+
arax_vaccel_s * free_vaq
Definition arax_accel.h:25
+ +
void * buffer
Definition arax_data.h:46
+
arax_object_s obj
Definition arax_data.h:38
+
size_t size
Definition arax_data.h:43
+
void * remote
Definition arax_data.h:40
+
arax_accel * accel
Definition arax_data.h:42
+
arax_accel_s * phys
Definition arax_data.h:47
+
size_t align
Definition arax_data.h:44
+
size_t flags
Definition arax_data.h:45
+ +
arax_object_type_e type
Definition arax_object.h:45
+ + + +
arax_accel_s * phys
Definition arax_vaccel.h:38
+ +
void * owner
Definition list.h:14
+ + +
arax_object_repo_s objs
Definition arax_pipe.h:33
+
+
+ + + + diff --git a/a01920.map b/a01920.map new file mode 100644 index 00000000..78a4e4d9 --- /dev/null +++ b/a01920.map @@ -0,0 +1,91 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01920.md5 b/a01920.md5 new file mode 100644 index 00000000..889ca99f --- /dev/null +++ b/a01920.md5 @@ -0,0 +1 @@ +908a7087216139d84b2a1891f25e8ad8 \ No newline at end of file diff --git a/a01920.svg b/a01920.svg new file mode 100644 index 00000000..caf69465 --- /dev/null +++ b/a01920.svg @@ -0,0 +1,813 @@ + + + + + + +arax_data.c + + +Node1 + + +arax_data.c + + + + + +Node2 + + +arax_data.h + + + + + +Node1->Node2 + + + + + + + + +Node23 + + +arax_task.h + + + + + +Node1->Node23 + + + + + + + + +Node25 + + +arax_data_private.h + + + + + +Node1->Node25 + + + + + + + + +Node26 + + +arax_pipe.h + + + + + +Node1->Node26 + + + + + + + + +Node28 + + +arax_ptr.h + + + + + +Node1->Node28 + + + + + + + + +Node29 + + +string.h + + + + + +Node1->Node29 + + + + + + + + +Node30 + + +stdlib.h + + + + + +Node1->Node30 + + + + + + + + +Node31 + + +utils/system.h + + + + + +Node1->Node31 + + + + + + + + +Node3 + + +arax.h + + + + + +Node2->Node3 + + + + + + + + +Node10 + + +core/arax_object.h + + + + + +Node2->Node10 + + + + + + + + +Node17 + + +async.h + + + + + +Node2->Node17 + + + + + + + + +Node18 + + +conf.h + + + + + +Node2->Node18 + + + + + + + + +Node19 + + +core/arax_accel.h + + + + + +Node2->Node19 + + + + + + + + +Node4 + + +stdio.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +stddef.h + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_types.h + + + + + +Node3->Node6 + + + + + + + + +Node9 + + +core/arax_accel_types.h + + + + + +Node3->Node9 + + + + + + + + +Node7 + + +sys/time.h + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +time.h + + + + + +Node6->Node8 + + + + + + + + +Node9->Node6 + + + + + + + + +Node11 + + +utils/list.h + + + + + +Node10->Node11 + + + + + + + + +Node13 + + +utils/spinlock.h + + + + + +Node10->Node13 + + + + + + + + +Node16 + + +arch/alloc.h + + + + + +Node10->Node16 + + + + + + + + +Node11->Node5 + + + + + + + + +Node12 + + +stdint.h + + + + + +Node11->Node12 + + + + + + + + +Node13->Node12 + + + + + + + + +Node14 + + +utils/arax_assert.h + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +compat.h + + + + + +Node14->Node15 + + + + + + + + +Node19->Node3 + + + + + + + + +Node19->Node17 + + + + + + + + +Node20 + + +core/arax_vaccel.h + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +core/arax_throttle.h + + + + + +Node19->Node22 + + + + + + + + +Node20->Node10 + + + + + + + + +Node20->Node17 + + + + + + + + +Node20->Node19 + + + + + + + + +Node21 + + +utils/queue.h + + + + + +Node20->Node21 + + + + + + + + +Node21->Node5 + + + + + + + + +Node21->Node12 + + + + + + + + +Node21->Node13 + + + + + + + + +Node21->Node18 + + + + + + + + +Node22->Node17 + + + + + + + + +Node23->Node17 + + + + + + + + +Node24 + + +core/arax_proc.h + + + + + +Node23->Node24 + + + + + + + + +Node24->Node3 + + + + + + + + +Node24->Node10 + + + + + + + + +Node25->Node2 + + + + + + + + +Node26->Node3 + + + + + + + + +Node26->Node19 + + + + + + + + +Node26->Node21 + + + + + + + + +Node26->Node23 + + + + + + + + +Node27 + + +utils/Kv.h + + + + + +Node26->Node27 + + + + + + + + +Node27->Node5 + + + + + + + + +Node27->Node13 + + + + + + + + +Node27->Node18 + + + + + + + + +Node28->Node15 + + + + + + + + +Node31->Node5 + + + + + + + + +Node32 + + +sys/types.h + + + + + +Node31->Node32 + + + + + + + + diff --git a/a01922.html b/a01922.html new file mode 100644 index 00000000..aa9222f7 --- /dev/null +++ b/a01922.html @@ -0,0 +1,966 @@ + + + + + + + +Arax: arax_object.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_object.c File Reference
+
+
+
#include "arax_object.h"
+#include "arax_pipe.h"
+#include "arax_accel.h"
+#include "arax_proc.h"
+#include "arax_task.h"
+#include "arax_data.h"
+#include <stdio.h>
+#include <string.h>
+#include <stdarg.h>
+
+ + Include dependency graph for arax_object.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Data Structures

union  arax_object_union
 
+ + + +

+Macros

#define PRINT_REFS(OBJ, DELTA)
 
+ + + +

+Typedefs

typedef void(* arax_object_dtor) (arax_pipe_s *pipe, arax_object_s *obj)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

 ARAX_OBJ_DTOR_DECL (arax_accel_s)
 
 ARAX_OBJ_DTOR_DECL (arax_vaccel_s)
 
 ARAX_OBJ_DTOR_DECL (arax_proc_s)
 
 ARAX_OBJ_DTOR_DECL (arax_task_msg_s)
 
 ARAX_OBJ_DTOR_DECL (arax_data_s)
 
void arax_object_repo_init (arax_object_repo_s *repo, arax_pipe_s *pipe)
 
int arax_object_repo_exit (arax_object_repo_s *repo)
 
const char * arax_object_type_to_str (arax_object_type_e type)
 
arax_object_sarax_object_register (arax_object_repo_s *repo, arax_object_type_e type, const char *name, size_t size, const int ref_count)
 
void arax_object_rename (arax_object_s *obj, const char *fmt,...)
 
void arax_object_ref_inc (arax_object_s *obj)
 
int arax_object_ref_dec (arax_object_s *obj)
 
int arax_object_ref_dec_pre_locked (arax_object_s *obj)
 
int arax_object_refs (arax_object_s *obj)
 
utils_list_sarax_object_list_lock (arax_object_repo_s *repo, arax_object_type_e type)
 
void arax_object_list_unlock (arax_object_repo_s *repo, arax_object_type_e type)
 
+ + + + + +

+Variables

static const char * type2str [ARAX_TYPE_COUNT]
 
static const arax_object_dtor dtor_table [ARAX_TYPE_COUNT]
 
+

Macro Definition Documentation

+ +

◆ PRINT_REFS

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define PRINT_REFS( OBJ,
 DELTA 
)
+
+ +

Definition at line 38 of file arax_object.c.

+ +
+
+

Typedef Documentation

+ +

◆ arax_object_dtor

+ +
+
+ + + + +
typedef void(* arax_object_dtor) (arax_pipe_s *pipe, arax_object_s *obj)
+
+ +

Definition at line 43 of file arax_object.c.

+ +
+
+

Function Documentation

+ +

◆ ARAX_OBJ_DTOR_DECL() [1/5]

+ +
+
+ + + + + + + + +
ARAX_OBJ_DTOR_DECL (arax_accel_s )
+
+ +

Definition at line 180 of file arax_accel.c.

+ +

References arax_accel_release(), arax_assert, arax_assert_obj, ARAX_TYPE_PHYS_ACCEL, async_condition_lock(), async_condition_unlock(), arax_accel_s::free_vaq, utils_list_s::length, arax_accel_s::lock, arax_object_s::name, arax_accel_s::obj, and arax_accel_s::vaccels.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ ARAX_OBJ_DTOR_DECL() [2/5]

+ +
+
+ + + + + + + + +
ARAX_OBJ_DTOR_DECL (arax_data_s )
+
+ +

Definition at line 373 of file arax_data.c.

+ +

References arax_data_s::accel, arax_assert, arax_assert_obj, arax_data_size(), arax_object_ref_dec(), arax_proc_get(), arax_task_issue(), ARAX_THROTTLE_DEBUG_PRINT, ARAX_TYPE_COUNT, ARAX_TYPE_DATA, ARAX_TYPE_VIRT_ACCEL, arax_data_s::flags, arax_accel_s::free_vaq, OTHR_REMT, arax_data_s::phys, arax_data_s::remote, and arax_data_s::size.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ ARAX_OBJ_DTOR_DECL() [3/5]

+ +
+
+ + + + + + + + +
ARAX_OBJ_DTOR_DECL (arax_proc_s )
+
+ +

Definition at line 41 of file arax_proc.c.

+ +
+
+ +

◆ ARAX_OBJ_DTOR_DECL() [4/5]

+ +
+
+ + + + + + + + +
ARAX_OBJ_DTOR_DECL (arax_task_msg_s )
+
+ +

Definition at line 89 of file arax_task.c.

+ +

References arax_task_msg::accel, arax_object_ref_dec(), arax_task_msg::in_count, arax_task_msg::io, and arax_task_msg::out_count.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ ARAX_OBJ_DTOR_DECL() [5/5]

+ +
+
+ + + + + + + + +
ARAX_OBJ_DTOR_DECL (arax_vaccel_s )
+
+ +

Definition at line 113 of file arax_vaccel.c.

+ +

References arax_accel_del_vaccel(), arax_assert_obj, arax_pipe_remove_orphan_vaccel(), ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::phys.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_object_list_lock()

+ +
+
+ + + + + + + + + + + + + + + + + + +
utils_list_s * arax_object_list_lock (arax_object_repo_srepo,
arax_object_type_e type 
)
+
+

Get a locked utils_list_s for traversing all objects of type.

+
Parameters
+ + + +
repoA valid arax_object_repo_s instance.
typeType of objects contained in list.
+
+
+ +

Definition at line 248 of file arax_object.c.

+ +

References arax_object_repo_s::list, arax_object_repo_s::lock, arax_object_repo_s::repo, and utils_spinlock_lock.

+ +

Referenced by arax_accel_list(), arax_data_ref_offset(), arax_pipe_delete_accel(), arax_pipe_find_accel(), and arax_pipe_find_proc().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_object_list_unlock()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_object_list_unlock (arax_object_repo_srepo,
arax_object_type_e type 
)
+
+

Unlock previously locked list. Parameters should be the same with the previous arax_object_list_locked() invocation.

+
Parameters
+ + + +
repoA valid arax_object_repo_s instance.
typeType of objects contained in list.
+
+
+ +

Definition at line 255 of file arax_object.c.

+ +

References arax_object_repo_s::lock, arax_object_repo_s::repo, and utils_spinlock_unlock.

+ +

Referenced by arax_accel_list(), arax_data_ref_offset(), arax_pipe_delete_accel(), arax_pipe_find_accel(), and arax_pipe_find_proc().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_object_ref_dec()

+ +
+
+ + + + + + + + +
int arax_object_ref_dec (arax_object_sobj)
+
+

Decrease reference count of obj.

+
Parameters
+ + +
objA valid arax_object_s instance.
+
+
+
Returns
Reference count after decreasing, 0 means object was reclaimed
+ +

Definition at line 161 of file arax_object.c.

+ +

References arax_object_s::alloc_size, arax_pipe::allocator, arax_assert, arax_pipe_size_inc(), ARAX_TYPE_COUNT, arch_alloc_free, dtor_table, arax_object_repo_s::list, arax_object_s::list, arax_object_repo_s::lock, arax_object_s::name, arax_object_repo_s::pipe, PRINT_REFS, arax_object_s::ref_count, arax_object_repo_s::repo, arax_object_s::repo, arax_object_s::type, utils_list_del(), utils_spinlock_lock, and utils_spinlock_unlock.

+ +

Referenced by arax_accel_list_free(), arax_accel_release(), arax_data_free(), arax_data_migrate_accel(), ARAX_OBJ_DTOR_DECL(), ARAX_OBJ_DTOR_DECL(), arax_pipe_delete_accel(), arax_proc_put(), and arax_task_free().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_object_ref_dec_pre_locked()

+ +
+
+ + + + + + + + +
int arax_object_ref_dec_pre_locked (arax_object_sobj)
+
+

Decrease reference count of obj.

Note
Assumes object repo lock is held.
+
Parameters
+ + +
objA valid arax_object_s instance.
+
+
+
Returns
Reference count after decreasing, 0 means object was reclaimed
+ +

Definition at line 211 of file arax_object.c.

+ +

References arax_object_s::alloc_size, arax_pipe::allocator, arax_assert, arax_pipe_size_inc(), arch_alloc_free, dtor_table, arax_object_repo_s::list, arax_object_s::list, arax_object_s::name, arax_object_repo_s::pipe, arax_object_s::ref_count, arax_object_repo_s::repo, arax_object_s::repo, arax_object_s::type, and utils_list_del().

+ +

Referenced by arax_accel_list_free_pre_locked().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_object_ref_inc()

+ +
+
+ + + + + + + + +
void arax_object_ref_inc (arax_object_sobj)
+
+

Increase reference count of obj.

+
Parameters
+ + +
objA valid arax_object_s instance.
+
+
+ +

Definition at line 145 of file arax_object.c.

+ +

References arax_assert, ARAX_TYPE_COUNT, PRINT_REFS, arax_object_s::ref_count, and arax_object_s::type.

+ +

Referenced by arax_accel_list(), arax_data_allocate_remote(), arax_data_input_init(), arax_data_migrate_accel(), arax_data_output_init(), arax_data_set(), arax_data_set_accel(), arax_data_set_remote(), arax_proc_get(), and arax_task_submit().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_object_refs()

+ +
+
+ + + + + + + + +
int arax_object_refs (arax_object_sobj)
+
+

Returns obj current reference count.

+
Parameters
+ + +
objA valid arax_object_s instance.
+
+
+ +

Definition at line 237 of file arax_object.c.

+ +

References arax_object_s::ref_count.

+ +
+
+ +

◆ arax_object_register()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
arax_object_s * arax_object_register (arax_object_repo_srepo,
arax_object_type_e type,
const char * name,
size_t size,
const int ref_count 
)
+
+

Arax Object 'Constructor'

+

Register obj at repo.

+

Note: Sets reference count to 1

+
Parameters
+ + + + + + +
repoA valid arax_object_repo_s instance.
typeType of the new arax_object.
nameThe name on the new arax_object.
sizeThe size of the new object (sizeof(struct)).
ref_countInitialize ref count
+
+
+ +

Definition at line 98 of file arax_object.c.

+ +

References arax_object_s::alloc_size, arax_pipe::allocator, arax_pipe_size_dec(), arch_alloc_allocate(), arax_object_repo_s::list, arax_object_s::list, arax_object_repo_s::lock, arax_object_s::name, arax_object_repo_s::pipe, arax_object_s::ref_count, arax_object_repo_s::repo, arax_object_s::repo, arax_object_s::type, utils_list_add(), utils_list_node_init(), utils_spinlock_lock, and utils_spinlock_unlock.

+ +

Referenced by arax_accel_init(), arax_data_init_aligned(), arax_proc_init(), arax_task_alloc(), and arax_vaccel_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_object_rename()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void arax_object_rename (arax_object_sobj,
const char * fmt,
 ... 
)
+
+

Change name of obj to printf like format fmt

+
Parameters
+ + + + +
objA valid arax_object_s instance.
fmtprintf style format string
...Args matching fmt
+
+
+ +

Definition at line 128 of file arax_object.c.

+ +

References arax_pipe::allocator, arch_alloc_allocate(), arch_alloc_free, arax_object_s::name, arax_object_repo_s::pipe, and arax_object_s::repo.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_object_repo_exit()

+ +
+
+ + + + + + + + +
int arax_object_repo_exit (arax_object_repo_srepo)
+
+

Perform cleanup and exit time checks.

+

Prints on stderr, the Objects still registered and thus considered as leaks.

+
Parameters
+ + +
repoA valid arax_object_repo_s instance.
+
+
+
Returns
Number of 'leaked' Arax Objects.
+ +

Definition at line 71 of file arax_object.c.

+ +

References ARAX_TYPE_COUNT, utils_list_s::length, arax_object_repo_s::list, arax_object_repo_s::repo, and type2str.

+ +

Referenced by arax_pipe_exit().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_object_repo_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_object_repo_init (arax_object_repo_srepo,
arax_pipe_spipe 
)
+
+

Initialize an arax_object_repo_s instance on allocated pointer repo.

+
Parameters
+ + + +
repoAn at least sizeof(arax_object_repo_s) big buffer.
pipearax_pipe_s owning all objects.
+
+
+ +

Definition at line 60 of file arax_object.c.

+ +

References ARAX_TYPE_COUNT, arax_object_repo_s::list, arax_object_repo_s::lock, arax_object_repo_s::pipe, arax_object_repo_s::repo, utils_list_init(), and utils_spinlock_init.

+ +

Referenced by arax_pipe_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_object_type_to_str()

+ +
+
+ + + + + + + + +
const char * arax_object_type_to_str (arax_object_type_e type)
+
+

Convert a arax_object_type_e value to a human readable string. If type is not a valid arax_object_type_e, then NULL is returned.

+
Returns
Returns the string representation of type
+ +

Definition at line 90 of file arax_object.c.

+ +

References ARAX_TYPE_COUNT, and type2str.

+ +

Referenced by arax_data_migrate_accel().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+

Variable Documentation

+ +

◆ dtor_table

+ +
+
+ + + + + +
+ + + + +
const arax_object_dtor dtor_table[ARAX_TYPE_COUNT]
+
+static
+
+
+ +

◆ type2str

+ +
+
+ + + + + +
+ + + + +
const char* type2str[ARAX_TYPE_COUNT]
+
+static
+
+Initial value:
= {
+
"Phys.Accel",
+
"Virt.Accel",
+
"Procedures",
+
"Arax--Data",
+
"Arax-Tasks",
+
}
+
+

Definition at line 11 of file arax_object.c.

+ +

Referenced by arax_object_repo_exit(), and arax_object_type_to_str().

+ +
+
+
+
+ + + + diff --git a/a01922.js b/a01922.js new file mode 100644 index 00000000..8f0b921d --- /dev/null +++ b/a01922.js @@ -0,0 +1,24 @@ +var a01922 = +[ + [ "arax_object_union", "a02262.html", "a02262" ], + [ "PRINT_REFS", "a01922.html#aff73040d7aead6ad7c4ea914e5ab128d", null ], + [ "arax_object_dtor", "a01922.html#aedae27fa3c302a9f4119851be84bf2ff", null ], + [ "ARAX_OBJ_DTOR_DECL", "a01922.html#a871ba8da471f464d7e10b13d5db07101", null ], + [ "ARAX_OBJ_DTOR_DECL", "a01922.html#af735744d0f8bec04394639a841d2ba0f", null ], + [ "ARAX_OBJ_DTOR_DECL", "a01922.html#a6f9d28b33cd0a625a238e122e45c7bf8", null ], + [ "ARAX_OBJ_DTOR_DECL", "a01922.html#a5eb16d4196838d10a2b57715f2eddee7", null ], + [ "ARAX_OBJ_DTOR_DECL", "a01922.html#a5920cc4cd90589f3c5ac8686a72bcfc0", null ], + [ "arax_object_list_lock", "a01922.html#aa750d1c54fe430c1294b9c8a9d3e1466", null ], + [ "arax_object_list_unlock", "a01922.html#abb03d3cde2d1354544cd082482c3f185", null ], + [ "arax_object_ref_dec", "a01922.html#afe7e4a63c40fbcaae742b8de8693483f", null ], + [ "arax_object_ref_dec_pre_locked", "a01922.html#a0a0b147b7fc892c291afe60cb0fa2c1c", null ], + [ "arax_object_ref_inc", "a01922.html#a9255b8011e6d7c9b28c7df40065efb28", null ], + [ "arax_object_refs", "a01922.html#a6d73dfc133ab87bb357df5cd76df556f", null ], + [ "arax_object_register", "a01922.html#a402bbd6fa197c2c48d527325e5e2cf5b", null ], + [ "arax_object_rename", "a01922.html#a6c73bee66b4cb5a64d949b6fbbd64498", null ], + [ "arax_object_repo_exit", "a01922.html#a305682d9ee7b1c993dbf64d4f3de2d9f", null ], + [ "arax_object_repo_init", "a01922.html#a86352ba91ba482c6688b7364d10bf956", null ], + [ "arax_object_type_to_str", "a01922.html#a668fd893484b6e2d67d8b372b508d14f", null ], + [ "dtor_table", "a01922.html#a2ea13fe4bb3a1db39a7b11b24006ee61", null ], + [ "type2str", "a01922.html#a80f4b2dd70612af76291cf92771f7cc9", null ] +]; \ No newline at end of file diff --git a/a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.map b/a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.map new file mode 100644 index 00000000..46b6631c --- /dev/null +++ b/a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.md5 b/a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.md5 new file mode 100644 index 00000000..c633d424 --- /dev/null +++ b/a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.md5 @@ -0,0 +1 @@ +bba9726835366d1e57b045f046cbd323 \ No newline at end of file diff --git a/a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.svg b/a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.svg new file mode 100644 index 00000000..68dc0ea1 --- /dev/null +++ b/a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_cgraph.svg @@ -0,0 +1,184 @@ + + + + + + +arax_object_ref_dec_pre_locked + + +Node1 + + +arax_object_ref_dec +_pre_locked + + + + + +Node2 + + +arax_pipe_size_inc + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +utils_list_del + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +arax_throttle_size_inc + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +async_condition_lock + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +async_condition_notify + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +async_condition_unlock + + + + + +Node3->Node8 + + + + + + + + +Node5 + + +async_completion_wait + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_semaphore_inc + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_completion_complete + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.map b/a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.map new file mode 100644 index 00000000..a65c4cce --- /dev/null +++ b/a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.md5 b/a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.md5 new file mode 100644 index 00000000..a81960cb --- /dev/null +++ b/a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.md5 @@ -0,0 +1 @@ +0212e50e301e2e31e452ef6bdc822bb8 \ No newline at end of file diff --git a/a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.svg b/a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.svg new file mode 100644 index 00000000..71778089 --- /dev/null +++ b/a01922_a0a0b147b7fc892c291afe60cb0fa2c1c_icgraph.svg @@ -0,0 +1,59 @@ + + + + + + +arax_object_ref_dec_pre_locked + + +Node1 + + +arax_object_ref_dec +_pre_locked + + + + + +Node2 + + +arax_accel_list_free +_pre_locked + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_list + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01922_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.map b/a01922_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.map new file mode 100644 index 00000000..2c965034 --- /dev/null +++ b/a01922_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01922_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.md5 b/a01922_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.md5 new file mode 100644 index 00000000..8848035d --- /dev/null +++ b/a01922_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.md5 @@ -0,0 +1 @@ +de5d95384d5de9b089356b94c458d6f4 \ No newline at end of file diff --git a/a01922_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.svg b/a01922_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.svg new file mode 100644 index 00000000..08bfb8c3 --- /dev/null +++ b/a01922_a305682d9ee7b1c993dbf64d4f3de2d9f_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_object_repo_exit + + +Node1 + + +arax_object_repo_exit + + + + + +Node2 + + +arax_pipe_exit + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_exit + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01922_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.map b/a01922_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.map new file mode 100644 index 00000000..7e198613 --- /dev/null +++ b/a01922_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.map @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01922_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.md5 b/a01922_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.md5 new file mode 100644 index 00000000..65adfc14 --- /dev/null +++ b/a01922_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.md5 @@ -0,0 +1 @@ +dfa4224015204d7e849bf3848826117c \ No newline at end of file diff --git a/a01922_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.svg b/a01922_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.svg new file mode 100644 index 00000000..df61fba5 --- /dev/null +++ b/a01922_a402bbd6fa197c2c48d527325e5e2cf5b_cgraph.svg @@ -0,0 +1,255 @@ + + + + + + +arax_object_register + + +Node1 + + +arax_object_register + + + + + +Node2 + + +arax_pipe_size_dec + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +arch_alloc_allocate + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +utils_list_add + + + + + +Node1->Node11 + + + + + + + + +Node13 + + +utils_list_node_init + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +arax_throttle_size_dec + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +async_condition_lock + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +async_condition_unlock + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +async_condition_wait + + + + + +Node3->Node8 + + + + + + + + +Node5 + + +async_completion_wait + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_completion_complete + + + + + +Node6->Node7 + + + + + + + + +Node8->Node5 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +async_semaphore_dec + + + + + +Node8->Node9 + + + + + + + + +Node12 + + +utils_list_node_add + + + + + +Node11->Node12 + + + + + + + + diff --git a/a01922_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.map b/a01922_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.map new file mode 100644 index 00000000..98f9b31e --- /dev/null +++ b/a01922_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.map @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01922_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.md5 b/a01922_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.md5 new file mode 100644 index 00000000..bea3ff3a --- /dev/null +++ b/a01922_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.md5 @@ -0,0 +1 @@ +cfe37f9269b69ae2797146bcc0a6d04f \ No newline at end of file diff --git a/a01922_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.svg b/a01922_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.svg new file mode 100644 index 00000000..9e983cb1 --- /dev/null +++ b/a01922_a402bbd6fa197c2c48d527325e5e2cf5b_icgraph.svg @@ -0,0 +1,346 @@ + + + + + + +arax_object_register + + +Node1 + + +arax_object_register + + + + + +Node2 + + +arax_accel_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_init_aligned + + + + + +Node1->Node3 + + + + + + + + +Node6 + + +arax_proc_init + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +arax_task_alloc + + + + + +Node1->Node8 + + + + + + + + +Node16 + + +arax_vaccel_init + + + + + +Node1->Node16 + + + + + + + + +Node4 + + +arax_data_init + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +ARAX_BUFFER + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +arax_proc_register + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +arax_task_issue + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_data_allocate +_remote + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_get + + + + + +Node9->Node11 + + + + + + + + +Node13 + + +arax_data_set + + + + + +Node9->Node13 + + + + + + + + +Node14 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node9->Node14 + + + + + + + + +Node15 + + +arax_task_issue_sync + + + + + +Node9->Node15 + + + + + + + + +Node12 + + +arax_data_memcpy + + + + + +Node11->Node12 + + + + + + + + +Node13->Node12 + + + + + + + + +Node16->Node2 + + + + + + + + +Node17 + + +arax_accel_acquire_phys + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +arax_accel_acquire_type + + + + + +Node16->Node18 + + + + + + + + diff --git a/a01922_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.map b/a01922_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.map new file mode 100644 index 00000000..162da906 --- /dev/null +++ b/a01922_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.map @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01922_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.md5 b/a01922_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.md5 new file mode 100644 index 00000000..34efdc9f --- /dev/null +++ b/a01922_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.md5 @@ -0,0 +1 @@ +bb266227cc987922ee4efb277887d7a2 \ No newline at end of file diff --git a/a01922_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.svg b/a01922_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.svg new file mode 100644 index 00000000..8a1812b0 --- /dev/null +++ b/a01922_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.svg @@ -0,0 +1,301 @@ + + + + + + +ARAX_OBJ_DTOR_DECL + + +Node1 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2 + + +arax_accel_del_vaccel + + + + + +Node1->Node2 + + + + + + + + +Node14 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node1->Node14 + + + + + + + + +Node3 + + +arax_accel_inc_revision + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_vaccel_queue_size + + + + + +Node2->Node4 + + + + + + + + +Node7 + + +async_condition_lock + + + + + +Node2->Node7 + + + + + + + + +Node9 + + +async_condition_notify + + + + + +Node2->Node9 + + + + + + + + +Node11 + + +async_condition_unlock + + + + + +Node2->Node11 + + + + + + + + +Node13 + + +utils_list_del + + + + + +Node2->Node13 + + + + + + + + +Node5 + + +arax_vaccel_queue + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +utils_queue_used_slots + + + + + +Node4->Node6 + + + + + + + + +Node8 + + +async_completion_wait + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +async_semaphore_inc + + + + + +Node9->Node10 + + + + + + + + +Node12 + + +async_completion_complete + + + + + +Node11->Node12 + + + + + + + + +Node14->Node7 + + + + + + + + +Node14->Node11 + + + + + + + + +Node14->Node13 + + + + + + + + +Node15 + + +utils_list_node_linked + + + + + +Node14->Node15 + + + + + + + + diff --git a/a01922_a5eb16d4196838d10a2b57715f2eddee7_cgraph.map b/a01922_a5eb16d4196838d10a2b57715f2eddee7_cgraph.map new file mode 100644 index 00000000..f6f99e3c --- /dev/null +++ b/a01922_a5eb16d4196838d10a2b57715f2eddee7_cgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01922_a5eb16d4196838d10a2b57715f2eddee7_cgraph.md5 b/a01922_a5eb16d4196838d10a2b57715f2eddee7_cgraph.md5 new file mode 100644 index 00000000..65cf5f28 --- /dev/null +++ b/a01922_a5eb16d4196838d10a2b57715f2eddee7_cgraph.md5 @@ -0,0 +1 @@ +411db46fcfc170cae55221556d23373c \ No newline at end of file diff --git a/a01922_a5eb16d4196838d10a2b57715f2eddee7_cgraph.svg b/a01922_a5eb16d4196838d10a2b57715f2eddee7_cgraph.svg new file mode 100644 index 00000000..dabcf93e --- /dev/null +++ b/a01922_a5eb16d4196838d10a2b57715f2eddee7_cgraph.svg @@ -0,0 +1,201 @@ + + + + + + +ARAX_OBJ_DTOR_DECL + + +Node1 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2 + + +arax_object_ref_dec + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_size_inc + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +utils_list_del + + + + + +Node2->Node11 + + + + + + + + +Node4 + + +arax_throttle_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_condition_notify + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +async_condition_unlock + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_semaphore_inc + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +async_completion_complete + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01922_a668fd893484b6e2d67d8b372b508d14f_icgraph.map b/a01922_a668fd893484b6e2d67d8b372b508d14f_icgraph.map new file mode 100644 index 00000000..586d8082 --- /dev/null +++ b/a01922_a668fd893484b6e2d67d8b372b508d14f_icgraph.map @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01922_a668fd893484b6e2d67d8b372b508d14f_icgraph.md5 b/a01922_a668fd893484b6e2d67d8b372b508d14f_icgraph.md5 new file mode 100644 index 00000000..378278eb --- /dev/null +++ b/a01922_a668fd893484b6e2d67d8b372b508d14f_icgraph.md5 @@ -0,0 +1 @@ +42fdeb356a5b0b612d55065744636de2 \ No newline at end of file diff --git a/a01922_a668fd893484b6e2d67d8b372b508d14f_icgraph.svg b/a01922_a668fd893484b6e2d67d8b372b508d14f_icgraph.svg new file mode 100644 index 00000000..bbad6dba --- /dev/null +++ b/a01922_a668fd893484b6e2d67d8b372b508d14f_icgraph.svg @@ -0,0 +1,256 @@ + + + + + + +arax_object_type_to_str + + +Node1 + + +arax_object_type_to_str + + + + + +Node2 + + +arax_data_migrate_accel + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_arg_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_input_init + + + + + +Node2->Node4 + + + + + + + + +Node13 + + +arax_data_output_init + + + + + +Node2->Node13 + + + + + + + + +Node5 + + +arax_task_alloc + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_task_issue + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_data_allocate +_remote + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_get + + + + + +Node6->Node8 + + + + + + + + +Node10 + + +arax_data_set + + + + + +Node6->Node10 + + + + + + + + +Node11 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node6->Node11 + + + + + + + + +Node12 + + +arax_task_issue_sync + + + + + +Node6->Node12 + + + + + + + + +Node9 + + +arax_data_memcpy + + + + + +Node8->Node9 + + + + + + + + +Node10->Node9 + + + + + + + + +Node13->Node5 + + + + + + + + diff --git a/a01922_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.map b/a01922_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.map new file mode 100644 index 00000000..25909682 --- /dev/null +++ b/a01922_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01922_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.md5 b/a01922_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.md5 new file mode 100644 index 00000000..93b36e9f --- /dev/null +++ b/a01922_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.md5 @@ -0,0 +1 @@ +c8e0723a8c58366045f3b805c8650cb0 \ No newline at end of file diff --git a/a01922_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.svg b/a01922_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.svg new file mode 100644 index 00000000..a5167445 --- /dev/null +++ b/a01922_a6c73bee66b4cb5a64d949b6fbbd64498_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_object_rename + + +Node1 + + +arax_object_rename + + + + + +Node2 + + +arch_alloc_allocate + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01922_a86352ba91ba482c6688b7364d10bf956_cgraph.map b/a01922_a86352ba91ba482c6688b7364d10bf956_cgraph.map new file mode 100644 index 00000000..347fd023 --- /dev/null +++ b/a01922_a86352ba91ba482c6688b7364d10bf956_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01922_a86352ba91ba482c6688b7364d10bf956_cgraph.md5 b/a01922_a86352ba91ba482c6688b7364d10bf956_cgraph.md5 new file mode 100644 index 00000000..468f42db --- /dev/null +++ b/a01922_a86352ba91ba482c6688b7364d10bf956_cgraph.md5 @@ -0,0 +1 @@ +fe0973e4c40efebc4865be28b008099b \ No newline at end of file diff --git a/a01922_a86352ba91ba482c6688b7364d10bf956_cgraph.svg b/a01922_a86352ba91ba482c6688b7364d10bf956_cgraph.svg new file mode 100644 index 00000000..91d3eb34 --- /dev/null +++ b/a01922_a86352ba91ba482c6688b7364d10bf956_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_object_repo_init + + +Node1 + + +arax_object_repo_init + + + + + +Node2 + + +utils_list_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +utils_list_node_init + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01922_a86352ba91ba482c6688b7364d10bf956_icgraph.map b/a01922_a86352ba91ba482c6688b7364d10bf956_icgraph.map new file mode 100644 index 00000000..b5f09563 --- /dev/null +++ b/a01922_a86352ba91ba482c6688b7364d10bf956_icgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01922_a86352ba91ba482c6688b7364d10bf956_icgraph.md5 b/a01922_a86352ba91ba482c6688b7364d10bf956_icgraph.md5 new file mode 100644 index 00000000..1cd5149f --- /dev/null +++ b/a01922_a86352ba91ba482c6688b7364d10bf956_icgraph.md5 @@ -0,0 +1 @@ +48f4c8d5b1506154676a84462b64d7f7 \ No newline at end of file diff --git a/a01922_a86352ba91ba482c6688b7364d10bf956_icgraph.svg b/a01922_a86352ba91ba482c6688b7364d10bf956_icgraph.svg new file mode 100644 index 00000000..df031e0a --- /dev/null +++ b/a01922_a86352ba91ba482c6688b7364d10bf956_icgraph.svg @@ -0,0 +1,203 @@ + + + + + + +arax_object_repo_init + + +Node1 + + +arax_object_repo_init + + + + + +Node2 + + +arax_pipe_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01922_a871ba8da471f464d7e10b13d5db07101_cgraph.map b/a01922_a871ba8da471f464d7e10b13d5db07101_cgraph.map new file mode 100644 index 00000000..bb3498e5 --- /dev/null +++ b/a01922_a871ba8da471f464d7e10b13d5db07101_cgraph.map @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01922_a871ba8da471f464d7e10b13d5db07101_cgraph.md5 b/a01922_a871ba8da471f464d7e10b13d5db07101_cgraph.md5 new file mode 100644 index 00000000..a55f3b37 --- /dev/null +++ b/a01922_a871ba8da471f464d7e10b13d5db07101_cgraph.md5 @@ -0,0 +1 @@ +af9b76ff5ad3885a2cef45dcd0b65636 \ No newline at end of file diff --git a/a01922_a871ba8da471f464d7e10b13d5db07101_cgraph.svg b/a01922_a871ba8da471f464d7e10b13d5db07101_cgraph.svg new file mode 100644 index 00000000..5611c3f7 --- /dev/null +++ b/a01922_a871ba8da471f464d7e10b13d5db07101_cgraph.svg @@ -0,0 +1,237 @@ + + + + + + +ARAX_OBJ_DTOR_DECL + + +Node1 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2 + + +arax_accel_release + + + + + +Node1->Node2 + + + + + + + + +Node6 + + +async_condition_lock + + + + + +Node1->Node6 + + + + + + + + +Node10 + + +async_condition_unlock + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +arax_object_ref_dec + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_pipe_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node12 + + +utils_list_del + + + + + +Node3->Node12 + + + + + + + + +Node5 + + +arax_throttle_size_inc + + + + + +Node4->Node5 + + + + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_condition_notify + + + + + +Node5->Node8 + + + + + + + + +Node5->Node10 + + + + + + + + +Node7 + + +async_completion_wait + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_semaphore_inc + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +async_completion_complete + + + + + +Node10->Node11 + + + + + + + + diff --git a/a01922_a9255b8011e6d7c9b28c7df40065efb28_icgraph.map b/a01922_a9255b8011e6d7c9b28c7df40065efb28_icgraph.map new file mode 100644 index 00000000..ed8b4504 --- /dev/null +++ b/a01922_a9255b8011e6d7c9b28c7df40065efb28_icgraph.map @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01922_a9255b8011e6d7c9b28c7df40065efb28_icgraph.md5 b/a01922_a9255b8011e6d7c9b28c7df40065efb28_icgraph.md5 new file mode 100644 index 00000000..aaad5b21 --- /dev/null +++ b/a01922_a9255b8011e6d7c9b28c7df40065efb28_icgraph.md5 @@ -0,0 +1 @@ +65b362f24dd00c4a09e7b6116ab08e41 \ No newline at end of file diff --git a/a01922_a9255b8011e6d7c9b28c7df40065efb28_icgraph.svg b/a01922_a9255b8011e6d7c9b28c7df40065efb28_icgraph.svg new file mode 100644 index 00000000..bf026e77 --- /dev/null +++ b/a01922_a9255b8011e6d7c9b28c7df40065efb28_icgraph.svg @@ -0,0 +1,427 @@ + + + + + + +arax_object_ref_inc + + +Node1 + + +arax_object_ref_inc + + + + + +Node2 + + +arax_accel_list + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_allocate +_remote + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_data_input_init + + + + + +Node1->Node4 + + + + + + + + +Node9 + + +arax_data_set + + + + + +Node1->Node9 + + + + + + + + +Node12 + + +arax_data_migrate_accel + + + + + +Node1->Node12 + + + + + + + + +Node14 + + +arax_data_output_init + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +arax_data_set_accel + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +arax_data_set_remote + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +arax_proc_get + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +arax_task_submit + + + + + +Node1->Node18 + + + + + + + + +Node5 + + +arax_task_alloc + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_task_issue + + + + + +Node5->Node6 + + + + + + + + +Node6->Node3 + + + + + + + + +Node7 + + +arax_data_get + + + + + +Node6->Node7 + + + + + + + + +Node6->Node9 + + + + + + + + +Node10 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node6->Node10 + + + + + + + + +Node11 + + +arax_task_issue_sync + + + + + +Node6->Node11 + + + + + + + + +Node8 + + +arax_data_memcpy + + + + + +Node7->Node8 + + + + + + + + +Node9->Node8 + + + + + + + + +Node12->Node4 + + + + + + + + +Node13 + + +arax_data_arg_init + + + + + +Node12->Node13 + + + + + + + + +Node12->Node14 + + + + + + + + +Node14->Node5 + + + + + + + + +Node17->Node3 + + + + + + + + +Node17->Node7 + + + + + + + + +Node17->Node9 + + + + + + + + +Node17->Node10 + + + + + + + + +Node18->Node6 + + + + + + + + diff --git a/a01922_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.map b/a01922_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.map new file mode 100644 index 00000000..28c30678 --- /dev/null +++ b/a01922_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.map @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01922_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.md5 b/a01922_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.md5 new file mode 100644 index 00000000..b1a8009a --- /dev/null +++ b/a01922_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.md5 @@ -0,0 +1 @@ +b69447862501137039d07e3f2d980f1d \ No newline at end of file diff --git a/a01922_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.svg b/a01922_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.svg new file mode 100644 index 00000000..a4c811cc --- /dev/null +++ b/a01922_aa750d1c54fe430c1294b9c8a9d3e1466_icgraph.svg @@ -0,0 +1,247 @@ + + + + + + +arax_object_list_lock + + +Node1 + + +arax_object_list_lock + + + + + +Node2 + + +arax_accel_list + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_ref_offset + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_pipe_delete_accel + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +arax_pipe_find_accel + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +arax_pipe_find_proc + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +arax_proc_get + + + + + +Node6->Node7 + + + + + + + + +Node13 + + +arax_proc_register + + + + + +Node6->Node13 + + + + + + + + +Node8 + + +arax_data_allocate +_remote + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_get + + + + + +Node7->Node9 + + + + + + + + +Node11 + + +arax_data_set + + + + + +Node7->Node11 + + + + + + + + +Node12 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node7->Node12 + + + + + + + + +Node10 + + +arax_data_memcpy + + + + + +Node9->Node10 + + + + + + + + +Node11->Node10 + + + + + + + + diff --git a/a01922_abb03d3cde2d1354544cd082482c3f185_icgraph.map b/a01922_abb03d3cde2d1354544cd082482c3f185_icgraph.map new file mode 100644 index 00000000..3a49bbef --- /dev/null +++ b/a01922_abb03d3cde2d1354544cd082482c3f185_icgraph.map @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01922_abb03d3cde2d1354544cd082482c3f185_icgraph.md5 b/a01922_abb03d3cde2d1354544cd082482c3f185_icgraph.md5 new file mode 100644 index 00000000..eafca76c --- /dev/null +++ b/a01922_abb03d3cde2d1354544cd082482c3f185_icgraph.md5 @@ -0,0 +1 @@ +5d17bd29dbbcbf3921532d3a95487149 \ No newline at end of file diff --git a/a01922_abb03d3cde2d1354544cd082482c3f185_icgraph.svg b/a01922_abb03d3cde2d1354544cd082482c3f185_icgraph.svg new file mode 100644 index 00000000..6c13b613 --- /dev/null +++ b/a01922_abb03d3cde2d1354544cd082482c3f185_icgraph.svg @@ -0,0 +1,247 @@ + + + + + + +arax_object_list_unlock + + +Node1 + + +arax_object_list_unlock + + + + + +Node2 + + +arax_accel_list + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_ref_offset + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_pipe_delete_accel + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +arax_pipe_find_accel + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +arax_pipe_find_proc + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +arax_proc_get + + + + + +Node6->Node7 + + + + + + + + +Node13 + + +arax_proc_register + + + + + +Node6->Node13 + + + + + + + + +Node8 + + +arax_data_allocate +_remote + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_get + + + + + +Node7->Node9 + + + + + + + + +Node11 + + +arax_data_set + + + + + +Node7->Node11 + + + + + + + + +Node12 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node7->Node12 + + + + + + + + +Node10 + + +arax_data_memcpy + + + + + +Node9->Node10 + + + + + + + + +Node11->Node10 + + + + + + + + diff --git a/a01922_af735744d0f8bec04394639a841d2ba0f_cgraph.map b/a01922_af735744d0f8bec04394639a841d2ba0f_cgraph.map new file mode 100644 index 00000000..4dca8b3c --- /dev/null +++ b/a01922_af735744d0f8bec04394639a841d2ba0f_cgraph.map @@ -0,0 +1,93 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01922_af735744d0f8bec04394639a841d2ba0f_cgraph.md5 b/a01922_af735744d0f8bec04394639a841d2ba0f_cgraph.md5 new file mode 100644 index 00000000..44092ad7 --- /dev/null +++ b/a01922_af735744d0f8bec04394639a841d2ba0f_cgraph.md5 @@ -0,0 +1 @@ +4e2b628572cc74cd7939810f93b0e076 \ No newline at end of file diff --git a/a01922_af735744d0f8bec04394639a841d2ba0f_cgraph.svg b/a01922_af735744d0f8bec04394639a841d2ba0f_cgraph.svg new file mode 100644 index 00000000..888d314f --- /dev/null +++ b/a01922_af735744d0f8bec04394639a841d2ba0f_cgraph.svg @@ -0,0 +1,831 @@ + + + + + + +ARAX_OBJ_DTOR_DECL + + +Node1 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2 + + +arax_data_size + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_object_ref_dec + + + + + +Node1->Node3 + + + + + + + + +Node13 + + +arax_proc_get + + + + + +Node1->Node13 + + + + + + + + +Node18 + + +arax_task_issue + + + + + +Node1->Node18 + + + + + + + + +Node4 + + +arax_pipe_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node12 + + +utils_list_del + + + + + +Node3->Node12 + + + + + + + + +Node5 + + +arax_throttle_size_inc + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +async_condition_lock + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_condition_notify + + + + + +Node5->Node8 + + + + + + + + +Node10 + + +async_condition_unlock + + + + + +Node5->Node10 + + + + + + + + +Node7 + + +async_completion_wait + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_semaphore_inc + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +async_completion_complete + + + + + +Node10->Node11 + + + + + + + + +Node14 + + +arax_object_ref_inc + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +arax_pipe_find_proc + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +arax_object_list_lock + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +arax_object_list_unlock + + + + + +Node15->Node17 + + + + + + + + +Node19 + + +arax_task_alloc + + + + + +Node18->Node19 + + + + + + + + +Node34 + + +arax_task_host_data + + + + + +Node18->Node34 + + + + + + + + +Node35 + + +arax_task_submit + + + + + +Node18->Node35 + + + + + + + + +Node39 + + +check_semantics + + + + + +Node18->Node39 + + + + + + + + +Node20 + + +arax_data_input_init + + + + + +Node19->Node20 + + + + + + + + +Node23 + + +arax_data_output_init + + + + + +Node19->Node23 + + + + + + + + +Node24 + + +arax_object_register + + + + + +Node19->Node24 + + + + + + + + +Node33 + + +async_completion_init + + + + + +Node19->Node33 + + + + + + + + +Node20->Node14 + + + + + + + + +Node21 + + +arax_data_migrate_accel + + + + + +Node20->Node21 + + + + + + + + +Node21->Node3 + + + + + + + + +Node21->Node14 + + + + + + + + +Node22 + + +arax_object_type_to_str + + + + + +Node21->Node22 + + + + + + + + +Node23->Node14 + + + + + + + + +Node23->Node21 + + + + + + + + +Node25 + + +arax_pipe_size_dec + + + + + +Node24->Node25 + + + + + + + + +Node29 + + +arch_alloc_allocate + + + + + +Node24->Node29 + + + + + + + + +Node30 + + +utils_list_add + + + + + +Node24->Node30 + + + + + + + + +Node32 + + +utils_list_node_init + + + + + +Node24->Node32 + + + + + + + + +Node26 + + +arax_throttle_size_dec + + + + + +Node25->Node26 + + + + + + + + +Node26->Node6 + + + + + + + + +Node26->Node10 + + + + + + + + +Node27 + + +async_condition_wait + + + + + +Node26->Node27 + + + + + + + + +Node27->Node7 + + + + + + + + +Node27->Node11 + + + + + + + + +Node28 + + +async_semaphore_dec + + + + + +Node27->Node28 + + + + + + + + +Node31 + + +utils_list_node_add + + + + + +Node30->Node31 + + + + + + + + +Node33->Node32 + + + + + + + + +Node35->Node14 + + + + + + + + +Node36 + + +arax_vaccel_add_task + + + + + +Node35->Node36 + + + + + + + + +Node37 + + +arax_accel_add_task + + + + + +Node36->Node37 + + + + + + + + +Node38 + + +utils_queue_push + + + + + +Node36->Node38 + + + + + + + + +Node37->Node6 + + + + + + + + +Node37->Node8 + + + + + + + + +Node37->Node10 + + + + + + + + diff --git a/a01922_afe7e4a63c40fbcaae742b8de8693483f_cgraph.map b/a01922_afe7e4a63c40fbcaae742b8de8693483f_cgraph.map new file mode 100644 index 00000000..ce157ad4 --- /dev/null +++ b/a01922_afe7e4a63c40fbcaae742b8de8693483f_cgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01922_afe7e4a63c40fbcaae742b8de8693483f_cgraph.md5 b/a01922_afe7e4a63c40fbcaae742b8de8693483f_cgraph.md5 new file mode 100644 index 00000000..ba2b33de --- /dev/null +++ b/a01922_afe7e4a63c40fbcaae742b8de8693483f_cgraph.md5 @@ -0,0 +1 @@ +4959d158748106a2696055c3cadd1b7d \ No newline at end of file diff --git a/a01922_afe7e4a63c40fbcaae742b8de8693483f_cgraph.svg b/a01922_afe7e4a63c40fbcaae742b8de8693483f_cgraph.svg new file mode 100644 index 00000000..2d610557 --- /dev/null +++ b/a01922_afe7e4a63c40fbcaae742b8de8693483f_cgraph.svg @@ -0,0 +1,183 @@ + + + + + + +arax_object_ref_dec + + +Node1 + + +arax_object_ref_dec + + + + + +Node2 + + +arax_pipe_size_inc + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +utils_list_del + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +arax_throttle_size_inc + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +async_condition_lock + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +async_condition_notify + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +async_condition_unlock + + + + + +Node3->Node8 + + + + + + + + +Node5 + + +async_completion_wait + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_semaphore_inc + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_completion_complete + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01922_afe7e4a63c40fbcaae742b8de8693483f_icgraph.map b/a01922_afe7e4a63c40fbcaae742b8de8693483f_icgraph.map new file mode 100644 index 00000000..6f9aa995 --- /dev/null +++ b/a01922_afe7e4a63c40fbcaae742b8de8693483f_icgraph.map @@ -0,0 +1,51 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01922_afe7e4a63c40fbcaae742b8de8693483f_icgraph.md5 b/a01922_afe7e4a63c40fbcaae742b8de8693483f_icgraph.md5 new file mode 100644 index 00000000..c28a20a7 --- /dev/null +++ b/a01922_afe7e4a63c40fbcaae742b8de8693483f_icgraph.md5 @@ -0,0 +1 @@ +f39d7cc219f5899a7fee3a10aa85d272 \ No newline at end of file diff --git a/a01922_afe7e4a63c40fbcaae742b8de8693483f_icgraph.svg b/a01922_afe7e4a63c40fbcaae742b8de8693483f_icgraph.svg new file mode 100644 index 00000000..71c84e2d --- /dev/null +++ b/a01922_afe7e4a63c40fbcaae742b8de8693483f_icgraph.svg @@ -0,0 +1,454 @@ + + + + + + +arax_object_ref_dec + + +Node1 + + +arax_object_ref_dec + + + + + +Node2 + + +arax_accel_list_free + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_release + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +arax_data_free + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +arax_data_migrate_accel + + + + + +Node1->Node6 + + + + + + + + +Node15 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node1->Node15 + + + + + + + + +Node18 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +arax_pipe_delete_accel + + + + + +Node1->Node19 + + + + + + + + +Node20 + + +arax_proc_put + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +arax_task_free + + + + + +Node1->Node21 + + + + + + + + +Node4 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node3->Node4 + + + + + + + + +Node7 + + +arax_data_arg_init + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_input_init + + + + + +Node6->Node8 + + + + + + + + +Node17 + + +arax_data_output_init + + + + + +Node6->Node17 + + + + + + + + +Node9 + + +arax_task_alloc + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_task_issue + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_allocate +_remote + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_data_get + + + + + +Node10->Node12 + + + + + + + + +Node14 + + +arax_data_set + + + + + +Node10->Node14 + + + + + + + + +Node10->Node15 + + + + + + + + +Node16 + + +arax_task_issue_sync + + + + + +Node10->Node16 + + + + + + + + +Node13 + + +arax_data_memcpy + + + + + +Node12->Node13 + + + + + + + + +Node14->Node13 + + + + + + + + +Node17->Node9 + + + + + + + + +Node20->Node12 + + + + + + + + +Node20->Node14 + + + + + + + + +Node21->Node11 + + + + + + + + +Node21->Node12 + + + + + + + + +Node21->Node16 + + + + + + + + diff --git a/a01922_source.html b/a01922_source.html new file mode 100644 index 00000000..a381c2af --- /dev/null +++ b/a01922_source.html @@ -0,0 +1,430 @@ + + + + + + + +Arax: arax_object.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_object.c
+
+
+Go to the documentation of this file.
1#include "arax_object.h"
+
2#include "arax_pipe.h"
+
3#include "arax_accel.h"
+
4#include "arax_proc.h"
+
5#include "arax_task.h"
+
6#include "arax_data.h"
+
7#include <stdio.h>
+
8#include <string.h>
+
9#include <stdarg.h>
+
10
+
11static const char *type2str[ARAX_TYPE_COUNT] = {
+
12 "Phys.Accel",// "Physical Accelerators",
+
13 "Virt.Accel",// "Virtual Accelerators",
+
14 "Procedures",
+
15 "Arax--Data",
+
16 "Arax-Tasks",
+
17};
+
18
+ + + + + + +
25};
+
26
+
27#ifdef ARAX_REF_DEBUG // if(OBJ->type==1)(specify which type of object debug)
+
28#define PRINT_REFS(OBJ, DELTA) \
+
29 ({ \
+
30 if ( (1 << (OBJ->type)) & ARAX_REF_DEBUG_MASK) \
+
31 printf("%s:%s(%p,ABA:%d ,%d=>%d)\n", \
+
32 __func__, type2str[OBJ->type], \
+
33 OBJ, ((OBJ->ref_count & 0xffff0000) >> 16), \
+
34 (OBJ->ref_count & 0xffff), \
+
35 ((OBJ->ref_count & 0xffff) DELTA) & 0xffff); \
+
36 })
+
37#else
+
38#define PRINT_REFS(OBJ, DELTA)
+
39// without bitmask print
+
40// #define PRINT_REFS(OBJ,DELTA)({ if(OBJ->type==3) printf("%s(%p(%s),%d=>%d)//\n",__func__,OBJ,type2str[OBJ->type],(OBJ->ref_count), (OBJ->ref_count DELTA)) ; } )
+
41#endif /* ifdef ARAX_REF_DEBUG */
+
42
+
43typedef void (*arax_object_dtor)(arax_pipe_s *pipe, arax_object_s *obj);
+
44
+ + + + + +
50
+
51
+ + + + + + +
58};
+
59
+ +
61{
+
62 int r;
+
63
+
64 repo->pipe = pipe;
+
65 for (r = 0; r < ARAX_TYPE_COUNT; r++) {
+
66 utils_list_init(&repo->repo[r].list);
+
67 utils_spinlock_init(&repo->repo[r].lock);
+
68 }
+
69}
+
70
+ +
72{
+
73 int r;
+
74 int len;
+
75 int failed = 0;
+
76
+
77 for (r = 0; r < ARAX_TYPE_COUNT; r++) {
+
78 len = repo->repo[r].list.length;
+
79 failed += len;
+
80 if (len) {
+
81 fprintf(stderr, "%lu %*s still registered!\n",
+
82 repo->repo[r].list.length,
+
83 (int) ( strlen(type2str[r]) - (len == 1) ),
+
84 type2str[r]);
+
85 }
+
86 }
+
87 return failed;
+
88}
+
89
+ +
91{
+
92 if (type < ARAX_TYPE_COUNT)
+
93 return type2str[type];
+
94
+
95 return 0;
+
96}
+
97
+ +
99 arax_object_type_e type, const char *name, size_t size, const int ref_count)
+
100{
+
101 arax_object_s *obj;
+
102
+
103 arax_pipe_size_dec(repo->pipe, size);
+
104 obj = arch_alloc_allocate(&(repo->pipe->allocator), size);
+
105
+
106 if (!obj) // GCOV_EXCL_LINE
+
107 return 0; // GCOV_EXCL_LINE
+
108
+
109 obj->name = arch_alloc_allocate(&(repo->pipe->allocator), strlen(name) + 1);
+
110 strcpy(obj->name, name);
+
111 obj->repo = repo;
+
112 obj->alloc_size = size;
+
113 obj->type = type;
+
114 obj->ref_count = ref_count;
+
115 utils_list_node_init(&(obj->list), obj);
+
116 utils_spinlock_lock(&(repo->repo[type].lock) );
+
117 utils_list_add(&(repo->repo[type].list), &(obj->list) );
+
118 utils_spinlock_unlock(&(repo->repo[type].lock) );
+
119
+
120 if (sizeof(union arax_object_union) >= size)
+
121 memset(obj + 1, 0, size - sizeof(arax_object_s));
+
122 else
+
123 memset(obj + 1, 0, sizeof(union arax_object_union) - sizeof(arax_object_s));
+
124
+
125 return obj;
+
126}
+
127
+
128void arax_object_rename(arax_object_s *obj, const char *fmt, ...)
+
129{
+
130 va_list args;
+
131
+
132 va_start(args, fmt);
+
133 char tmp;
+
134 size_t new_size = vsnprintf(&tmp, 1, fmt, args);
+
135 size_t old_size = strlen(obj->name);
+
136
+
137 if (old_size < new_size) {
+
138 arch_alloc_free(&(obj->repo->pipe->allocator), obj->name);
+
139 obj->name = arch_alloc_allocate(&(obj->repo->pipe->allocator), new_size + 1);
+
140 }
+
141 vsprintf(obj->name, fmt, args);
+
142 va_end(args);
+
143}
+
144
+ +
146{
+
147 arax_assert(obj);
+ +
149
+
150 #ifdef ARAX_REF_DEBUG
+
151 PRINT_REFS(obj, +0x10001);
+
152 arax_assert( (obj->ref_count & 0xffff ) >= 0);
+
153 __sync_add_and_fetch(&(obj->ref_count), 0x10001);
+
154 #else
+
155 PRINT_REFS(obj, +1);
+
156 arax_assert(obj->ref_count >= 0);
+
157 __sync_add_and_fetch(&(obj->ref_count), 1);
+
158 #endif
+
159}
+
160
+ +
162{
+
163 arax_object_repo_s *repo;
+
164
+
165 arax_assert(obj);
+ +
167
+
168 repo = obj->repo;
+
169 #ifdef ARAX_REF_DEBUG
+
170 PRINT_REFS(obj, +0xffff);
+
171 arax_assert( (obj->ref_count & 0xffff ) > 0);
+
172 #else
+
173 PRINT_REFS(obj, -1);
+
174 arax_assert(obj->ref_count > 0);
+
175 #endif
+
176
+
177 utils_spinlock_lock(&(repo->repo[obj->type].lock) );
+
178
+
179 #ifdef ARAX_REF_DEBUG
+
180 int refs = __sync_add_and_fetch(&(obj->ref_count), 0xffff) & 0xffff;
+
181 #else
+
182 int refs = __sync_add_and_fetch(&(obj->ref_count), -1);
+
183 #endif
+
184 if (!refs) { // Seems to be no longer in use, must free it
+
185 #ifdef ARAX_REF_DEBUG
+
186 if (refs == (obj->ref_count & 0xffff ))
+
187 #else
+
188 if (refs == obj->ref_count)
+
189 #endif
+
190 { // Ensure nobody changed the ref count
+
191 utils_list_del(&(repo->repo[obj->type].list), &(obj->list) ); // remove it from repo
+
192 }
+
193 utils_spinlock_unlock(&(repo->repo[obj->type].lock) );
+
194
+
195 dtor_table[obj->type](repo->pipe, obj);
+
196
+
197 size_t size = obj->alloc_size;
+
198
+
199 arch_alloc_free(&(repo->pipe->allocator), obj->name);
+
200
+
201 arch_alloc_free(&(repo->pipe->allocator), obj);
+
202
+
203 arax_pipe_size_inc(repo->pipe, size);
+
204 } else {
+
205 utils_spinlock_unlock(&(repo->repo[obj->type].lock) );
+
206 }
+
207
+
208 return refs;
+
209} /* arax_object_ref_dec */
+
210
+ +
212{
+
213 #ifdef ARAX_REF_DEBUG
+
214 int refs = __sync_add_and_fetch(&(obj->ref_count), 0xffff) & 0xffff;
+
215 #else
+
216 int refs = __sync_add_and_fetch(&(obj->ref_count), -1);
+
217 #endif
+
218 if (!refs) { // Seems to be no longer in use, must free it
+
219 arax_object_repo_s *repo = obj->repo;
+
220 utils_list_del(&(repo->repo[obj->type].list), &(obj->list) ); // remove it from repo
+
221 dtor_table[obj->type](repo->pipe, obj);
+
222
+
223 size_t size = obj->alloc_size;
+
224
+
225 arch_alloc_free(&(repo->pipe->allocator), obj->name);
+
226
+
227 arch_alloc_free(&(repo->pipe->allocator), obj);
+
228
+
229 arax_pipe_size_inc(repo->pipe, size);
+
230 }
+
231
+
232 arax_assert(refs >= 0);
+
233
+
234 return refs;
+
235}
+
236
+ +
238{
+
239 #ifdef ARAX_REF_DEBUG
+
240 return (obj->ref_count & 0xffff);
+
241
+
242 #else
+
243 return obj->ref_count;
+
244
+
245 #endif
+
246}
+
247
+ + +
250{
+
251 utils_spinlock_lock(&(repo->repo[type].lock) );
+
252 return &(repo->repo[type].list);
+
253}
+
254
+ +
256{
+
257 utils_spinlock_unlock(&(repo->repo[type].lock) );
+
258}
+ +
#define arch_alloc_free(ALLOC, MEM)
Definition alloc.h:70
+
void * arch_alloc_allocate(arch_alloc_s *alloc, size_t size)
+
#define arax_assert(EXPR)
Definition arax_assert.h:7
+ + + +
enum arax_object_type arax_object_type_e
+
@ ARAX_TYPE_COUNT
Definition arax_object.h:21
+
#define ARAX_OBJ_DTOR_USE(TYPE)
+
#define ARAX_OBJ_DTOR_DECL(TYPE)
+ + +
int arax_object_ref_dec_pre_locked(arax_object_s *obj)
+
static const arax_object_dtor dtor_table[ARAX_TYPE_COUNT]
Definition arax_object.c:52
+
int arax_object_repo_exit(arax_object_repo_s *repo)
Definition arax_object.c:71
+
arax_object_s * arax_object_register(arax_object_repo_s *repo, arax_object_type_e type, const char *name, size_t size, const int ref_count)
Definition arax_object.c:98
+
const char * arax_object_type_to_str(arax_object_type_e type)
Definition arax_object.c:90
+
void arax_object_rename(arax_object_s *obj, const char *fmt,...)
+
int arax_object_refs(arax_object_s *obj)
+
static const char * type2str[ARAX_TYPE_COUNT]
Definition arax_object.c:11
+
void arax_object_repo_init(arax_object_repo_s *repo, arax_pipe_s *pipe)
Definition arax_object.c:60
+
void arax_object_ref_inc(arax_object_s *obj)
+
utils_list_s * arax_object_list_lock(arax_object_repo_s *repo, arax_object_type_e type)
+
void arax_object_list_unlock(arax_object_repo_s *repo, arax_object_type_e type)
+
void(* arax_object_dtor)(arax_pipe_s *pipe, arax_object_s *obj)
Definition arax_object.c:43
+
int arax_object_ref_dec(arax_object_s *obj)
+
#define PRINT_REFS(OBJ, DELTA)
Definition arax_object.c:38
+
void ARAX_PIPE_THOTTLE_DEBUG_FUNC() arax_pipe_size_dec(arax_pipe_s *pipe, size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS)
Definition arax_pipe.c:259
+
void ARAX_PIPE_THOTTLE_DEBUG_FUNC() arax_pipe_size_inc(arax_pipe_s *pipe, size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS)
Definition arax_pipe.c:253
+
utils_list_node_s * utils_list_del(utils_list_s *list, utils_list_node_s *node)
Definition list.c:26
+
void utils_list_node_init(utils_list_node_s *node, void *owner)
Definition list.c:74
+
utils_list_s * utils_list_init(void *mem)
Definition list.c:3
+
void utils_list_add(utils_list_s *list, utils_list_node_s *node)
Definition list.c:20
+
#define utils_spinlock_lock(V)
Definition queue.c:35
+
#define utils_spinlock_init(V)
Definition queue.c:34
+
#define utils_spinlock_unlock(V)
Definition queue.c:36
+ + + +
arax_vaccel_s vaccel
Definition arax_object.c:21
+
arax_proc_s proc
Definition arax_object.c:22
+
arax_task_msg_s task
Definition arax_object.c:23
+
arax_accel_s accel
Definition arax_object.c:20
+
arax_data_s data
Definition arax_object.c:24
+ +
utils_spinlock lock
Definition arax_object.h:33
+
struct arax_object_repo_s::@1 repo[ARAX_TYPE_COUNT]
+
arax_pipe_s * pipe
Definition arax_object.h:29
+
utils_list_s list
Definition arax_object.h:32
+ +
size_t alloc_size
Definition arax_object.h:44
+
volatile int ref_count
Definition arax_object.h:46
+
arax_object_type_e type
Definition arax_object.h:45
+ +
arax_object_repo_s * repo
Definition arax_object.h:42
+
utils_list_node_s list
Definition arax_object.h:43
+ + + + +
size_t length
Definition list.h:19
+ +
arch_alloc_s allocator
Definition arax_pipe.h:46
+
+
+ + + + diff --git a/a01923.map b/a01923.map new file mode 100644 index 00000000..2830751f --- /dev/null +++ b/a01923.map @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01923.md5 b/a01923.md5 new file mode 100644 index 00000000..7782ada7 --- /dev/null +++ b/a01923.md5 @@ -0,0 +1 @@ +d7309f341b78983ce54c87f2e82fd4a1 \ No newline at end of file diff --git a/a01923.svg b/a01923.svg new file mode 100644 index 00000000..8aaf5a23 --- /dev/null +++ b/a01923.svg @@ -0,0 +1,750 @@ + + + + + + +arax_object.c + + +Node1 + + +arax_object.c + + + + + +Node2 + + +arax_object.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +arax_pipe.h + + + + + +Node1->Node10 + + + + + + + + +Node12 + + +stdio.h + + + + + +Node1->Node12 + + + + + + + + +Node20 + + +core/arax_accel.h + + + + + +Node1->Node20 + + + + + + + + +Node24 + + +core/arax_task.h + + + + + +Node1->Node24 + + + + + + + + +Node25 + + +core/arax_proc.h + + + + + +Node1->Node25 + + + + + + + + +Node26 + + +arax_data.h + + + + + +Node1->Node26 + + + + + + + + +Node27 + + +string.h + + + + + +Node1->Node27 + + + + + + + + +Node28 + + +stdarg.h + + + + + +Node1->Node28 + + + + + + + + +Node3 + + +utils/list.h + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +utils/spinlock.h + + + + + +Node2->Node6 + + + + + + + + +Node9 + + +arch/alloc.h + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +stddef.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +stdint.h + + + + + +Node3->Node5 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +utils/arax_assert.h + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +compat.h + + + + + +Node7->Node8 + + + + + + + + +Node11 + + +arax.h + + + + + +Node10->Node11 + + + + + + + + +Node17 + + +utils/Kv.h + + + + + +Node10->Node17 + + + + + + + + +Node19 + + +utils/queue.h + + + + + +Node10->Node19 + + + + + + + + +Node10->Node20 + + + + + + + + +Node10->Node24 + + + + + + + + +Node11->Node4 + + + + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +arax_types.h + + + + + +Node11->Node13 + + + + + + + + +Node16 + + +core/arax_accel_types.h + + + + + +Node11->Node16 + + + + + + + + +Node14 + + +sys/time.h + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +time.h + + + + + +Node13->Node15 + + + + + + + + +Node16->Node13 + + + + + + + + +Node17->Node4 + + + + + + + + +Node17->Node6 + + + + + + + + +Node18 + + +conf.h + + + + + +Node17->Node18 + + + + + + + + +Node19->Node4 + + + + + + + + +Node19->Node5 + + + + + + + + +Node19->Node6 + + + + + + + + +Node19->Node18 + + + + + + + + +Node20->Node11 + + + + + + + + +Node21 + + +async.h + + + + + +Node20->Node21 + + + + + + + + +Node22 + + +core/arax_vaccel.h + + + + + +Node20->Node22 + + + + + + + + +Node23 + + +core/arax_throttle.h + + + + + +Node20->Node23 + + + + + + + + +Node22->Node2 + + + + + + + + +Node22->Node19 + + + + + + + + +Node22->Node20 + + + + + + + + +Node22->Node21 + + + + + + + + +Node23->Node21 + + + + + + + + +Node24->Node21 + + + + + + + + +Node24->Node25 + + + + + + + + +Node25->Node2 + + + + + + + + +Node25->Node11 + + + + + + + + +Node26->Node2 + + + + + + + + +Node26->Node11 + + + + + + + + +Node26->Node18 + + + + + + + + +Node26->Node20 + + + + + + + + +Node26->Node21 + + + + + + + + diff --git a/a01925.html b/a01925.html new file mode 100644 index 00000000..d500db29 --- /dev/null +++ b/a01925.html @@ -0,0 +1,1072 @@ + + + + + + + +Arax: arax_pipe.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_pipe.c File Reference
+
+
+
#include <arax_pipe.h>
+#include <stdio.h>
+#include <string.h>
+
+ + Include dependency graph for arax_pipe.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

arax_pipe_sarax_pipe_init (void *mem, size_t size, int enforce_version)
 
const char * arax_pipe_get_revision (arax_pipe_s *pipe)
 
void arax_pipe_add_orphan_vaccel (arax_pipe_s *pipe, arax_vaccel_s *vac)
 
int arax_pipe_have_orphan_vaccels (arax_pipe_s *pipe)
 
arax_vaccel_sarax_pipe_get_orphan_vaccel (arax_pipe_s *pipe)
 
void arax_pipe_remove_orphan_vaccel (arax_pipe_s *pipe, arax_vaccel_s *vac)
 
void arax_pipe_orphan_stop (arax_pipe_s *pipe)
 
uint64_t arax_pipe_add_process (arax_pipe_s *pipe)
 
uint64_t arax_pipe_del_process (arax_pipe_s *pipe)
 
int arax_pipe_have_to_mmap (arax_pipe_s *pipe, int pid)
 
void arax_pipe_mark_unmap (arax_pipe_s *pipe, int pid)
 
void * arax_pipe_mmap_address (arax_pipe_s *pipe)
 
int arax_pipe_delete_accel (arax_pipe_s *pipe, arax_accel_s *accel)
 
arax_accel_sarax_pipe_find_accel (arax_pipe_s *pipe, const char *name, arax_accel_type_e type)
 
arax_proc_sarax_pipe_find_proc (arax_pipe_s *pipe, const char *name)
 
int arax_pipe_exit (arax_pipe_s *pipe)
 
void ARAX_PIPE_THOTTLE_DEBUG_FUNC() arax_pipe_size_inc (arax_pipe_s *pipe, size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS)
 
void ARAX_PIPE_THOTTLE_DEBUG_FUNC() arax_pipe_size_dec (arax_pipe_s *pipe, size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS)
 
size_t arax_pipe_get_available_size (arax_pipe_s *pipe)
 
size_t arax_pipe_get_total_size (arax_pipe_s *pipe)
 
+

Function Documentation

+ +

◆ arax_pipe_add_orphan_vaccel()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_pipe_add_orphan_vaccel (arax_pipe_spipe,
arax_vaccel_svac 
)
+
+

Add vac to the list of orphan_vacs/ unassigned accels.

+
Parameters
+ + + +
pipearax_pipe instance.
vacUnassigned/Orphan Virtual Acceleator instance.
+
+
+ +

Definition at line 63 of file arax_pipe.c.

+ +

References arax_assert, arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, async_condition_lock(), async_condition_notify(), async_condition_unlock(), arax_pipe::orphan_cond, arax_pipe::orphan_vacs, arax_vaccel_s::phys, utils_list_add(), and arax_vaccel_s::vaccels.

+ +

Referenced by arax_vaccel_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_add_process()

+ +
+
+ + + + + + + + +
uint64_t arax_pipe_add_process (arax_pipe_spipe)
+
+

Increase process counter for pipe.

+
Parameters
+ + +
pipearax_pipe instance.
+
+
+
Returns
Number of active processes before adding issuer.
+ +

Definition at line 116 of file arax_pipe.c.

+ +

References arax_pipe::processes.

+ +

Referenced by arax_pipe_init().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_del_process()

+ +
+
+ + + + + + + + +
uint64_t arax_pipe_del_process (arax_pipe_spipe)
+
+

Decrease process counter for pipe.

+
Parameters
+ + +
pipearax_pipe instance.
+
+
+
Returns
Number of active processes before removing issuer.
+ +

Definition at line 121 of file arax_pipe.c.

+ +

References arax_pipe::processes.

+ +

Referenced by arax_pipe_exit().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_delete_accel()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int arax_pipe_delete_accel (arax_pipe_spipe,
arax_accel_saccel 
)
+
+

Remove accel from the pipe accelerator list.

+
Parameters
+ + + +
pipeThe pipe instance where the accelerator belongs.
accelThe accelerator to be removed.
+
+
+
Returns
Returns 0 on success.
+ +

Definition at line 175 of file arax_pipe.c.

+ +

References arax_object_list_lock(), arax_object_list_unlock(), arax_object_ref_dec(), ARAX_TYPE_PHYS_ACCEL, arax_accel_s::obj, arax_pipe::objs, utils_list_node::owner, and utils_list_for_each.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_exit()

+ +
+
+ + + + + + + + +
int arax_pipe_exit (arax_pipe_spipe)
+
+

Destroy arax_pipe.

+ +

Definition at line 241 of file arax_pipe.c.

+ +

References arax_pipe::allocator, arax_object_repo_exit(), arax_pipe_del_process(), arch_alloc_exit(), arax_pipe::async, async_meta_exit(), and arax_pipe::objs.

+ +

Referenced by arax_exit().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_find_accel()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
arax_accel_s * arax_pipe_find_accel (arax_pipe_spipe,
const char * name,
arax_accel_type_e type 
)
+
+

Find an accelerator matching the user specified criteria.

+
Parameters
+ + + + +
pipearax_pipe instance.
nameThe cstring name of the accelerator, \ NULL if we dont care for the name.
typeType of the accelerator, see arax_accel_type_e.
+
+
+
Returns
An arax_accel_s instance, NULL on failure.
+ +

Definition at line 194 of file arax_pipe.c.

+ +

References arax_accel_get_name(), arax_object_list_lock(), arax_object_list_unlock(), ARAX_TYPE_PHYS_ACCEL, arax_pipe::objs, utils_list_node::owner, arax_accel_s::type, and utils_list_for_each.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_find_proc()

+ +
+
+ + + + + + + + + + + + + + + + + + +
arax_proc_s * arax_pipe_find_proc (arax_pipe_spipe,
const char * name 
)
+
+

Find a procedure matching the user specified criteria.

+
Parameters
+ + + +
pipearax_pipe instance.
nameThe cstring name of the procedure.
+
+
+
Returns
An arax_proc_s instance, NULL on failure.
+ +

Definition at line 219 of file arax_pipe.c.

+ +

References arax_object_list_lock(), arax_object_list_unlock(), ARAX_TYPE_PROC, arax_object_s::name, arax_proc_s::obj, arax_pipe::objs, utils_list_node::owner, and utils_list_for_each.

+ +

Referenced by arax_proc_get(), and arax_proc_register().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_get_available_size()

+ +
+
+ + + + + + + + +
size_t arax_pipe_get_available_size (arax_pipe_spipe)
+
+

Gets available size of shm

+
Parameters
+ + +
pipepipe for shm
+
+
+
Returns
Avaliable size of shm
+ +

Definition at line 265 of file arax_pipe.c.

+ +

References arax_assert, arax_throttle_get_available_size(), and arax_pipe::throttle.

+ +

Referenced by _arax_init(), and arax_exit().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_get_orphan_vaccel()

+ +
+
+ + + + + + + + +
arax_vaccel_s * arax_pipe_get_orphan_vaccel (arax_pipe_spipe)
+
+

Return an orphan/unassigned virtual accelerator or null. Function will sleep if no orphans exist at the time of the call. Returned arax_vaccel_s should either be assigned to a arax_accel_s using arax_accel_add_vaccel(), or should be marked again as orphan using arax_pipe_add_orphan_vaccel().

+
Returns
Unassigned/Orphan Virtual Acceleator instance.
+ +

Definition at line 78 of file arax_pipe.c.

+ +

References arax_assert, arax_assert_obj, arax_pipe_have_orphan_vaccels(), ARAX_TYPE_VIRT_ACCEL, async_condition_lock(), async_condition_unlock(), async_condition_wait(), arax_pipe::orphan_cond, arax_pipe::orphan_vacs, utils_list_node::owner, arax_vaccel_s::phys, and utils_list_pop_head().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_get_revision()

+ +
+
+ + + + + + + + +
const char * arax_pipe_get_revision (arax_pipe_spipe)
+
+

Get Arax revision

+
Parameters
+ + +
pipearax_pipe instance.
+
+
+
Returns
const string with Arax revision.
+ +

Definition at line 58 of file arax_pipe.c.

+ +

References arax_pipe::sha.

+ +
+
+ +

◆ arax_pipe_get_total_size()

+ +
+
+ + + + + + + + +
size_t arax_pipe_get_total_size (arax_pipe_spipe)
+
+

Gets available total size of shm

+
Parameters
+ + +
pipepipe for shm
+
+
+
Returns
Total size of shm
+ +

Definition at line 271 of file arax_pipe.c.

+ +

References arax_assert, arax_throttle_get_total_size(), and arax_pipe::throttle.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_have_orphan_vaccels()

+ +
+
+ + + + + + + + +
int arax_pipe_have_orphan_vaccels (arax_pipe_spipe)
+
+

Will return != 0 if there are orphan vaccels.

+

@Note: This function may return old values.

+
Parameters
+ + +
pipearax_pipe instance.
+
+
+
Returns
0 if no orphans, may return any non zero value if orphans exist
+ +

Definition at line 73 of file arax_pipe.c.

+ +

References utils_list_s::length, and arax_pipe::orphan_vacs.

+ +

Referenced by arax_pipe_get_orphan_vaccel().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_have_to_mmap()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int arax_pipe_have_to_mmap (arax_pipe_spipe,
int pid 
)
+
+

Return if we have to mmap, for the given pid. This will return 1, only the first time it is callled with a specific pid.

+ +

Definition at line 126 of file arax_pipe.c.

+ +

References arax_assert, arax_pipe::proc_lock, arax_pipe::proc_map, utils_spinlock_lock, and utils_spinlock_unlock.

+ +

Referenced by _arax_init().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_init()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
arax_pipe_s * arax_pipe_init (void * mem,
size_t size,
int enforce_version 
)
+
+

Initialize a arax_pipe.

+
Note
This function must be called from all end points in order to initialize a arax_pipe instance.Concurrent issuers will be serialized and the returned arax_pipe instance will be initialized by the 'first' issuer. All subsequent issuers will receive the already initialized instance.
+
Parameters
+ + + + +
memShared memory pointer.
sizeSize of the shared memory in bytes.
enforce_versionSet to 0 to make version mismatch non fatal.
+
+
+
Returns
An initialized arax_pipe_s instance.
+

Write sha sum except first byte

+ +

Definition at line 5 of file arax_pipe.c.

+ +

References arax_pipe::allocator, arax_object_repo_init(), arax_pipe_add_process(), ARAX_PIPE_SHA_SIZE, arax_throttle_init(), arch_alloc_init_always(), arch_alloc_init_once(), arax_pipe::ass_kv, arax_pipe::async, async_condition_init(), async_meta_init_once(), arax_pipe::cntrl_ready_cond, arax_pipe::metrics_kv, arax_pipe::objs, arax_pipe::orphan_cond, arax_pipe::orphan_vacs, arax_pipe::sha, arax_pipe::shm_size, arax_pipe::throttle, utils_kv_init(), and utils_list_init().

+ +

Referenced by _arax_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_mark_unmap()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_pipe_mark_unmap (arax_pipe_spipe,
int pid 
)
+
+

This should be called after munmap'ing pipe, in pid process.

+ +

Definition at line 148 of file arax_pipe.c.

+ +

References arax_assert, arax_pipe::proc_lock, arax_pipe::proc_map, utils_spinlock_lock, and utils_spinlock_unlock.

+ +

Referenced by arax_exit().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_mmap_address()

+ +
+
+ + + + + + + + +
void * arax_pipe_mmap_address (arax_pipe_spipe)
+
+

Return (and set if needed) the mmap location for pipe.

+
Parameters
+ + +
pipearax_pipe instance.
+
+
+ +

Definition at line 165 of file arax_pipe.c.

+ +

References arax_pipe::self.

+ +

Referenced by _arax_init().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_orphan_stop()

+ +
+
+ + + + + + + + +
void arax_pipe_orphan_stop (arax_pipe_spipe)
+
+

This will return null to a blocked caller thread of arax_pipe_get_orphan_vaccel(). That should be used to signal thread termination.

+

This function should be called once for every thread using arax_pipe_get_orphan_vaccel().

+
Parameters
+ + +
pipearax_pipe instance.
+
+
+ +

Definition at line 109 of file arax_pipe.c.

+ +

References async_condition_lock(), async_condition_notify(), async_condition_unlock(), and arax_pipe::orphan_cond.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_remove_orphan_vaccel()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_pipe_remove_orphan_vaccel (arax_pipe_spipe,
arax_vaccel_svac 
)
+
+

Remove specific vac for list of orphan vacs.

+ +

Definition at line 100 of file arax_pipe.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, async_condition_lock(), async_condition_unlock(), arax_pipe::orphan_cond, arax_pipe::orphan_vacs, utils_list_del(), utils_list_node_linked(), and arax_vaccel_s::vaccels.

+ +

Referenced by arax_accel_add_vaccel(), and ARAX_OBJ_DTOR_DECL().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_size_dec()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void ARAX_PIPE_THOTTLE_DEBUG_FUNC() arax_pipe_size_dec (arax_pipe_spipe,
size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS 
)
+
+

Decrements available size of gpu by sz

+
Parameters
+ + + +
pipepipe for shm
szsize of removed data
+
+
+
Returns
Nothing .
+ +

Definition at line 259 of file arax_pipe.c.

+ +

References arax_assert, and arax_throttle_size_dec().

+ +

Referenced by arax_object_register().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_pipe_size_inc()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void ARAX_PIPE_THOTTLE_DEBUG_FUNC() arax_pipe_size_inc (arax_pipe_spipe,
size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS 
)
+
+

Increments available size of gpu by sz

+
Parameters
+ + + +
pipepipe for shm
szSize of added data
+
+
+
Returns
Nothing .
+ +

Definition at line 253 of file arax_pipe.c.

+ +

References arax_assert, and arax_throttle_size_inc().

+ +

Referenced by arax_object_ref_dec(), and arax_object_ref_dec_pre_locked().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01925.js b/a01925.js new file mode 100644 index 00000000..deb485f7 --- /dev/null +++ b/a01925.js @@ -0,0 +1,23 @@ +var a01925 = +[ + [ "arax_pipe_add_orphan_vaccel", "a01925.html#aa4461ab1d225a0f76f08d2f37a4a7e0e", null ], + [ "arax_pipe_add_process", "a01925.html#a60dde947b05bc69599a6c7d92c38d088", null ], + [ "arax_pipe_del_process", "a01925.html#aedd2ffbe2275e3b8c2fc97a003ee7380", null ], + [ "arax_pipe_delete_accel", "a01925.html#aa0862a60d187bfed0cfa11bf27174551", null ], + [ "arax_pipe_exit", "a01925.html#a79b763e71a5ae1e57f78c008e7c1135c", null ], + [ "arax_pipe_find_accel", "a01925.html#ac2e1e32dc603394aecede365f454c8c4", null ], + [ "arax_pipe_find_proc", "a01925.html#a4c22ae41507232dc3efc725428cbfc7b", null ], + [ "arax_pipe_get_available_size", "a01925.html#a94ce6437cad359c8523f57fe50be020d", null ], + [ "arax_pipe_get_orphan_vaccel", "a01925.html#a8ff14a859f9b7a34676c2fcdb762386b", null ], + [ "arax_pipe_get_revision", "a01925.html#a588019fd47a5925847934e4c6fa6711a", null ], + [ "arax_pipe_get_total_size", "a01925.html#a59aa16caa6dfcec85af956b42b33a0fa", null ], + [ "arax_pipe_have_orphan_vaccels", "a01925.html#a186712b2a923d4bda1be98de189bc0f9", null ], + [ "arax_pipe_have_to_mmap", "a01925.html#a5006bea23d2b9964f0f7c12947180e01", null ], + [ "arax_pipe_init", "a01925.html#aa6293e9ec7776aa49ecf632fcc4f5e26", null ], + [ "arax_pipe_mark_unmap", "a01925.html#a8b36751c1bdab169e4735143d3712a09", null ], + [ "arax_pipe_mmap_address", "a01925.html#a8d805b003097be6a6328a35c78bf558b", null ], + [ "arax_pipe_orphan_stop", "a01925.html#a6cb53dd71cfaedb214bc5aef0e572cc2", null ], + [ "arax_pipe_remove_orphan_vaccel", "a01925.html#aa5172b735dddd3f77fbb0265bbcdfc20", null ], + [ "arax_pipe_size_dec", "a01925.html#a1cfa2c90268c6e53ce376beb7cce153c", null ], + [ "arax_pipe_size_inc", "a01925.html#a5144f906658718ef853a8d18dda1e724", null ] +]; \ No newline at end of file diff --git a/a01925_a186712b2a923d4bda1be98de189bc0f9_icgraph.map b/a01925_a186712b2a923d4bda1be98de189bc0f9_icgraph.map new file mode 100644 index 00000000..174afd43 --- /dev/null +++ b/a01925_a186712b2a923d4bda1be98de189bc0f9_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01925_a186712b2a923d4bda1be98de189bc0f9_icgraph.md5 b/a01925_a186712b2a923d4bda1be98de189bc0f9_icgraph.md5 new file mode 100644 index 00000000..035ba09f --- /dev/null +++ b/a01925_a186712b2a923d4bda1be98de189bc0f9_icgraph.md5 @@ -0,0 +1 @@ +b765faf31ee0c699c8c8dbe10f66ec8f \ No newline at end of file diff --git a/a01925_a186712b2a923d4bda1be98de189bc0f9_icgraph.svg b/a01925_a186712b2a923d4bda1be98de189bc0f9_icgraph.svg new file mode 100644 index 00000000..22ceb4f0 --- /dev/null +++ b/a01925_a186712b2a923d4bda1be98de189bc0f9_icgraph.svg @@ -0,0 +1,41 @@ + + + + + + +arax_pipe_have_orphan_vaccels + + +Node1 + + +arax_pipe_have_orphan +_vaccels + + + + + +Node2 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01925_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.map b/a01925_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.map new file mode 100644 index 00000000..ab7b427a --- /dev/null +++ b/a01925_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/a01925_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.md5 b/a01925_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.md5 new file mode 100644 index 00000000..06abfd38 --- /dev/null +++ b/a01925_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.md5 @@ -0,0 +1 @@ +c7f2a40f1c1286952f8fbdd52d917e8f \ No newline at end of file diff --git a/a01925_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.svg b/a01925_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.svg new file mode 100644 index 00000000..957ad6ae --- /dev/null +++ b/a01925_a1cfa2c90268c6e53ce376beb7cce153c_cgraph.svg @@ -0,0 +1,165 @@ + + + + + + +arax_pipe_size_dec + + +Node1 + + +arax_pipe_size_dec + + + + + +Node2 + + +arax_throttle_size_dec + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_condition_lock + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_condition_unlock + + + + + +Node2->Node5 + + + + + + + + +Node7 + + +async_condition_wait + + + + + +Node2->Node7 + + + + + + + + +Node4 + + +async_completion_wait + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +async_completion_complete + + + + + +Node5->Node6 + + + + + + + + +Node7->Node4 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +async_semaphore_dec + + + + + +Node7->Node8 + + + + + + + + diff --git a/a01925_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.map b/a01925_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.map new file mode 100644 index 00000000..8a000e0f --- /dev/null +++ b/a01925_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.map @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01925_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.md5 b/a01925_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.md5 new file mode 100644 index 00000000..ac795113 --- /dev/null +++ b/a01925_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.md5 @@ -0,0 +1 @@ +9111127a923650c12e21af2b9d46f19a \ No newline at end of file diff --git a/a01925_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.svg b/a01925_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.svg new file mode 100644 index 00000000..aab3f04b --- /dev/null +++ b/a01925_a1cfa2c90268c6e53ce376beb7cce153c_icgraph.svg @@ -0,0 +1,364 @@ + + + + + + +arax_pipe_size_dec + + +Node1 + + +arax_pipe_size_dec + + + + + +Node2 + + +arax_object_register + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_init_aligned + + + + + +Node2->Node4 + + + + + + + + +Node7 + + +arax_proc_init + + + + + +Node2->Node7 + + + + + + + + +Node9 + + +arax_task_alloc + + + + + +Node2->Node9 + + + + + + + + +Node17 + + +arax_vaccel_init + + + + + +Node2->Node17 + + + + + + + + +Node5 + + +arax_data_init + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +ARAX_BUFFER + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +arax_proc_register + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +arax_task_issue + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_allocate +_remote + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_data_get + + + + + +Node10->Node12 + + + + + + + + +Node14 + + +arax_data_set + + + + + +Node10->Node14 + + + + + + + + +Node15 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node10->Node15 + + + + + + + + +Node16 + + +arax_task_issue_sync + + + + + +Node10->Node16 + + + + + + + + +Node13 + + +arax_data_memcpy + + + + + +Node12->Node13 + + + + + + + + +Node14->Node13 + + + + + + + + +Node17->Node3 + + + + + + + + +Node18 + + +arax_accel_acquire_phys + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +arax_accel_acquire_type + + + + + +Node17->Node19 + + + + + + + + diff --git a/a01925_a4c22ae41507232dc3efc725428cbfc7b_cgraph.map b/a01925_a4c22ae41507232dc3efc725428cbfc7b_cgraph.map new file mode 100644 index 00000000..ccf579aa --- /dev/null +++ b/a01925_a4c22ae41507232dc3efc725428cbfc7b_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01925_a4c22ae41507232dc3efc725428cbfc7b_cgraph.md5 b/a01925_a4c22ae41507232dc3efc725428cbfc7b_cgraph.md5 new file mode 100644 index 00000000..23497a5a --- /dev/null +++ b/a01925_a4c22ae41507232dc3efc725428cbfc7b_cgraph.md5 @@ -0,0 +1 @@ +54ccdf6de7021a867d9573715ce65aae \ No newline at end of file diff --git a/a01925_a4c22ae41507232dc3efc725428cbfc7b_cgraph.svg b/a01925_a4c22ae41507232dc3efc725428cbfc7b_cgraph.svg new file mode 100644 index 00000000..72525d6f --- /dev/null +++ b/a01925_a4c22ae41507232dc3efc725428cbfc7b_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_pipe_find_proc + + +Node1 + + +arax_pipe_find_proc + + + + + +Node2 + + +arax_object_list_lock + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_object_list_unlock + + + + + +Node1->Node3 + + + + + + + + diff --git a/a01925_a4c22ae41507232dc3efc725428cbfc7b_icgraph.map b/a01925_a4c22ae41507232dc3efc725428cbfc7b_icgraph.map new file mode 100644 index 00000000..c74126c7 --- /dev/null +++ b/a01925_a4c22ae41507232dc3efc725428cbfc7b_icgraph.map @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/a01925_a4c22ae41507232dc3efc725428cbfc7b_icgraph.md5 b/a01925_a4c22ae41507232dc3efc725428cbfc7b_icgraph.md5 new file mode 100644 index 00000000..3566a225 --- /dev/null +++ b/a01925_a4c22ae41507232dc3efc725428cbfc7b_icgraph.md5 @@ -0,0 +1 @@ +12ddb64171fad8251fb0e9bc1796d188 \ No newline at end of file diff --git a/a01925_a4c22ae41507232dc3efc725428cbfc7b_icgraph.svg b/a01925_a4c22ae41507232dc3efc725428cbfc7b_icgraph.svg new file mode 100644 index 00000000..41e0e0f8 --- /dev/null +++ b/a01925_a4c22ae41507232dc3efc725428cbfc7b_icgraph.svg @@ -0,0 +1,157 @@ + + + + + + +arax_pipe_find_proc + + +Node1 + + +arax_pipe_find_proc + + + + + +Node2 + + +arax_proc_get + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +arax_proc_register + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +arax_data_allocate +_remote + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_get + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +arax_data_set + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2->Node7 + + + + + + + + +Node5 + + +arax_data_memcpy + + + + + +Node4->Node5 + + + + + + + + +Node6->Node5 + + + + + + + + diff --git a/a01925_a5006bea23d2b9964f0f7c12947180e01_icgraph.map b/a01925_a5006bea23d2b9964f0f7c12947180e01_icgraph.map new file mode 100644 index 00000000..e280d39d --- /dev/null +++ b/a01925_a5006bea23d2b9964f0f7c12947180e01_icgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01925_a5006bea23d2b9964f0f7c12947180e01_icgraph.md5 b/a01925_a5006bea23d2b9964f0f7c12947180e01_icgraph.md5 new file mode 100644 index 00000000..c97cfd80 --- /dev/null +++ b/a01925_a5006bea23d2b9964f0f7c12947180e01_icgraph.md5 @@ -0,0 +1 @@ +b1a99d0948c7b8d3a244b67f9226ad81 \ No newline at end of file diff --git a/a01925_a5006bea23d2b9964f0f7c12947180e01_icgraph.svg b/a01925_a5006bea23d2b9964f0f7c12947180e01_icgraph.svg new file mode 100644 index 00000000..557f70e5 --- /dev/null +++ b/a01925_a5006bea23d2b9964f0f7c12947180e01_icgraph.svg @@ -0,0 +1,185 @@ + + + + + + +arax_pipe_have_to_mmap + + +Node1 + + +arax_pipe_have_to_mmap + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01925_a5144f906658718ef853a8d18dda1e724_cgraph.map b/a01925_a5144f906658718ef853a8d18dda1e724_cgraph.map new file mode 100644 index 00000000..d78babee --- /dev/null +++ b/a01925_a5144f906658718ef853a8d18dda1e724_cgraph.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/a01925_a5144f906658718ef853a8d18dda1e724_cgraph.md5 b/a01925_a5144f906658718ef853a8d18dda1e724_cgraph.md5 new file mode 100644 index 00000000..948a3d3d --- /dev/null +++ b/a01925_a5144f906658718ef853a8d18dda1e724_cgraph.md5 @@ -0,0 +1 @@ +53ed2966da2f709da15c3aa3ceac83c9 \ No newline at end of file diff --git a/a01925_a5144f906658718ef853a8d18dda1e724_cgraph.svg b/a01925_a5144f906658718ef853a8d18dda1e724_cgraph.svg new file mode 100644 index 00000000..a19fa1f8 --- /dev/null +++ b/a01925_a5144f906658718ef853a8d18dda1e724_cgraph.svg @@ -0,0 +1,147 @@ + + + + + + +arax_pipe_size_inc + + +Node1 + + +arax_pipe_size_inc + + + + + +Node2 + + +arax_throttle_size_inc + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_condition_lock + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_condition_notify + + + + + +Node2->Node5 + + + + + + + + +Node7 + + +async_condition_unlock + + + + + +Node2->Node7 + + + + + + + + +Node4 + + +async_completion_wait + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +async_semaphore_inc + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_completion_complete + + + + + +Node7->Node8 + + + + + + + + diff --git a/a01925_a5144f906658718ef853a8d18dda1e724_icgraph.map b/a01925_a5144f906658718ef853a8d18dda1e724_icgraph.map new file mode 100644 index 00000000..528389c5 --- /dev/null +++ b/a01925_a5144f906658718ef853a8d18dda1e724_icgraph.map @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01925_a5144f906658718ef853a8d18dda1e724_icgraph.md5 b/a01925_a5144f906658718ef853a8d18dda1e724_icgraph.md5 new file mode 100644 index 00000000..bce9c272 --- /dev/null +++ b/a01925_a5144f906658718ef853a8d18dda1e724_icgraph.md5 @@ -0,0 +1 @@ +138963997cced80f8e2717880f5b4a6d \ No newline at end of file diff --git a/a01925_a5144f906658718ef853a8d18dda1e724_icgraph.svg b/a01925_a5144f906658718ef853a8d18dda1e724_icgraph.svg new file mode 100644 index 00000000..d78f4e26 --- /dev/null +++ b/a01925_a5144f906658718ef853a8d18dda1e724_icgraph.svg @@ -0,0 +1,528 @@ + + + + + + +arax_pipe_size_inc + + +Node1 + + +arax_pipe_size_inc + + + + + +Node2 + + +arax_object_ref_dec + + + + + +Node1->Node2 + + + + + + + + +Node23 + + +arax_object_ref_dec +_pre_locked + + + + + +Node1->Node23 + + + + + + + + +Node3 + + +arax_accel_list_free + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_accel_release + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +arax_data_free + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +arax_data_migrate_accel + + + + + +Node2->Node7 + + + + + + + + +Node16 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2->Node16 + + + + + + + + +Node19 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2->Node19 + + + + + + + + +Node20 + + +arax_pipe_delete_accel + + + + + +Node2->Node20 + + + + + + + + +Node21 + + +arax_proc_put + + + + + +Node2->Node21 + + + + + + + + +Node22 + + +arax_task_free + + + + + +Node2->Node22 + + + + + + + + +Node5 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +arax_data_arg_init + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_input_init + + + + + +Node7->Node9 + + + + + + + + +Node18 + + +arax_data_output_init + + + + + +Node7->Node18 + + + + + + + + +Node10 + + +arax_task_alloc + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_task_issue + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_data_allocate +_remote + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +arax_data_get + + + + + +Node11->Node13 + + + + + + + + +Node15 + + +arax_data_set + + + + + +Node11->Node15 + + + + + + + + +Node11->Node16 + + + + + + + + +Node17 + + +arax_task_issue_sync + + + + + +Node11->Node17 + + + + + + + + +Node14 + + +arax_data_memcpy + + + + + +Node13->Node14 + + + + + + + + +Node15->Node14 + + + + + + + + +Node18->Node10 + + + + + + + + +Node21->Node13 + + + + + + + + +Node21->Node15 + + + + + + + + +Node22->Node12 + + + + + + + + +Node22->Node13 + + + + + + + + +Node22->Node17 + + + + + + + + +Node24 + + +arax_accel_list_free +_pre_locked + + + + + +Node23->Node24 + + + + + + + + +Node25 + + +arax_accel_list + + + + + +Node24->Node25 + + + + + + + + diff --git a/a01925_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.map b/a01925_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.map new file mode 100644 index 00000000..ae991f04 --- /dev/null +++ b/a01925_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01925_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.md5 b/a01925_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.md5 new file mode 100644 index 00000000..11ea06d6 --- /dev/null +++ b/a01925_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.md5 @@ -0,0 +1 @@ +8eba9e8e78280ce00061ff8a3f16ae21 \ No newline at end of file diff --git a/a01925_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.svg b/a01925_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.svg new file mode 100644 index 00000000..b910c5d7 --- /dev/null +++ b/a01925_a59aa16caa6dfcec85af956b42b33a0fa_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_pipe_get_total_size + + +Node1 + + +arax_pipe_get_total_size + + + + + +Node2 + + +arax_throttle_get_total_size + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01925_a60dde947b05bc69599a6c7d92c38d088_icgraph.map b/a01925_a60dde947b05bc69599a6c7d92c38d088_icgraph.map new file mode 100644 index 00000000..710927b0 --- /dev/null +++ b/a01925_a60dde947b05bc69599a6c7d92c38d088_icgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01925_a60dde947b05bc69599a6c7d92c38d088_icgraph.md5 b/a01925_a60dde947b05bc69599a6c7d92c38d088_icgraph.md5 new file mode 100644 index 00000000..b2f0beb3 --- /dev/null +++ b/a01925_a60dde947b05bc69599a6c7d92c38d088_icgraph.md5 @@ -0,0 +1 @@ +6ce86ce4082eae6a0cb0737736468a0f \ No newline at end of file diff --git a/a01925_a60dde947b05bc69599a6c7d92c38d088_icgraph.svg b/a01925_a60dde947b05bc69599a6c7d92c38d088_icgraph.svg new file mode 100644 index 00000000..924a8711 --- /dev/null +++ b/a01925_a60dde947b05bc69599a6c7d92c38d088_icgraph.svg @@ -0,0 +1,203 @@ + + + + + + +arax_pipe_add_process + + +Node1 + + +arax_pipe_add_process + + + + + +Node2 + + +arax_pipe_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01925_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.map b/a01925_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.map new file mode 100644 index 00000000..51de39bc --- /dev/null +++ b/a01925_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/a01925_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.md5 b/a01925_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.md5 new file mode 100644 index 00000000..913dae53 --- /dev/null +++ b/a01925_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.md5 @@ -0,0 +1 @@ +0c3b65111a4a5c27fb81799ceafd4a95 \ No newline at end of file diff --git a/a01925_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.svg b/a01925_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.svg new file mode 100644 index 00000000..397b60db --- /dev/null +++ b/a01925_a6cb53dd71cfaedb214bc5aef0e572cc2_cgraph.svg @@ -0,0 +1,129 @@ + + + + + + +arax_pipe_orphan_stop + + +Node1 + + +arax_pipe_orphan_stop + + + + + +Node2 + + +async_condition_lock + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +async_condition_notify + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +async_condition_unlock + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +async_completion_wait + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_semaphore_inc + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_completion_complete + + + + + +Node6->Node7 + + + + + + + + diff --git a/a01925_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.map b/a01925_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.map new file mode 100644 index 00000000..b1561508 --- /dev/null +++ b/a01925_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/a01925_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.md5 b/a01925_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.md5 new file mode 100644 index 00000000..4297f87e --- /dev/null +++ b/a01925_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.md5 @@ -0,0 +1 @@ +ef717309eba257202adb4d34ecd5d620 \ No newline at end of file diff --git a/a01925_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.svg b/a01925_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.svg new file mode 100644 index 00000000..98fb9801 --- /dev/null +++ b/a01925_a79b763e71a5ae1e57f78c008e7c1135c_cgraph.svg @@ -0,0 +1,129 @@ + + + + + + +arax_pipe_exit + + +Node1 + + +arax_pipe_exit + + + + + +Node2 + + +arax_object_repo_exit + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_del_process + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arch_alloc_exit + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +async_meta_exit + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +getVmID + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +wakeupVm + + + + + +Node5->Node7 + + + + + + + + diff --git a/a01925_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.map b/a01925_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.map new file mode 100644 index 00000000..3ba779d7 --- /dev/null +++ b/a01925_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01925_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.md5 b/a01925_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.md5 new file mode 100644 index 00000000..62c6e607 --- /dev/null +++ b/a01925_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.md5 @@ -0,0 +1 @@ +8bf2b63e2fbeaeccaa2612ea09e33fc2 \ No newline at end of file diff --git a/a01925_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.svg b/a01925_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.svg new file mode 100644 index 00000000..983c0e0b --- /dev/null +++ b/a01925_a79b763e71a5ae1e57f78c008e7c1135c_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_pipe_exit + + +Node1 + + +arax_pipe_exit + + + + + +Node2 + + +arax_exit + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01925_a8b36751c1bdab169e4735143d3712a09_icgraph.map b/a01925_a8b36751c1bdab169e4735143d3712a09_icgraph.map new file mode 100644 index 00000000..2d824e19 --- /dev/null +++ b/a01925_a8b36751c1bdab169e4735143d3712a09_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01925_a8b36751c1bdab169e4735143d3712a09_icgraph.md5 b/a01925_a8b36751c1bdab169e4735143d3712a09_icgraph.md5 new file mode 100644 index 00000000..dd6bad1c --- /dev/null +++ b/a01925_a8b36751c1bdab169e4735143d3712a09_icgraph.md5 @@ -0,0 +1 @@ +69668a4ca496fbc63db33e3f75cdf596 \ No newline at end of file diff --git a/a01925_a8b36751c1bdab169e4735143d3712a09_icgraph.svg b/a01925_a8b36751c1bdab169e4735143d3712a09_icgraph.svg new file mode 100644 index 00000000..4af217bc --- /dev/null +++ b/a01925_a8b36751c1bdab169e4735143d3712a09_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_pipe_mark_unmap + + +Node1 + + +arax_pipe_mark_unmap + + + + + +Node2 + + +arax_exit + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01925_a8d805b003097be6a6328a35c78bf558b_icgraph.map b/a01925_a8d805b003097be6a6328a35c78bf558b_icgraph.map new file mode 100644 index 00000000..be05be8a --- /dev/null +++ b/a01925_a8d805b003097be6a6328a35c78bf558b_icgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01925_a8d805b003097be6a6328a35c78bf558b_icgraph.md5 b/a01925_a8d805b003097be6a6328a35c78bf558b_icgraph.md5 new file mode 100644 index 00000000..2d6f8fa4 --- /dev/null +++ b/a01925_a8d805b003097be6a6328a35c78bf558b_icgraph.md5 @@ -0,0 +1 @@ +84d6bee4de4a1e2adae1da93180b84b8 \ No newline at end of file diff --git a/a01925_a8d805b003097be6a6328a35c78bf558b_icgraph.svg b/a01925_a8d805b003097be6a6328a35c78bf558b_icgraph.svg new file mode 100644 index 00000000..e4cbbac9 --- /dev/null +++ b/a01925_a8d805b003097be6a6328a35c78bf558b_icgraph.svg @@ -0,0 +1,185 @@ + + + + + + +arax_pipe_mmap_address + + +Node1 + + +arax_pipe_mmap_address + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01925_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.map b/a01925_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.map new file mode 100644 index 00000000..5b8e4c5c --- /dev/null +++ b/a01925_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01925_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.md5 b/a01925_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.md5 new file mode 100644 index 00000000..148bcb54 --- /dev/null +++ b/a01925_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.md5 @@ -0,0 +1 @@ +96e8ed412bd7c081e6609e79244db044 \ No newline at end of file diff --git a/a01925_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.svg b/a01925_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.svg new file mode 100644 index 00000000..816ba5a4 --- /dev/null +++ b/a01925_a8ff14a859f9b7a34676c2fcdb762386b_cgraph.svg @@ -0,0 +1,203 @@ + + + + + + +arax_pipe_get_orphan_vaccel + + +Node1 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node2 + + +arax_pipe_have_orphan +_vaccels + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_condition_lock + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +async_condition_unlock + + + + + +Node1->Node5 + + + + + + + + +Node7 + + +async_condition_wait + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +utils_list_pop_head + + + + + +Node1->Node9 + + + + + + + + +Node4 + + +async_completion_wait + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +async_completion_complete + + + + + +Node5->Node6 + + + + + + + + +Node7->Node4 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +async_semaphore_dec + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +utils_list_del + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01925_a94ce6437cad359c8523f57fe50be020d_cgraph.map b/a01925_a94ce6437cad359c8523f57fe50be020d_cgraph.map new file mode 100644 index 00000000..d1734ace --- /dev/null +++ b/a01925_a94ce6437cad359c8523f57fe50be020d_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01925_a94ce6437cad359c8523f57fe50be020d_cgraph.md5 b/a01925_a94ce6437cad359c8523f57fe50be020d_cgraph.md5 new file mode 100644 index 00000000..3b7b322e --- /dev/null +++ b/a01925_a94ce6437cad359c8523f57fe50be020d_cgraph.md5 @@ -0,0 +1 @@ +e6b30f867889e5ecea185427960aaa0a \ No newline at end of file diff --git a/a01925_a94ce6437cad359c8523f57fe50be020d_cgraph.svg b/a01925_a94ce6437cad359c8523f57fe50be020d_cgraph.svg new file mode 100644 index 00000000..dcea9200 --- /dev/null +++ b/a01925_a94ce6437cad359c8523f57fe50be020d_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_pipe_get_available_size + + +Node1 + + +arax_pipe_get_available_size + + + + + +Node2 + + +arax_throttle_get_available_size + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01925_a94ce6437cad359c8523f57fe50be020d_icgraph.map b/a01925_a94ce6437cad359c8523f57fe50be020d_icgraph.map new file mode 100644 index 00000000..67d3b427 --- /dev/null +++ b/a01925_a94ce6437cad359c8523f57fe50be020d_icgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01925_a94ce6437cad359c8523f57fe50be020d_icgraph.md5 b/a01925_a94ce6437cad359c8523f57fe50be020d_icgraph.md5 new file mode 100644 index 00000000..79dbc8f9 --- /dev/null +++ b/a01925_a94ce6437cad359c8523f57fe50be020d_icgraph.md5 @@ -0,0 +1 @@ +0bf605fc4085ba0ada1e3d6e6a970033 \ No newline at end of file diff --git a/a01925_a94ce6437cad359c8523f57fe50be020d_icgraph.svg b/a01925_a94ce6437cad359c8523f57fe50be020d_icgraph.svg new file mode 100644 index 00000000..94e67b01 --- /dev/null +++ b/a01925_a94ce6437cad359c8523f57fe50be020d_icgraph.svg @@ -0,0 +1,203 @@ + + + + + + +arax_pipe_get_available_size + + +Node1 + + +arax_pipe_get_available_size + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +arax_exit + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01925_aa0862a60d187bfed0cfa11bf27174551_cgraph.map b/a01925_aa0862a60d187bfed0cfa11bf27174551_cgraph.map new file mode 100644 index 00000000..6891c6e3 --- /dev/null +++ b/a01925_aa0862a60d187bfed0cfa11bf27174551_cgraph.map @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01925_aa0862a60d187bfed0cfa11bf27174551_cgraph.md5 b/a01925_aa0862a60d187bfed0cfa11bf27174551_cgraph.md5 new file mode 100644 index 00000000..26020dc9 --- /dev/null +++ b/a01925_aa0862a60d187bfed0cfa11bf27174551_cgraph.md5 @@ -0,0 +1 @@ +1f6d8ba401e304c8dc200fc78e26c1ae \ No newline at end of file diff --git a/a01925_aa0862a60d187bfed0cfa11bf27174551_cgraph.svg b/a01925_aa0862a60d187bfed0cfa11bf27174551_cgraph.svg new file mode 100644 index 00000000..0c845833 --- /dev/null +++ b/a01925_aa0862a60d187bfed0cfa11bf27174551_cgraph.svg @@ -0,0 +1,237 @@ + + + + + + +arax_pipe_delete_accel + + +Node1 + + +arax_pipe_delete_accel + + + + + +Node2 + + +arax_object_list_lock + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_object_list_unlock + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_object_ref_dec + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +arax_pipe_size_inc + + + + + +Node4->Node5 + + + + + + + + +Node13 + + +utils_list_del + + + + + +Node4->Node13 + + + + + + + + +Node6 + + +arax_throttle_size_inc + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +async_condition_lock + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_condition_notify + + + + + +Node6->Node9 + + + + + + + + +Node11 + + +async_condition_unlock + + + + + +Node6->Node11 + + + + + + + + +Node8 + + +async_completion_wait + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +async_semaphore_inc + + + + + +Node9->Node10 + + + + + + + + +Node12 + + +async_completion_complete + + + + + +Node11->Node12 + + + + + + + + diff --git a/a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.map b/a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.map new file mode 100644 index 00000000..524c5f97 --- /dev/null +++ b/a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.md5 b/a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.md5 new file mode 100644 index 00000000..481fc771 --- /dev/null +++ b/a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.md5 @@ -0,0 +1 @@ +99cfed55b7e693e8c6ec4cc3e8bb577b \ No newline at end of file diff --git a/a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.svg b/a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.svg new file mode 100644 index 00000000..c79d2c00 --- /dev/null +++ b/a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_cgraph.svg @@ -0,0 +1,166 @@ + + + + + + +arax_pipe_add_orphan_vaccel + + +Node1 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node2 + + +async_condition_lock + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +async_condition_notify + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +async_condition_unlock + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +utils_list_add + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +async_completion_wait + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_semaphore_inc + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_completion_complete + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +utils_list_node_add + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.map b/a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.map new file mode 100644 index 00000000..4b42226c --- /dev/null +++ b/a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.md5 b/a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.md5 new file mode 100644 index 00000000..b5d7508d --- /dev/null +++ b/a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.md5 @@ -0,0 +1 @@ +2b84456fa59b5b4bb2eda98573bdd664 \ No newline at end of file diff --git a/a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.svg b/a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.svg new file mode 100644 index 00000000..db24c6d7 --- /dev/null +++ b/a01925_aa4461ab1d225a0f76f08d2f37a4a7e0e_icgraph.svg @@ -0,0 +1,94 @@ + + + + + + +arax_pipe_add_orphan_vaccel + + +Node1 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node2 + + +arax_vaccel_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_acquire_phys + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_accel_acquire_type + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_accel_init + + + + + +Node2->Node5 + + + + + + + + diff --git a/a01925_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.map b/a01925_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.map new file mode 100644 index 00000000..6b43b6f2 --- /dev/null +++ b/a01925_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/a01925_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.md5 b/a01925_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.md5 new file mode 100644 index 00000000..4e542bb0 --- /dev/null +++ b/a01925_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.md5 @@ -0,0 +1 @@ +b7762805a83a050cb38e7df454d6ee18 \ No newline at end of file diff --git a/a01925_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.svg b/a01925_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.svg new file mode 100644 index 00000000..c4243a07 --- /dev/null +++ b/a01925_aa5172b735dddd3f77fbb0265bbcdfc20_cgraph.svg @@ -0,0 +1,130 @@ + + + + + + +arax_pipe_remove_orphan_vaccel + + +Node1 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node2 + + +async_condition_lock + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +async_condition_unlock + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +utils_list_del + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +utils_list_node_linked + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +async_completion_wait + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_completion_complete + + + + + +Node4->Node5 + + + + + + + + diff --git a/a01925_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.map b/a01925_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.map new file mode 100644 index 00000000..b4b1bbea --- /dev/null +++ b/a01925_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/a01925_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.md5 b/a01925_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.md5 new file mode 100644 index 00000000..8a277c38 --- /dev/null +++ b/a01925_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.md5 @@ -0,0 +1 @@ +a48fce6325a51fa564fe0eee1030b643 \ No newline at end of file diff --git a/a01925_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.svg b/a01925_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.svg new file mode 100644 index 00000000..cba7f45f --- /dev/null +++ b/a01925_aa5172b735dddd3f77fbb0265bbcdfc20_icgraph.svg @@ -0,0 +1,148 @@ + + + + + + +arax_pipe_remove_orphan_vaccel + + +Node1 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node2 + + +arax_accel_add_vaccel + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +arax_accel_set_physical + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_vaccel_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_accel_acquire_phys + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_accel_acquire_type + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_accel_init + + + + + +Node4->Node7 + + + + + + + + diff --git a/a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.map b/a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.map new file mode 100644 index 00000000..ab6e65ce --- /dev/null +++ b/a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.map @@ -0,0 +1,69 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.md5 b/a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.md5 new file mode 100644 index 00000000..21c661f9 --- /dev/null +++ b/a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.md5 @@ -0,0 +1 @@ +f6ddb4429c823f2e6943cf5406b70e8c \ No newline at end of file diff --git a/a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.svg b/a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.svg new file mode 100644 index 00000000..cc380918 --- /dev/null +++ b/a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_cgraph.svg @@ -0,0 +1,615 @@ + + + + + + +arax_pipe_init + + +Node1 + + +arax_pipe_init + + + + + +Node2 + + +arax_object_repo_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +utils_list_init + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +arax_pipe_add_process + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +arax_throttle_init + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +async_condition_init + + + + + +Node1->Node7 + + + + + + + + +Node13 + + +arch_alloc_init_always + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +arch_alloc_init_once + + + + + +Node1->Node14 + + + + + + + + +Node16 + + +async_meta_init_once + + + + + +Node1->Node16 + + + + + + + + +Node31 + + +utils_kv_init + + + + + +Node1->Node31 + + + + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +utils_list_node_init + + + + + +Node3->Node4 + + + + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +async_completion_complete + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +async_completion_init + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +async_condition_unlock + + + + + +Node7->Node10 + + + + + + + + +Node12 + + +async_semaphore_init + + + + + +Node7->Node12 + + + + + + + + +Node11 + + +async_completion_complete + + + + + +Node10->Node11 + + + + + + + + +Node15 + + +utils_bitmap_init + + + + + +Node14->Node15 + + + + + + + + +Node16->Node3 + + + + + + + + +Node17 + + +utils_config_alloc_path + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +utils_config_free_path + + + + + +Node16->Node19 + + + + + + + + +Node20 + + +utils_config_get_bool + + + + + +Node16->Node20 + + + + + + + + +Node18 + + +system_home_path + + + + + +Node17->Node18 + + + + + + + + +Node21 + + +utils_config_get_int + + + + + +Node20->Node21 + + + + + + + + +Node22 + + +utils_config_get_long + + + + + +Node21->Node22 + + + + + + + + +Node23 + + +_utils_config_get_str + + + + + +Node22->Node23 + + + + + + + + +Node28 + + +utils_config_write_long + + + + + +Node22->Node28 + + + + + + + + +Node24 + + +conf_get + + + + + +Node23->Node24 + + + + + + + + +Node25 + + +system_env_var + + + + + +Node24->Node25 + + + + + + + + +Node26 + + +system_file_size + + + + + +Node24->Node26 + + + + + + + + +Node27 + + +utils_config_get_source + + + + + +Node24->Node27 + + + + + + + + +Node27->Node25 + + + + + + + + +Node29 + + +utils_config_write_str + + + + + +Node28->Node29 + + + + + + + + +Node29->Node24 + + + + + + + + +Node30 + + +conf_set + + + + + +Node29->Node30 + + + + + + + + +Node30->Node27 + + + + + + + + diff --git a/a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.map b/a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.map new file mode 100644 index 00000000..92a70841 --- /dev/null +++ b/a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.md5 b/a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.md5 new file mode 100644 index 00000000..7005e8ba --- /dev/null +++ b/a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.md5 @@ -0,0 +1 @@ +ae0f565665cf1d29a70e124dee592fe1 \ No newline at end of file diff --git a/a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.svg b/a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.svg new file mode 100644 index 00000000..93fe200d --- /dev/null +++ b/a01925_aa6293e9ec7776aa49ecf632fcc4f5e26_icgraph.svg @@ -0,0 +1,185 @@ + + + + + + +arax_pipe_init + + +Node1 + + +arax_pipe_init + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01925_ac2e1e32dc603394aecede365f454c8c4_cgraph.map b/a01925_ac2e1e32dc603394aecede365f454c8c4_cgraph.map new file mode 100644 index 00000000..d7b9e7a0 --- /dev/null +++ b/a01925_ac2e1e32dc603394aecede365f454c8c4_cgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a01925_ac2e1e32dc603394aecede365f454c8c4_cgraph.md5 b/a01925_ac2e1e32dc603394aecede365f454c8c4_cgraph.md5 new file mode 100644 index 00000000..2eb6133b --- /dev/null +++ b/a01925_ac2e1e32dc603394aecede365f454c8c4_cgraph.md5 @@ -0,0 +1 @@ +f53b39c56a1ac7c8a61768235c5df6e7 \ No newline at end of file diff --git a/a01925_ac2e1e32dc603394aecede365f454c8c4_cgraph.svg b/a01925_ac2e1e32dc603394aecede365f454c8c4_cgraph.svg new file mode 100644 index 00000000..64340b20 --- /dev/null +++ b/a01925_ac2e1e32dc603394aecede365f454c8c4_cgraph.svg @@ -0,0 +1,75 @@ + + + + + + +arax_pipe_find_accel + + +Node1 + + +arax_pipe_find_accel + + + + + +Node2 + + +arax_accel_get_name + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_object_list_lock + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_object_list_unlock + + + + + +Node1->Node4 + + + + + + + + diff --git a/a01925_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.map b/a01925_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.map new file mode 100644 index 00000000..480b2e80 --- /dev/null +++ b/a01925_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01925_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.md5 b/a01925_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.md5 new file mode 100644 index 00000000..06421570 --- /dev/null +++ b/a01925_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.md5 @@ -0,0 +1 @@ +b62806b84102a974c62f592249f16a39 \ No newline at end of file diff --git a/a01925_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.svg b/a01925_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.svg new file mode 100644 index 00000000..80045548 --- /dev/null +++ b/a01925_aedd2ffbe2275e3b8c2fc97a003ee7380_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_pipe_del_process + + +Node1 + + +arax_pipe_del_process + + + + + +Node2 + + +arax_pipe_exit + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_exit + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01925_source.html b/a01925_source.html new file mode 100644 index 00000000..39a7c9ab --- /dev/null +++ b/a01925_source.html @@ -0,0 +1,466 @@ + + + + + + + +Arax: arax_pipe.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_pipe.c
+
+
+Go to the documentation of this file.
1#include <arax_pipe.h>
+
2#include <stdio.h>
+
3#include <string.h>
+
4
+
5arax_pipe_s* arax_pipe_init(void *mem, size_t size, int enforce_version)
+
6{
+
7 arax_pipe_s *pipe = mem;
+
8 uint64_t value;
+
9
+
10 value = arax_pipe_add_process(pipe);
+
11
+
12 if (value) { // Not first so assume initialized
+
13 while (!pipe->sha[0]);
+
14 if (strcmp(pipe->sha, ARAX_GIT_REV)) {
+
15 fprintf(stderr, "Arax revision mismatch(%s vs %s)!", ARAX_GIT_REV, pipe->sha);
+
16 if (enforce_version)
+
17 return 0;
+
18 }
+ +
20 return pipe;
+
21 }
+
22
+
23 printf("Initializing pipe.\n");
+
24
+
25 pipe->shm_size = size;
+
26
+
30 snprintf(pipe->sha + 1, ARAX_PIPE_SHA_SIZE - 1, "%s", &ARAX_GIT_REV[1]);
+
31 pipe->sha[0] = ARAX_GIT_REV[0];
+
32
+
33 arax_object_repo_init(&(pipe->objs), pipe);
+
34
+
35 size -= sizeof(*pipe); // Subtract header size
+
36
+
37 if (arch_alloc_init_once(&(pipe->allocator), size))
+
38 return 0;
+
39
+
40 if (!utils_list_init(&(pipe->orphan_vacs)) )
+
41 return 0;
+
42
+
43 async_meta_init_once(&(pipe->async), &(pipe->allocator) );
+
44
+ +
46
+
47 async_condition_init(&(pipe->async), &(pipe->orphan_cond));
+
48
+
49 arax_throttle_init(&(pipe->async), &(pipe->throttle), size, size);
+
50
+
51 utils_kv_init(&(pipe->ass_kv));
+
52
+
53 utils_kv_init(&(pipe->metrics_kv));
+
54
+
55 return pipe;
+
56} /* arax_pipe_init */
+
57
+ +
59{
+
60 return pipe->sha;
+
61}
+
62
+ +
64{
+ +
66 arax_assert(vac->phys == 0);
+ +
68 utils_list_add(&(pipe->orphan_vacs), &(vac->vaccels));
+ + +
71}
+
72
+ +
74{
+
75 return pipe->orphan_vacs.length;
+
76}
+
77
+ +
79{
+
80 arax_vaccel_s *vac = 0;
+
81
+ +
83
+ + +
86
+ +
88
+ +
90
+
91 if (lvac) {
+
92 vac = lvac->owner;
+ +
94 arax_assert(vac->phys == 0);
+
95 }
+
96
+
97 return vac;
+
98}
+
99
+ +
101{
+ + +
104 if (utils_list_node_linked(&(vac->vaccels)))
+
105 utils_list_del(&(pipe->orphan_vacs), &(vac->vaccels));
+ +
107}
+
108
+ +
110{
+ + + +
114}
+
115
+ +
117{
+
118 return __sync_fetch_and_add(&(pipe->processes), 1);
+
119}
+
120
+ +
122{
+
123 return __sync_fetch_and_add(&(pipe->processes), -1);
+
124}
+
125
+ +
127{
+
128 arax_assert(pid); // Pid cant be 0
+
129 int have_to_mmap = 1;
+
130 int c;
+
131
+ +
133 for (c = 0; c < ARAX_PROC_MAP_SIZE; c++) {
+
134 if (pipe->proc_map[c] == pid) {
+
135 have_to_mmap = 0; // Already mmaped
+
136 break;
+
137 }
+
138
+
139 if (!pipe->proc_map[c]) { // Reached an unused cell
+
140 pipe->proc_map[c] = pid; // Register new pid
+
141 break;
+
142 }
+
143 }
+ +
145 return have_to_mmap;
+
146}
+
147
+ +
149{
+
150 arax_assert(pid); // Pid cant be 0
+
151 int c;
+
152
+ +
154 for (c = 0; c < ARAX_PROC_MAP_SIZE; c++) {
+
155 if (pipe->proc_map[c] == pid) // Found PID location
+
156 break;
+
157 }
+
158 arax_assert(c < ARAX_PROC_MAP_SIZE); // pid should be in the proc_map
+
159 // Skip cell containing pid
+
160 memmove(pipe->proc_map + c, pipe->proc_map + (c + 1), ARAX_PROC_MAP_SIZE - (c + 1));
+
161 pipe->proc_map[ARAX_PROC_MAP_SIZE - 1] = 0;
+ +
163}
+
164
+ +
166{
+
167 int value = __sync_bool_compare_and_swap(&(pipe->self), 0, pipe);
+
168
+
169 if (value)
+
170 return pipe;
+
171 else
+
172 return pipe->self;
+
173}
+
174
+ +
176{
+ +
178 utils_list_s *list;
+
179 arax_accel_s *accel_in_list = 0;
+
180
+ +
182 utils_list_for_each(*list, itr){
+
183 accel_in_list = (arax_accel_s *) itr->owner;
+
184 if (accel == accel_in_list) {
+ +
186 arax_object_ref_dec(&(accel->obj));
+
187 return 0;
+
188 }
+
189 }
+ +
191 return 1;
+
192}
+
193
+ + +
196{
+ +
198 utils_list_s *list;
+
199 arax_accel_s *accel = 0;
+
200
+ +
202 utils_list_for_each(*list, itr){
+
203 accel = (arax_accel_s *) itr->owner;
+
204 if (type && (type != accel->type) )
+
205 continue;
+
206 if (!name ||
+
207 (strcmp(name, arax_accel_get_name(accel) ) == 0) )
+
208 {
+ + +
211 return accel;
+
212 }
+
213 }
+
214 accel = 0;
+ +
216 return accel;
+
217}
+
218
+ +
220{
+ +
222 utils_list_s *list;
+
223 arax_proc_s *proc;
+
224
+
225 list = arax_object_list_lock(&(pipe->objs), ARAX_TYPE_PROC);
+
226 utils_list_for_each(*list, itr){
+
227 proc = (arax_proc_s *) itr->owner;
+
228 if (strcmp(name, proc->obj.name) == 0) {
+ +
230 return proc;
+
231 }
+
232 }
+
233 proc = 0;
+ +
235 return proc;
+
236}
+
237
+ +
242{
+
243 int ret = arax_pipe_del_process(pipe) == 1;
+
244
+
245 if (ret) { // Last user
+
246 arax_object_repo_exit(&(pipe->objs));
+
247 async_meta_exit(&(pipe->async) );
+
248 arch_alloc_exit(&(pipe->allocator) );
+
249 }
+
250 return ret;
+
251}
+
252
+ +
254 arax_assert(pipe);
+
255 arax_throttle_size_inc(&pipe->throttle, sz);
+
256}
+
257
+
258
+ +
260 arax_assert(pipe);
+
261 arax_throttle_size_dec(&pipe->throttle, sz);
+
262}
+
263
+
264
+ +
266{
+
267 arax_assert(pipe);
+ +
269}
+
270
+ +
272{
+
273 arax_assert(pipe);
+ +
275}
+ +
#define ARAX_PIPE_THOTTLE_DEBUG_FUNC(FUNC)
Definition arax_pipe.h:218
+
#define ARAX_PIPE_SHA_SIZE
Definition arax_pipe.h:19
+
#define ARAX_PIPE_THOTTLE_DEBUG_PARAMS
Definition arax_pipe.h:217
+
enum arax_accel_type arax_accel_type_e
+
int arch_alloc_init_once(arch_alloc_s *alloc, size_t size)
+
void arch_alloc_init_always(arch_alloc_s *alloc)
+
void arch_alloc_exit(arch_alloc_s *alloc)
+
#define arax_assert(EXPR)
Definition arax_assert.h:7
+
#define arax_assert_obj(OBJ, TYPE)
Definition arax_assert.h:12
+
#define utils_list_for_each(list, itr)
Definition list.h:96
+
@ ARAX_TYPE_VIRT_ACCEL
Definition arax_object.h:17
+
@ ARAX_TYPE_PROC
Definition arax_object.h:18
+
@ ARAX_TYPE_PHYS_ACCEL
Definition arax_object.h:16
+
void async_condition_wait(async_condition_s *cond)
+
void async_condition_unlock(async_condition_s *cond)
+
void async_condition_notify(async_condition_s *cond)
+
void async_meta_init_once(async_meta_s *meta, arch_alloc_s *alloc)
+
void async_condition_init(async_meta_s *meta, async_condition_s *cond)
+
void async_condition_lock(async_condition_s *cond)
+
void async_meta_exit(async_meta_s *meta)
+
const char * arax_accel_get_name(arax_accel_s *accel)
Definition arax_accel.c:83
+
int arax_object_repo_exit(arax_object_repo_s *repo)
Definition arax_object.c:71
+
void arax_object_repo_init(arax_object_repo_s *repo, arax_pipe_s *pipe)
Definition arax_object.c:60
+
utils_list_s * arax_object_list_lock(arax_object_repo_s *repo, arax_object_type_e type)
+
void arax_object_list_unlock(arax_object_repo_s *repo, arax_object_type_e type)
+
int arax_object_ref_dec(arax_object_s *obj)
+
int arax_pipe_have_orphan_vaccels(arax_pipe_s *pipe)
Definition arax_pipe.c:73
+
void ARAX_PIPE_THOTTLE_DEBUG_FUNC() arax_pipe_size_dec(arax_pipe_s *pipe, size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS)
Definition arax_pipe.c:259
+
arax_proc_s * arax_pipe_find_proc(arax_pipe_s *pipe, const char *name)
Definition arax_pipe.c:219
+
int arax_pipe_have_to_mmap(arax_pipe_s *pipe, int pid)
Definition arax_pipe.c:126
+
void ARAX_PIPE_THOTTLE_DEBUG_FUNC() arax_pipe_size_inc(arax_pipe_s *pipe, size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS)
Definition arax_pipe.c:253
+
const char * arax_pipe_get_revision(arax_pipe_s *pipe)
Definition arax_pipe.c:58
+
size_t arax_pipe_get_total_size(arax_pipe_s *pipe)
Definition arax_pipe.c:271
+
uint64_t arax_pipe_add_process(arax_pipe_s *pipe)
Definition arax_pipe.c:116
+
void arax_pipe_orphan_stop(arax_pipe_s *pipe)
Definition arax_pipe.c:109
+
int arax_pipe_exit(arax_pipe_s *pipe)
Definition arax_pipe.c:241
+
void arax_pipe_mark_unmap(arax_pipe_s *pipe, int pid)
Definition arax_pipe.c:148
+
void * arax_pipe_mmap_address(arax_pipe_s *pipe)
Definition arax_pipe.c:165
+
arax_vaccel_s * arax_pipe_get_orphan_vaccel(arax_pipe_s *pipe)
Definition arax_pipe.c:78
+
size_t arax_pipe_get_available_size(arax_pipe_s *pipe)
Definition arax_pipe.c:265
+
int arax_pipe_delete_accel(arax_pipe_s *pipe, arax_accel_s *accel)
Definition arax_pipe.c:175
+
void arax_pipe_add_orphan_vaccel(arax_pipe_s *pipe, arax_vaccel_s *vac)
Definition arax_pipe.c:63
+
void arax_pipe_remove_orphan_vaccel(arax_pipe_s *pipe, arax_vaccel_s *vac)
Definition arax_pipe.c:100
+
arax_pipe_s * arax_pipe_init(void *mem, size_t size, int enforce_version)
Definition arax_pipe.c:5
+
arax_accel_s * arax_pipe_find_accel(arax_pipe_s *pipe, const char *name, arax_accel_type_e type)
Definition arax_pipe.c:194
+
uint64_t arax_pipe_del_process(arax_pipe_s *pipe)
Definition arax_pipe.c:121
+
size_t arax_throttle_get_available_size(arax_throttle_s *thr)
+
void ARAX_THROTTLE_DEBUG_FUNC() arax_throttle_size_inc(arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS)
+
void ARAX_THROTTLE_DEBUG_FUNC() arax_throttle_size_dec(arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS)
+
void arax_throttle_init(async_meta_s *meta, arax_throttle_s *thr, size_t a_sz, size_t t_sz)
+
size_t arax_throttle_get_total_size(arax_throttle_s *thr)
+
void utils_kv_init(utils_kv_s *kv)
Definition Kv.c:5
+
utils_list_node_s * utils_list_del(utils_list_s *list, utils_list_node_s *node)
Definition list.c:26
+
utils_list_node_s * utils_list_pop_head(utils_list_s *list)
Definition list.c:36
+
int utils_list_node_linked(utils_list_node_s *node)
Definition list.c:81
+
utils_list_s * utils_list_init(void *mem)
Definition list.c:3
+
void utils_list_add(utils_list_s *list, utils_list_node_s *node)
Definition list.c:20
+
#define utils_spinlock_lock(V)
Definition queue.c:35
+
#define utils_spinlock_unlock(V)
Definition queue.c:36
+ +
arax_object_s obj
Definition arax_accel.h:16
+
arax_accel_type_e type
Definition arax_accel.h:17
+ + +
arax_object_s obj
Definition arax_proc.h:17
+ +
arax_accel_s * phys
Definition arax_vaccel.h:38
+
utils_list_node_s vaccels
Definition arax_vaccel.h:35
+ +
void * owner
Definition list.h:14
+ +
size_t length
Definition list.h:19
+ +
utils_list_s orphan_vacs
Definition arax_pipe.h:41
+
async_condition_s orphan_cond
Definition arax_pipe.h:40
+
arax_throttle_s throttle
Definition arax_pipe.h:35
+
uint64_t processes
Definition arax_pipe.h:29
+
uint64_t shm_size
Definition arax_pipe.h:28
+
arch_alloc_s allocator
Definition arax_pipe.h:46
+
uint64_t proc_map[ARAX_PROC_MAP_SIZE]
Definition arax_pipe.h:31
+
utils_spinlock proc_lock
Definition arax_pipe.h:30
+
char sha[ARAX_PIPE_SHA_SIZE+1]
Definition arax_pipe.h:26
+
utils_kv_s ass_kv
Definition arax_pipe.h:43
+
async_meta_s async
Definition arax_pipe.h:34
+
async_condition_s cntrl_ready_cond
Definition arax_pipe.h:38
+
void * self
Definition arax_pipe.h:27
+
utils_kv_s metrics_kv
Definition arax_pipe.h:44
+
arax_object_repo_s objs
Definition arax_pipe.h:33
+
+
+ + + + diff --git a/a01926.map b/a01926.map new file mode 100644 index 00000000..aad7b284 --- /dev/null +++ b/a01926.map @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01926.md5 b/a01926.md5 new file mode 100644 index 00000000..af6b10cd --- /dev/null +++ b/a01926.md5 @@ -0,0 +1 @@ +4148ee289e571f0a788c34132ed15b58 \ No newline at end of file diff --git a/a01926.svg b/a01926.svg new file mode 100644 index 00000000..f6c5cd58 --- /dev/null +++ b/a01926.svg @@ -0,0 +1,633 @@ + + + + + + +arax_pipe.c + + +Node1 + + +arax_pipe.c + + + + + +Node2 + + +arax_pipe.h + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +stdio.h + + + + + +Node1->Node4 + + + + + + + + +Node26 + + +string.h + + + + + +Node1->Node26 + + + + + + + + +Node3 + + +arax.h + + + + + +Node2->Node3 + + + + + + + + +Node10 + + +utils/Kv.h + + + + + +Node2->Node10 + + + + + + + + +Node16 + + +utils/queue.h + + + + + +Node2->Node16 + + + + + + + + +Node17 + + +core/arax_accel.h + + + + + +Node2->Node17 + + + + + + + + +Node24 + + +core/arax_task.h + + + + + +Node2->Node24 + + + + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +stddef.h + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_types.h + + + + + +Node3->Node6 + + + + + + + + +Node9 + + +core/arax_accel_types.h + + + + + +Node3->Node9 + + + + + + + + +Node7 + + +sys/time.h + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +time.h + + + + + +Node6->Node8 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10->Node5 + + + + + + + + +Node11 + + +conf.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +spinlock.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +stdint.h + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +utils/arax_assert.h + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +compat.h + + + + + +Node14->Node15 + + + + + + + + +Node16->Node5 + + + + + + + + +Node16->Node11 + + + + + + + + +Node16->Node12 + + + + + + + + +Node16->Node13 + + + + + + + + +Node17->Node3 + + + + + + + + +Node18 + + +async.h + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +core/arax_vaccel.h + + + + + +Node17->Node19 + + + + + + + + +Node23 + + +core/arax_throttle.h + + + + + +Node17->Node23 + + + + + + + + +Node19->Node16 + + + + + + + + +Node19->Node17 + + + + + + + + +Node19->Node18 + + + + + + + + +Node20 + + +core/arax_object.h + + + + + +Node19->Node20 + + + + + + + + +Node20->Node12 + + + + + + + + +Node21 + + +utils/list.h + + + + + +Node20->Node21 + + + + + + + + +Node22 + + +arch/alloc.h + + + + + +Node20->Node22 + + + + + + + + +Node21->Node5 + + + + + + + + +Node21->Node13 + + + + + + + + +Node23->Node18 + + + + + + + + +Node24->Node18 + + + + + + + + +Node25 + + +core/arax_proc.h + + + + + +Node24->Node25 + + + + + + + + +Node25->Node3 + + + + + + + + +Node25->Node20 + + + + + + + + diff --git a/a01928.html b/a01928.html new file mode 100644 index 00000000..77d2f623 --- /dev/null +++ b/a01928.html @@ -0,0 +1,365 @@ + + + + + + + +Arax: arax_proc.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_proc.c File Reference
+
+
+
#include "arax_proc.h"
+#include <string.h>
+
+ + Include dependency graph for arax_proc.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + + + + + +

+Functions

arax_proc_sarax_proc_init (arax_object_repo_s *repo, const char *name)
 
AraxFunctorarax_proc_get_functor (arax_proc_s *proc, arax_accel_type_e type)
 
AraxFunctorarax_proc_set_functor (arax_proc_s *proc, arax_accel_type_e type, AraxFunctor *vfn)
 
int arax_proc_can_run_at (arax_proc_s *proc, arax_accel_type_e type)
 
 ARAX_OBJ_DTOR_DECL (arax_proc_s)
 
+

Function Documentation

+ +

◆ ARAX_OBJ_DTOR_DECL()

+ +
+
+ + + + + + + + +
ARAX_OBJ_DTOR_DECL (arax_proc_s )
+
+ +

Definition at line 41 of file arax_proc.c.

+ +
+
+ +

◆ arax_proc_can_run_at()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int arax_proc_can_run_at (arax_proc_sproc,
arax_accel_type_e type 
)
+
+

Returns if proc can 'run' in an accelerator of type.

+
Note
type has to be different than ANY.
+
Parameters
+ + + +
procAn initialized arax_proc_s instance.
typeAccelerator type to check against.
+
+
+
Returns
0 if type can not execute proc. Non zero otherwise.
+ +

Definition at line 33 of file arax_proc.c.

+ +

References ANY, arax_accel_valid_type(), arax_assert, and arax_proc_s::canrun.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_proc_get_functor()

+ +
+
+ + + + + + + + + + + + + + + + + + +
AraxFunctor * arax_proc_get_functor (arax_proc_sproc,
arax_accel_type_e type 
)
+
+

Return proc functor pointer for provided type.

Returns
Pointer to functor, null is returned if no functior is set for given type.
+ +

Definition at line 16 of file arax_proc.c.

+ +

References arax_accel_valid_type(), arax_assert, and arax_proc_s::functors.

+ +

Referenced by arax_proc_set_functor().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_proc_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
arax_proc_s * arax_proc_init (arax_object_repo_srepo,
const char * name 
)
+
+

Initialize a arax_proc at the memory pointed by mem.

+
Parameters
+ + + +
repoThe arax_object_repo_s that will track the initialized procedure.
nameNULL terminated string, will be copied to private buffer.
+
+
+
Returns
An initialized instance of arax_proc_s, NULL on failure.
+ +

Definition at line 4 of file arax_proc.c.

+ +

References arax_object_register(), and ARAX_TYPE_PROC.

+ +

Referenced by arax_proc_register().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_proc_set_functor()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
AraxFunctor * arax_proc_set_functor (arax_proc_sproc,
arax_accel_type_e type,
AraxFunctorvfn 
)
+
+

Set the AraxFunctor of proc for the provided type.

Parameters
+ + + + +
procAn initialized arax_proc_s instance.
typeAccelerator type for provided functor.
vfnFunctor pointer, can be null.
+
+
+
Returns
Returns previous value of proc, just as arax_proc_get_functor() would return.
+ +

Definition at line 22 of file arax_proc.c.

+ +

References arax_proc_get_functor(), arax_proc_s::canrun, and arax_proc_s::functors.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01928.js b/a01928.js new file mode 100644 index 00000000..09f599a6 --- /dev/null +++ b/a01928.js @@ -0,0 +1,8 @@ +var a01928 = +[ + [ "ARAX_OBJ_DTOR_DECL", "a01928.html#a6f9d28b33cd0a625a238e122e45c7bf8", null ], + [ "arax_proc_can_run_at", "a01928.html#ab52a257305ef35f9fb9ebc0fdfe4b81c", null ], + [ "arax_proc_get_functor", "a01928.html#a30352290ef80c644620afca91f719cfe", null ], + [ "arax_proc_init", "a01928.html#a86ac572ea8f5f613129192c47d598818", null ], + [ "arax_proc_set_functor", "a01928.html#ae67ebc6d04dedfc104b4a61233d6eab4", null ] +]; \ No newline at end of file diff --git a/a01928_a30352290ef80c644620afca91f719cfe_cgraph.map b/a01928_a30352290ef80c644620afca91f719cfe_cgraph.map new file mode 100644 index 00000000..98a196d8 --- /dev/null +++ b/a01928_a30352290ef80c644620afca91f719cfe_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01928_a30352290ef80c644620afca91f719cfe_cgraph.md5 b/a01928_a30352290ef80c644620afca91f719cfe_cgraph.md5 new file mode 100644 index 00000000..6aae4dc6 --- /dev/null +++ b/a01928_a30352290ef80c644620afca91f719cfe_cgraph.md5 @@ -0,0 +1 @@ +8ec6333eb8cfe08e8ede4972f362d04d \ No newline at end of file diff --git a/a01928_a30352290ef80c644620afca91f719cfe_cgraph.svg b/a01928_a30352290ef80c644620afca91f719cfe_cgraph.svg new file mode 100644 index 00000000..a23160b0 --- /dev/null +++ b/a01928_a30352290ef80c644620afca91f719cfe_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_proc_get_functor + + +Node1 + + +arax_proc_get_functor + + + + + +Node2 + + +arax_accel_valid_type + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01928_a30352290ef80c644620afca91f719cfe_icgraph.map b/a01928_a30352290ef80c644620afca91f719cfe_icgraph.map new file mode 100644 index 00000000..78586cca --- /dev/null +++ b/a01928_a30352290ef80c644620afca91f719cfe_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01928_a30352290ef80c644620afca91f719cfe_icgraph.md5 b/a01928_a30352290ef80c644620afca91f719cfe_icgraph.md5 new file mode 100644 index 00000000..91f68c2f --- /dev/null +++ b/a01928_a30352290ef80c644620afca91f719cfe_icgraph.md5 @@ -0,0 +1 @@ +162007c4b5ea95964fbc833b431aa849 \ No newline at end of file diff --git a/a01928_a30352290ef80c644620afca91f719cfe_icgraph.svg b/a01928_a30352290ef80c644620afca91f719cfe_icgraph.svg new file mode 100644 index 00000000..74fcd7f0 --- /dev/null +++ b/a01928_a30352290ef80c644620afca91f719cfe_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_proc_get_functor + + +Node1 + + +arax_proc_get_functor + + + + + +Node2 + + +arax_proc_set_functor + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01928_a86ac572ea8f5f613129192c47d598818_cgraph.map b/a01928_a86ac572ea8f5f613129192c47d598818_cgraph.map new file mode 100644 index 00000000..66d51432 --- /dev/null +++ b/a01928_a86ac572ea8f5f613129192c47d598818_cgraph.map @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01928_a86ac572ea8f5f613129192c47d598818_cgraph.md5 b/a01928_a86ac572ea8f5f613129192c47d598818_cgraph.md5 new file mode 100644 index 00000000..2c366af3 --- /dev/null +++ b/a01928_a86ac572ea8f5f613129192c47d598818_cgraph.md5 @@ -0,0 +1 @@ +59b63e427bb7cc237f7522e366bdaf8b \ No newline at end of file diff --git a/a01928_a86ac572ea8f5f613129192c47d598818_cgraph.svg b/a01928_a86ac572ea8f5f613129192c47d598818_cgraph.svg new file mode 100644 index 00000000..8f9f5756 --- /dev/null +++ b/a01928_a86ac572ea8f5f613129192c47d598818_cgraph.svg @@ -0,0 +1,273 @@ + + + + + + +arax_proc_init + + +Node1 + + +arax_proc_init + + + + + +Node2 + + +arax_object_register + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_size_dec + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +arch_alloc_allocate + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +utils_list_add + + + + + +Node2->Node12 + + + + + + + + +Node14 + + +utils_list_node_init + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +arax_throttle_size_dec + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_condition_unlock + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +async_condition_wait + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_completion_complete + + + + + +Node7->Node8 + + + + + + + + +Node9->Node6 + + + + + + + + +Node9->Node8 + + + + + + + + +Node10 + + +async_semaphore_dec + + + + + +Node9->Node10 + + + + + + + + +Node13 + + +utils_list_node_add + + + + + +Node12->Node13 + + + + + + + + diff --git a/a01928_a86ac572ea8f5f613129192c47d598818_icgraph.map b/a01928_a86ac572ea8f5f613129192c47d598818_icgraph.map new file mode 100644 index 00000000..63445513 --- /dev/null +++ b/a01928_a86ac572ea8f5f613129192c47d598818_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01928_a86ac572ea8f5f613129192c47d598818_icgraph.md5 b/a01928_a86ac572ea8f5f613129192c47d598818_icgraph.md5 new file mode 100644 index 00000000..dc7aa409 --- /dev/null +++ b/a01928_a86ac572ea8f5f613129192c47d598818_icgraph.md5 @@ -0,0 +1 @@ +fad0e7a5e71865049bcb06b6164d6995 \ No newline at end of file diff --git a/a01928_a86ac572ea8f5f613129192c47d598818_icgraph.svg b/a01928_a86ac572ea8f5f613129192c47d598818_icgraph.svg new file mode 100644 index 00000000..d80084e3 --- /dev/null +++ b/a01928_a86ac572ea8f5f613129192c47d598818_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_proc_init + + +Node1 + + +arax_proc_init + + + + + +Node2 + + +arax_proc_register + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01928_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.map b/a01928_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.map new file mode 100644 index 00000000..8d43ccb2 --- /dev/null +++ b/a01928_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01928_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.md5 b/a01928_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.md5 new file mode 100644 index 00000000..10a84636 --- /dev/null +++ b/a01928_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.md5 @@ -0,0 +1 @@ +6c099e083544f804a93e5e03f913bcf3 \ No newline at end of file diff --git a/a01928_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.svg b/a01928_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.svg new file mode 100644 index 00000000..bb57e41f --- /dev/null +++ b/a01928_ab52a257305ef35f9fb9ebc0fdfe4b81c_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_proc_can_run_at + + +Node1 + + +arax_proc_can_run_at + + + + + +Node2 + + +arax_accel_valid_type + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01928_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.map b/a01928_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.map new file mode 100644 index 00000000..af492b9a --- /dev/null +++ b/a01928_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01928_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.md5 b/a01928_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.md5 new file mode 100644 index 00000000..eb7b162a --- /dev/null +++ b/a01928_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.md5 @@ -0,0 +1 @@ +83b53a3c3c4dd98d58bfd42d131a2db0 \ No newline at end of file diff --git a/a01928_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.svg b/a01928_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.svg new file mode 100644 index 00000000..4c2443ad --- /dev/null +++ b/a01928_ae67ebc6d04dedfc104b4a61233d6eab4_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_proc_set_functor + + +Node1 + + +arax_proc_set_functor + + + + + +Node2 + + +arax_proc_get_functor + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_valid_type + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01928_source.html b/a01928_source.html new file mode 100644 index 00000000..eec25075 --- /dev/null +++ b/a01928_source.html @@ -0,0 +1,167 @@ + + + + + + + +Arax: arax_proc.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_proc.c
+
+
+Go to the documentation of this file.
1#include "arax_proc.h"
+
2#include <string.h>
+
3
+ +
5{
+
6 arax_proc_s *proc =
+ +
8 sizeof(arax_proc_s), 1);
+
9
+
10 if (!proc) // GCOV_EXCL_LINE
+
11 return 0; // GCOV_EXCL_LINE
+
12
+
13 return proc;
+
14}
+
15
+ +
17{
+ +
19 return proc->functors[type];
+
20}
+
21
+ +
23{
+
24 AraxFunctor *ret = arax_proc_get_functor(proc, type);
+
25
+
26 proc->functors[type] = vfn;
+
27
+
28 proc->canrun |= (1llu << type);
+
29
+
30 return ret;
+
31}
+
32
+ +
34{
+ +
36 arax_assert(type != ANY);
+
37
+
38 return !!((proc->canrun) & (1llu << type));
+
39}
+
40
+ +
42{ }
+
arax_task_state_e() AraxFunctor(arax_task *)
Definition arax_types.h:108
+
enum arax_accel_type arax_accel_type_e
+
@ ANY
Definition arax_types.h:84
+
#define arax_assert(EXPR)
Definition arax_assert.h:7
+
@ ARAX_TYPE_PROC
Definition arax_object.h:18
+
#define ARAX_OBJ_DTOR_DECL(TYPE)
+ +
int arax_accel_valid_type(arax_accel_type_e type)
+
arax_object_s * arax_object_register(arax_object_repo_s *repo, arax_object_type_e type, const char *name, size_t size, const int ref_count)
Definition arax_object.c:98
+
AraxFunctor * arax_proc_get_functor(arax_proc_s *proc, arax_accel_type_e type)
Definition arax_proc.c:16
+
arax_proc_s * arax_proc_init(arax_object_repo_s *repo, const char *name)
Definition arax_proc.c:4
+
int arax_proc_can_run_at(arax_proc_s *proc, arax_accel_type_e type)
Definition arax_proc.c:33
+
AraxFunctor * arax_proc_set_functor(arax_proc_s *proc, arax_accel_type_e type, AraxFunctor *vfn)
Definition arax_proc.c:22
+ + +
AraxFunctor * functors[ARAX_ACCEL_TYPES]
Definition arax_proc.h:19
+
uint64_t canrun
Definition arax_proc.h:18
+
+
+ + + + diff --git a/a01929.map b/a01929.map new file mode 100644 index 00000000..a6f909c6 --- /dev/null +++ b/a01929.map @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01929.md5 b/a01929.md5 new file mode 100644 index 00000000..17d94a00 --- /dev/null +++ b/a01929.md5 @@ -0,0 +1 @@ +f7f754d719ba177e0fd18926e408d11f \ No newline at end of file diff --git a/a01929.svg b/a01929.svg new file mode 100644 index 00000000..65d66f7e --- /dev/null +++ b/a01929.svg @@ -0,0 +1,336 @@ + + + + + + +arax_proc.c + + +Node1 + + +arax_proc.c + + + + + +Node2 + + +arax_proc.h + + + + + +Node1->Node2 + + + + + + + + +Node17 + + +string.h + + + + + +Node1->Node17 + + + + + + + + +Node3 + + +arax.h + + + + + +Node2->Node3 + + + + + + + + +Node10 + + +core/arax_object.h + + + + + +Node2->Node10 + + + + + + + + +Node4 + + +stdio.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +stddef.h + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_types.h + + + + + +Node3->Node6 + + + + + + + + +Node9 + + +core/arax_accel_types.h + + + + + +Node3->Node9 + + + + + + + + +Node7 + + +sys/time.h + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +time.h + + + + + +Node6->Node8 + + + + + + + + +Node9->Node6 + + + + + + + + +Node11 + + +utils/list.h + + + + + +Node10->Node11 + + + + + + + + +Node13 + + +utils/spinlock.h + + + + + +Node10->Node13 + + + + + + + + +Node16 + + +arch/alloc.h + + + + + +Node10->Node16 + + + + + + + + +Node11->Node5 + + + + + + + + +Node12 + + +stdint.h + + + + + +Node11->Node12 + + + + + + + + +Node13->Node12 + + + + + + + + +Node14 + + +utils/arax_assert.h + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +compat.h + + + + + +Node14->Node15 + + + + + + + + diff --git a/a01931.html b/a01931.html new file mode 100644 index 00000000..2a23b0c9 --- /dev/null +++ b/a01931.html @@ -0,0 +1,167 @@ + + + + + + + +Arax: arax_ptr.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_ptr.c File Reference
+
+
+
#include "arax_ptr.h"
+#include "arax_pipe.h"
+
+ + Include dependency graph for arax_ptr.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Functions

int arax_ptr_valid (const void *ptr)
 
+

Function Documentation

+ +

◆ arax_ptr_valid()

+ +
+
+ + + + + + + + +
int arax_ptr_valid (const void * ptr)
+
+

Return true if ptr is 'inside' the shared segment ranges.

+ +

Definition at line 4 of file arax_ptr.c.

+ +

References arax_init(), and arax_pipe::shm_size.

+ +

Referenced by _arax_assert_obj(), arax_data_ref(), arax_data_ref_offset(), and arax_plot_register_metric().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01931.js b/a01931.js new file mode 100644 index 00000000..55db6fcd --- /dev/null +++ b/a01931.js @@ -0,0 +1,4 @@ +var a01931 = +[ + [ "arax_ptr_valid", "a01931.html#a80ab3bf4a8af9bb101b5a53248609771", null ] +]; \ No newline at end of file diff --git a/a01931_a80ab3bf4a8af9bb101b5a53248609771_cgraph.map b/a01931_a80ab3bf4a8af9bb101b5a53248609771_cgraph.map new file mode 100644 index 00000000..097b698d --- /dev/null +++ b/a01931_a80ab3bf4a8af9bb101b5a53248609771_cgraph.map @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01931_a80ab3bf4a8af9bb101b5a53248609771_cgraph.md5 b/a01931_a80ab3bf4a8af9bb101b5a53248609771_cgraph.md5 new file mode 100644 index 00000000..d105e366 --- /dev/null +++ b/a01931_a80ab3bf4a8af9bb101b5a53248609771_cgraph.md5 @@ -0,0 +1 @@ +122cfc17b7acf408d6fec557bda9981a \ No newline at end of file diff --git a/a01931_a80ab3bf4a8af9bb101b5a53248609771_cgraph.svg b/a01931_a80ab3bf4a8af9bb101b5a53248609771_cgraph.svg new file mode 100644 index 00000000..5717f370 --- /dev/null +++ b/a01931_a80ab3bf4a8af9bb101b5a53248609771_cgraph.svg @@ -0,0 +1,1029 @@ + + + + + + +arax_ptr_valid + + +Node1 + + +arax_ptr_valid + + + + + +Node2 + + +arax_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_pipe_get_available_size + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +arax_pipe_have_to_mmap + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +arax_pipe_init + + + + + +Node3->Node7 + + + + + + + + +Node23 + + +utils_config_alloc_path + + + + + +Node3->Node23 + + + + + + + + +Node26 + + +utils_config_get_bool + + + + + +Node3->Node26 + + + + + + + + +Node38 + + +arax_pipe_mmap_address + + + + + +Node3->Node38 + + + + + + + + +Node39 + + +async_condition_lock + + + + + +Node3->Node39 + + + + + + + + +Node41 + + +async_condition_unlock + + + + + +Node3->Node41 + + + + + + + + +Node42 + + +async_condition_wait + + + + + +Node3->Node42 + + + + + + + + +Node44 + + +async_meta_init_always + + + + + +Node3->Node44 + + + + + + + + +Node49 + + +utils_config_get_str + + + + + +Node3->Node49 + + + + + + + + +Node50 + + +system_mmap + + + + + +Node3->Node50 + + + + + + + + +Node51 + + +system_process_id + + + + + +Node3->Node51 + + + + + + + + +Node52 + + +system_total_memory + + + + + +Node3->Node52 + + + + + + + + +Node53 + + +utils_config_get_size + + + + + +Node3->Node53 + + + + + + + + +Node33 + + +utils_config_get_source + + + + + +Node3->Node33 + + + + + + + + +Node5 + + +arax_throttle_get_available_size + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +arax_object_repo_init + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +utils_list_init + + + + + +Node7->Node9 + + + + + + + + +Node11 + + +arax_pipe_add_process + + + + + +Node7->Node11 + + + + + + + + +Node12 + + +arax_throttle_init + + + + + +Node7->Node12 + + + + + + + + +Node13 + + +async_condition_init + + + + + +Node7->Node13 + + + + + + + + +Node19 + + +arch_alloc_init_always + + + + + +Node7->Node19 + + + + + + + + +Node20 + + +arch_alloc_init_once + + + + + +Node7->Node20 + + + + + + + + +Node22 + + +async_meta_init_once + + + + + +Node7->Node22 + + + + + + + + +Node37 + + +utils_kv_init + + + + + +Node7->Node37 + + + + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +utils_list_node_init + + + + + +Node9->Node10 + + + + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +async_completion_complete + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +async_completion_init + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +async_condition_unlock + + + + + +Node13->Node16 + + + + + + + + +Node18 + + +async_semaphore_init + + + + + +Node13->Node18 + + + + + + + + +Node21 + + +utils_bitmap_init + + + + + +Node20->Node21 + + + + + + + + +Node22->Node9 + + + + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +utils_config_free_path + + + + + +Node22->Node25 + + + + + + + + +Node22->Node26 + + + + + + + + +Node24 + + +system_home_path + + + + + +Node23->Node24 + + + + + + + + +Node27 + + +utils_config_get_int + + + + + +Node26->Node27 + + + + + + + + +Node28 + + +utils_config_get_long + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +_utils_config_get_str + + + + + +Node28->Node29 + + + + + + + + +Node34 + + +utils_config_write_long + + + + + +Node28->Node34 + + + + + + + + +Node35 + + +utils_config_write_str + + + + + +Node34->Node35 + + + + + + + + +Node40 + + +async_completion_wait + + + + + +Node39->Node40 + + + + + + + + +Node41->Node14 + + + + + + + + +Node42->Node14 + + + + + + + + +Node42->Node40 + + + + + + + + +Node43 + + +async_semaphore_dec + + + + + +Node42->Node43 + + + + + + + + +Node44->Node23 + + + + + + + + +Node44->Node25 + + + + + + + + +Node45 + + +async_thread + + + + + +Node44->Node45 + + + + + + + + +Node44->Node49 + + + + + + + + +Node46 + + +async_completion_check + + + + + +Node45->Node46 + + + + + + + + +Node47 + + +getVmID + + + + + +Node45->Node47 + + + + + + + + +Node48 + + +utils_list_del + + + + + +Node45->Node48 + + + + + + + + +Node49->Node29 + + + + + + + + +Node49->Node35 + + + + + + + + +Node32 + + +system_file_size + + + + + +Node50->Node32 + + + + + + + + +Node53->Node28 + + + + + + + + +Node31 + + +system_env_var + + + + + +Node33->Node31 + + + + + + + + diff --git a/a01931_a80ab3bf4a8af9bb101b5a53248609771_icgraph.map b/a01931_a80ab3bf4a8af9bb101b5a53248609771_icgraph.map new file mode 100644 index 00000000..6063def3 --- /dev/null +++ b/a01931_a80ab3bf4a8af9bb101b5a53248609771_icgraph.map @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/a01931_a80ab3bf4a8af9bb101b5a53248609771_icgraph.md5 b/a01931_a80ab3bf4a8af9bb101b5a53248609771_icgraph.md5 new file mode 100644 index 00000000..5ea38297 --- /dev/null +++ b/a01931_a80ab3bf4a8af9bb101b5a53248609771_icgraph.md5 @@ -0,0 +1 @@ +9f450a2e84596379d3bdadfb988d46f9 \ No newline at end of file diff --git a/a01931_a80ab3bf4a8af9bb101b5a53248609771_icgraph.svg b/a01931_a80ab3bf4a8af9bb101b5a53248609771_icgraph.svg new file mode 100644 index 00000000..62f4cce9 --- /dev/null +++ b/a01931_a80ab3bf4a8af9bb101b5a53248609771_icgraph.svg @@ -0,0 +1,103 @@ + + + + + + +arax_ptr_valid + + +Node1 + + +arax_ptr_valid + + + + + +Node2 + + +_arax_assert_obj + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_ref + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_data_ref_offset + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node1->Node5 + + + + + + + + +Node3->Node4 + + + + + + + + diff --git a/a01931_source.html b/a01931_source.html new file mode 100644 index 00000000..051d9830 --- /dev/null +++ b/a01931_source.html @@ -0,0 +1,132 @@ + + + + + + + +Arax: arax_ptr.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_ptr.c
+
+
+Go to the documentation of this file.
1#include "arax_ptr.h"
+
2#include "arax_pipe.h"
+
3
+
4int arax_ptr_valid(const void *ptr)
+
5{
+
6 arax_pipe_s *pipe = arax_init();
+
7 void *vp = pipe;
+
8
+
9 if (ptr < vp) // Before segment start
+
10 return 0; // not valid
+
11
+
12 vp += pipe->shm_size; // Move to end of segment
+
13
+
14 if (ptr < vp) // Before segment end
+
15 return 1; // valid
+
16
+
17 return 0; // Not valid
+
18}
+ + +
int arax_ptr_valid(const void *ptr)
Definition arax_ptr.c:4
+
arax_pipe_s * arax_init()
Definition impl.c:132
+ +
uint64_t shm_size
Definition arax_pipe.h:28
+
+
+ + + + diff --git a/a01932.map b/a01932.map new file mode 100644 index 00000000..5f97c533 --- /dev/null +++ b/a01932.map @@ -0,0 +1,71 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01932.md5 b/a01932.md5 new file mode 100644 index 00000000..07bc8b37 --- /dev/null +++ b/a01932.md5 @@ -0,0 +1 @@ +dc65628725044e2131fbec3639b79281 \ No newline at end of file diff --git a/a01932.svg b/a01932.svg new file mode 100644 index 00000000..fff76e17 --- /dev/null +++ b/a01932.svg @@ -0,0 +1,633 @@ + + + + + + +arax_ptr.c + + +Node1 + + +arax_ptr.c + + + + + +Node2 + + +arax_ptr.h + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +arax_pipe.h + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +utils/compat.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +arax.h + + + + + +Node4->Node5 + + + + + + + + +Node12 + + +utils/Kv.h + + + + + +Node4->Node12 + + + + + + + + +Node17 + + +utils/queue.h + + + + + +Node4->Node17 + + + + + + + + +Node18 + + +core/arax_accel.h + + + + + +Node4->Node18 + + + + + + + + +Node25 + + +core/arax_task.h + + + + + +Node4->Node25 + + + + + + + + +Node6 + + +stdio.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +stddef.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +arax_types.h + + + + + +Node5->Node8 + + + + + + + + +Node11 + + +core/arax_accel_types.h + + + + + +Node5->Node11 + + + + + + + + +Node9 + + +sys/time.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +time.h + + + + + +Node8->Node10 + + + + + + + + +Node11->Node8 + + + + + + + + +Node12->Node7 + + + + + + + + +Node13 + + +conf.h + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +spinlock.h + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +stdint.h + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +utils/arax_assert.h + + + + + +Node14->Node16 + + + + + + + + +Node16->Node3 + + + + + + + + +Node17->Node7 + + + + + + + + +Node17->Node13 + + + + + + + + +Node17->Node14 + + + + + + + + +Node17->Node15 + + + + + + + + +Node18->Node5 + + + + + + + + +Node19 + + +async.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +core/arax_vaccel.h + + + + + +Node18->Node20 + + + + + + + + +Node24 + + +core/arax_throttle.h + + + + + +Node18->Node24 + + + + + + + + +Node20->Node17 + + + + + + + + +Node20->Node18 + + + + + + + + +Node20->Node19 + + + + + + + + +Node21 + + +core/arax_object.h + + + + + +Node20->Node21 + + + + + + + + +Node21->Node14 + + + + + + + + +Node22 + + +utils/list.h + + + + + +Node21->Node22 + + + + + + + + +Node23 + + +arch/alloc.h + + + + + +Node21->Node23 + + + + + + + + +Node22->Node7 + + + + + + + + +Node22->Node15 + + + + + + + + +Node24->Node19 + + + + + + + + +Node25->Node19 + + + + + + + + +Node26 + + +core/arax_proc.h + + + + + +Node25->Node26 + + + + + + + + +Node26->Node5 + + + + + + + + +Node26->Node21 + + + + + + + + diff --git a/a01934.html b/a01934.html new file mode 100644 index 00000000..d469577b --- /dev/null +++ b/a01934.html @@ -0,0 +1,432 @@ + + + + + + + +Arax: arax_task.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_task.c File Reference
+
+
+
#include "arax.h"
+#include "arax_pipe.h"
+#include "arax_data.h"
+#include "utils/timer.h"
+#include <stdlib.h>
+
+ + Include dependency graph for arax_task.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + + + + + + + +

+Functions

arax_task_msg_sarax_task_alloc (arax_pipe_s *vpipe, arax_accel *accel, arax_proc *proc, size_t host_size, int ins, arax_data **dev_in, int outs, arax_data **dev_out)
 
void * arax_task_host_data (arax_task_msg_s *task, size_t size)
 
void arax_task_submit (arax_task_msg_s *task)
 
void arax_task_wait_done (arax_task_msg_s *msg)
 
void arax_task_mark_done (arax_task_msg_s *msg, arax_task_state_e state)
 
 ARAX_OBJ_DTOR_DECL (arax_task_msg_s)
 
+

Function Documentation

+ +

◆ ARAX_OBJ_DTOR_DECL()

+ +
+
+ + + + + + + + +
ARAX_OBJ_DTOR_DECL (arax_task_msg_s )
+
+ +

Definition at line 89 of file arax_task.c.

+ +

References arax_task_msg::accel, arax_object_ref_dec(), arax_task_msg::in_count, arax_task_msg::io, and arax_task_msg::out_count.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_task_alloc()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
arax_task_msg_s * arax_task_alloc (arax_pipe_svpipe,
arax_accelaccel,
arax_procproc,
size_t host_size,
int ins,
arax_data ** dev_in,
int outs,
arax_data ** dev_out 
)
+
+

Allocates a arax_task_msg_s object.

+
Parameters
+ + + + + + + + + +
vpipeA valid arax_pipe_s instance.
accelarax_accel instance
pricarax_proc instance
host_sizebytes to reserve for the tasks host_data.
insnumber of inputs
dev_inarray of arax_data pointers with input data.
outsnumber of outputs
dev_outarray of arax_data pointers with output data.
+
+
+ +

Definition at line 7 of file arax_task.c.

+ +

References arax_task_msg::accel, arax_assert, arax_data_annotate, arax_data_input_init(), arax_data_output_init(), arax_object_register(), ARAX_TYPE_TASK, arax_pipe::async, async_completion_init(), arax_task_msg::done, arax_task_msg::host_size, arax_task_msg::in_count, arax_task_msg::io, arax_pipe::objs, arax_task_msg::out_count, arax_task_msg::pipe, arax_task_msg::proc, and vpipe.

+ +

Referenced by arax_task_issue().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_task_host_data()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void * arax_task_host_data (arax_task_msg_stask,
size_t size 
)
+
+

Returns start of host data of task.

+
Parameters
+ + + +
taskA valid arax_task_msg_s
sizeSize of the host_data, this has to match the host_size given to arax_task_alloc()/arax_task_issue() \return Pointer to scalars if host_size > 0, null otherwise.
+
+
+ +

Definition at line 51 of file arax_task.c.

+ +

References arax_assert, arax_assert_obj, ARAX_TYPE_TASK, arax_task_msg::host_size, arax_task_msg::in_count, and arax_task_msg::out_count.

+ +

Referenced by arax_data_get(), and arax_task_issue().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_task_mark_done()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_task_mark_done (arax_task_msg_smsg,
arax_task_state_e state 
)
+
+ +

Definition at line 83 of file arax_task.c.

+ +

References async_completion_complete(), arax_task_msg::done, and arax_task_msg::state.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_task_submit()

+ +
+
+ + + + + + + + +
void arax_task_submit (arax_task_msg_stask)
+
+ +

Definition at line 64 of file arax_task.c.

+ +

References arax_task_msg::accel, arax_assert_obj, arax_object_ref_inc(), ARAX_TYPE_VIRT_ACCEL, arax_vaccel_add_task(), arax_task_msg::state, arax_task_msg::stats, arax_task_stats::task_duration, task_issued, and utils_timer_set.

+ +

Referenced by arax_task_issue().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_task_wait_done()

+ +
+
+ + + + + + + + +
void arax_task_wait_done (arax_task_msg_smsg)
+
+ +

Definition at line 77 of file arax_task.c.

+ +

References arax_assert, async_completion_wait(), arax_task_msg::done, arax_task_msg::state, task_completed, and task_issued.

+ +

Referenced by arax_task_wait().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01934.js b/a01934.js new file mode 100644 index 00000000..91526d44 --- /dev/null +++ b/a01934.js @@ -0,0 +1,9 @@ +var a01934 = +[ + [ "ARAX_OBJ_DTOR_DECL", "a01934.html#a5eb16d4196838d10a2b57715f2eddee7", null ], + [ "arax_task_alloc", "a01934.html#a27bee94f7a23281c8b2b72ec433f6059", null ], + [ "arax_task_host_data", "a01934.html#aa3cb73b347940187fb3399f51b1a55b7", null ], + [ "arax_task_mark_done", "a01934.html#a46456b4307a70983ebe554fa712d856e", null ], + [ "arax_task_submit", "a01934.html#ace08f924cb86d1310099621564536657", null ], + [ "arax_task_wait_done", "a01934.html#a0d3707df989265f8cf380acdef95eb02", null ] +]; \ No newline at end of file diff --git a/a01934_a0d3707df989265f8cf380acdef95eb02_cgraph.map b/a01934_a0d3707df989265f8cf380acdef95eb02_cgraph.map new file mode 100644 index 00000000..0783828f --- /dev/null +++ b/a01934_a0d3707df989265f8cf380acdef95eb02_cgraph.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/a01934_a0d3707df989265f8cf380acdef95eb02_cgraph.md5 b/a01934_a0d3707df989265f8cf380acdef95eb02_cgraph.md5 new file mode 100644 index 00000000..495be063 --- /dev/null +++ b/a01934_a0d3707df989265f8cf380acdef95eb02_cgraph.md5 @@ -0,0 +1 @@ +cb310a851627f5387a9b827dc938b2da \ No newline at end of file diff --git a/a01934_a0d3707df989265f8cf380acdef95eb02_cgraph.svg b/a01934_a0d3707df989265f8cf380acdef95eb02_cgraph.svg new file mode 100644 index 00000000..8aa445ed --- /dev/null +++ b/a01934_a0d3707df989265f8cf380acdef95eb02_cgraph.svg @@ -0,0 +1,111 @@ + + + + + + +arax_task_wait_done + + +Node1 + + +arax_task_wait_done + + + + + +Node2 + + +async_completion_wait + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_add_completion + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +getVmID + + + + + +Node2->Node6 + + + + + + + + +Node4 + + +utils_list_add + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +utils_list_node_add + + + + + +Node4->Node5 + + + + + + + + diff --git a/a01934_a0d3707df989265f8cf380acdef95eb02_icgraph.map b/a01934_a0d3707df989265f8cf380acdef95eb02_icgraph.map new file mode 100644 index 00000000..0a353b60 --- /dev/null +++ b/a01934_a0d3707df989265f8cf380acdef95eb02_icgraph.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/a01934_a0d3707df989265f8cf380acdef95eb02_icgraph.md5 b/a01934_a0d3707df989265f8cf380acdef95eb02_icgraph.md5 new file mode 100644 index 00000000..64761b73 --- /dev/null +++ b/a01934_a0d3707df989265f8cf380acdef95eb02_icgraph.md5 @@ -0,0 +1 @@ +e80ea01d298cbb8e673b27d93d25e1a9 \ No newline at end of file diff --git a/a01934_a0d3707df989265f8cf380acdef95eb02_icgraph.svg b/a01934_a0d3707df989265f8cf380acdef95eb02_icgraph.svg new file mode 100644 index 00000000..d52a2f5d --- /dev/null +++ b/a01934_a0d3707df989265f8cf380acdef95eb02_icgraph.svg @@ -0,0 +1,112 @@ + + + + + + +arax_task_wait_done + + +Node1 + + +arax_task_wait_done + + + + + +Node2 + + +arax_task_wait + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_allocate +_remote + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_get + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +arax_task_issue_sync + + + + + +Node2->Node6 + + + + + + + + +Node5 + + +arax_data_memcpy + + + + + +Node4->Node5 + + + + + + + + diff --git a/a01934_a27bee94f7a23281c8b2b72ec433f6059_cgraph.map b/a01934_a27bee94f7a23281c8b2b72ec433f6059_cgraph.map new file mode 100644 index 00000000..ed497fba --- /dev/null +++ b/a01934_a27bee94f7a23281c8b2b72ec433f6059_cgraph.map @@ -0,0 +1,61 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01934_a27bee94f7a23281c8b2b72ec433f6059_cgraph.md5 b/a01934_a27bee94f7a23281c8b2b72ec433f6059_cgraph.md5 new file mode 100644 index 00000000..8614a598 --- /dev/null +++ b/a01934_a27bee94f7a23281c8b2b72ec433f6059_cgraph.md5 @@ -0,0 +1 @@ +4b0d8d828ebca14df3bf635dee217a55 \ No newline at end of file diff --git a/a01934_a27bee94f7a23281c8b2b72ec433f6059_cgraph.svg b/a01934_a27bee94f7a23281c8b2b72ec433f6059_cgraph.svg new file mode 100644 index 00000000..eceac43d --- /dev/null +++ b/a01934_a27bee94f7a23281c8b2b72ec433f6059_cgraph.svg @@ -0,0 +1,543 @@ + + + + + + +arax_task_alloc + + +Node1 + + +arax_task_alloc + + + + + +Node2 + + +arax_data_input_init + + + + + +Node1->Node2 + + + + + + + + +Node16 + + +arax_data_output_init + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +arax_object_register + + + + + +Node1->Node17 + + + + + + + + +Node26 + + +async_completion_init + + + + + +Node1->Node26 + + + + + + + + +Node3 + + +arax_data_migrate_accel + + + + + +Node2->Node3 + + + + + + + + +Node14 + + +arax_object_ref_inc + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +arax_object_ref_dec + + + + + +Node3->Node4 + + + + + + + + +Node3->Node14 + + + + + + + + +Node15 + + +arax_object_type_to_str + + + + + +Node3->Node15 + + + + + + + + +Node5 + + +arax_pipe_size_inc + + + + + +Node4->Node5 + + + + + + + + +Node13 + + +utils_list_del + + + + + +Node4->Node13 + + + + + + + + +Node6 + + +arax_throttle_size_inc + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +async_condition_lock + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_condition_notify + + + + + +Node6->Node9 + + + + + + + + +Node11 + + +async_condition_unlock + + + + + +Node6->Node11 + + + + + + + + +Node8 + + +async_completion_wait + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +async_semaphore_inc + + + + + +Node9->Node10 + + + + + + + + +Node12 + + +async_completion_complete + + + + + +Node11->Node12 + + + + + + + + +Node16->Node3 + + + + + + + + +Node16->Node14 + + + + + + + + +Node18 + + +arax_pipe_size_dec + + + + + +Node17->Node18 + + + + + + + + +Node22 + + +arch_alloc_allocate + + + + + +Node17->Node22 + + + + + + + + +Node23 + + +utils_list_add + + + + + +Node17->Node23 + + + + + + + + +Node25 + + +utils_list_node_init + + + + + +Node17->Node25 + + + + + + + + +Node19 + + +arax_throttle_size_dec + + + + + +Node18->Node19 + + + + + + + + +Node19->Node7 + + + + + + + + +Node19->Node11 + + + + + + + + +Node20 + + +async_condition_wait + + + + + +Node19->Node20 + + + + + + + + +Node20->Node8 + + + + + + + + +Node20->Node12 + + + + + + + + +Node21 + + +async_semaphore_dec + + + + + +Node20->Node21 + + + + + + + + +Node24 + + +utils_list_node_add + + + + + +Node23->Node24 + + + + + + + + +Node26->Node25 + + + + + + + + diff --git a/a01934_a27bee94f7a23281c8b2b72ec433f6059_icgraph.map b/a01934_a27bee94f7a23281c8b2b72ec433f6059_icgraph.map new file mode 100644 index 00000000..03390655 --- /dev/null +++ b/a01934_a27bee94f7a23281c8b2b72ec433f6059_icgraph.map @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/a01934_a27bee94f7a23281c8b2b72ec433f6059_icgraph.md5 b/a01934_a27bee94f7a23281c8b2b72ec433f6059_icgraph.md5 new file mode 100644 index 00000000..f4382633 --- /dev/null +++ b/a01934_a27bee94f7a23281c8b2b72ec433f6059_icgraph.md5 @@ -0,0 +1 @@ +801914fc09985af31217274b660ce395 \ No newline at end of file diff --git a/a01934_a27bee94f7a23281c8b2b72ec433f6059_icgraph.svg b/a01934_a27bee94f7a23281c8b2b72ec433f6059_icgraph.svg new file mode 100644 index 00000000..e1f1ba31 --- /dev/null +++ b/a01934_a27bee94f7a23281c8b2b72ec433f6059_icgraph.svg @@ -0,0 +1,157 @@ + + + + + + +arax_task_alloc + + +Node1 + + +arax_task_alloc + + + + + +Node2 + + +arax_task_issue + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_allocate +_remote + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_get + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +arax_data_set + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +arax_task_issue_sync + + + + + +Node2->Node8 + + + + + + + + +Node5 + + +arax_data_memcpy + + + + + +Node4->Node5 + + + + + + + + +Node6->Node5 + + + + + + + + diff --git a/a01934_a46456b4307a70983ebe554fa712d856e_cgraph.map b/a01934_a46456b4307a70983ebe554fa712d856e_cgraph.map new file mode 100644 index 00000000..fba0e26c --- /dev/null +++ b/a01934_a46456b4307a70983ebe554fa712d856e_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01934_a46456b4307a70983ebe554fa712d856e_cgraph.md5 b/a01934_a46456b4307a70983ebe554fa712d856e_cgraph.md5 new file mode 100644 index 00000000..4256a9f8 --- /dev/null +++ b/a01934_a46456b4307a70983ebe554fa712d856e_cgraph.md5 @@ -0,0 +1 @@ +9ca5503691c2e2c0e05d9cc3d5522627 \ No newline at end of file diff --git a/a01934_a46456b4307a70983ebe554fa712d856e_cgraph.svg b/a01934_a46456b4307a70983ebe554fa712d856e_cgraph.svg new file mode 100644 index 00000000..62095b8d --- /dev/null +++ b/a01934_a46456b4307a70983ebe554fa712d856e_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_task_mark_done + + +Node1 + + +arax_task_mark_done + + + + + +Node2 + + +async_completion_complete + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +wakeupVm + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01934_a5eb16d4196838d10a2b57715f2eddee7_cgraph.map b/a01934_a5eb16d4196838d10a2b57715f2eddee7_cgraph.map new file mode 100644 index 00000000..f6f99e3c --- /dev/null +++ b/a01934_a5eb16d4196838d10a2b57715f2eddee7_cgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01934_a5eb16d4196838d10a2b57715f2eddee7_cgraph.md5 b/a01934_a5eb16d4196838d10a2b57715f2eddee7_cgraph.md5 new file mode 100644 index 00000000..65cf5f28 --- /dev/null +++ b/a01934_a5eb16d4196838d10a2b57715f2eddee7_cgraph.md5 @@ -0,0 +1 @@ +411db46fcfc170cae55221556d23373c \ No newline at end of file diff --git a/a01934_a5eb16d4196838d10a2b57715f2eddee7_cgraph.svg b/a01934_a5eb16d4196838d10a2b57715f2eddee7_cgraph.svg new file mode 100644 index 00000000..dabcf93e --- /dev/null +++ b/a01934_a5eb16d4196838d10a2b57715f2eddee7_cgraph.svg @@ -0,0 +1,201 @@ + + + + + + +ARAX_OBJ_DTOR_DECL + + +Node1 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2 + + +arax_object_ref_dec + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_size_inc + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +utils_list_del + + + + + +Node2->Node11 + + + + + + + + +Node4 + + +arax_throttle_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_condition_notify + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +async_condition_unlock + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_semaphore_inc + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +async_completion_complete + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01934_aa3cb73b347940187fb3399f51b1a55b7_icgraph.map b/a01934_aa3cb73b347940187fb3399f51b1a55b7_icgraph.map new file mode 100644 index 00000000..0483f9a7 --- /dev/null +++ b/a01934_aa3cb73b347940187fb3399f51b1a55b7_icgraph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/a01934_aa3cb73b347940187fb3399f51b1a55b7_icgraph.md5 b/a01934_aa3cb73b347940187fb3399f51b1a55b7_icgraph.md5 new file mode 100644 index 00000000..35a31856 --- /dev/null +++ b/a01934_aa3cb73b347940187fb3399f51b1a55b7_icgraph.md5 @@ -0,0 +1 @@ +e184a8e6750e0a0c1cdfc834a98d0478 \ No newline at end of file diff --git a/a01934_aa3cb73b347940187fb3399f51b1a55b7_icgraph.svg b/a01934_aa3cb73b347940187fb3399f51b1a55b7_icgraph.svg new file mode 100644 index 00000000..af2a2639 --- /dev/null +++ b/a01934_aa3cb73b347940187fb3399f51b1a55b7_icgraph.svg @@ -0,0 +1,166 @@ + + + + + + +arax_task_host_data + + +Node1 + + +arax_task_host_data + + + + + +Node2 + + +arax_data_get + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +arax_task_issue + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +arax_data_memcpy + + + + + +Node2->Node3 + + + + + + + + +Node4->Node2 + + + + + + + + +Node5 + + +arax_data_allocate +_remote + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_data_set + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +arax_task_issue_sync + + + + + +Node4->Node8 + + + + + + + + +Node6->Node3 + + + + + + + + diff --git a/a01934_ace08f924cb86d1310099621564536657_cgraph.map b/a01934_ace08f924cb86d1310099621564536657_cgraph.map new file mode 100644 index 00000000..f156d172 --- /dev/null +++ b/a01934_ace08f924cb86d1310099621564536657_cgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01934_ace08f924cb86d1310099621564536657_cgraph.md5 b/a01934_ace08f924cb86d1310099621564536657_cgraph.md5 new file mode 100644 index 00000000..95d0b5ad --- /dev/null +++ b/a01934_ace08f924cb86d1310099621564536657_cgraph.md5 @@ -0,0 +1 @@ +d6139410489206dcd1782ec6484110d6 \ No newline at end of file diff --git a/a01934_ace08f924cb86d1310099621564536657_cgraph.svg b/a01934_ace08f924cb86d1310099621564536657_cgraph.svg new file mode 100644 index 00000000..bd385135 --- /dev/null +++ b/a01934_ace08f924cb86d1310099621564536657_cgraph.svg @@ -0,0 +1,201 @@ + + + + + + +arax_task_submit + + +Node1 + + +arax_task_submit + + + + + +Node2 + + +arax_object_ref_inc + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_vaccel_add_task + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_accel_add_task + + + + + +Node3->Node4 + + + + + + + + +Node11 + + +utils_queue_push + + + + + +Node3->Node11 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_condition_notify + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +async_condition_unlock + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_semaphore_inc + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +async_completion_complete + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01934_ace08f924cb86d1310099621564536657_icgraph.map b/a01934_ace08f924cb86d1310099621564536657_icgraph.map new file mode 100644 index 00000000..8b6e1975 --- /dev/null +++ b/a01934_ace08f924cb86d1310099621564536657_icgraph.map @@ -0,0 +1,18 @@ + + + + + + + + + + + + + + + + + + diff --git a/a01934_ace08f924cb86d1310099621564536657_icgraph.md5 b/a01934_ace08f924cb86d1310099621564536657_icgraph.md5 new file mode 100644 index 00000000..781e58ba --- /dev/null +++ b/a01934_ace08f924cb86d1310099621564536657_icgraph.md5 @@ -0,0 +1 @@ +981848ccf3080c177c5109214f88dbb0 \ No newline at end of file diff --git a/a01934_ace08f924cb86d1310099621564536657_icgraph.svg b/a01934_ace08f924cb86d1310099621564536657_icgraph.svg new file mode 100644 index 00000000..aab81404 --- /dev/null +++ b/a01934_ace08f924cb86d1310099621564536657_icgraph.svg @@ -0,0 +1,157 @@ + + + + + + +arax_task_submit + + +Node1 + + +arax_task_submit + + + + + +Node2 + + +arax_task_issue + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_allocate +_remote + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_get + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +arax_data_set + + + + + +Node2->Node6 + + + + + + + + +Node7 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2->Node7 + + + + + + + + +Node8 + + +arax_task_issue_sync + + + + + +Node2->Node8 + + + + + + + + +Node5 + + +arax_data_memcpy + + + + + +Node4->Node5 + + + + + + + + +Node6->Node5 + + + + + + + + diff --git a/a01934_source.html b/a01934_source.html new file mode 100644 index 00000000..b2351c72 --- /dev/null +++ b/a01934_source.html @@ -0,0 +1,262 @@ + + + + + + + +Arax: arax_task.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_task.c
+
+
+Go to the documentation of this file.
1#include "arax.h"
+
2#include "arax_pipe.h"
+
3#include "arax_data.h"
+
4#include "utils/timer.h"
+
5#include <stdlib.h>
+
6
+
7arax_task_msg_s* arax_task_alloc(arax_pipe_s *vpipe, arax_accel *accel, arax_proc *proc, size_t host_size, int ins,
+
8 arax_data **dev_in, int outs, arax_data **dev_out)
+
9{
+
10 arax_assert(accel);
+
11 arax_assert(proc);
+
12 // Size of io array
+
13 const size_t io_size = sizeof(arax_data *) * (ins + outs);
+
14
+
15 arax_task_msg_s *task;
+
16
+ +
18 ARAX_TYPE_TASK, "Task",
+
19 sizeof(arax_task_msg_s) + io_size + host_size, 1);
+
20
+
21 if (!task) // GCOV_EXCL_LINE
+
22 return 0; // GCOV_EXCL_LINE
+
23
+ +
25
+
26 task->accel = accel;
+
27 task->proc = proc;
+
28 task->pipe = vpipe;
+
29 task->in_count = ins;
+
30 task->out_count = outs;
+
31 task->host_size = host_size;
+
32
+
33 arax_data **dest = task->io;
+
34 int cnt;
+
35
+
36 for (cnt = 0; cnt < ins; cnt++, dest++) {
+
37 *dest = dev_in[cnt];
+
38 arax_data_input_init(*dest, accel);
+
39 arax_data_annotate(*dest, "%s:in[%d]", ((arax_proc_s *) proc)->obj.name, cnt);
+
40 }
+
41
+
42 for (cnt = 0; cnt < outs; cnt++, dest++) {
+
43 *dest = dev_out[cnt];
+
44 arax_data_output_init(*dest, accel);
+
45 arax_data_annotate(*dest, "%s:out[%d]", ((arax_proc_s *) proc)->obj.name, cnt);
+
46 }
+
47
+
48 return task;
+
49} /* arax_task_alloc */
+
50
+
51void* arax_task_host_data(arax_task_msg_s *task, size_t size)
+
52{
+ +
54 arax_assert(size == task->host_size);
+
55
+
56 if (task->host_size == 0)
+
57 return 0;
+
58
+
59 const size_t io_size = sizeof(arax_data *) * (task->in_count + task->out_count);
+
60
+
61 return (char *) (task + 1) + io_size;
+
62}
+
63
+ +
65{
+
66 arax_object_s *accel = task->accel;
+
67
+ +
69
+ +
71
+ +
73 task->state = task_issued;
+
74 arax_vaccel_add_task((arax_vaccel_s *) accel, task);
+
75}
+
76
+ +
78{
+ + +
81}
+
82
+ +
84{
+
85 msg->state = state;
+ +
87}
+
88
+ +
90{
+
91 arax_task_msg_s *_task = (arax_task_msg_s *) obj;
+
92 int cnt;
+
93
+
94 for (cnt = 0; cnt < _task->in_count + _task->out_count; cnt++) {
+
95 // printf("\t\tboom task data free %p\n",_task->io[cnt]);
+
96 arax_object_ref_dec(_task->io[cnt]);
+
97 }
+
98
+
99 if (_task->accel)
+ +
101 else
+
102 fprintf(stderr, "arax_task(%p,%s) dtor called, task possibly unissued!\n", obj, obj->name);
+
103}
+ + +
void arax_accel
Definition arax_types.h:9
+
void arax_proc
Definition arax_types.h:14
+
arax_task_state_e
Definition arax_types.h:62
+
@ task_issued
Definition arax_types.h:64
+
@ task_completed
Definition arax_types.h:65
+
void arax_data
Definition arax_types.h:56
+
#define arax_assert(EXPR)
Definition arax_assert.h:7
+
#define arax_assert_obj(OBJ, TYPE)
Definition arax_assert.h:12
+ +
#define utils_timer_set(NAME, WHAT)
Definition timer.h:13
+ +
#define arax_data_annotate(DATA,...)
Definition arax_data.h:158
+
@ ARAX_TYPE_VIRT_ACCEL
Definition arax_object.h:17
+
@ ARAX_TYPE_TASK
Definition arax_object.h:20
+
#define ARAX_OBJ_DTOR_DECL(TYPE)
+
struct arax_task_msg arax_task_msg_s
+
void async_completion_init(async_meta_s *meta, async_completion_s *completion)
+
void async_completion_complete(async_completion_s *completion)
+
void async_completion_wait(async_completion_s *completion)
+
arax_pipe_s * vpipe
Definition impl.c:17
+
void arax_data_output_init(arax_data_s *data, arax_accel *accel)
Definition arax_data.c:240
+
void arax_data_input_init(arax_data_s *data, arax_accel *accel)
Definition arax_data.c:229
+
arax_object_s * arax_object_register(arax_object_repo_s *repo, arax_object_type_e type, const char *name, size_t size, const int ref_count)
Definition arax_object.c:98
+
void arax_object_ref_inc(arax_object_s *obj)
+
int arax_object_ref_dec(arax_object_s *obj)
+
void arax_task_wait_done(arax_task_msg_s *msg)
Definition arax_task.c:77
+
arax_task_msg_s * arax_task_alloc(arax_pipe_s *vpipe, arax_accel *accel, arax_proc *proc, size_t host_size, int ins, arax_data **dev_in, int outs, arax_data **dev_out)
Definition arax_task.c:7
+
void arax_task_mark_done(arax_task_msg_s *msg, arax_task_state_e state)
Definition arax_task.c:83
+
void * arax_task_host_data(arax_task_msg_s *task, size_t size)
Definition arax_task.c:51
+
void arax_task_submit(arax_task_msg_s *task)
Definition arax_task.c:64
+
void arax_vaccel_add_task(arax_vaccel_s *accel, arax_task *task)
Definition arax_vaccel.c:32
+ + + + +
arax_task_state_e state
Definition arax_task.h:19
+
arax_accel * accel
Definition arax_task.h:13
+
arax_pipe_s * pipe
Definition arax_task.h:12
+
arax_data * io[]
Definition arax_task.h:22
+
async_completion_s done
Definition arax_task.h:21
+
arax_proc * proc
Definition arax_task.h:14
+ +
size_t host_size
Definition arax_task.h:15
+
arax_task_stats_s stats
Definition arax_task.h:20
+ + +
async_meta_s async
Definition arax_pipe.h:34
+
arax_object_repo_s objs
Definition arax_pipe.h:33
+
utils_timer_s task_duration
Definition arax_types.h:75
+
+
+ + + + diff --git a/a01935.map b/a01935.map new file mode 100644 index 00000000..64b5c2be --- /dev/null +++ b/a01935.map @@ -0,0 +1,83 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01935.md5 b/a01935.md5 new file mode 100644 index 00000000..14897cc5 --- /dev/null +++ b/a01935.md5 @@ -0,0 +1 @@ +316f70c92a0623b87e5e9c8c9a9c4243 \ No newline at end of file diff --git a/a01935.svg b/a01935.svg new file mode 100644 index 00000000..0ea46f2f --- /dev/null +++ b/a01935.svg @@ -0,0 +1,741 @@ + + + + + + +arax_task.c + + +Node1 + + +arax_task.c + + + + + +Node2 + + +arax.h + + + + + +Node1->Node2 + + + + + + + + +Node9 + + +arax_pipe.h + + + + + +Node1->Node9 + + + + + + + + +Node26 + + +arax_data.h + + + + + +Node1->Node26 + + + + + + + + +Node27 + + +utils/timer.h + + + + + +Node1->Node27 + + + + + + + + +Node29 + + +stdlib.h + + + + + +Node1->Node29 + + + + + + + + +Node3 + + +stdio.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stddef.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_types.h + + + + + +Node2->Node5 + + + + + + + + +Node8 + + +core/arax_accel_types.h + + + + + +Node2->Node8 + + + + + + + + +Node6 + + +sys/time.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +time.h + + + + + +Node5->Node7 + + + + + + + + +Node8->Node5 + + + + + + + + +Node9->Node2 + + + + + + + + +Node10 + + +utils/Kv.h + + + + + +Node9->Node10 + + + + + + + + +Node16 + + +utils/queue.h + + + + + +Node9->Node16 + + + + + + + + +Node17 + + +core/arax_accel.h + + + + + +Node9->Node17 + + + + + + + + +Node24 + + +core/arax_task.h + + + + + +Node9->Node24 + + + + + + + + +Node10->Node4 + + + + + + + + +Node11 + + +conf.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +spinlock.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +stdint.h + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +utils/arax_assert.h + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +compat.h + + + + + +Node14->Node15 + + + + + + + + +Node16->Node4 + + + + + + + + +Node16->Node11 + + + + + + + + +Node16->Node12 + + + + + + + + +Node16->Node13 + + + + + + + + +Node17->Node2 + + + + + + + + +Node18 + + +async.h + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +core/arax_vaccel.h + + + + + +Node17->Node19 + + + + + + + + +Node23 + + +core/arax_throttle.h + + + + + +Node17->Node23 + + + + + + + + +Node19->Node16 + + + + + + + + +Node19->Node17 + + + + + + + + +Node19->Node18 + + + + + + + + +Node20 + + +core/arax_object.h + + + + + +Node19->Node20 + + + + + + + + +Node20->Node12 + + + + + + + + +Node21 + + +utils/list.h + + + + + +Node20->Node21 + + + + + + + + +Node22 + + +arch/alloc.h + + + + + +Node20->Node22 + + + + + + + + +Node21->Node4 + + + + + + + + +Node21->Node13 + + + + + + + + +Node23->Node18 + + + + + + + + +Node24->Node18 + + + + + + + + +Node25 + + +core/arax_proc.h + + + + + +Node24->Node25 + + + + + + + + +Node25->Node2 + + + + + + + + +Node25->Node20 + + + + + + + + +Node26->Node2 + + + + + + + + +Node26->Node11 + + + + + + + + +Node26->Node17 + + + + + + + + +Node26->Node18 + + + + + + + + +Node26->Node20 + + + + + + + + +Node27->Node2 + + + + + + + + +Node28 + + +unistd.h + + + + + +Node27->Node28 + + + + + + + + diff --git a/a01937.html b/a01937.html new file mode 100644 index 00000000..99754b54 --- /dev/null +++ b/a01937.html @@ -0,0 +1,441 @@ + + + + + + + +Arax: arax_throttle.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_throttle.c File Reference
+
+
+
#include "arax_throttle.h"
+#include "utils/arax_assert.h"
+#include "stdio.h"
+
+ + Include dependency graph for arax_throttle.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Macros

#define PRINT_THR(OBJ, DELTA, FUNC)
 
+ + + + + + + + + + + +

+Functions

void arax_throttle_init (async_meta_s *meta, arax_throttle_s *thr, size_t a_sz, size_t t_sz)
 
void ARAX_THROTTLE_DEBUG_FUNC() arax_throttle_size_inc (arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS)
 
void ARAX_THROTTLE_DEBUG_FUNC() arax_throttle_size_dec (arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS)
 
size_t arax_throttle_get_available_size (arax_throttle_s *thr)
 
size_t arax_throttle_get_total_size (arax_throttle_s *thr)
 
+

Macro Definition Documentation

+ +

◆ PRINT_THR

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
#define PRINT_THR( OBJ,
 DELTA,
 FUNC 
)
+
+ +

Definition at line 25 of file arax_throttle.c.

+ +
+
+

Function Documentation

+ +

◆ arax_throttle_get_available_size()

+ +
+
+ + + + + + + + +
size_t arax_throttle_get_available_size (arax_throttle_sthr)
+
+

Gets available size

+
Parameters
+ + +
thrarax_throttle_s instance
+
+
+
Returns
Avaliable size.
+ +

Definition at line 108 of file arax_throttle.c.

+ +

References arax_assert, and arax_throttle_s::available.

+ +

Referenced by arax_accel_get_available_size(), and arax_pipe_get_available_size().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_throttle_get_total_size()

+ +
+
+ + + + + + + + +
size_t arax_throttle_get_total_size (arax_throttle_sthr)
+
+

Gets available size

+
Parameters
+ + +
thrarax_throttle_s instance
+
+
+
Returns
Total size
+ +

Definition at line 115 of file arax_throttle.c.

+ +

References arax_assert, and arax_throttle_s::capacity.

+ +

Referenced by arax_accel_get_total_size(), and arax_pipe_get_total_size().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_throttle_init()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void arax_throttle_init (async_meta_smeta,
arax_throttle_sthr,
size_t a_sz,
size_t t_sz 
)
+
+

Increments available size by sz

+
Parameters
+ + + +
metaasync meta for cond wait
thrarax_throttle_s instance to inc
+
+
+
Returns
Nothing .
+ +

Definition at line 28 of file arax_throttle.c.

+ +

References arax_assert, async_condition_init(), arax_throttle_s::available, arax_throttle_s::capacity, arax_throttle_s::ready, and utils_spinlock_init.

+ +

Referenced by arax_accel_init(), and arax_pipe_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_throttle_size_dec()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void ARAX_THROTTLE_DEBUG_FUNC() arax_throttle_size_dec (arax_throttle_sthr,
size_t sz ARAX_THROTTLE_DEBUG_PARAMS 
)
+
+

Decrements available size by sz

+
Parameters
+ + + +
thrarax_throttle_s instance to dec
szsize of removed data
+
+
+
Returns
Nothing .
+ +

Definition at line 77 of file arax_throttle.c.

+ +

References arax_assert, async_condition_lock(), async_condition_unlock(), async_condition_wait(), and PRINT_THR.

+ +

Referenced by arax_accel_size_dec(), and arax_pipe_size_dec().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_throttle_size_inc()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void ARAX_THROTTLE_DEBUG_FUNC() arax_throttle_size_inc (arax_throttle_sthr,
size_t sz ARAX_THROTTLE_DEBUG_PARAMS 
)
+
+

Increments available size by sz

+
Parameters
+ + + +
thrarax_throttle_s instance to inc
szSize of added data
+
+
+
Returns
Nothing .
+ +

Definition at line 49 of file arax_throttle.c.

+ +

References arax_assert, async_condition_lock(), async_condition_notify(), async_condition_unlock(), and PRINT_THR.

+ +

Referenced by arax_accel_size_inc(), and arax_pipe_size_inc().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01937.js b/a01937.js new file mode 100644 index 00000000..7f114eda --- /dev/null +++ b/a01937.js @@ -0,0 +1,9 @@ +var a01937 = +[ + [ "PRINT_THR", "a01937.html#a0710a5431ec8cfbace7bcb1c3d362994", null ], + [ "arax_throttle_get_available_size", "a01937.html#a078da9ec8e2f9a4470f10ee3059bd593", null ], + [ "arax_throttle_get_total_size", "a01937.html#af11f2d1dc9f842b2eed7aa7e80607e29", null ], + [ "arax_throttle_init", "a01937.html#acf84ea82594c4dbe91cf602ee078e04d", null ], + [ "arax_throttle_size_dec", "a01937.html#a8413a3584787f9b629e54b2ef9439f06", null ], + [ "arax_throttle_size_inc", "a01937.html#a22aaf13eb56eb1832e725ef73236116f", null ] +]; \ No newline at end of file diff --git a/a01937_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.map b/a01937_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.map new file mode 100644 index 00000000..57cfae0e --- /dev/null +++ b/a01937_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.map @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01937_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.md5 b/a01937_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.md5 new file mode 100644 index 00000000..29866f46 --- /dev/null +++ b/a01937_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.md5 @@ -0,0 +1 @@ +fc84a4c05e26f416d83b1b3aea3356d0 \ No newline at end of file diff --git a/a01937_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.svg b/a01937_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.svg new file mode 100644 index 00000000..65ba6564 --- /dev/null +++ b/a01937_a078da9ec8e2f9a4470f10ee3059bd593_icgraph.svg @@ -0,0 +1,239 @@ + + + + + + +arax_throttle_get_available_size + + +Node1 + + +arax_throttle_get_available_size + + + + + +Node2 + + +arax_accel_get_available_size + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_get_available_size + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +_arax_init + + + + + +Node3->Node4 + + + + + + + + +Node12 + + +arax_exit + + + + + +Node3->Node12 + + + + + + + + +Node5 + + +arax_controller_init +_start + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_init + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_plot_register +_metric + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_ptr_valid + + + + + +Node6->Node8 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +_arax_assert_obj + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_data_ref + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +arax_data_ref_offset + + + + + +Node8->Node11 + + + + + + + + +Node10->Node11 + + + + + + + + diff --git a/a01937_a22aaf13eb56eb1832e725ef73236116f_cgraph.map b/a01937_a22aaf13eb56eb1832e725ef73236116f_cgraph.map new file mode 100644 index 00000000..abecc0e3 --- /dev/null +++ b/a01937_a22aaf13eb56eb1832e725ef73236116f_cgraph.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/a01937_a22aaf13eb56eb1832e725ef73236116f_cgraph.md5 b/a01937_a22aaf13eb56eb1832e725ef73236116f_cgraph.md5 new file mode 100644 index 00000000..6d90427c --- /dev/null +++ b/a01937_a22aaf13eb56eb1832e725ef73236116f_cgraph.md5 @@ -0,0 +1 @@ +64ee4ccdf48106373b02986b147ecc27 \ No newline at end of file diff --git a/a01937_a22aaf13eb56eb1832e725ef73236116f_cgraph.svg b/a01937_a22aaf13eb56eb1832e725ef73236116f_cgraph.svg new file mode 100644 index 00000000..a55cfc10 --- /dev/null +++ b/a01937_a22aaf13eb56eb1832e725ef73236116f_cgraph.svg @@ -0,0 +1,129 @@ + + + + + + +arax_throttle_size_inc + + +Node1 + + +arax_throttle_size_inc + + + + + +Node2 + + +async_condition_lock + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +async_condition_notify + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +async_condition_unlock + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +async_completion_wait + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_semaphore_inc + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_completion_complete + + + + + +Node6->Node7 + + + + + + + + diff --git a/a01937_a22aaf13eb56eb1832e725ef73236116f_icgraph.map b/a01937_a22aaf13eb56eb1832e725ef73236116f_icgraph.map new file mode 100644 index 00000000..ef5f76f5 --- /dev/null +++ b/a01937_a22aaf13eb56eb1832e725ef73236116f_icgraph.map @@ -0,0 +1,63 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01937_a22aaf13eb56eb1832e725ef73236116f_icgraph.md5 b/a01937_a22aaf13eb56eb1832e725ef73236116f_icgraph.md5 new file mode 100644 index 00000000..c2ec0970 --- /dev/null +++ b/a01937_a22aaf13eb56eb1832e725ef73236116f_icgraph.md5 @@ -0,0 +1 @@ +18c977c102f08b7e720efe1023422750 \ No newline at end of file diff --git a/a01937_a22aaf13eb56eb1832e725ef73236116f_icgraph.svg b/a01937_a22aaf13eb56eb1832e725ef73236116f_icgraph.svg new file mode 100644 index 00000000..a1bc1bac --- /dev/null +++ b/a01937_a22aaf13eb56eb1832e725ef73236116f_icgraph.svg @@ -0,0 +1,564 @@ + + + + + + +arax_throttle_size_inc + + +Node1 + + +arax_throttle_size_inc + + + + + +Node2 + + +arax_accel_size_inc + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_size_inc + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_object_ref_dec + + + + + +Node3->Node4 + + + + + + + + +Node25 + + +arax_object_ref_dec +_pre_locked + + + + + +Node3->Node25 + + + + + + + + +Node5 + + +arax_accel_list_free + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_accel_release + + + + + +Node4->Node6 + + + + + + + + +Node8 + + +arax_data_free + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +arax_data_migrate_accel + + + + + +Node4->Node9 + + + + + + + + +Node18 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node4->Node18 + + + + + + + + +Node21 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node4->Node21 + + + + + + + + +Node22 + + +arax_pipe_delete_accel + + + + + +Node4->Node22 + + + + + + + + +Node23 + + +arax_proc_put + + + + + +Node4->Node23 + + + + + + + + +Node24 + + +arax_task_free + + + + + +Node4->Node24 + + + + + + + + +Node7 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node6->Node7 + + + + + + + + +Node10 + + +arax_data_arg_init + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_input_init + + + + + +Node9->Node11 + + + + + + + + +Node20 + + +arax_data_output_init + + + + + +Node9->Node20 + + + + + + + + +Node12 + + +arax_task_alloc + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +arax_task_issue + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +arax_data_allocate +_remote + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +arax_data_get + + + + + +Node13->Node15 + + + + + + + + +Node17 + + +arax_data_set + + + + + +Node13->Node17 + + + + + + + + +Node13->Node18 + + + + + + + + +Node19 + + +arax_task_issue_sync + + + + + +Node13->Node19 + + + + + + + + +Node16 + + +arax_data_memcpy + + + + + +Node15->Node16 + + + + + + + + +Node17->Node16 + + + + + + + + +Node20->Node12 + + + + + + + + +Node23->Node15 + + + + + + + + +Node23->Node17 + + + + + + + + +Node24->Node14 + + + + + + + + +Node24->Node15 + + + + + + + + +Node24->Node19 + + + + + + + + +Node26 + + +arax_accel_list_free +_pre_locked + + + + + +Node25->Node26 + + + + + + + + +Node27 + + +arax_accel_list + + + + + +Node26->Node27 + + + + + + + + diff --git a/a01937_a8413a3584787f9b629e54b2ef9439f06_cgraph.map b/a01937_a8413a3584787f9b629e54b2ef9439f06_cgraph.map new file mode 100644 index 00000000..8e3c3a20 --- /dev/null +++ b/a01937_a8413a3584787f9b629e54b2ef9439f06_cgraph.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/a01937_a8413a3584787f9b629e54b2ef9439f06_cgraph.md5 b/a01937_a8413a3584787f9b629e54b2ef9439f06_cgraph.md5 new file mode 100644 index 00000000..aadd65aa --- /dev/null +++ b/a01937_a8413a3584787f9b629e54b2ef9439f06_cgraph.md5 @@ -0,0 +1 @@ +982fcce278440549d6474236b6b1b3ac \ No newline at end of file diff --git a/a01937_a8413a3584787f9b629e54b2ef9439f06_cgraph.svg b/a01937_a8413a3584787f9b629e54b2ef9439f06_cgraph.svg new file mode 100644 index 00000000..ae873525 --- /dev/null +++ b/a01937_a8413a3584787f9b629e54b2ef9439f06_cgraph.svg @@ -0,0 +1,147 @@ + + + + + + +arax_throttle_size_dec + + +Node1 + + +arax_throttle_size_dec + + + + + +Node2 + + +async_condition_lock + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +async_condition_unlock + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +async_condition_wait + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +async_completion_wait + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_completion_complete + + + + + +Node4->Node5 + + + + + + + + +Node6->Node3 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +async_semaphore_dec + + + + + +Node6->Node7 + + + + + + + + diff --git a/a01937_a8413a3584787f9b629e54b2ef9439f06_icgraph.map b/a01937_a8413a3584787f9b629e54b2ef9439f06_icgraph.map new file mode 100644 index 00000000..0c666e7f --- /dev/null +++ b/a01937_a8413a3584787f9b629e54b2ef9439f06_icgraph.map @@ -0,0 +1,46 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01937_a8413a3584787f9b629e54b2ef9439f06_icgraph.md5 b/a01937_a8413a3584787f9b629e54b2ef9439f06_icgraph.md5 new file mode 100644 index 00000000..c333ba33 --- /dev/null +++ b/a01937_a8413a3584787f9b629e54b2ef9439f06_icgraph.md5 @@ -0,0 +1 @@ +0335a9ae345686d5e43d72e378b5faa3 \ No newline at end of file diff --git a/a01937_a8413a3584787f9b629e54b2ef9439f06_icgraph.svg b/a01937_a8413a3584787f9b629e54b2ef9439f06_icgraph.svg new file mode 100644 index 00000000..5857f89e --- /dev/null +++ b/a01937_a8413a3584787f9b629e54b2ef9439f06_icgraph.svg @@ -0,0 +1,409 @@ + + + + + + +arax_throttle_size_dec + + +Node1 + + +arax_throttle_size_dec + + + + + +Node2 + + +arax_accel_size_dec + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +arax_pipe_size_dec + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +arax_data_allocate +_remote + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +arax_object_register + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_accel_init + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_data_init_aligned + + + + + +Node5->Node7 + + + + + + + + +Node10 + + +arax_proc_init + + + + + +Node5->Node10 + + + + + + + + +Node12 + + +arax_task_alloc + + + + + +Node5->Node12 + + + + + + + + +Node19 + + +arax_vaccel_init + + + + + +Node5->Node19 + + + + + + + + +Node8 + + +arax_data_init + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +ARAX_BUFFER + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +arax_proc_register + + + + + +Node10->Node11 + + + + + + + + +Node13 + + +arax_task_issue + + + + + +Node12->Node13 + + + + + + + + +Node13->Node3 + + + + + + + + +Node14 + + +arax_data_get + + + + + +Node13->Node14 + + + + + + + + +Node16 + + +arax_data_set + + + + + +Node13->Node16 + + + + + + + + +Node17 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node13->Node17 + + + + + + + + +Node18 + + +arax_task_issue_sync + + + + + +Node13->Node18 + + + + + + + + +Node15 + + +arax_data_memcpy + + + + + +Node14->Node15 + + + + + + + + +Node16->Node15 + + + + + + + + +Node19->Node6 + + + + + + + + +Node20 + + +arax_accel_acquire_phys + + + + + +Node19->Node20 + + + + + + + + +Node21 + + +arax_accel_acquire_type + + + + + +Node19->Node21 + + + + + + + + diff --git a/a01937_acf84ea82594c4dbe91cf602ee078e04d_cgraph.map b/a01937_acf84ea82594c4dbe91cf602ee078e04d_cgraph.map new file mode 100644 index 00000000..ceb1cd6d --- /dev/null +++ b/a01937_acf84ea82594c4dbe91cf602ee078e04d_cgraph.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/a01937_acf84ea82594c4dbe91cf602ee078e04d_cgraph.md5 b/a01937_acf84ea82594c4dbe91cf602ee078e04d_cgraph.md5 new file mode 100644 index 00000000..0253c02c --- /dev/null +++ b/a01937_acf84ea82594c4dbe91cf602ee078e04d_cgraph.md5 @@ -0,0 +1 @@ +00cf33c5683bfe88cc448b214a7d4f0e \ No newline at end of file diff --git a/a01937_acf84ea82594c4dbe91cf602ee078e04d_cgraph.svg b/a01937_acf84ea82594c4dbe91cf602ee078e04d_cgraph.svg new file mode 100644 index 00000000..97a51835 --- /dev/null +++ b/a01937_acf84ea82594c4dbe91cf602ee078e04d_cgraph.svg @@ -0,0 +1,129 @@ + + + + + + +arax_throttle_init + + +Node1 + + +arax_throttle_init + + + + + +Node2 + + +async_condition_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_completion_complete + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +async_completion_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +async_condition_unlock + + + + + +Node2->Node5 + + + + + + + + +Node7 + + +async_semaphore_init + + + + + +Node2->Node7 + + + + + + + + +Node6 + + +async_completion_complete + + + + + +Node5->Node6 + + + + + + + + diff --git a/a01937_acf84ea82594c4dbe91cf602ee078e04d_icgraph.map b/a01937_acf84ea82594c4dbe91cf602ee078e04d_icgraph.map new file mode 100644 index 00000000..284be9b1 --- /dev/null +++ b/a01937_acf84ea82594c4dbe91cf602ee078e04d_icgraph.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01937_acf84ea82594c4dbe91cf602ee078e04d_icgraph.md5 b/a01937_acf84ea82594c4dbe91cf602ee078e04d_icgraph.md5 new file mode 100644 index 00000000..c1cd4a19 --- /dev/null +++ b/a01937_acf84ea82594c4dbe91cf602ee078e04d_icgraph.md5 @@ -0,0 +1 @@ +944fe02d12c43a26ff18bbb81bf50018 \ No newline at end of file diff --git a/a01937_acf84ea82594c4dbe91cf602ee078e04d_icgraph.svg b/a01937_acf84ea82594c4dbe91cf602ee078e04d_icgraph.svg new file mode 100644 index 00000000..1a46683b --- /dev/null +++ b/a01937_acf84ea82594c4dbe91cf602ee078e04d_icgraph.svg @@ -0,0 +1,221 @@ + + + + + + +arax_throttle_init + + +Node1 + + +arax_throttle_init + + + + + +Node2 + + +arax_accel_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +_arax_init + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_controller_init +_start + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_init + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_plot_register +_metric + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_ptr_valid + + + + + +Node6->Node8 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +_arax_assert_obj + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_data_ref + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +arax_data_ref_offset + + + + + +Node8->Node11 + + + + + + + + +Node10->Node11 + + + + + + + + diff --git a/a01937_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.map b/a01937_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.map new file mode 100644 index 00000000..4aac84c8 --- /dev/null +++ b/a01937_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01937_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.md5 b/a01937_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.md5 new file mode 100644 index 00000000..2f7465d8 --- /dev/null +++ b/a01937_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.md5 @@ -0,0 +1 @@ +f5c167064088cfa76b92bc8ec8ed062b \ No newline at end of file diff --git a/a01937_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.svg b/a01937_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.svg new file mode 100644 index 00000000..9a9b9801 --- /dev/null +++ b/a01937_af11f2d1dc9f842b2eed7aa7e80607e29_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_throttle_get_total_size + + +Node1 + + +arax_throttle_get_total_size + + + + + +Node2 + + +arax_accel_get_total_size + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_get_total_size + + + + + +Node1->Node3 + + + + + + + + diff --git a/a01937_source.html b/a01937_source.html new file mode 100644 index 00000000..6e6139b9 --- /dev/null +++ b/a01937_source.html @@ -0,0 +1,252 @@ + + + + + + + +Arax: arax_throttle.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_throttle.c
+
+
+Go to the documentation of this file.
1#include "arax_throttle.h"
+
2#include "utils/arax_assert.h"
+
3#include "stdio.h"
+
4
+
5#ifdef ARAX_THROTTLE_DEBUG
+
6void PRINT_THR(arax_throttle_s *thr, long int delta, const char *func)
+
7{
+
8 utils_spinlock_lock(&(thr->lock));
+
9 arax_assert(thr->print_cnt < 100000);
+
10 printf("#%05ld %30s(%p) ,sz: %6ld ,was: %11lu => is: %11lu, cap: %11ld, used:%11ld)\n",
+
11 thr->print_cnt,
+
12 func,
+
13 thr,
+
14 delta,
+
15 thr->available,
+
16 thr->available + delta,
+
17 thr->capacity,
+
18 thr->capacity - (thr->available + delta)
+
19 );
+
20 thr->print_cnt++;
+
21 utils_spinlock_unlock(&(thr->lock));
+
22}
+
23
+
24#else /* ifdef ARAX_THROTTLE_DEBUG */
+
25#define PRINT_THR(OBJ, DELTA, FUNC)
+
26#endif /* ifdef ARAX_THROTTLE_DEBUG */
+
27
+
28void arax_throttle_init(async_meta_s *meta, arax_throttle_s *thr, size_t a_sz, size_t t_sz)
+
29{
+
30 // error check
+
31 arax_assert(meta);
+
32 arax_assert(thr);
+
33 arax_assert(a_sz > 0);
+
34 arax_assert(t_sz > 0);
+
35 arax_assert(t_sz >= a_sz);
+
36
+
37 // init sizes
+
38 thr->available = a_sz;
+
39 thr->capacity = t_sz;
+
40 // init async
+
41 async_condition_init(meta, &thr->ready);
+
42
+
43 #ifdef ARAX_THROTTLE_DEBUG
+
44 thr->print_cnt = 0;
+
45 utils_spinlock_init(&(thr->lock));
+
46 #endif
+
47}
+
48
+ +
50 // error check
+
51 arax_assert(thr);
+
52
+
53 if (!sz)
+
54 return;
+
55
+
56 // lock critical section
+
57 async_condition_lock(&(thr->ready));
+
58
+
59 PRINT_THR(thr, +sz, func);
+
60
+
61 // inc available size
+
62 thr->available += sz;
+
63
+
64 #ifdef ARAX_THROTTLE_ENFORCE
+
65 // check bad use of api
+
66 arax_assert(thr->capacity >= thr->available);
+
67 #endif
+
68
+
69 // notify to stop async_condition_wait
+
70 async_condition_notify(&(thr->ready));
+
71
+
72 // unlock critical section
+
73 async_condition_unlock(&(thr->ready));
+
74}
+
75
+
76
+ +
78 // error check
+
79 arax_assert(thr);
+
80
+
81 if (!sz)
+
82 return;
+
83
+
84 // lock critical section
+
85 async_condition_lock(&(thr->ready));
+
86
+
87 #ifdef ARAX_THROTTLE_ENFORCE
+
88 // wait till there is space to dec coutner
+
89 while (thr->available < sz)
+
90 async_condition_wait(&(thr->ready));
+
91 #endif
+
92
+
93 PRINT_THR(thr, -sz, func);
+
94
+
95 // dec available size
+
96 thr->available -= sz;
+
97
+
98 #ifdef ARAX_THROTTLE_ENFORCE
+
99 // check bad use of api
+
100 arax_assert(thr->capacity >= thr->available);
+
101 #endif
+
102
+
103 // unlock critical section
+
104 async_condition_unlock(&(thr->ready));
+
105}
+
106
+
107
+ +
109{
+
110 // error check
+
111 arax_assert(thr);
+
112 return thr->available;
+
113}
+
114
+ +
116{
+
117 // error check
+
118 arax_assert(thr);
+
119 return thr->capacity;
+
120}
+ +
#define arax_assert(EXPR)
Definition arax_assert.h:7
+ +
#define ARAX_THROTTLE_DEBUG_FUNC(FUNC)
+
#define ARAX_THROTTLE_DEBUG_PARAMS
+
void async_condition_wait(async_condition_s *cond)
+
void async_condition_unlock(async_condition_s *cond)
+
void async_condition_notify(async_condition_s *cond)
+
void async_condition_init(async_meta_s *meta, async_condition_s *cond)
+
void async_condition_lock(async_condition_s *cond)
+
#define PRINT_THR(OBJ, DELTA, FUNC)
+
size_t arax_throttle_get_available_size(arax_throttle_s *thr)
+
void ARAX_THROTTLE_DEBUG_FUNC() arax_throttle_size_inc(arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS)
+
void ARAX_THROTTLE_DEBUG_FUNC() arax_throttle_size_dec(arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS)
+
void arax_throttle_init(async_meta_s *meta, arax_throttle_s *thr, size_t a_sz, size_t t_sz)
+
size_t arax_throttle_get_total_size(arax_throttle_s *thr)
+
#define utils_spinlock_lock(V)
Definition queue.c:35
+
#define utils_spinlock_init(V)
Definition queue.c:34
+
#define utils_spinlock_unlock(V)
Definition queue.c:36
+ + + +
async_condition_s ready
+ +
+
+ + + + diff --git a/a01938.map b/a01938.map new file mode 100644 index 00000000..d4467fdf --- /dev/null +++ b/a01938.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/a01938.md5 b/a01938.md5 new file mode 100644 index 00000000..c6642975 --- /dev/null +++ b/a01938.md5 @@ -0,0 +1 @@ +514c7d9efbcdf7253ecedf287486b963 \ No newline at end of file diff --git a/a01938.svg b/a01938.svg new file mode 100644 index 00000000..687dec84 --- /dev/null +++ b/a01938.svg @@ -0,0 +1,111 @@ + + + + + + +arax_throttle.c + + +Node1 + + +arax_throttle.c + + + + + +Node2 + + +arax_throttle.h + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +utils/arax_assert.h + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +stdio.h + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +async.h + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +compat.h + + + + + +Node4->Node5 + + + + + + + + diff --git a/a01940.html b/a01940.html new file mode 100644 index 00000000..9ad87b9e --- /dev/null +++ b/a01940.html @@ -0,0 +1,669 @@ + + + + + + + +Arax: arax_vaccel.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_vaccel.c File Reference
+
+
+
#include "arax_pipe.h"
+
+ + Include dependency graph for arax_vaccel.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

arax_vaccel_sarax_vaccel_init (arax_pipe_s *pipe, const char *name, arax_accel_type_e type, arax_accel_s *accel)
 
void arax_vaccel_add_task (arax_vaccel_s *accel, arax_task *task)
 
void arax_vaccel_set_ordering (arax_accel_s *accel, arax_accel_ordering_e ordering)
 
arax_accel_ordering_e arax_vaccel_get_ordering (arax_accel_s *accel)
 
uint64_t arax_vaccel_set_cid (arax_vaccel_s *vaccel, uint64_t cid)
 
uint64_t arax_vaccel_get_cid (arax_vaccel_s *vaccel)
 
uint64_t arax_vaccel_set_job_priority (arax_vaccel_s *vaccel, uint64_t priority)
 
uint64_t arax_vaccel_get_job_priority (arax_vaccel_s *vaccel)
 
void arax_vaccel_set_meta (arax_vaccel_s *vaccel, void *meta)
 
void * arax_vaccel_get_meta (arax_vaccel_s *vaccel)
 
utils_queue_sarax_vaccel_queue (arax_vaccel_s *vaccel)
 
unsigned int arax_vaccel_queue_size (arax_vaccel_s *vaccel)
 
arax_accel_state_e arax_vaccel_get_stat (arax_vaccel_s *accel, arax_accel_stats_s *stat)
 
 ARAX_OBJ_DTOR_DECL (arax_vaccel_s)
 
+

Function Documentation

+ +

◆ ARAX_OBJ_DTOR_DECL()

+ +
+
+ + + + + + + + +
ARAX_OBJ_DTOR_DECL (arax_vaccel_s )
+
+ +

Definition at line 113 of file arax_vaccel.c.

+ +

References arax_accel_del_vaccel(), arax_assert_obj, arax_pipe_remove_orphan_vaccel(), ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::phys.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_vaccel_add_task()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_vaccel_add_task (arax_vaccel_saccel,
arax_tasktask 
)
+
+ +

Definition at line 32 of file arax_vaccel.c.

+ +

References arax_accel_add_task(), arax_vaccel_s::lock, arax_vaccel_s::phys, arax_vaccel_s::queue, utils_queue_push(), utils_spinlock_lock, and utils_spinlock_unlock.

+ +

Referenced by arax_task_submit().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_vaccel_get_cid()

+ +
+
+ + + + + + + + +
uint64_t arax_vaccel_get_cid (arax_vaccel_svaccel)
+
+

Get the client id for this virtual accelerator.

+ +

Definition at line 64 of file arax_vaccel.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::cid.

+ +
+
+ +

◆ arax_vaccel_get_job_priority()

+ +
+
+ + + + + + + + +
uint64_t arax_vaccel_get_job_priority (arax_vaccel_svaccel)
+
+

Get the priority (latency or throughput critical) for this virtual accelerator.

+ +

Definition at line 77 of file arax_vaccel.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::priority.

+ +
+
+ +

◆ arax_vaccel_get_meta()

+ +
+
+ + + + + + + + +
void * arax_vaccel_get_meta (arax_vaccel_svaccel)
+
+

Set the meta for this virtual accelerator.

+ +

Definition at line 89 of file arax_vaccel.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::meta.

+ +
+
+ +

◆ arax_vaccel_get_ordering()

+ +
+
+ + + + + + + + +
arax_accel_ordering_e arax_vaccel_get_ordering (arax_accel_saccel)
+
+

Get arax_accel_ordering_e mode of provided accel.

+
Parameters
+ + +
vaccelA virtual accelerator
+
+
+ +

Definition at line 49 of file arax_vaccel.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::ordering.

+ +
+
+ +

◆ arax_vaccel_get_stat()

+ +
+
+ + + + + + + + + + + + + + + + + + +
arax_accel_state_e arax_vaccel_get_stat (arax_vaccel_saccel,
arax_accel_stats_sstat 
)
+
+ +

Definition at line 107 of file arax_vaccel.c.

+ +

References arax_accel_get_stat(), arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::phys.

+ +

Referenced by arax_accel_stat().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_vaccel_init()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
arax_vaccel_s * arax_vaccel_init (arax_pipe_spipe,
const char * name,
arax_accel_type_e type,
arax_accel_saccel 
)
+
+

Initialize a arax_vaccel_s in mem.

+
Parameters
+ + + + + +
pipeValid arax_pipe_s instance.
nameName of the virtual accelerator
typeType of the virtual accelerator
accelA physical accelerator
+
+
+ +

Definition at line 3 of file arax_vaccel.c.

+ +

References arax_accel_add_vaccel(), arax_object_register(), arax_pipe_add_orphan_vaccel(), ARAX_TYPE_VIRT_ACCEL, arax_vaccel_s::cid, arax_vaccel_s::lock, arax_vaccel_s::meta, arax_pipe::objs, arax_vaccel_s::ordering, arax_vaccel_s::phys, arax_vaccel_s::priority, arax_vaccel_s::queue, SEQUENTIAL, arax_vaccel_s::type, utils_list_node_init(), utils_queue_init(), utils_spinlock_init, and arax_vaccel_s::vaccels.

+ +

Referenced by arax_accel_acquire_phys(), arax_accel_acquire_type(), and arax_accel_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_vaccel_queue()

+ +
+
+ + + + + + + + +
utils_queue_s * arax_vaccel_queue (arax_vaccel_svaccel)
+
+

Get the queue of vaccel.

+
Parameters
+ + +
vaccelA virtual accelerator
+
+
+
Returns
The queue of vaccel,NULL on failure
+ +

Definition at line 95 of file arax_vaccel.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::queue.

+ +

Referenced by arax_vaccel_queue_size().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_vaccel_queue_size()

+ +
+
+ + + + + + + + +
unsigned int arax_vaccel_queue_size (arax_vaccel_svaccel)
+
+

Requrn size of vaccel.

+
Parameters
+ + +
vaccelA virtual accelerator
+
+
+
Returns
The size of the queue of vaccel.
+ +

Definition at line 101 of file arax_vaccel.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, arax_vaccel_queue(), and utils_queue_used_slots().

+ +

Referenced by arax_accel_add_vaccel(), and arax_accel_del_vaccel().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_vaccel_set_cid()

+ +
+
+ + + + + + + + + + + + + + + + + + +
uint64_t arax_vaccel_set_cid (arax_vaccel_svaccel,
uint64_t cid 
)
+
+

Set the client id for this virtual accelerator.

+ +

Definition at line 57 of file arax_vaccel.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::cid.

+ +
+
+ +

◆ arax_vaccel_set_job_priority()

+ +
+
+ + + + + + + + + + + + + + + + + + +
uint64_t arax_vaccel_set_job_priority (arax_vaccel_svaccel,
uint64_t priority 
)
+
+

Set the priority (latency or throughput critical) for this virtual accelerator.

+ +

Definition at line 70 of file arax_vaccel.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::priority.

+ +
+
+ +

◆ arax_vaccel_set_meta()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_vaccel_set_meta (arax_vaccel_svaccel,
void * meta 
)
+
+

Get the meta for this virtual accelerator.

+ +

Definition at line 83 of file arax_vaccel.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::meta.

+ +
+
+ +

◆ arax_vaccel_set_ordering()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_vaccel_set_ordering (arax_accel_saccel,
arax_accel_ordering_e ordering 
)
+
+

Set arax_accel_ordering_e mode to ordering of provided accel.

+
Parameters
+ + +
vaccelA virtual accelerator
+
+
+ +

Definition at line 41 of file arax_vaccel.c.

+ +

References arax_assert_obj, ARAX_TYPE_VIRT_ACCEL, and arax_vaccel_s::ordering.

+ +
+
+
+
+ + + + diff --git a/a01940.js b/a01940.js new file mode 100644 index 00000000..3994e539 --- /dev/null +++ b/a01940.js @@ -0,0 +1,17 @@ +var a01940 = +[ + [ "ARAX_OBJ_DTOR_DECL", "a01940.html#a5920cc4cd90589f3c5ac8686a72bcfc0", null ], + [ "arax_vaccel_add_task", "a01940.html#a8b82433bc8c7d7f03683ac521a3679fa", null ], + [ "arax_vaccel_get_cid", "a01940.html#af12d44b99e9b5395769bf76b715be58f", null ], + [ "arax_vaccel_get_job_priority", "a01940.html#a7eb20e8715e77bf9c5a47e3aa4711314", null ], + [ "arax_vaccel_get_meta", "a01940.html#accc6582256ba828c8923ee7097794025", null ], + [ "arax_vaccel_get_ordering", "a01940.html#aefa3f898f78179a031580ba98e5d8e8b", null ], + [ "arax_vaccel_get_stat", "a01940.html#a3e57dc466fca84c701d8fd6a84cb6789", null ], + [ "arax_vaccel_init", "a01940.html#a83ddb422946cf774c687c1ab63dcda15", null ], + [ "arax_vaccel_queue", "a01940.html#afe1eb3edd264c847c36e9456b2598452", null ], + [ "arax_vaccel_queue_size", "a01940.html#ab2fa3d6e6c761009b464cc0fbedc6a16", null ], + [ "arax_vaccel_set_cid", "a01940.html#a8db841ad4f66a98cdabb93e225171ef9", null ], + [ "arax_vaccel_set_job_priority", "a01940.html#af43eab5b91521d30c3a1d6479eaf54ba", null ], + [ "arax_vaccel_set_meta", "a01940.html#ac1dea15aece3efa7ce132c1a0397c92b", null ], + [ "arax_vaccel_set_ordering", "a01940.html#af3b4130b235af37da59a29fd16c0398d", null ] +]; \ No newline at end of file diff --git a/a01940_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.map b/a01940_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.map new file mode 100644 index 00000000..ad5f222e --- /dev/null +++ b/a01940_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01940_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.md5 b/a01940_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.md5 new file mode 100644 index 00000000..7cebb72b --- /dev/null +++ b/a01940_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.md5 @@ -0,0 +1 @@ +2cc07ea5823548d112c408c8fbc49786 \ No newline at end of file diff --git a/a01940_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.svg b/a01940_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.svg new file mode 100644 index 00000000..a6641fc9 --- /dev/null +++ b/a01940_a3e57dc466fca84c701d8fd6a84cb6789_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_vaccel_get_stat + + +Node1 + + +arax_vaccel_get_stat + + + + + +Node2 + + +arax_accel_get_stat + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01940_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.map b/a01940_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.map new file mode 100644 index 00000000..eedba9b5 --- /dev/null +++ b/a01940_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01940_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.md5 b/a01940_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.md5 new file mode 100644 index 00000000..920c16d0 --- /dev/null +++ b/a01940_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.md5 @@ -0,0 +1 @@ +c0339ab3294a0df053b8cb5e5a2bc4ff \ No newline at end of file diff --git a/a01940_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.svg b/a01940_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.svg new file mode 100644 index 00000000..0e908c11 --- /dev/null +++ b/a01940_a3e57dc466fca84c701d8fd6a84cb6789_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_vaccel_get_stat + + +Node1 + + +arax_vaccel_get_stat + + + + + +Node2 + + +arax_accel_stat + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01940_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.map b/a01940_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.map new file mode 100644 index 00000000..162da906 --- /dev/null +++ b/a01940_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.map @@ -0,0 +1,34 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01940_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.md5 b/a01940_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.md5 new file mode 100644 index 00000000..34efdc9f --- /dev/null +++ b/a01940_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.md5 @@ -0,0 +1 @@ +bb266227cc987922ee4efb277887d7a2 \ No newline at end of file diff --git a/a01940_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.svg b/a01940_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.svg new file mode 100644 index 00000000..8a1812b0 --- /dev/null +++ b/a01940_a5920cc4cd90589f3c5ac8686a72bcfc0_cgraph.svg @@ -0,0 +1,301 @@ + + + + + + +ARAX_OBJ_DTOR_DECL + + +Node1 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2 + + +arax_accel_del_vaccel + + + + + +Node1->Node2 + + + + + + + + +Node14 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node1->Node14 + + + + + + + + +Node3 + + +arax_accel_inc_revision + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_vaccel_queue_size + + + + + +Node2->Node4 + + + + + + + + +Node7 + + +async_condition_lock + + + + + +Node2->Node7 + + + + + + + + +Node9 + + +async_condition_notify + + + + + +Node2->Node9 + + + + + + + + +Node11 + + +async_condition_unlock + + + + + +Node2->Node11 + + + + + + + + +Node13 + + +utils_list_del + + + + + +Node2->Node13 + + + + + + + + +Node5 + + +arax_vaccel_queue + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +utils_queue_used_slots + + + + + +Node4->Node6 + + + + + + + + +Node8 + + +async_completion_wait + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +async_semaphore_inc + + + + + +Node9->Node10 + + + + + + + + +Node12 + + +async_completion_complete + + + + + +Node11->Node12 + + + + + + + + +Node14->Node7 + + + + + + + + +Node14->Node11 + + + + + + + + +Node14->Node13 + + + + + + + + +Node15 + + +utils_list_node_linked + + + + + +Node14->Node15 + + + + + + + + diff --git a/a01940_a83ddb422946cf774c687c1ab63dcda15_cgraph.map b/a01940_a83ddb422946cf774c687c1ab63dcda15_cgraph.map new file mode 100644 index 00000000..5e3761e7 --- /dev/null +++ b/a01940_a83ddb422946cf774c687c1ab63dcda15_cgraph.map @@ -0,0 +1,65 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01940_a83ddb422946cf774c687c1ab63dcda15_cgraph.md5 b/a01940_a83ddb422946cf774c687c1ab63dcda15_cgraph.md5 new file mode 100644 index 00000000..a5b9d471 --- /dev/null +++ b/a01940_a83ddb422946cf774c687c1ab63dcda15_cgraph.md5 @@ -0,0 +1 @@ +d64f4300f2376ba52eac86d2a3afcab2 \ No newline at end of file diff --git a/a01940_a83ddb422946cf774c687c1ab63dcda15_cgraph.svg b/a01940_a83ddb422946cf774c687c1ab63dcda15_cgraph.svg new file mode 100644 index 00000000..f338520c --- /dev/null +++ b/a01940_a83ddb422946cf774c687c1ab63dcda15_cgraph.svg @@ -0,0 +1,581 @@ + + + + + + +arax_vaccel_init + + +Node1 + + +arax_vaccel_init + + + + + +Node2 + + +arax_accel_add_vaccel + + + + + +Node1->Node2 + + + + + + + + +Node18 + + +arax_object_register + + + + + +Node1->Node18 + + + + + + + + +Node24 + + +utils_list_node_init + + + + + +Node1->Node24 + + + + + + + + +Node25 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node1->Node25 + + + + + + + + +Node26 + + +utils_queue_init + + + + + +Node1->Node26 + + + + + + + + +Node3 + + +arax_accel_inc_revision + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node2->Node5 + + + + + + + + +Node7 + + +async_condition_unlock + + + + + +Node2->Node7 + + + + + + + + +Node11 + + +arax_vaccel_queue_size + + + + + +Node2->Node11 + + + + + + + + +Node14 + + +async_condition_notify + + + + + +Node2->Node14 + + + + + + + + +Node16 + + +utils_list_add + + + + + +Node2->Node16 + + + + + + + + +Node4->Node5 + + + + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +utils_list_del + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +utils_list_node_linked + + + + + +Node4->Node10 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_completion_complete + + + + + +Node7->Node8 + + + + + + + + +Node12 + + +arax_vaccel_queue + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +utils_queue_used_slots + + + + + +Node11->Node13 + + + + + + + + +Node15 + + +async_semaphore_inc + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +utils_list_node_add + + + + + +Node16->Node17 + + + + + + + + +Node18->Node16 + + + + + + + + +Node19 + + +arax_pipe_size_dec + + + + + +Node18->Node19 + + + + + + + + +Node23 + + +arch_alloc_allocate + + + + + +Node18->Node23 + + + + + + + + +Node18->Node24 + + + + + + + + +Node20 + + +arax_throttle_size_dec + + + + + +Node19->Node20 + + + + + + + + +Node20->Node5 + + + + + + + + +Node20->Node7 + + + + + + + + +Node21 + + +async_condition_wait + + + + + +Node20->Node21 + + + + + + + + +Node21->Node6 + + + + + + + + +Node21->Node8 + + + + + + + + +Node22 + + +async_semaphore_dec + + + + + +Node21->Node22 + + + + + + + + +Node25->Node5 + + + + + + + + +Node25->Node7 + + + + + + + + +Node25->Node14 + + + + + + + + +Node25->Node16 + + + + + + + + diff --git a/a01940_a83ddb422946cf774c687c1ab63dcda15_icgraph.map b/a01940_a83ddb422946cf774c687c1ab63dcda15_icgraph.map new file mode 100644 index 00000000..e43ebed9 --- /dev/null +++ b/a01940_a83ddb422946cf774c687c1ab63dcda15_icgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a01940_a83ddb422946cf774c687c1ab63dcda15_icgraph.md5 b/a01940_a83ddb422946cf774c687c1ab63dcda15_icgraph.md5 new file mode 100644 index 00000000..eb4ed690 --- /dev/null +++ b/a01940_a83ddb422946cf774c687c1ab63dcda15_icgraph.md5 @@ -0,0 +1 @@ +579fe01336232622f06488689e24ae45 \ No newline at end of file diff --git a/a01940_a83ddb422946cf774c687c1ab63dcda15_icgraph.svg b/a01940_a83ddb422946cf774c687c1ab63dcda15_icgraph.svg new file mode 100644 index 00000000..6d8be5ac --- /dev/null +++ b/a01940_a83ddb422946cf774c687c1ab63dcda15_icgraph.svg @@ -0,0 +1,75 @@ + + + + + + +arax_vaccel_init + + +Node1 + + +arax_vaccel_init + + + + + +Node2 + + +arax_accel_acquire_phys + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_acquire_type + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_accel_init + + + + + +Node1->Node4 + + + + + + + + diff --git a/a01940_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.map b/a01940_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.map new file mode 100644 index 00000000..c63a4c46 --- /dev/null +++ b/a01940_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/a01940_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.md5 b/a01940_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.md5 new file mode 100644 index 00000000..1162c005 --- /dev/null +++ b/a01940_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.md5 @@ -0,0 +1 @@ +906116a76e2ca07c3bccd64c52ba2815 \ No newline at end of file diff --git a/a01940_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.svg b/a01940_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.svg new file mode 100644 index 00000000..59331a6f --- /dev/null +++ b/a01940_a8b82433bc8c7d7f03683ac521a3679fa_cgraph.svg @@ -0,0 +1,165 @@ + + + + + + +arax_vaccel_add_task + + +Node1 + + +arax_vaccel_add_task + + + + + +Node2 + + +arax_accel_add_task + + + + + +Node1->Node2 + + + + + + + + +Node9 + + +utils_queue_push + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +async_condition_lock + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +async_condition_notify + + + + + +Node2->Node5 + + + + + + + + +Node7 + + +async_condition_unlock + + + + + +Node2->Node7 + + + + + + + + +Node4 + + +async_completion_wait + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +async_semaphore_inc + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_completion_complete + + + + + +Node7->Node8 + + + + + + + + diff --git a/a01940_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.map b/a01940_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.map new file mode 100644 index 00000000..71613b99 --- /dev/null +++ b/a01940_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.map @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/a01940_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.md5 b/a01940_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.md5 new file mode 100644 index 00000000..225350e1 --- /dev/null +++ b/a01940_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.md5 @@ -0,0 +1 @@ +628860c2d3d47f16cc05b8929b1f192f \ No newline at end of file diff --git a/a01940_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.svg b/a01940_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.svg new file mode 100644 index 00000000..87cfca62 --- /dev/null +++ b/a01940_a8b82433bc8c7d7f03683ac521a3679fa_icgraph.svg @@ -0,0 +1,175 @@ + + + + + + +arax_vaccel_add_task + + +Node1 + + +arax_vaccel_add_task + + + + + +Node2 + + +arax_task_submit + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_task_issue + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_allocate +_remote + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data_get + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +arax_data_set + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +arax_task_issue_sync + + + + + +Node3->Node9 + + + + + + + + +Node6 + + +arax_data_memcpy + + + + + +Node5->Node6 + + + + + + + + +Node7->Node6 + + + + + + + + diff --git a/a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.map b/a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.map new file mode 100644 index 00000000..e47d5a90 --- /dev/null +++ b/a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.md5 b/a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.md5 new file mode 100644 index 00000000..b029d49b --- /dev/null +++ b/a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.md5 @@ -0,0 +1 @@ +b6d1cb43c90b2aa375120002b2247d1c \ No newline at end of file diff --git a/a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.svg b/a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.svg new file mode 100644 index 00000000..ece9c3f4 --- /dev/null +++ b/a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arax_vaccel_queue_size + + +Node1 + + +arax_vaccel_queue_size + + + + + +Node2 + + +arax_vaccel_queue + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +utils_queue_used_slots + + + + + +Node1->Node3 + + + + + + + + diff --git a/a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.map b/a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.map new file mode 100644 index 00000000..e4b8abad --- /dev/null +++ b/a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.md5 b/a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.md5 new file mode 100644 index 00000000..709ece6d --- /dev/null +++ b/a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.md5 @@ -0,0 +1 @@ +2242e788a0045178a0c760ca12457106 \ No newline at end of file diff --git a/a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.svg b/a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.svg new file mode 100644 index 00000000..83cf3386 --- /dev/null +++ b/a01940_ab2fa3d6e6c761009b464cc0fbedc6a16_icgraph.svg @@ -0,0 +1,165 @@ + + + + + + +arax_vaccel_queue_size + + +Node1 + + +arax_vaccel_queue_size + + + + + +Node2 + + +arax_accel_add_vaccel + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +arax_accel_del_vaccel + + + + + +Node1->Node8 + + + + + + + + +Node3 + + +arax_accel_set_physical + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_vaccel_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_accel_acquire_phys + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_accel_acquire_type + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_accel_init + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01940_afe1eb3edd264c847c36e9456b2598452_icgraph.map b/a01940_afe1eb3edd264c847c36e9456b2598452_icgraph.map new file mode 100644 index 00000000..da0d833b --- /dev/null +++ b/a01940_afe1eb3edd264c847c36e9456b2598452_icgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01940_afe1eb3edd264c847c36e9456b2598452_icgraph.md5 b/a01940_afe1eb3edd264c847c36e9456b2598452_icgraph.md5 new file mode 100644 index 00000000..a43c897e --- /dev/null +++ b/a01940_afe1eb3edd264c847c36e9456b2598452_icgraph.md5 @@ -0,0 +1 @@ +053f52deac27c18fe69cb9d03b17bcb1 \ No newline at end of file diff --git a/a01940_afe1eb3edd264c847c36e9456b2598452_icgraph.svg b/a01940_afe1eb3edd264c847c36e9456b2598452_icgraph.svg new file mode 100644 index 00000000..1fcf1116 --- /dev/null +++ b/a01940_afe1eb3edd264c847c36e9456b2598452_icgraph.svg @@ -0,0 +1,183 @@ + + + + + + +arax_vaccel_queue + + +Node1 + + +arax_vaccel_queue + + + + + +Node2 + + +arax_vaccel_queue_size + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_add_vaccel + + + + + +Node2->Node3 + + + + + + + + +Node9 + + +arax_accel_del_vaccel + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +arax_accel_set_physical + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_vaccel_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_accel_acquire_phys + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_accel_acquire_type + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +arax_accel_init + + + + + +Node5->Node8 + + + + + + + + +Node10 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01940_source.html b/a01940_source.html new file mode 100644 index 00000000..c41108d0 --- /dev/null +++ b/a01940_source.html @@ -0,0 +1,282 @@ + + + + + + + +Arax: arax_vaccel.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_vaccel.c
+
+
+Go to the documentation of this file.
1#include "arax_pipe.h"
+
2
+
3arax_vaccel_s* arax_vaccel_init(arax_pipe_s *pipe, const char *name,
+ +
5{
+
6 arax_vaccel_s *vaccel = (arax_vaccel_s *)
+ +
8
+
9 if (!vaccel) // GCOV_EXCL_LINE
+
10 return 0; // GCOV_EXCL_LINE
+
11
+
12 vaccel->phys = 0;
+
13 vaccel->cid = (uint64_t) -1;
+
14 vaccel->priority = (uint64_t) -1;
+
15 utils_spinlock_init(&(vaccel->lock) );
+
16 if (!utils_queue_init(&(vaccel->queue) ) ) // GCOV_EXCL_LINE
+
17 return 0; // GCOV_EXCL_LINE
+
18
+
19 utils_list_node_init(&(vaccel->vaccels), vaccel);
+
20 vaccel->type = type;
+
21 vaccel->meta = 0;
+
22 vaccel->ordering = SEQUENTIAL;
+
23
+
24 if (accel)
+
25 arax_accel_add_vaccel(accel, vaccel);
+
26 else
+
27 arax_pipe_add_orphan_vaccel(pipe, vaccel);
+
28
+
29 return vaccel;
+
30}
+
31
+ +
33{
+
34 utils_spinlock_lock(&(accel->lock));
+
35 while (!utils_queue_push(&(accel->queue), task));
+
36 if (accel->phys)
+ +
38 utils_spinlock_unlock(&(accel->lock));
+
39}
+
40
+ +
42{
+ +
44 arax_vaccel_s *vaccel = (arax_vaccel_s *) accel;
+
45
+
46 vaccel->ordering = ordering;
+
47}
+
48
+ +
50{
+ +
52 arax_vaccel_s *vaccel = (arax_vaccel_s *) accel;
+
53
+
54 return vaccel->ordering;
+
55}
+
56
+
57uint64_t arax_vaccel_set_cid(arax_vaccel_s *vaccel, uint64_t cid)
+
58{
+ +
60 vaccel->cid = cid;
+
61 return vaccel->cid;
+
62}
+
63
+ +
65{
+ +
67 return vaccel->cid;
+
68}
+
69
+
70uint64_t arax_vaccel_set_job_priority(arax_vaccel_s *vaccel, uint64_t priority)
+
71{
+ +
73 vaccel->priority = priority;
+
74 return vaccel->priority;
+
75}
+
76
+ +
78{
+ +
80 return vaccel->priority;
+
81}
+
82
+
83void arax_vaccel_set_meta(arax_vaccel_s *vaccel, void *meta)
+
84{
+ +
86 vaccel->meta = meta;
+
87}
+
88
+ +
90{
+ +
92 return vaccel->meta;
+
93}
+
94
+ +
96{
+ +
98 return &(vaccel->queue);
+
99}
+
100
+ +
102{
+ + +
105}
+
106
+ +
108{
+ +
110 return arax_accel_get_stat(accel->phys, stat);
+
111}
+
112
+ +
114{
+
115 arax_vaccel_s *vaccel = (arax_vaccel_s *) obj;
+
116
+ +
118
+
119 if (vaccel->phys)
+
120 arax_accel_del_vaccel(vaccel->phys, vaccel);
+
121 else
+
122 arax_pipe_remove_orphan_vaccel(pipe, vaccel);
+
123}
+ +
void arax_task
Definition arax_types.h:51
+
enum arax_accel_state arax_accel_state_e
+
enum arax_accel_type arax_accel_type_e
+
#define arax_assert_obj(OBJ, TYPE)
Definition arax_assert.h:12
+
@ ARAX_TYPE_VIRT_ACCEL
Definition arax_object.h:17
+
#define ARAX_OBJ_DTOR_DECL(TYPE)
+
arax_accel_ordering_e
Definition arax_vaccel.h:17
+
@ SEQUENTIAL
Definition arax_vaccel.h:18
+
arax_accel_state_e arax_accel_get_stat(arax_accel_s *accel, arax_accel_stats_s *stat)
Definition arax_accel.c:89
+
void arax_accel_del_vaccel(arax_accel_s *accel, arax_vaccel_s *vaccel)
Definition arax_accel.c:156
+
void arax_accel_add_task(arax_accel_s *accel)
Definition arax_accel.c:38
+
void arax_accel_add_vaccel(arax_accel_s *accel, arax_vaccel_s *vaccel)
Definition arax_accel.c:108
+
arax_object_s * arax_object_register(arax_object_repo_s *repo, arax_object_type_e type, const char *name, size_t size, const int ref_count)
Definition arax_object.c:98
+
void arax_pipe_add_orphan_vaccel(arax_pipe_s *pipe, arax_vaccel_s *vac)
Definition arax_pipe.c:63
+
void arax_pipe_remove_orphan_vaccel(arax_pipe_s *pipe, arax_vaccel_s *vac)
Definition arax_pipe.c:100
+
arax_accel_state_e arax_vaccel_get_stat(arax_vaccel_s *accel, arax_accel_stats_s *stat)
+
uint64_t arax_vaccel_get_job_priority(arax_vaccel_s *vaccel)
Definition arax_vaccel.c:77
+
arax_vaccel_s * arax_vaccel_init(arax_pipe_s *pipe, const char *name, arax_accel_type_e type, arax_accel_s *accel)
Definition arax_vaccel.c:3
+
void arax_vaccel_add_task(arax_vaccel_s *accel, arax_task *task)
Definition arax_vaccel.c:32
+
uint64_t arax_vaccel_set_cid(arax_vaccel_s *vaccel, uint64_t cid)
Definition arax_vaccel.c:57
+
unsigned int arax_vaccel_queue_size(arax_vaccel_s *vaccel)
+
void arax_vaccel_set_meta(arax_vaccel_s *vaccel, void *meta)
Definition arax_vaccel.c:83
+
void * arax_vaccel_get_meta(arax_vaccel_s *vaccel)
Definition arax_vaccel.c:89
+
arax_accel_ordering_e arax_vaccel_get_ordering(arax_accel_s *accel)
Definition arax_vaccel.c:49
+
uint64_t arax_vaccel_get_cid(arax_vaccel_s *vaccel)
Definition arax_vaccel.c:64
+
void arax_vaccel_set_ordering(arax_accel_s *accel, arax_accel_ordering_e ordering)
Definition arax_vaccel.c:41
+
uint64_t arax_vaccel_set_job_priority(arax_vaccel_s *vaccel, uint64_t priority)
Definition arax_vaccel.c:70
+
utils_queue_s * arax_vaccel_queue(arax_vaccel_s *vaccel)
Definition arax_vaccel.c:95
+
void utils_list_node_init(utils_list_node_s *node, void *owner)
Definition list.c:74
+
#define utils_spinlock_lock(V)
Definition queue.c:35
+
#define utils_spinlock_init(V)
Definition queue.c:34
+
utils_queue_s * utils_queue_init(void *buff)
Definition queue.c:39
+
unsigned int utils_queue_used_slots(utils_queue_s *q)
Definition queue.c:51
+
#define utils_spinlock_unlock(V)
Definition queue.c:36
+
void * utils_queue_push(utils_queue_s *q, void *data)
Definition queue.c:89
+ + +
arax_accel_ordering_e ordering
Definition arax_vaccel.h:33
+
utils_spinlock lock
Definition arax_vaccel.h:34
+
uint64_t cid
Definition arax_vaccel.h:36
+
arax_accel_s * phys
Definition arax_vaccel.h:38
+
arax_accel_type_e type
Definition arax_vaccel.h:32
+ +
utils_list_node_s vaccels
Definition arax_vaccel.h:35
+
utils_queue_s queue
Definition arax_vaccel.h:40
+
uint64_t priority
Definition arax_vaccel.h:37
+
Definition queue.h:16
+ +
arax_object_repo_s objs
Definition arax_pipe.h:33
+ +
+
+ + + + diff --git a/a01941.map b/a01941.map new file mode 100644 index 00000000..7bc49f43 --- /dev/null +++ b/a01941.map @@ -0,0 +1,68 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01941.md5 b/a01941.md5 new file mode 100644 index 00000000..2f1b345a --- /dev/null +++ b/a01941.md5 @@ -0,0 +1 @@ +edb6f958c055acc446076ad4d2a69ca6 \ No newline at end of file diff --git a/a01941.svg b/a01941.svg new file mode 100644 index 00000000..974dcba3 --- /dev/null +++ b/a01941.svg @@ -0,0 +1,606 @@ + + + + + + +arax_vaccel.c + + +Node1 + + +arax_vaccel.c + + + + + +Node2 + + +arax_pipe.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax.h + + + + + +Node2->Node3 + + + + + + + + +Node10 + + +utils/Kv.h + + + + + +Node2->Node10 + + + + + + + + +Node16 + + +utils/queue.h + + + + + +Node2->Node16 + + + + + + + + +Node17 + + +core/arax_accel.h + + + + + +Node2->Node17 + + + + + + + + +Node24 + + +core/arax_task.h + + + + + +Node2->Node24 + + + + + + + + +Node4 + + +stdio.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +stddef.h + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_types.h + + + + + +Node3->Node6 + + + + + + + + +Node9 + + +core/arax_accel_types.h + + + + + +Node3->Node9 + + + + + + + + +Node7 + + +sys/time.h + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +time.h + + + + + +Node6->Node8 + + + + + + + + +Node9->Node6 + + + + + + + + +Node10->Node5 + + + + + + + + +Node11 + + +conf.h + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +spinlock.h + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +stdint.h + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +utils/arax_assert.h + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +compat.h + + + + + +Node14->Node15 + + + + + + + + +Node16->Node5 + + + + + + + + +Node16->Node11 + + + + + + + + +Node16->Node12 + + + + + + + + +Node16->Node13 + + + + + + + + +Node17->Node3 + + + + + + + + +Node18 + + +async.h + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +core/arax_vaccel.h + + + + + +Node17->Node19 + + + + + + + + +Node23 + + +core/arax_throttle.h + + + + + +Node17->Node23 + + + + + + + + +Node19->Node16 + + + + + + + + +Node19->Node17 + + + + + + + + +Node19->Node18 + + + + + + + + +Node20 + + +core/arax_object.h + + + + + +Node19->Node20 + + + + + + + + +Node20->Node12 + + + + + + + + +Node21 + + +utils/list.h + + + + + +Node20->Node21 + + + + + + + + +Node22 + + +arch/alloc.h + + + + + +Node20->Node22 + + + + + + + + +Node21->Node5 + + + + + + + + +Node21->Node13 + + + + + + + + +Node23->Node18 + + + + + + + + +Node24->Node18 + + + + + + + + +Node25 + + +core/arax_proc.h + + + + + +Node24->Node25 + + + + + + + + +Node25->Node3 + + + + + + + + +Node25->Node20 + + + + + + + + diff --git a/a01943.html b/a01943.html new file mode 100644 index 00000000..ee617bd9 --- /dev/null +++ b/a01943.html @@ -0,0 +1,248 @@ + + + + + + + +Arax: Kv.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Kv.c File Reference
+
+
+
#include "Kv.h"
+#include <stdio.h>
+#include <string.h>
+
+ + Include dependency graph for Kv.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + +

+Functions

void utils_kv_init (utils_kv_s *kv)
 
void utils_kv_set (utils_kv_s *kv, void *key, void *value)
 
void ** utils_kv_get (utils_kv_s *kv, void *key)
 
+

Function Documentation

+ +

◆ utils_kv_get()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void ** utils_kv_get (utils_kv_skv,
void * key 
)
+
+

Return &(kv[key]) if found.

+

Returns NULL if key not found.

+ +

Definition at line 35 of file Kv.c.

+ +

References utils_kv_s::Pair::key, utils_kv_s::kv, utils_kv_s::lock, utils_kv_s::pairs, utils_spinlock_lock, utils_spinlock_unlock, and utils_kv_s::Pair::value.

+ +
+
+ +

◆ utils_kv_init()

+ +
+
+ + + + + + + + +
void utils_kv_init (utils_kv_skv)
+
+

Initialize kv.

+ +

Definition at line 5 of file Kv.c.

+ +

References utils_kv_s::lock, and utils_spinlock_init.

+ +

Referenced by arax_pipe_init().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_kv_set()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void utils_kv_set (utils_kv_skv,
void * key,
void * value 
)
+
+

Set kv[key] = value.

+

Overwrites existing value.

+ +

Definition at line 11 of file Kv.c.

+ +

References arax_assert, utils_kv_s::Pair::key, utils_kv_s::kv, utils_kv_s::lock, utils_kv_s::pairs, utils_spinlock_lock, utils_spinlock_unlock, and utils_kv_s::Pair::value.

+ +

Referenced by arax_plot_register_metric().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01943.js b/a01943.js new file mode 100644 index 00000000..e9b89c04 --- /dev/null +++ b/a01943.js @@ -0,0 +1,6 @@ +var a01943 = +[ + [ "utils_kv_get", "a01943.html#ab3a9ad65d11a3f800b9731cbc30e81ff", null ], + [ "utils_kv_init", "a01943.html#a2e86c7792c1e7e0e1bdf1fe1a25dcab0", null ], + [ "utils_kv_set", "a01943.html#a91805af1bb8178dbb114ff65d491f840", null ] +]; \ No newline at end of file diff --git a/a01943_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.map b/a01943_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.map new file mode 100644 index 00000000..553e799d --- /dev/null +++ b/a01943_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01943_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.md5 b/a01943_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.md5 new file mode 100644 index 00000000..95ad834f --- /dev/null +++ b/a01943_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.md5 @@ -0,0 +1 @@ +83e433247f0df4169cb37479494171d9 \ No newline at end of file diff --git a/a01943_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.svg b/a01943_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.svg new file mode 100644 index 00000000..edf209c5 --- /dev/null +++ b/a01943_a2e86c7792c1e7e0e1bdf1fe1a25dcab0_icgraph.svg @@ -0,0 +1,203 @@ + + + + + + +utils_kv_init + + +Node1 + + +utils_kv_init + + + + + +Node2 + + +arax_pipe_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01943_a91805af1bb8178dbb114ff65d491f840_icgraph.map b/a01943_a91805af1bb8178dbb114ff65d491f840_icgraph.map new file mode 100644 index 00000000..ede501b3 --- /dev/null +++ b/a01943_a91805af1bb8178dbb114ff65d491f840_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01943_a91805af1bb8178dbb114ff65d491f840_icgraph.md5 b/a01943_a91805af1bb8178dbb114ff65d491f840_icgraph.md5 new file mode 100644 index 00000000..7d51ae84 --- /dev/null +++ b/a01943_a91805af1bb8178dbb114ff65d491f840_icgraph.md5 @@ -0,0 +1 @@ +e504829a53b967cde08a4ac0653cb36e \ No newline at end of file diff --git a/a01943_a91805af1bb8178dbb114ff65d491f840_icgraph.svg b/a01943_a91805af1bb8178dbb114ff65d491f840_icgraph.svg new file mode 100644 index 00000000..687f07d8 --- /dev/null +++ b/a01943_a91805af1bb8178dbb114ff65d491f840_icgraph.svg @@ -0,0 +1,40 @@ + + + + + + +utils_kv_set + + +Node1 + + +utils_kv_set + + + + + +Node2 + + +arax_plot_register +_metric + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01943_source.html b/a01943_source.html new file mode 100644 index 00000000..be21f82f --- /dev/null +++ b/a01943_source.html @@ -0,0 +1,170 @@ + + + + + + + +Arax: Kv.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Kv.c
+
+
+Go to the documentation of this file.
1#include "Kv.h"
+
2#include <stdio.h>
+
3#include <string.h>
+
4
+ +
6{
+
7 memset(kv, 0, sizeof(*kv));
+ +
9}
+
10
+
11void utils_kv_set(utils_kv_s *kv, void *key, void *value)
+
12{
+
13 // TODO De-tarzanize implementation (ask christos for explanation)
+
14 // use bsearch and qsort
+
15 size_t itr = 0;
+
16
+ +
18 for (itr = 0; itr < kv->pairs; itr++) {
+
19 if (kv->kv[itr].key == key) {
+
20 kv->kv[itr].value = value;
+ +
22 return;
+
23 }
+
24 }
+
25 if (kv->pairs < ARAX_KV_CAP) {
+
26 kv->kv[kv->pairs].key = key;
+
27 kv->kv[kv->pairs++].value = value;
+
28 } else {
+ +
30 arax_assert(!"Exceeded ARAX_KV_CAP");
+
31 }
+ +
33}
+
34
+
35void** utils_kv_get(utils_kv_s *kv, void *key)
+
36{
+
37 size_t itr;
+
38
+ +
40 for (itr = 0; itr < kv->pairs; itr++) {
+
41 if (kv->kv[itr].key == key) {
+ +
43 return &(kv->kv[itr].value);
+
44 }
+
45 }
+ +
47 return 0;
+
48}
+ +
#define arax_assert(EXPR)
Definition arax_assert.h:7
+
void utils_kv_init(utils_kv_s *kv)
Definition Kv.c:5
+
void utils_kv_set(utils_kv_s *kv, void *key, void *value)
Definition Kv.c:11
+
void ** utils_kv_get(utils_kv_s *kv, void *key)
Definition Kv.c:35
+
#define utils_spinlock_lock(V)
Definition queue.c:35
+
#define utils_spinlock_init(V)
Definition queue.c:34
+
#define utils_spinlock_unlock(V)
Definition queue.c:36
+ +
size_t pairs
Definition Kv.h:17
+
utils_spinlock lock
Definition Kv.h:18
+
struct utils_kv_s::Pair kv[ARAX_KV_CAP]
+
void * value
Definition Kv.h:15
+
void * key
Definition Kv.h:14
+
+
+ + + + diff --git a/a01944.map b/a01944.map new file mode 100644 index 00000000..0796f1d4 --- /dev/null +++ b/a01944.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01944.md5 b/a01944.md5 new file mode 100644 index 00000000..35820300 --- /dev/null +++ b/a01944.md5 @@ -0,0 +1 @@ +eef68930c39d2a99eeafd86fc6adacef \ No newline at end of file diff --git a/a01944.svg b/a01944.svg new file mode 100644 index 00000000..b82d8e81 --- /dev/null +++ b/a01944.svg @@ -0,0 +1,183 @@ + + + + + + +Kv.c + + +Node1 + + +Kv.c + + + + + +Node2 + + +Kv.h + + + + + +Node1->Node2 + + + + + + + + +Node9 + + +stdio.h + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +string.h + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +conf.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stddef.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +spinlock.h + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +utils/arax_assert.h + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +compat.h + + + + + +Node7->Node8 + + + + + + + + diff --git a/a01946.html b/a01946.html new file mode 100644 index 00000000..9be2aeba --- /dev/null +++ b/a01946.html @@ -0,0 +1,249 @@ + + + + + + + +Arax: arax_assert.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_assert.c File Reference
+
+
+
#include "arax_assert.h"
+#include "core/arax_ptr.h"
+#include "core/arax_object.h"
+#include <stdio.h>
+#include <string.h>
+#include <stdlib.h>
+#include <execinfo.h>
+#include "system.h"
+
+ + Include dependency graph for arax_assert.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Macros

#define ARAX_FILE_PREFIX_LEN   (strlen(__FILE__) - 23)
 
+ + + + + +

+Functions

void _arax_assert (int fail, const char *expr, const char *file, int line)
 
void _arax_assert_obj (void *obj, int type)
 
+

Macro Definition Documentation

+ +

◆ ARAX_FILE_PREFIX_LEN

+ +
+
+ + + + +
#define ARAX_FILE_PREFIX_LEN   (strlen(__FILE__) - 23)
+
+ +

Definition at line 10 of file arax_assert.c.

+ +
+
+

Function Documentation

+ +

◆ _arax_assert()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void _arax_assert (int fail,
const char * expr,
const char * file,
int line 
)
+
+ +

Definition at line 12 of file arax_assert.c.

+ +

References ARAX_FILE_PREFIX_LEN, and system_backtrace().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ _arax_assert_obj()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void _arax_assert_obj (void * obj,
int type 
)
+
+ +

Definition at line 21 of file arax_assert.c.

+ +

References arax_assert, arax_ptr_valid(), and arax_object_s::type.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01946.js b/a01946.js new file mode 100644 index 00000000..72bdc76a --- /dev/null +++ b/a01946.js @@ -0,0 +1,6 @@ +var a01946 = +[ + [ "ARAX_FILE_PREFIX_LEN", "a01946.html#a4d01598bfe08831f18b456af3cb173bc", null ], + [ "_arax_assert", "a01946.html#af26dc0763861425aefd6253b538a289a", null ], + [ "_arax_assert_obj", "a01946.html#a4ee1fea325d2edd421f59ab240dfbe54", null ] +]; \ No newline at end of file diff --git a/a01946_a4ee1fea325d2edd421f59ab240dfbe54_cgraph.map b/a01946_a4ee1fea325d2edd421f59ab240dfbe54_cgraph.map new file mode 100644 index 00000000..e903415e --- /dev/null +++ b/a01946_a4ee1fea325d2edd421f59ab240dfbe54_cgraph.map @@ -0,0 +1,114 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01946_a4ee1fea325d2edd421f59ab240dfbe54_cgraph.md5 b/a01946_a4ee1fea325d2edd421f59ab240dfbe54_cgraph.md5 new file mode 100644 index 00000000..dc46524d --- /dev/null +++ b/a01946_a4ee1fea325d2edd421f59ab240dfbe54_cgraph.md5 @@ -0,0 +1 @@ +c4cf55cba838e57a5648f7649a0b1bd7 \ No newline at end of file diff --git a/a01946_a4ee1fea325d2edd421f59ab240dfbe54_cgraph.svg b/a01946_a4ee1fea325d2edd421f59ab240dfbe54_cgraph.svg new file mode 100644 index 00000000..b5386f73 --- /dev/null +++ b/a01946_a4ee1fea325d2edd421f59ab240dfbe54_cgraph.svg @@ -0,0 +1,1020 @@ + + + + + + +_arax_assert_obj + + +Node1 + + +_arax_assert_obj + + + + + +Node2 + + +arax_ptr_valid + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +_arax_init + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_pipe_get_available_size + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +arax_pipe_have_to_mmap + + + + + +Node4->Node7 + + + + + + + + +Node8 + + +arax_pipe_init + + + + + +Node4->Node8 + + + + + + + + +Node24 + + +utils_config_alloc_path + + + + + +Node4->Node24 + + + + + + + + +Node27 + + +utils_config_get_bool + + + + + +Node4->Node27 + + + + + + + + +Node39 + + +arax_pipe_mmap_address + + + + + +Node4->Node39 + + + + + + + + +Node40 + + +async_condition_lock + + + + + +Node4->Node40 + + + + + + + + +Node42 + + +async_condition_unlock + + + + + +Node4->Node42 + + + + + + + + +Node43 + + +async_condition_wait + + + + + +Node4->Node43 + + + + + + + + +Node45 + + +async_meta_init_always + + + + + +Node4->Node45 + + + + + + + + +Node50 + + +utils_config_get_str + + + + + +Node4->Node50 + + + + + + + + +Node51 + + +system_mmap + + + + + +Node4->Node51 + + + + + + + + +Node52 + + +system_process_id + + + + + +Node4->Node52 + + + + + + + + +Node53 + + +system_total_memory + + + + + +Node4->Node53 + + + + + + + + +Node54 + + +utils_config_get_size + + + + + +Node4->Node54 + + + + + + + + +Node34 + + +utils_config_get_source + + + + + +Node4->Node34 + + + + + + + + +Node6 + + +arax_throttle_get_available_size + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +arax_object_repo_init + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +utils_list_init + + + + + +Node8->Node10 + + + + + + + + +Node12 + + +arax_pipe_add_process + + + + + +Node8->Node12 + + + + + + + + +Node13 + + +arax_throttle_init + + + + + +Node8->Node13 + + + + + + + + +Node14 + + +async_condition_init + + + + + +Node8->Node14 + + + + + + + + +Node20 + + +arch_alloc_init_always + + + + + +Node8->Node20 + + + + + + + + +Node21 + + +arch_alloc_init_once + + + + + +Node8->Node21 + + + + + + + + +Node23 + + +async_meta_init_once + + + + + +Node8->Node23 + + + + + + + + +Node38 + + +utils_kv_init + + + + + +Node8->Node38 + + + + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +utils_list_node_init + + + + + +Node10->Node11 + + + + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +async_completion_complete + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +async_completion_init + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +async_condition_unlock + + + + + +Node14->Node17 + + + + + + + + +Node19 + + +async_semaphore_init + + + + + +Node14->Node19 + + + + + + + + +Node22 + + +utils_bitmap_init + + + + + +Node21->Node22 + + + + + + + + +Node23->Node10 + + + + + + + + +Node23->Node24 + + + + + + + + +Node26 + + +utils_config_free_path + + + + + +Node23->Node26 + + + + + + + + +Node23->Node27 + + + + + + + + +Node25 + + +system_home_path + + + + + +Node24->Node25 + + + + + + + + +Node28 + + +utils_config_get_int + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +utils_config_get_long + + + + + +Node28->Node29 + + + + + + + + +Node30 + + +_utils_config_get_str + + + + + +Node29->Node30 + + + + + + + + +Node41 + + +async_completion_wait + + + + + +Node40->Node41 + + + + + + + + +Node42->Node15 + + + + + + + + +Node43->Node15 + + + + + + + + +Node43->Node41 + + + + + + + + +Node44 + + +async_semaphore_dec + + + + + +Node43->Node44 + + + + + + + + +Node45->Node24 + + + + + + + + +Node45->Node26 + + + + + + + + +Node46 + + +async_thread + + + + + +Node45->Node46 + + + + + + + + +Node45->Node50 + + + + + + + + +Node47 + + +async_completion_check + + + + + +Node46->Node47 + + + + + + + + +Node48 + + +getVmID + + + + + +Node46->Node48 + + + + + + + + +Node49 + + +utils_list_del + + + + + +Node46->Node49 + + + + + + + + +Node50->Node30 + + + + + + + + +Node36 + + +utils_config_write_str + + + + + +Node50->Node36 + + + + + + + + +Node33 + + +system_file_size + + + + + +Node51->Node33 + + + + + + + + +Node54->Node29 + + + + + + + + +Node32 + + +system_env_var + + + + + +Node34->Node32 + + + + + + + + diff --git a/a01946_af26dc0763861425aefd6253b538a289a_cgraph.map b/a01946_af26dc0763861425aefd6253b538a289a_cgraph.map new file mode 100644 index 00000000..eb447e85 --- /dev/null +++ b/a01946_af26dc0763861425aefd6253b538a289a_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01946_af26dc0763861425aefd6253b538a289a_cgraph.md5 b/a01946_af26dc0763861425aefd6253b538a289a_cgraph.md5 new file mode 100644 index 00000000..3f1c5555 --- /dev/null +++ b/a01946_af26dc0763861425aefd6253b538a289a_cgraph.md5 @@ -0,0 +1 @@ +d23141a268e80632a56045f6c3f8888f \ No newline at end of file diff --git a/a01946_af26dc0763861425aefd6253b538a289a_cgraph.svg b/a01946_af26dc0763861425aefd6253b538a289a_cgraph.svg new file mode 100644 index 00000000..78d2ddb9 --- /dev/null +++ b/a01946_af26dc0763861425aefd6253b538a289a_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +_arax_assert + + +Node1 + + +_arax_assert + + + + + +Node2 + + +system_backtrace + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +formatStackLine + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01946_source.html b/a01946_source.html new file mode 100644 index 00000000..6663ea6d --- /dev/null +++ b/a01946_source.html @@ -0,0 +1,151 @@ + + + + + + + +Arax: arax_assert.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_assert.c
+
+
+Go to the documentation of this file.
1#include "arax_assert.h"
+
2#include "core/arax_ptr.h"
+
3#include "core/arax_object.h"
+
4#include <stdio.h>
+
5#include <string.h>
+
6#include <stdlib.h>
+
7#include <execinfo.h>
+
8#include "system.h"
+
9
+
10#define ARAX_FILE_PREFIX_LEN (strlen(__FILE__) - 23)
+
11// GCOV_EXCL_START
+
12void _arax_assert(int fail, const char *expr, const char *file, int line)
+
13{
+
14 if (fail) {
+
15 fprintf(stderr, "%s <<\n\narax_assert(%s) @ %s:%d\n\n", system_backtrace(1), expr, file + ARAX_FILE_PREFIX_LEN,
+
16 line);
+
17 abort();
+
18 }
+
19}
+
20
+
21void _arax_assert_obj(void *obj, int type)
+
22{
+
23 arax_assert(obj && !"Object was null");
+
24 arax_assert(arax_ptr_valid(obj) && !"Object was not valid ptr");
+
25 arax_assert(arax_ptr_valid(obj) && !"Object was not valid ptr");
+
26 arax_object_s *vo = obj;
+
27
+
28 arax_assert((vo->type == type) && !"Object type was not the expected");
+
29}
+
30
+
31// GCOV_EXCL_STOP
+ +
#define arax_assert(EXPR)
Definition arax_assert.h:7
+ + + +
int arax_ptr_valid(const void *ptr)
Definition arax_ptr.c:4
+
#define ARAX_FILE_PREFIX_LEN
Definition arax_assert.c:10
+
void _arax_assert_obj(void *obj, int type)
Definition arax_assert.c:21
+
void _arax_assert(int fail, const char *expr, const char *file, int line)
Definition arax_assert.c:12
+
const char * system_backtrace(unsigned int skip)
Definition system.c:154
+ +
arax_object_type_e type
Definition arax_object.h:45
+
+
+ + + + diff --git a/a01947.map b/a01947.map new file mode 100644 index 00000000..496d9dba --- /dev/null +++ b/a01947.map @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01947.md5 b/a01947.md5 new file mode 100644 index 00000000..08deb87b --- /dev/null +++ b/a01947.md5 @@ -0,0 +1 @@ +c54a9a9ddae73d29812ab305a879c242 \ No newline at end of file diff --git a/a01947.svg b/a01947.svg new file mode 100644 index 00000000..18b913b7 --- /dev/null +++ b/a01947.svg @@ -0,0 +1,327 @@ + + + + + + +arax_assert.c + + +Node1 + + +arax_assert.c + + + + + +Node2 + + +arax_assert.h + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +core/arax_ptr.h + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +core/arax_object.h + + + + + +Node1->Node5 + + + + + + + + +Node11 + + +stdio.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +string.h + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +stdlib.h + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +execinfo.h + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +system.h + + + + + +Node1->Node15 + + + + + + + + +Node3 + + +compat.h + + + + + +Node2->Node3 + + + + + + + + +Node4->Node3 + + + + + + + + +Node6 + + +utils/list.h + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +utils/spinlock.h + + + + + +Node5->Node9 + + + + + + + + +Node10 + + +arch/alloc.h + + + + + +Node5->Node10 + + + + + + + + +Node7 + + +stddef.h + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +stdint.h + + + + + +Node6->Node8 + + + + + + + + +Node9->Node2 + + + + + + + + +Node9->Node8 + + + + + + + + +Node15->Node7 + + + + + + + + +Node16 + + +sys/types.h + + + + + +Node15->Node16 + + + + + + + + diff --git a/a01949.html b/a01949.html new file mode 100644 index 00000000..bafd9258 --- /dev/null +++ b/a01949.html @@ -0,0 +1,181 @@ + + + + + + + +Arax: arax_plot.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_plot.c File Reference
+
+
+
#include "arax_plot.h"
+#include "arax_pipe.h"
+#include "arax_ptr.h"
+#include "../alloc/alloc.h"
+#include <string.h>
+
+ + Include dependency graph for arax_plot.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Functions

uint64_t * arax_plot_register_metric (const char *name, uint64_t *metric)
 
+

Function Documentation

+ +

◆ arax_plot_register_metric()

+ +
+
+ + + + + + + + + + + + + + + + + + +
uint64_t * arax_plot_register_metric (const char * name,
uint64_t * metric 
)
+
+

Register a new metric name and set/get the location where its value resides.

+

The value pointer metric can be null or a valid arax pointer. When null, the call will allocate space for the metric, and return the pointer. When given a pointer where arax_ptr_valid()==true, the provided pointer is used and returned.

+
Note
This should be called before starting the arax_plot executable.
+
Parameters
+ + + +
nameShort name of new metric.
metricNULL or pointer that has arax_ptr_valid()==true.
+
+
+
Returns
Pointer location of metric.
+ +

Definition at line 7 of file arax_plot.c.

+ +

References arax_pipe::allocator, arax_assert, arax_init(), arax_ptr_valid(), arch_alloc_allocate(), arax_pipe::metrics_kv, utils_kv_set(), and vpipe.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01949.js b/a01949.js new file mode 100644 index 00000000..905fa008 --- /dev/null +++ b/a01949.js @@ -0,0 +1,4 @@ +var a01949 = +[ + [ "arax_plot_register_metric", "a01949.html#a8a99bcb12e2ee55d68a029bfca9b6d51", null ] +]; \ No newline at end of file diff --git a/a01949_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.map b/a01949_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.map new file mode 100644 index 00000000..22be0130 --- /dev/null +++ b/a01949_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.map @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01949_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.md5 b/a01949_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.md5 new file mode 100644 index 00000000..cbd7739a --- /dev/null +++ b/a01949_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.md5 @@ -0,0 +1 @@ +eba59af43c3a556179df7fc1fe45eb0c \ No newline at end of file diff --git a/a01949_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.svg b/a01949_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.svg new file mode 100644 index 00000000..cf7d68e3 --- /dev/null +++ b/a01949_a8a99bcb12e2ee55d68a029bfca9b6d51_cgraph.svg @@ -0,0 +1,1030 @@ + + + + + + +arax_plot_register_metric + + +Node1 + + +arax_plot_register +_metric + + + + + +Node2 + + +arax_init + + + + + +Node1->Node2 + + + + + + + + +Node54 + + +arax_ptr_valid + + + + + +Node1->Node54 + + + + + + + + +Node55 + + +arch_alloc_allocate + + + + + +Node1->Node55 + + + + + + + + +Node56 + + +utils_kv_set + + + + + +Node1->Node56 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_pipe_get_available_size + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +arax_pipe_have_to_mmap + + + + + +Node3->Node6 + + + + + + + + +Node7 + + +arax_pipe_init + + + + + +Node3->Node7 + + + + + + + + +Node23 + + +utils_config_alloc_path + + + + + +Node3->Node23 + + + + + + + + +Node26 + + +utils_config_get_bool + + + + + +Node3->Node26 + + + + + + + + +Node38 + + +arax_pipe_mmap_address + + + + + +Node3->Node38 + + + + + + + + +Node39 + + +async_condition_lock + + + + + +Node3->Node39 + + + + + + + + +Node41 + + +async_condition_unlock + + + + + +Node3->Node41 + + + + + + + + +Node42 + + +async_condition_wait + + + + + +Node3->Node42 + + + + + + + + +Node44 + + +async_meta_init_always + + + + + +Node3->Node44 + + + + + + + + +Node49 + + +utils_config_get_str + + + + + +Node3->Node49 + + + + + + + + +Node50 + + +system_mmap + + + + + +Node3->Node50 + + + + + + + + +Node51 + + +system_process_id + + + + + +Node3->Node51 + + + + + + + + +Node52 + + +system_total_memory + + + + + +Node3->Node52 + + + + + + + + +Node53 + + +utils_config_get_size + + + + + +Node3->Node53 + + + + + + + + +Node33 + + +utils_config_get_source + + + + + +Node3->Node33 + + + + + + + + +Node5 + + +arax_throttle_get_available_size + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +arax_object_repo_init + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +utils_list_init + + + + + +Node7->Node9 + + + + + + + + +Node11 + + +arax_pipe_add_process + + + + + +Node7->Node11 + + + + + + + + +Node12 + + +arax_throttle_init + + + + + +Node7->Node12 + + + + + + + + +Node13 + + +async_condition_init + + + + + +Node7->Node13 + + + + + + + + +Node19 + + +arch_alloc_init_always + + + + + +Node7->Node19 + + + + + + + + +Node20 + + +arch_alloc_init_once + + + + + +Node7->Node20 + + + + + + + + +Node22 + + +async_meta_init_once + + + + + +Node7->Node22 + + + + + + + + +Node37 + + +utils_kv_init + + + + + +Node7->Node37 + + + + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +utils_list_node_init + + + + + +Node9->Node10 + + + + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +async_completion_complete + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +async_completion_init + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +async_condition_unlock + + + + + +Node13->Node16 + + + + + + + + +Node18 + + +async_semaphore_init + + + + + +Node13->Node18 + + + + + + + + +Node21 + + +utils_bitmap_init + + + + + +Node20->Node21 + + + + + + + + +Node22->Node9 + + + + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +utils_config_free_path + + + + + +Node22->Node25 + + + + + + + + +Node22->Node26 + + + + + + + + +Node24 + + +system_home_path + + + + + +Node23->Node24 + + + + + + + + +Node27 + + +utils_config_get_int + + + + + +Node26->Node27 + + + + + + + + +Node28 + + +utils_config_get_long + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +_utils_config_get_str + + + + + +Node28->Node29 + + + + + + + + +Node40 + + +async_completion_wait + + + + + +Node39->Node40 + + + + + + + + +Node41->Node14 + + + + + + + + +Node42->Node14 + + + + + + + + +Node42->Node40 + + + + + + + + +Node43 + + +async_semaphore_dec + + + + + +Node42->Node43 + + + + + + + + +Node44->Node23 + + + + + + + + +Node44->Node25 + + + + + + + + +Node45 + + +async_thread + + + + + +Node44->Node45 + + + + + + + + +Node44->Node49 + + + + + + + + +Node46 + + +async_completion_check + + + + + +Node45->Node46 + + + + + + + + +Node49->Node29 + + + + + + + + +Node35 + + +utils_config_write_str + + + + + +Node49->Node35 + + + + + + + + +Node32 + + +system_file_size + + + + + +Node50->Node32 + + + + + + + + +Node53->Node28 + + + + + + + + +Node31 + + +system_env_var + + + + + +Node33->Node31 + + + + + + + + +Node54->Node2 + + + + + + + + diff --git a/a01949_source.html b/a01949_source.html new file mode 100644 index 00000000..34e7ba09 --- /dev/null +++ b/a01949_source.html @@ -0,0 +1,144 @@ + + + + + + + +Arax: arax_plot.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arax_plot.c
+
+
+Go to the documentation of this file.
1#include "arax_plot.h"
+
2#include "arax_pipe.h"
+
3#include "arax_ptr.h"
+
4#include "../alloc/alloc.h"
+
5#include <string.h>
+
6
+
7uint64_t* arax_plot_register_metric(const char *name, uint64_t *metric)
+
8{
+ +
10
+
11 if (metric)
+ +
13 else
+
14 metric = arch_alloc_allocate(&(vpipe->allocator), sizeof(*metric));
+
15
+
16 char *vname = arch_alloc_allocate(&(vpipe->allocator), strlen(name) + 1);
+
17
+
18 strcpy(vname, name);
+
19
+
20 utils_kv_set(&(vpipe->metrics_kv), vname, metric);
+
21
+
22 return metric;
+
23}
+ +
void * arch_alloc_allocate(arch_alloc_s *alloc, size_t size)
+
#define arax_assert(EXPR)
Definition arax_assert.h:7
+ + +
arax_pipe_s * vpipe
Definition impl.c:17
+
int arax_ptr_valid(const void *ptr)
Definition arax_ptr.c:4
+
void utils_kv_set(utils_kv_s *kv, void *key, void *value)
Definition Kv.c:11
+
uint64_t * arax_plot_register_metric(const char *name, uint64_t *metric)
Definition arax_plot.c:7
+
arax_pipe_s * arax_init()
Definition impl.c:132
+ +
arch_alloc_s allocator
Definition arax_pipe.h:46
+
utils_kv_s metrics_kv
Definition arax_pipe.h:44
+
+
+ + + + diff --git a/a01950.map b/a01950.map new file mode 100644 index 00000000..340f4476 --- /dev/null +++ b/a01950.map @@ -0,0 +1,86 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01950.md5 b/a01950.md5 new file mode 100644 index 00000000..497ca587 --- /dev/null +++ b/a01950.md5 @@ -0,0 +1 @@ +a02cb4f56622fe28ca2d8454a8459c81 \ No newline at end of file diff --git a/a01950.svg b/a01950.svg new file mode 100644 index 00000000..08e27e0c --- /dev/null +++ b/a01950.svg @@ -0,0 +1,768 @@ + + + + + + +arax_plot.c + + +Node1 + + +arax_plot.c + + + + + +Node2 + + +arax_plot.h + + + + + +Node1->Node2 + + + + + + + + +Node11 + + +arax_pipe.h + + + + + +Node1->Node11 + + + + + + + + +Node27 + + +arax_ptr.h + + + + + +Node1->Node27 + + + + + + + + +Node28 + + +../alloc/alloc.h + + + + + +Node1->Node28 + + + + + + + + +Node30 + + +string.h + + + + + +Node1->Node30 + + + + + + + + +Node3 + + +stdint.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax.h + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +stdio.h + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +stddef.h + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_types.h + + + + + +Node4->Node7 + + + + + + + + +Node10 + + +core/arax_accel_types.h + + + + + +Node4->Node10 + + + + + + + + +Node8 + + +sys/time.h + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +time.h + + + + + +Node7->Node9 + + + + + + + + +Node10->Node7 + + + + + + + + +Node11->Node4 + + + + + + + + +Node12 + + +utils/Kv.h + + + + + +Node11->Node12 + + + + + + + + +Node17 + + +utils/queue.h + + + + + +Node11->Node17 + + + + + + + + +Node18 + + +core/arax_accel.h + + + + + +Node11->Node18 + + + + + + + + +Node25 + + +core/arax_task.h + + + + + +Node11->Node25 + + + + + + + + +Node12->Node6 + + + + + + + + +Node13 + + +conf.h + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +spinlock.h + + + + + +Node12->Node14 + + + + + + + + +Node14->Node3 + + + + + + + + +Node15 + + +utils/arax_assert.h + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +compat.h + + + + + +Node15->Node16 + + + + + + + + +Node17->Node3 + + + + + + + + +Node17->Node6 + + + + + + + + +Node17->Node13 + + + + + + + + +Node17->Node14 + + + + + + + + +Node18->Node4 + + + + + + + + +Node19 + + +async.h + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +core/arax_vaccel.h + + + + + +Node18->Node20 + + + + + + + + +Node24 + + +core/arax_throttle.h + + + + + +Node18->Node24 + + + + + + + + +Node20->Node17 + + + + + + + + +Node20->Node18 + + + + + + + + +Node20->Node19 + + + + + + + + +Node21 + + +core/arax_object.h + + + + + +Node20->Node21 + + + + + + + + +Node21->Node14 + + + + + + + + +Node22 + + +utils/list.h + + + + + +Node21->Node22 + + + + + + + + +Node23 + + +arch/alloc.h + + + + + +Node21->Node23 + + + + + + + + +Node22->Node3 + + + + + + + + +Node22->Node6 + + + + + + + + +Node24->Node19 + + + + + + + + +Node25->Node19 + + + + + + + + +Node26 + + +core/arax_proc.h + + + + + +Node25->Node26 + + + + + + + + +Node26->Node4 + + + + + + + + +Node26->Node21 + + + + + + + + +Node27->Node16 + + + + + + + + +Node28->Node6 + + + + + + + + +Node28->Node7 + + + + + + + + +Node28->Node13 + + + + + + + + +Node29 + + +utils/bitmap.h + + + + + +Node28->Node29 + + + + + + + + +Node29->Node6 + + + + + + + + +Node29->Node14 + + + + + + + + diff --git a/a01952.html b/a01952.html new file mode 100644 index 00000000..fd9187cc --- /dev/null +++ b/a01952.html @@ -0,0 +1,666 @@ + + + + + + + +Arax: bitmap.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
bitmap.c File Reference
+
+
+
#include "bitmap.h"
+#include <string.h>
+#include <stdio.h>
+
+ + Include dependency graph for bitmap.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

utils_bitmap_sutils_bitmap_init (void *mem, size_t size_bits)
 
size_t utils_bitmap_size (utils_bitmap_s *bmp)
 
size_t utils_bitmap_used (utils_bitmap_s *bmp)
 
size_t utils_bitmap_free (utils_bitmap_s *bmp)
 
static int find_end_small (size_t bits, uint64_t *chunk)
 
static size_t find_start_small (utils_bitmap_s *bmp, size_t bits, uint64_t *chunk)
 
static size_t find_start_big (utils_bitmap_s *bmp, size_t bits, uint64_t *chunk)
 
static size_t find_start (utils_bitmap_s *bmp, size_t bits, uint64_t *chunk)
 
size_t utils_bitmap_alloc_bits (utils_bitmap_s *bmp, size_t bits)
 
void utils_bitmap_free_bits (utils_bitmap_s *bmp, size_t start, size_t bits)
 
size_t utils_bitmap_count_allocated (utils_bitmap_s *bmp)
 
void utils_bitmap_print_bits (utils_bitmap_s *bmp)
 
+

Function Documentation

+ +

◆ find_end_small()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static int find_end_small (size_t bits,
uint64_t * chunk 
)
+
+inlinestatic
+
+

Return true if bits were free at the begining of the chunk

+ +

Definition at line 61 of file bitmap.c.

+ +

References BITMAP_NOT_FOUND.

+ +

Referenced by find_start_big(), and find_start_small().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ find_start()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static size_t find_start (utils_bitmap_sbmp,
size_t bits,
uint64_t * chunk 
)
+
+inlinestatic
+
+ +

Definition at line 207 of file bitmap.c.

+ +

References BITMAP_NOT_FOUND, find_start_big(), and find_start_small().

+ +

Referenced by utils_bitmap_alloc_bits().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ find_start_big()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static size_t find_start_big (utils_bitmap_sbmp,
size_t bits,
uint64_t * chunk 
)
+
+inlinestatic
+
+ +

Definition at line 137 of file bitmap.c.

+ +

References BITMAP_NOT_FOUND, utils_bitmap::bits, utils_bitmap::end, find_end_small(), and utils_bitmap::used_bits.

+ +

Referenced by find_start().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ find_start_small()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
static size_t find_start_small (utils_bitmap_sbmp,
size_t bits,
uint64_t * chunk 
)
+
+inlinestatic
+
+ +

Definition at line 76 of file bitmap.c.

+ +

References BITMAP_NOT_FOUND, utils_bitmap::bits, utils_bitmap::end, find_end_small(), utils_bitmap::size_bits, and utils_bitmap::used_bits.

+ +

Referenced by find_start().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_bitmap_alloc_bits()

+ +
+
+ + + + + + + + + + + + + + + + + + +
size_t utils_bitmap_alloc_bits (utils_bitmap_sbmp,
size_t bits 
)
+
+

Allocate bits cotiguous bits from bmp and return index of first bit.

+

bmp An initialized utils_bitmap_s instance.

Returns
Bit index of allocation start.
+ +

Definition at line 217 of file bitmap.c.

+ +

References BITMAP_NOT_FOUND, utils_bitmap::bits, utils_bitmap::end, find_start(), utils_bitmap::free_p, utils_bitmap::lock, utils_bitmap_free(), utils_spinlock_lock, and utils_spinlock_unlock.

+ +

Referenced by arax_mmap().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_bitmap_count_allocated()

+ +
+
+ + + + + + + + +
size_t utils_bitmap_count_allocated (utils_bitmap_sbmp)
+
+

Count allocated bits of bmp.

+

Should always return the same value as utils_bitmap_used().

+
Note
This should only be used in tests, as it is very slow.
+

bmp An initialized utils_bitmap_s instance.

Returns
Bits allocated(set) in bits array of bmp
+ +

Definition at line 298 of file bitmap.c.

+ +

References utils_bitmap::bits, and utils_bitmap::size_bits.

+ +
+
+ +

◆ utils_bitmap_free()

+ +
+
+ + + + + + + + +
size_t utils_bitmap_free (utils_bitmap_sbmp)
+
+

Returns number of unused bits in bmp.

+
Note
This is utils_bitmap_size() - utils_bitmap_used()
+

bmp An initialized utils_bitmap_s instance.

Returns
Number of free bits in bmp.
+ +

Definition at line 53 of file bitmap.c.

+ +

References utils_bitmap::size_bits, and utils_bitmap::used_bits.

+ +

Referenced by utils_bitmap_alloc_bits().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_bitmap_free_bits()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void utils_bitmap_free_bits (utils_bitmap_sbmp,
size_t start,
size_t bits 
)
+
+

Free contiguous bits starting from start, from the bmp bitmap.

+

bmp An initialized utils_bitmap_s instance. start First bit index to be freed. bits Number of bits to free.

+ +

Definition at line 255 of file bitmap.c.

+ +

References arax_assert, BITMAP_NOT_FOUND, utils_bitmap::bits, utils_bitmap::lock, utils_bitmap::used_bits, utils_spinlock_lock, and utils_spinlock_unlock.

+ +

Referenced by arax_ummap().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_bitmap_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
utils_bitmap_s * utils_bitmap_init (void * mem,
size_t size_bits 
)
+
+

A bit about the bitmap:

+

It is arranged in 'chunks' of uint64_t (8 bytes).

+

Initially all bits are 0, meaning free.

+

Allocation happens in squential order for chunks. First chunk[0] will be usedm then chunk[1], etc...

+

Inside a chunk bit allocation occurs in a lsb to msb order:

+

An initialy empty chunk: 0x0000 0000 0000 0000 After a 16bit allocation: 0x0000 0000 0000 000F After an 8bit allocation: 0x0000 0000 0000 008F

+ +

Definition at line 25 of file bitmap.c.

+ +

References utils_bitmap::bits, utils_bitmap::end, utils_bitmap::free_p, utils_bitmap::lock, utils_bitmap::size_bits, utils_bitmap::used_bits, and utils_spinlock_init.

+ +

Referenced by arch_alloc_init_once().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_bitmap_print_bits()

+ +
+
+ + + + + + + + +
void utils_bitmap_print_bits (utils_bitmap_sbmp)
+
+

Print the bitmap oc bmp, in stderr.

+
Note
Use this for debuging
+

bmp An initialized utils_bitmap_s instance.

+ +

Definition at line 311 of file bitmap.c.

+ +

References utils_bitmap::bits, and utils_bitmap::size_bits.

+ +
+
+ +

◆ utils_bitmap_size()

+ +
+
+ + + + + + + + +
size_t utils_bitmap_size (utils_bitmap_sbmp)
+
+

Returns number of bits bmp holds, same as the value given in utils_bitmap_init.

+

bmp An initialized utils_bitmap_s instance.

Returns
Bits contained in bmp
+ +

Definition at line 43 of file bitmap.c.

+ +

References utils_bitmap::size_bits.

+ +
+
+ +

◆ utils_bitmap_used()

+ +
+
+ + + + + + + + +
size_t utils_bitmap_used (utils_bitmap_sbmp)
+
+

Returns number of bits currently used in bmp.

+

bmp An initialized utils_bitmap_s instance.

Returns
Number of allocated bits in bmp.
+ +

Definition at line 48 of file bitmap.c.

+ +

References utils_bitmap::used_bits.

+ +
+
+
+
+ + + + diff --git a/a01952.js b/a01952.js new file mode 100644 index 00000000..67604a2a --- /dev/null +++ b/a01952.js @@ -0,0 +1,15 @@ +var a01952 = +[ + [ "find_end_small", "a01952.html#af8a432f287b9f55f026e2d120e677998", null ], + [ "find_start", "a01952.html#ae5a4ee90ef57eb7d12191236c3a105f2", null ], + [ "find_start_big", "a01952.html#a73d0d5ad8a6878dde35fe7b827b33b05", null ], + [ "find_start_small", "a01952.html#afac539947a2f5fe419a493103a45e4be", null ], + [ "utils_bitmap_alloc_bits", "a01952.html#a306b62b1bc50d56e80ba7b7adb02f961", null ], + [ "utils_bitmap_count_allocated", "a01952.html#a9959e03fdd8848c11ffd215dd8f59d14", null ], + [ "utils_bitmap_free", "a01952.html#a84bb16b03a95a60c4748c189dafa8a54", null ], + [ "utils_bitmap_free_bits", "a01952.html#a7e0e82902c3c17ef427f5876beb5a04e", null ], + [ "utils_bitmap_init", "a01952.html#a6699a24a46fb1be57ca21abf8bc61928", null ], + [ "utils_bitmap_print_bits", "a01952.html#af2ac1952df551f3bc3f3b14a3e2ac019", null ], + [ "utils_bitmap_size", "a01952.html#aabeb9bb5dd959f679552a4b446a1194f", null ], + [ "utils_bitmap_used", "a01952.html#aa705f02ae4c1ab0b9864dda0924dade1", null ] +]; \ No newline at end of file diff --git a/a01952_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.map b/a01952_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.map new file mode 100644 index 00000000..8aff1605 --- /dev/null +++ b/a01952_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/a01952_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.md5 b/a01952_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.md5 new file mode 100644 index 00000000..3d7a5b91 --- /dev/null +++ b/a01952_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.md5 @@ -0,0 +1 @@ +62d561c206321797229d434beabccb81 \ No newline at end of file diff --git a/a01952_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.svg b/a01952_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.svg new file mode 100644 index 00000000..19251f70 --- /dev/null +++ b/a01952_a306b62b1bc50d56e80ba7b7adb02f961_cgraph.svg @@ -0,0 +1,120 @@ + + + + + + +utils_bitmap_alloc_bits + + +Node1 + + +utils_bitmap_alloc_bits + + + + + +Node2 + + +find_start + + + + + +Node1->Node2 + + + + + + + + +Node6 + + +utils_bitmap_free + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +find_start_big + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +find_start_small + + + + + +Node2->Node5 + + + + + + + + +Node4 + + +find_end_small + + + + + +Node3->Node4 + + + + + + + + +Node5->Node4 + + + + + + + + diff --git a/a01952_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.map b/a01952_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.map new file mode 100644 index 00000000..ce1c753d --- /dev/null +++ b/a01952_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01952_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.md5 b/a01952_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.md5 new file mode 100644 index 00000000..6b7effa4 --- /dev/null +++ b/a01952_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.md5 @@ -0,0 +1 @@ +b12f42881f4f49e8434de116f4acbafb \ No newline at end of file diff --git a/a01952_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.svg b/a01952_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.svg new file mode 100644 index 00000000..c760d876 --- /dev/null +++ b/a01952_a306b62b1bc50d56e80ba7b7adb02f961_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +utils_bitmap_alloc_bits + + +Node1 + + +utils_bitmap_alloc_bits + + + + + +Node2 + + +arax_mmap + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01952_a6699a24a46fb1be57ca21abf8bc61928_icgraph.map b/a01952_a6699a24a46fb1be57ca21abf8bc61928_icgraph.map new file mode 100644 index 00000000..06764ea9 --- /dev/null +++ b/a01952_a6699a24a46fb1be57ca21abf8bc61928_icgraph.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01952_a6699a24a46fb1be57ca21abf8bc61928_icgraph.md5 b/a01952_a6699a24a46fb1be57ca21abf8bc61928_icgraph.md5 new file mode 100644 index 00000000..5862ca6c --- /dev/null +++ b/a01952_a6699a24a46fb1be57ca21abf8bc61928_icgraph.md5 @@ -0,0 +1 @@ +e16f93e0049de46c67f289064fb2bca9 \ No newline at end of file diff --git a/a01952_a6699a24a46fb1be57ca21abf8bc61928_icgraph.svg b/a01952_a6699a24a46fb1be57ca21abf8bc61928_icgraph.svg new file mode 100644 index 00000000..3812792a --- /dev/null +++ b/a01952_a6699a24a46fb1be57ca21abf8bc61928_icgraph.svg @@ -0,0 +1,221 @@ + + + + + + +utils_bitmap_init + + +Node1 + + +utils_bitmap_init + + + + + +Node2 + + +arch_alloc_init_once + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +_arax_init + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_controller_init +_start + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_init + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_plot_register +_metric + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_ptr_valid + + + + + +Node6->Node8 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +_arax_assert_obj + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_data_ref + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +arax_data_ref_offset + + + + + +Node8->Node11 + + + + + + + + +Node10->Node11 + + + + + + + + diff --git a/a01952_a73d0d5ad8a6878dde35fe7b827b33b05_cgraph.map b/a01952_a73d0d5ad8a6878dde35fe7b827b33b05_cgraph.map new file mode 100644 index 00000000..83ec9c5f --- /dev/null +++ b/a01952_a73d0d5ad8a6878dde35fe7b827b33b05_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01952_a73d0d5ad8a6878dde35fe7b827b33b05_cgraph.md5 b/a01952_a73d0d5ad8a6878dde35fe7b827b33b05_cgraph.md5 new file mode 100644 index 00000000..1eb50b7c --- /dev/null +++ b/a01952_a73d0d5ad8a6878dde35fe7b827b33b05_cgraph.md5 @@ -0,0 +1 @@ +ce2b5d169e4bfd1f448ce97d99f6dedd \ No newline at end of file diff --git a/a01952_a73d0d5ad8a6878dde35fe7b827b33b05_cgraph.svg b/a01952_a73d0d5ad8a6878dde35fe7b827b33b05_cgraph.svg new file mode 100644 index 00000000..a4b7cdc3 --- /dev/null +++ b/a01952_a73d0d5ad8a6878dde35fe7b827b33b05_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +find_start_big + + +Node1 + + +find_start_big + + + + + +Node2 + + +find_end_small + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01952_a73d0d5ad8a6878dde35fe7b827b33b05_icgraph.map b/a01952_a73d0d5ad8a6878dde35fe7b827b33b05_icgraph.map new file mode 100644 index 00000000..f9665743 --- /dev/null +++ b/a01952_a73d0d5ad8a6878dde35fe7b827b33b05_icgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a01952_a73d0d5ad8a6878dde35fe7b827b33b05_icgraph.md5 b/a01952_a73d0d5ad8a6878dde35fe7b827b33b05_icgraph.md5 new file mode 100644 index 00000000..2f30e5c9 --- /dev/null +++ b/a01952_a73d0d5ad8a6878dde35fe7b827b33b05_icgraph.md5 @@ -0,0 +1 @@ +b888c19dcbdfbf93823ea42658b9e6ee \ No newline at end of file diff --git a/a01952_a73d0d5ad8a6878dde35fe7b827b33b05_icgraph.svg b/a01952_a73d0d5ad8a6878dde35fe7b827b33b05_icgraph.svg new file mode 100644 index 00000000..8c63a20a --- /dev/null +++ b/a01952_a73d0d5ad8a6878dde35fe7b827b33b05_icgraph.svg @@ -0,0 +1,75 @@ + + + + + + +find_start_big + + +Node1 + + +find_start_big + + + + + +Node2 + + +find_start + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +utils_bitmap_alloc_bits + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_mmap + + + + + +Node3->Node4 + + + + + + + + diff --git a/a01952_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.map b/a01952_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.map new file mode 100644 index 00000000..f6794ab2 --- /dev/null +++ b/a01952_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01952_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.md5 b/a01952_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.md5 new file mode 100644 index 00000000..7adf6ead --- /dev/null +++ b/a01952_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.md5 @@ -0,0 +1 @@ +cf935d8eb110d5f31e62026ab46a10a6 \ No newline at end of file diff --git a/a01952_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.svg b/a01952_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.svg new file mode 100644 index 00000000..ca1a4ef9 --- /dev/null +++ b/a01952_a7e0e82902c3c17ef427f5876beb5a04e_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +utils_bitmap_free_bits + + +Node1 + + +utils_bitmap_free_bits + + + + + +Node2 + + +arax_ummap + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01952_a84bb16b03a95a60c4748c189dafa8a54_icgraph.map b/a01952_a84bb16b03a95a60c4748c189dafa8a54_icgraph.map new file mode 100644 index 00000000..db195728 --- /dev/null +++ b/a01952_a84bb16b03a95a60c4748c189dafa8a54_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01952_a84bb16b03a95a60c4748c189dafa8a54_icgraph.md5 b/a01952_a84bb16b03a95a60c4748c189dafa8a54_icgraph.md5 new file mode 100644 index 00000000..9e1b17f6 --- /dev/null +++ b/a01952_a84bb16b03a95a60c4748c189dafa8a54_icgraph.md5 @@ -0,0 +1 @@ +d1ae72c0b4a5d9aab570f56a4eb86db1 \ No newline at end of file diff --git a/a01952_a84bb16b03a95a60c4748c189dafa8a54_icgraph.svg b/a01952_a84bb16b03a95a60c4748c189dafa8a54_icgraph.svg new file mode 100644 index 00000000..b17bf6d5 --- /dev/null +++ b/a01952_a84bb16b03a95a60c4748c189dafa8a54_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +utils_bitmap_free + + +Node1 + + +utils_bitmap_free + + + + + +Node2 + + +utils_bitmap_alloc_bits + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_mmap + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01952_ae5a4ee90ef57eb7d12191236c3a105f2_cgraph.map b/a01952_ae5a4ee90ef57eb7d12191236c3a105f2_cgraph.map new file mode 100644 index 00000000..663c12f3 --- /dev/null +++ b/a01952_ae5a4ee90ef57eb7d12191236c3a105f2_cgraph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/a01952_ae5a4ee90ef57eb7d12191236c3a105f2_cgraph.md5 b/a01952_ae5a4ee90ef57eb7d12191236c3a105f2_cgraph.md5 new file mode 100644 index 00000000..9bb5688c --- /dev/null +++ b/a01952_ae5a4ee90ef57eb7d12191236c3a105f2_cgraph.md5 @@ -0,0 +1 @@ +acc20633ddfc42b76c5e26e5549d9ce2 \ No newline at end of file diff --git a/a01952_ae5a4ee90ef57eb7d12191236c3a105f2_cgraph.svg b/a01952_ae5a4ee90ef57eb7d12191236c3a105f2_cgraph.svg new file mode 100644 index 00000000..e4e0424a --- /dev/null +++ b/a01952_ae5a4ee90ef57eb7d12191236c3a105f2_cgraph.svg @@ -0,0 +1,84 @@ + + + + + + +find_start + + +Node1 + + +find_start + + + + + +Node2 + + +find_start_big + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +find_start_small + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +find_end_small + + + + + +Node2->Node3 + + + + + + + + +Node4->Node3 + + + + + + + + diff --git a/a01952_ae5a4ee90ef57eb7d12191236c3a105f2_icgraph.map b/a01952_ae5a4ee90ef57eb7d12191236c3a105f2_icgraph.map new file mode 100644 index 00000000..de7e0a22 --- /dev/null +++ b/a01952_ae5a4ee90ef57eb7d12191236c3a105f2_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01952_ae5a4ee90ef57eb7d12191236c3a105f2_icgraph.md5 b/a01952_ae5a4ee90ef57eb7d12191236c3a105f2_icgraph.md5 new file mode 100644 index 00000000..dfe1f8ff --- /dev/null +++ b/a01952_ae5a4ee90ef57eb7d12191236c3a105f2_icgraph.md5 @@ -0,0 +1 @@ +e0f347b60f110605b3930e20460c913c \ No newline at end of file diff --git a/a01952_ae5a4ee90ef57eb7d12191236c3a105f2_icgraph.svg b/a01952_ae5a4ee90ef57eb7d12191236c3a105f2_icgraph.svg new file mode 100644 index 00000000..27c9ae40 --- /dev/null +++ b/a01952_ae5a4ee90ef57eb7d12191236c3a105f2_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +find_start + + +Node1 + + +find_start + + + + + +Node2 + + +utils_bitmap_alloc_bits + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_mmap + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01952_af8a432f287b9f55f026e2d120e677998_icgraph.map b/a01952_af8a432f287b9f55f026e2d120e677998_icgraph.map new file mode 100644 index 00000000..dc88f564 --- /dev/null +++ b/a01952_af8a432f287b9f55f026e2d120e677998_icgraph.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/a01952_af8a432f287b9f55f026e2d120e677998_icgraph.md5 b/a01952_af8a432f287b9f55f026e2d120e677998_icgraph.md5 new file mode 100644 index 00000000..b9fc595e --- /dev/null +++ b/a01952_af8a432f287b9f55f026e2d120e677998_icgraph.md5 @@ -0,0 +1 @@ +1fa2784123d9b031ad25b46484fe4d74 \ No newline at end of file diff --git a/a01952_af8a432f287b9f55f026e2d120e677998_icgraph.svg b/a01952_af8a432f287b9f55f026e2d120e677998_icgraph.svg new file mode 100644 index 00000000..3fb31c54 --- /dev/null +++ b/a01952_af8a432f287b9f55f026e2d120e677998_icgraph.svg @@ -0,0 +1,120 @@ + + + + + + +find_end_small + + +Node1 + + +find_end_small + + + + + +Node2 + + +find_start_big + + + + + +Node1->Node2 + + + + + + + + +Node6 + + +find_start_small + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +find_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +utils_bitmap_alloc_bits + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_mmap + + + + + +Node4->Node5 + + + + + + + + +Node6->Node3 + + + + + + + + diff --git a/a01952_afac539947a2f5fe419a493103a45e4be_cgraph.map b/a01952_afac539947a2f5fe419a493103a45e4be_cgraph.map new file mode 100644 index 00000000..7b5a7bb5 --- /dev/null +++ b/a01952_afac539947a2f5fe419a493103a45e4be_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01952_afac539947a2f5fe419a493103a45e4be_cgraph.md5 b/a01952_afac539947a2f5fe419a493103a45e4be_cgraph.md5 new file mode 100644 index 00000000..79db2ad9 --- /dev/null +++ b/a01952_afac539947a2f5fe419a493103a45e4be_cgraph.md5 @@ -0,0 +1 @@ +99fb917266376533b0f5ac28cf28ffcb \ No newline at end of file diff --git a/a01952_afac539947a2f5fe419a493103a45e4be_cgraph.svg b/a01952_afac539947a2f5fe419a493103a45e4be_cgraph.svg new file mode 100644 index 00000000..c9d560aa --- /dev/null +++ b/a01952_afac539947a2f5fe419a493103a45e4be_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +find_start_small + + +Node1 + + +find_start_small + + + + + +Node2 + + +find_end_small + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01952_afac539947a2f5fe419a493103a45e4be_icgraph.map b/a01952_afac539947a2f5fe419a493103a45e4be_icgraph.map new file mode 100644 index 00000000..be1f096d --- /dev/null +++ b/a01952_afac539947a2f5fe419a493103a45e4be_icgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a01952_afac539947a2f5fe419a493103a45e4be_icgraph.md5 b/a01952_afac539947a2f5fe419a493103a45e4be_icgraph.md5 new file mode 100644 index 00000000..38657649 --- /dev/null +++ b/a01952_afac539947a2f5fe419a493103a45e4be_icgraph.md5 @@ -0,0 +1 @@ +92aeb02a3399b419474d068771b7e622 \ No newline at end of file diff --git a/a01952_afac539947a2f5fe419a493103a45e4be_icgraph.svg b/a01952_afac539947a2f5fe419a493103a45e4be_icgraph.svg new file mode 100644 index 00000000..8dc61a4c --- /dev/null +++ b/a01952_afac539947a2f5fe419a493103a45e4be_icgraph.svg @@ -0,0 +1,75 @@ + + + + + + +find_start_small + + +Node1 + + +find_start_small + + + + + +Node2 + + +find_start + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +utils_bitmap_alloc_bits + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_mmap + + + + + +Node3->Node4 + + + + + + + + diff --git a/a01952_source.html b/a01952_source.html new file mode 100644 index 00000000..8888c612 --- /dev/null +++ b/a01952_source.html @@ -0,0 +1,437 @@ + + + + + + + +Arax: bitmap.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
bitmap.c
+
+
+Go to the documentation of this file.
1#include "bitmap.h"
+
2#include <string.h>
+
3#include <stdio.h>
+
4
+
25utils_bitmap_s* utils_bitmap_init(void *mem, size_t size_bits)
+
26{
+
27 utils_bitmap_s *bmp = mem;
+
28
+
29 bmp->size_bits = size_bits;
+
30
+
31 size_bits += 63;
+
32 size_bits /= 64; // to uint64_t
+
33
+
34 bmp->free_p = bmp->bits;
+
35 bmp->end = bmp->free_p + size_bits;
+
36 bmp->used_bits = 0;
+ +
38 memset(bmp->bits, 0, size_bits * 8);
+
39
+
40 return bmp;
+
41}
+
42
+ +
44{
+
45 return bmp->size_bits;
+
46}
+
47
+ +
49{
+
50 return bmp->used_bits;
+
51}
+
52
+ +
54{
+
55 return bmp->size_bits - bmp->used_bits;
+
56}
+
57
+
61static inline int find_end_small(size_t bits, uint64_t *chunk)
+
62{
+
63 uint64_t mask = BITMAP_NOT_FOUND;
+
64
+
65 if (bits != 64)
+
66 mask = (((uint64_t) 1) << bits) - 1;
+
67
+
68 if ( (mask & (*chunk)) == 0) { // Yes free
+
69 *chunk |= mask;
+
70 return 1;
+
71 } else { // Nope, already allocated
+
72 return 0;
+
73 }
+
74}
+
75
+
76static inline size_t find_start_small(utils_bitmap_s *bmp, size_t bits, uint64_t *chunk)
+
77{
+
78 uint64_t usable_bits = *chunk;
+
79
+
80 if (chunk + 1 == bmp->end) { // Final chunk is partially usable
+
81 int shift = bmp->size_bits % 64;
+
82 if (shift)
+
83 usable_bits |= ((uint64_t) -1) << (shift);
+
84 }
+
85
+
86 if (!(usable_bits) ) { // Completely empty
+
87 if (bits == 64)
+
88 *chunk = BITMAP_NOT_FOUND; // Full allocation
+
89 else
+
90 *chunk = (((uint64_t) 1) << bits) - 1; // Partial allocation
+
91 bmp->used_bits += bits;
+
92 return ( ((size_t) chunk) - ((size_t) bmp->bits) ) * 8;
+
93 }
+
94
+
95 if (*chunk == BITMAP_NOT_FOUND) // Completely full
+
96 return BITMAP_NOT_FOUND;
+
97
+
98 int free_bits = 64 - __builtin_popcountl(usable_bits);
+
99
+
100 if (free_bits >= bits) {
+
101 // Not sure if we have it contigous
+
102 uint64_t mask = (((uint64_t) 1) << bits) - 1;
+
103 int shift;
+
104 for (shift = 0; shift <= 64 - bits; shift++) {
+
105 if ( (mask & (usable_bits) ) == 0)
+
106 goto FOUND; // Found a good gap
+
107 mask <<= 1;
+
108 }
+
109
+
110 return BITMAP_NOT_FOUND;
+
111
+
112FOUND:
+
113
+
114 *chunk |= mask;
+
115 bmp->used_bits += bits;
+
116
+
117 return ( ((size_t) chunk) - ((size_t) bmp->bits) ) * 8 + shift;
+
118 } else { // Not enough bits in this chunk
+
119 int free_end = (*chunk) ? __builtin_clzl(*chunk) : 64;
+
120 if (free_end == 0) // No free bits at end of chunk
+
121 return BITMAP_NOT_FOUND;
+
122
+
123 if (chunk + 1 == bmp->end) // Was on the last chunk
+
124 return BITMAP_NOT_FOUND;
+
125
+
126 int remainder = bits - free_end;
+
127
+
128 if (find_end_small(remainder, chunk + 1)) {
+
129 *chunk |= ((uint64_t) -1) << (64 - free_end);
+
130 bmp->used_bits += bits;
+
131 return ( ((size_t) chunk) - ((size_t) bmp->bits) ) * 8 + (64 - free_end);
+
132 }
+
133 }
+
134 return BITMAP_NOT_FOUND;
+
135} /* find_start_small */
+
136
+
137static inline size_t find_start_big(utils_bitmap_s *bmp, size_t bits, uint64_t *chunk)
+
138{
+
139 if (*chunk == BITMAP_NOT_FOUND)
+
140 return BITMAP_NOT_FOUND; // Already full
+
141
+
142 uint64_t first_mask = 0;
+
143 size_t remainder;
+
144 int free_end;
+
145
+
146 if (*chunk == 0) {
+
147 first_mask = BITMAP_NOT_FOUND; // Allocate the whole chunk
+
148 remainder = bits - 64;
+
149 free_end = 0;
+
150 } else {
+
151 free_end = __builtin_clzl(*chunk);
+
152 first_mask = (free_end) ? (((uint64_t) -1) << (64 - free_end)) : (0);
+
153 remainder = bits - free_end;
+
154 free_end = 64 - free_end;
+
155 }
+
156
+
157 if (!first_mask)
+
158 return BITMAP_NOT_FOUND; // No free space at end of chunk
+
159
+
160 if (chunk + 1 == bmp->end)
+
161 return BITMAP_NOT_FOUND; // No next chunk to allocate the remainder
+
162
+
163 if (remainder < 65) { // Remainder fits in one chunk
+
164 if (!find_end_small(remainder, chunk + 1))
+
165 return BITMAP_NOT_FOUND; // No free space at start of next chunk
+
166
+
167 *chunk |= first_mask;
+
168 bmp->used_bits += bits;
+
169 return ( ((size_t) chunk) - ((size_t) bmp->bits) ) * 8 + free_end;
+
170 } else {
+
171 size_t span = remainder / 64;
+
172 size_t last_remainder = remainder & 63;
+
173 uint64_t last_mask = (((uint64_t) (!!last_remainder)) << (last_remainder)) - 1;
+
174 (void) span;
+
175 (void) last_remainder;
+
176
+
177 if (chunk + span + (!!last_remainder) >= bmp->end)
+
178 return BITMAP_NOT_FOUND; // Not enough chunks
+
179
+
180 uint64_t *citr = chunk + 1;
+
181 int c = 0;
+
182 for (; c < span; c++) {
+
183 if (*citr)
+
184 return BITMAP_NOT_FOUND;
+
185
+
186 citr++;
+
187 }
+
188
+
189 if (last_remainder) {
+
190 if ( (*citr) & last_mask)
+
191 return BITMAP_NOT_FOUND;
+
192
+
193 *citr |= last_mask;
+
194 }
+
195
+
196 memset(chunk + 1, 0xFF, sizeof(uint64_t) * span);
+
197
+
198 *chunk |= first_mask;
+
199
+
200 bmp->used_bits += bits;
+
201
+
202 return ( ((size_t) chunk) - ((size_t) bmp->bits) ) * 8 + free_end;
+
203 }
+
204 return BITMAP_NOT_FOUND;
+
205} /* find_start_big */
+
206
+
207static inline size_t find_start(utils_bitmap_s *bmp, size_t bits, uint64_t *chunk)
+
208{
+
209 if (bits < 65)
+
210 return find_start_small(bmp, bits, chunk);
+
211 else
+
212 return find_start_big(bmp, bits, chunk);
+
213
+
214 return BITMAP_NOT_FOUND;
+
215}
+
216
+ +
218{
+
219 uint64_t *chunk;
+
220 size_t found = BITMAP_NOT_FOUND;
+
221
+
222 utils_spinlock_lock(&(bmp->lock));
+
223
+
224 if (bmp->free_p == bmp->end) {
+
225 bmp->free_p = bmp->bits;
+
226 }
+
227
+
228 if (utils_bitmap_free(bmp) < bits)
+
229 goto QUIT;
+
230
+
231 for (chunk = bmp->free_p; chunk < bmp->end; chunk++) {
+
232 found = find_start(bmp, bits, chunk);
+
233 if (found != BITMAP_NOT_FOUND)
+
234 goto FOUND;
+
235 }
+
236
+
237 for (chunk = bmp->bits; chunk < bmp->free_p; chunk++) {
+
238 found = find_start(bmp, bits, chunk);
+
239 if (found != BITMAP_NOT_FOUND)
+
240 goto FOUND;
+
241 }
+
242
+
243 if (found != BITMAP_NOT_FOUND) {
+
244FOUND:
+
245
+
246 bmp->free_p = bmp->bits + found / 64;
+
247 } else {
+
248 fprintf(stderr, "%s(%lu) failed (free: %lu)!\n", __func__, bits, utils_bitmap_free(bmp));
+
249 }
+
250QUIT:
+ +
252 return found;
+
253} /* utils_bitmap_alloc_bits */
+
254
+
255void utils_bitmap_free_bits(utils_bitmap_s *bmp, size_t start, size_t bits)
+
256{
+
257 utils_spinlock_lock(&(bmp->lock));
+
258 if (bits == 1) {
+
259 bmp->bits[start / 64] &= ~(((uint64_t) 1) << (start & 63));
+
260 bmp->used_bits -= 1;
+
261 } else {
+
262 size_t end = start + bits;
+
263 size_t start_chunk = start / 64;
+
264 size_t end_chunk = (end - 1) / 64;
+
265 start = start & 63;
+
266 end = end & 63;
+
267
+
268 if (start_chunk == end_chunk) { // Single chunk
+
269 size_t mask = BITMAP_NOT_FOUND;
+
270 if (bits != 64)
+
271 mask = ((((uint64_t) 1) << bits) - 1) << (start & 63);
+
272
+
273 arax_assert( (bmp->bits[start_chunk] & mask) == mask); // Dont try to free non allocated stuff
+
274
+
275 bmp->bits[start_chunk] &= ~mask;
+
276
+
277 bmp->used_bits -= bits;
+
278 } else {
+
279 size_t span = (end_chunk - start_chunk) - 1;
+
280 size_t start_mask = ((uint64_t) -1) << (start);
+
281 size_t end_mask = (end) ? (((uint64_t) -1) >> ((64 - end))) : (-1);
+
282
+
283 arax_assert( (bmp->bits[start_chunk] & start_mask) == start_mask);
+
284 arax_assert( (bmp->bits[end_chunk] & end_mask) == end_mask);
+
285
+
286 bmp->bits[start_chunk] &= ~start_mask;
+
287 bmp->bits[end_chunk] &= ~end_mask;
+
288
+
289 if (span)
+
290 memset(bmp->bits + start_chunk + 1, 0, sizeof(uint64_t) * span);
+
291
+
292 bmp->used_bits -= bits;
+
293 }
+
294 }
+ +
296} /* utils_bitmap_free_bits */
+
297
+ +
299{
+
300 size_t b = 0;
+
301 size_t allocated = 0;
+
302
+
303 for (b = 0; b < (bmp->size_bits + 63) / 64; b++)
+
304 if (bmp->bits[b])
+
305 allocated += __builtin_popcountl(bmp->bits[b]);
+
306 return allocated;
+
307}
+
308
+
309// GCOV_EXCL_START
+
310
+ +
312{
+
313 int b;
+
314 int s;
+
315
+
316 for (b = 0; b < (bmp->size_bits + 63) / 64; b++) {
+
317 uint64_t cchunk = bmp->bits[b];
+
318 for (s = 0; s < 64; s++) {
+
319 fprintf(stderr, "%d", (int) (cchunk & 1));
+
320 cchunk >>= 1;
+
321 }
+
322 fprintf(stderr, " ");
+
323 }
+
324 fprintf(stderr, "\n");
+
325}
+
326
+
327// GCOV_EXCL_STOP
+
#define arax_assert(EXPR)
Definition arax_assert.h:7
+ +
#define BITMAP_NOT_FOUND
Definition bitmap.h:18
+
size_t utils_bitmap_alloc_bits(utils_bitmap_s *bmp, size_t bits)
Definition bitmap.c:217
+
utils_bitmap_s * utils_bitmap_init(void *mem, size_t size_bits)
Definition bitmap.c:25
+
static size_t find_start_big(utils_bitmap_s *bmp, size_t bits, uint64_t *chunk)
Definition bitmap.c:137
+
void utils_bitmap_free_bits(utils_bitmap_s *bmp, size_t start, size_t bits)
Definition bitmap.c:255
+
size_t utils_bitmap_free(utils_bitmap_s *bmp)
Definition bitmap.c:53
+
size_t utils_bitmap_count_allocated(utils_bitmap_s *bmp)
Definition bitmap.c:298
+
size_t utils_bitmap_used(utils_bitmap_s *bmp)
Definition bitmap.c:48
+
size_t utils_bitmap_size(utils_bitmap_s *bmp)
Definition bitmap.c:43
+
static size_t find_start(utils_bitmap_s *bmp, size_t bits, uint64_t *chunk)
Definition bitmap.c:207
+
void utils_bitmap_print_bits(utils_bitmap_s *bmp)
Definition bitmap.c:311
+
static int find_end_small(size_t bits, uint64_t *chunk)
Definition bitmap.c:61
+
static size_t find_start_small(utils_bitmap_s *bmp, size_t bits, uint64_t *chunk)
Definition bitmap.c:76
+
#define utils_spinlock_lock(V)
Definition queue.c:35
+
#define utils_spinlock_init(V)
Definition queue.c:34
+
#define utils_spinlock_unlock(V)
Definition queue.c:36
+ +
uint64_t * end
Definition bitmap.h:10
+
utils_spinlock lock
Definition bitmap.h:8
+
size_t used_bits
Definition bitmap.h:11
+
size_t size_bits
Definition bitmap.h:12
+
uint64_t * free_p
Definition bitmap.h:9
+
uint64_t bits[]
Definition bitmap.h:13
+
+
+ + + + diff --git a/a01953.map b/a01953.map new file mode 100644 index 00000000..407f84be --- /dev/null +++ b/a01953.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/a01953.md5 b/a01953.md5 new file mode 100644 index 00000000..de85f382 --- /dev/null +++ b/a01953.md5 @@ -0,0 +1 @@ +3de6b6594379acdd5322d86eee100fbb \ No newline at end of file diff --git a/a01953.svg b/a01953.svg new file mode 100644 index 00000000..634497f2 --- /dev/null +++ b/a01953.svg @@ -0,0 +1,165 @@ + + + + + + +bitmap.c + + +Node1 + + +bitmap.c + + + + + +Node2 + + +bitmap.h + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +string.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +stdio.h + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +spinlock.h + + + + + +Node2->Node3 + + + + + + + + +Node7 + + +stddef.h + + + + + +Node2->Node7 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +utils/arax_assert.h + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +compat.h + + + + + +Node5->Node6 + + + + + + + + diff --git a/a01955.html b/a01955.html new file mode 100644 index 00000000..9bba761b --- /dev/null +++ b/a01955.html @@ -0,0 +1,907 @@ + + + + + + + +Arax: config.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
config.c File Reference
+
+
+
#include "config.h"
+#include "system.h"
+#include <stdio.h>
+#include <stdlib.h>
+#include <string.h>
+#include <unistd.h>
+#include <errno.h>
+#include <limits.h>
+#include <stdint.h>
+#include "utils/arax_assert.h"
+#include <pwd.h>
+
+ + Include dependency graph for config.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

const char * conf_get (const char *path)
 
void conf_set (const char *path, const char *conf_str)
 
void utils_config_write_str (char *path, const char *key, const char *value)
 
void utils_config_write_long (char *path, const char *key, long value)
 
char * utils_config_alloc_path (const char *path)
 
void utils_config_free_path (char *path)
 
int _utils_config_get_str (char *path, const char *key, char *value, size_t value_size)
 
int utils_config_get_str (char *path, const char *key, char *value, size_t value_size, const char *def_val)
 
int utils_config_get_bool (char *path, const char *key, int *value, int def_val)
 
int utils_config_get_int (char *path, const char *key, int *value, int def_val)
 
int utils_config_get_long (char *path, const char *key, long *value, long def_val)
 
int utils_config_get_size (char *path, const char *key, size_t *value, size_t def_val)
 
enum utils_config_source utils_config_get_source ()
 
+

Function Documentation

+ +

◆ _utils_config_get_str()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int _utils_config_get_str (char * path,
const char * key,
char * value,
size_t value_size 
)
+
+ +

Definition at line 133 of file config.c.

+ +

References conf_get().

+ +

Referenced by utils_config_get_long(), and utils_config_get_str().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ conf_get()

+ +
+
+ + + + + + + + +
const char * conf_get (const char * path)
+
+ +

Definition at line 13 of file config.c.

+ +

References arax_assert, CONFIG_ENV, CONFIG_FILE, system_env_var(), system_file_size(), and utils_config_get_source().

+ +

Referenced by _utils_config_get_str(), and utils_config_write_str().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ conf_set()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void conf_set (const char * path,
const char * conf_str 
)
+
+ +

Definition at line 49 of file config.c.

+ +

References arax_assert, CONFIG_ENV, CONFIG_FILE, and utils_config_get_source().

+ +

Referenced by utils_config_write_str().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_config_alloc_path()

+ +
+
+ + + + + + + + +
char * utils_config_alloc_path (const char * path)
+
+

Create configuration based on path

+

NOTE: free returned value with utils_config_free_path().

+

path is scanned for the following characters and replaced: ~:Gets replaced with users home path (e.g. /home/user)

+
Parameters
+ + +
path
+
+
+
Returns
NULL on failure
+ +

Definition at line 94 of file config.c.

+ +

References arax_assert, and system_home_path().

+ +

Referenced by _arax_init(), arax_clean(), async_meta_init_always(), and async_meta_init_once().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_config_free_path()

+ +
+
+ + + + + + + + +
void utils_config_free_path (char * path)
+
+

Free path allocated with utils_config_alloc_path.

+
Parameters
+ + +
pathReturn value of a utils_config_alloc_path invocation.
+
+
+ +

Definition at line 128 of file config.c.

+ +

Referenced by arax_clean(), arax_exit(), async_meta_init_always(), and async_meta_init_once().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_config_get_bool()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int utils_config_get_bool (char * path,
const char * key,
int * value,
int def_val 
)
+
+

Get value corresponding to key as a boolean (0,1)

+

Will search the path file for a key/value pair matching the key. If the value is not found 0 will be returned. If during the search any error occurs, 0 will be returned and a message will be printed on stderr. If the value is found and the value equals to 1 then *value will be assigned 1, otherwise *value will be set to 0.

Note
This is a very slow function, use it only during initialization.
+
Parameters
+ + + + + +
pathConfig path.
keyc style string, with the key of interest.
valuepointer to allocated array of size value_size.
def_valDefault value in case the key is not found.
+
+
+
Returns
Zero on failure.
+ +

Definition at line 178 of file config.c.

+ +

References utils_config_get_int().

+ +

Referenced by _arax_init(), and async_meta_init_once().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_config_get_int()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int utils_config_get_int (char * path,
const char * key,
int * value,
int def_val 
)
+
+

Get value corresponding to key as an integer

+

Will search the path file for a key/value pair matching the key. If during the search any error occurs, 0 will be returned and a message will be printed on stderr. If the value is found it will be converted to an integer using atoi() and the result will be assigned to val. If no value is found val will be assigned def_val and 0 will be returned.

Note
This is a very slow function, use it only during initialization.
+
Parameters
+ + + + + +
pathConfig path.
keyc style string string, with the key of interest.
valuepointer to allocated array of size value_size.
def_valDefault value in case the key is not found.
+
+
+
Returns
Zero on failure.
+ +

Definition at line 190 of file config.c.

+ +

References utils_config_get_long().

+ +

Referenced by utils_config_get_bool().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_config_get_long()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int utils_config_get_long (char * path,
const char * key,
long * value,
long def_val 
)
+
+

Get value corresponding to key as a long

+

Will search the path file for a key/value pair matching the key. If during the search any error occurs, 0 will be returned and a message will be printed on stderr. If the value is found it will be converted to a long using strtol() and the result will be assigned to val. If no value is found val will be assigned def_val and 0 will be returned.

Note
This is a very slow function, use it only during initialization.
+
Parameters
+ + + + + +
pathConfig path.
keyc style string string, with the key of interest.
valuepointer to allocated array of size value_size.
def_valDefault value in case the key is not found.
+
+
+
Returns
Zero on failure.
+ +

Definition at line 206 of file config.c.

+ +

References _utils_config_get_str(), and utils_config_write_long().

+ +

Referenced by utils_config_get_int(), and utils_config_get_size().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_config_get_size()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int utils_config_get_size (char * path,
const char * key,
size_t * value,
size_t def_val 
)
+
+

Get value corresponding to key as a size_t

+

Value is retrieved with utils_config_get_long(). If acquired value value is in [SIZE_MAX,0] it is assigned to val and 1 is returned.

+

Otherwise 0 is returned and val is assigned def_val.

+
Note
This function only works for numbers <= 2^63.
+
Parameters
+ + + + + +
pathConfig path.
keyc style string string, with the key of interest.
valuepointer to allocated array of size value_size.
def_valDefault value in case value was not found/appropriate.
+
+
+
Returns
Zero on failure.
+ +

Definition at line 226 of file config.c.

+ +

References utils_config_get_long().

+ +

Referenced by _arax_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_config_get_source()

+ +
+
+ + + + + + + +
enum utils_config_source utils_config_get_source ()
+
+

Return the current configuration source.

+
See also
utils_config_source
+ +

Definition at line 242 of file config.c.

+ +

References CONFIG_ENV, CONFIG_FILE, and system_env_var().

+ +

Referenced by _arax_init(), conf_get(), and conf_set().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_config_get_str()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int utils_config_get_str (char * path,
const char * key,
char * value,
size_t value_size,
const char * def_val 
)
+
+

Get value corresponding to key as a string

+

Will search the path file for a key/value pair matching the key. If the value is not found 0 will be returned. If during the search any error occurs, 0 will be returned and a message will be printed on stderr.

Note
This is a very slow function, use it only during initialization.
+
Parameters
+ + + + + + +
pathConfig path, returned by utils_config_alloc_path.
keyc style string string, with the key of interest.
valuepointer to allocated array of size value_size.
value_sizeSize of value array, in bytes.
def_valDefault value in case the key is not found.
+
+
+
Returns
Zero on failure.
+ +

Definition at line 164 of file config.c.

+ +

References _utils_config_get_str(), and utils_config_write_str().

+ +

Referenced by _arax_init(), arax_clean(), and async_meta_init_always().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_config_write_long()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void utils_config_write_long (char * path,
const char * key,
long value 
)
+
+ +

Definition at line 85 of file config.c.

+ +

References utils_config_write_str().

+ +

Referenced by utils_config_get_long().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_config_write_str()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void utils_config_write_str (char * path,
const char * key,
const char * value 
)
+
+ +

Definition at line 71 of file config.c.

+ +

References conf_get(), and conf_set().

+ +

Referenced by utils_config_get_str(), and utils_config_write_long().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01955.js b/a01955.js new file mode 100644 index 00000000..8bc94729 --- /dev/null +++ b/a01955.js @@ -0,0 +1,16 @@ +var a01955 = +[ + [ "_utils_config_get_str", "a01955.html#a0738274ac3fd171eda6bfb42492bc0d7", null ], + [ "conf_get", "a01955.html#a8b687fb4c464903e23504eea3ddc3873", null ], + [ "conf_set", "a01955.html#ab87e9691e65d65348749f8dc70f24602", null ], + [ "utils_config_alloc_path", "a01955.html#aff9af0356940583dfe3045e693cc8a45", null ], + [ "utils_config_free_path", "a01955.html#a84f3886cdcb91a28bf13b07aae8b2285", null ], + [ "utils_config_get_bool", "a01955.html#aa7aa94ad075bf97a566f01f899fcd859", null ], + [ "utils_config_get_int", "a01955.html#a336fa8eefc3d744aa7248d6786cfee03", null ], + [ "utils_config_get_long", "a01955.html#a1a28ba7c7791236d03b1fa9f81aa6a71", null ], + [ "utils_config_get_size", "a01955.html#a4a525d89ade920512dc65409bc8e85d8", null ], + [ "utils_config_get_source", "a01955.html#a17713c8e9b90065e23b0ec1a225f79ab", null ], + [ "utils_config_get_str", "a01955.html#a1e8deff7c038efae14d1cc98e4ab109f", null ], + [ "utils_config_write_long", "a01955.html#a88091e179416d4beec1b5681cfb68742", null ], + [ "utils_config_write_str", "a01955.html#a4b9cd8f5d0c205ac6c1fd30f77cbf539", null ] +]; \ No newline at end of file diff --git a/a01955_a0738274ac3fd171eda6bfb42492bc0d7_cgraph.map b/a01955_a0738274ac3fd171eda6bfb42492bc0d7_cgraph.map new file mode 100644 index 00000000..229ecb81 --- /dev/null +++ b/a01955_a0738274ac3fd171eda6bfb42492bc0d7_cgraph.map @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/a01955_a0738274ac3fd171eda6bfb42492bc0d7_cgraph.md5 b/a01955_a0738274ac3fd171eda6bfb42492bc0d7_cgraph.md5 new file mode 100644 index 00000000..9bc9671e --- /dev/null +++ b/a01955_a0738274ac3fd171eda6bfb42492bc0d7_cgraph.md5 @@ -0,0 +1 @@ +ae205ff4c78c1c54ee4476aa6487bd61 \ No newline at end of file diff --git a/a01955_a0738274ac3fd171eda6bfb42492bc0d7_cgraph.svg b/a01955_a0738274ac3fd171eda6bfb42492bc0d7_cgraph.svg new file mode 100644 index 00000000..32584ae1 --- /dev/null +++ b/a01955_a0738274ac3fd171eda6bfb42492bc0d7_cgraph.svg @@ -0,0 +1,102 @@ + + + + + + +_utils_config_get_str + + +Node1 + + +_utils_config_get_str + + + + + +Node2 + + +conf_get + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +system_env_var + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +system_file_size + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +utils_config_get_source + + + + + +Node2->Node5 + + + + + + + + +Node5->Node3 + + + + + + + + diff --git a/a01955_a0738274ac3fd171eda6bfb42492bc0d7_icgraph.map b/a01955_a0738274ac3fd171eda6bfb42492bc0d7_icgraph.map new file mode 100644 index 00000000..9c04efa6 --- /dev/null +++ b/a01955_a0738274ac3fd171eda6bfb42492bc0d7_icgraph.map @@ -0,0 +1,45 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01955_a0738274ac3fd171eda6bfb42492bc0d7_icgraph.md5 b/a01955_a0738274ac3fd171eda6bfb42492bc0d7_icgraph.md5 new file mode 100644 index 00000000..96c5d320 --- /dev/null +++ b/a01955_a0738274ac3fd171eda6bfb42492bc0d7_icgraph.md5 @@ -0,0 +1 @@ +d5c1b133bbbdf6339dd017ebfac39398 \ No newline at end of file diff --git a/a01955_a0738274ac3fd171eda6bfb42492bc0d7_icgraph.svg b/a01955_a0738274ac3fd171eda6bfb42492bc0d7_icgraph.svg new file mode 100644 index 00000000..a9b2dcfa --- /dev/null +++ b/a01955_a0738274ac3fd171eda6bfb42492bc0d7_icgraph.svg @@ -0,0 +1,401 @@ + + + + + + +_utils_config_get_str + + +Node1 + + +_utils_config_get_str + + + + + +Node2 + + +utils_config_get_long + + + + + +Node1->Node2 + + + + + + + + +Node16 + + +utils_config_get_str + + + + + +Node1->Node16 + + + + + + + + +Node3 + + +utils_config_get_int + + + + + +Node2->Node3 + + + + + + + + +Node15 + + +utils_config_get_size + + + + + +Node2->Node15 + + + + + + + + +Node4 + + +utils_config_get_bool + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +_arax_init + + + + + +Node4->Node5 + + + + + + + + +Node13 + + +async_meta_init_once + + + + + +Node4->Node13 + + + + + + + + +Node6 + + +arax_controller_init +_start + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_init + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +arax_plot_register +_metric + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_ptr_valid + + + + + +Node7->Node9 + + + + + + + + +Node9->Node8 + + + + + + + + +Node10 + + +_arax_assert_obj + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_ref + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +arax_data_ref_offset + + + + + +Node9->Node12 + + + + + + + + +Node11->Node12 + + + + + + + + +Node14 + + +arax_pipe_init + + + + + +Node13->Node14 + + + + + + + + +Node14->Node5 + + + + + + + + +Node15->Node5 + + + + + + + + +Node16->Node5 + + + + + + + + +Node17 + + +arax_clean + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +async_meta_init_always + + + + + +Node16->Node19 + + + + + + + + +Node18 + + +arax_exit + + + + + +Node17->Node18 + + + + + + + + +Node19->Node5 + + + + + + + + diff --git a/a01955_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.map b/a01955_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.map new file mode 100644 index 00000000..9c7ab2d5 --- /dev/null +++ b/a01955_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01955_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.md5 b/a01955_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.md5 new file mode 100644 index 00000000..dd705222 --- /dev/null +++ b/a01955_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.md5 @@ -0,0 +1 @@ +e6c36367e0bf2690b400bd6357407a25 \ No newline at end of file diff --git a/a01955_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.svg b/a01955_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.svg new file mode 100644 index 00000000..4d6fa910 --- /dev/null +++ b/a01955_a17713c8e9b90065e23b0ec1a225f79ab_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +utils_config_get_source + + +Node1 + + +utils_config_get_source + + + + + +Node2 + + +system_env_var + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01955_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.map b/a01955_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.map new file mode 100644 index 00000000..d463d18e --- /dev/null +++ b/a01955_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.map @@ -0,0 +1,59 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01955_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.md5 b/a01955_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.md5 new file mode 100644 index 00000000..d8d1e94c --- /dev/null +++ b/a01955_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.md5 @@ -0,0 +1 @@ +5dd6d073c35afd38d96c771018b3c4b8 \ No newline at end of file diff --git a/a01955_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.svg b/a01955_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.svg new file mode 100644 index 00000000..ea4bfd6a --- /dev/null +++ b/a01955_a17713c8e9b90065e23b0ec1a225f79ab_icgraph.svg @@ -0,0 +1,527 @@ + + + + + + +utils_config_get_source + + +Node1 + + +utils_config_get_source + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +conf_get + + + + + +Node1->Node10 + + + + + + + + +Node24 + + +conf_set + + + + + +Node1->Node24 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +_utils_config_get_str + + + + + +Node10->Node11 + + + + + + + + +Node22 + + +utils_config_write_str + + + + + +Node10->Node22 + + + + + + + + +Node12 + + +utils_config_get_long + + + + + +Node11->Node12 + + + + + + + + +Node18 + + +utils_config_get_str + + + + + +Node11->Node18 + + + + + + + + +Node13 + + +utils_config_get_int + + + + + +Node12->Node13 + + + + + + + + +Node17 + + +utils_config_get_size + + + + + +Node12->Node17 + + + + + + + + +Node14 + + +utils_config_get_bool + + + + + +Node13->Node14 + + + + + + + + +Node14->Node2 + + + + + + + + +Node15 + + +async_meta_init_once + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +arax_pipe_init + + + + + +Node15->Node16 + + + + + + + + +Node16->Node2 + + + + + + + + +Node17->Node2 + + + + + + + + +Node18->Node2 + + + + + + + + +Node19 + + +arax_clean + + + + + +Node18->Node19 + + + + + + + + +Node21 + + +async_meta_init_always + + + + + +Node18->Node21 + + + + + + + + +Node20 + + +arax_exit + + + + + +Node19->Node20 + + + + + + + + +Node21->Node2 + + + + + + + + +Node22->Node18 + + + + + + + + +Node23 + + +utils_config_write_long + + + + + +Node22->Node23 + + + + + + + + +Node23->Node12 + + + + + + + + +Node24->Node22 + + + + + + + + diff --git a/a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.map b/a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.map new file mode 100644 index 00000000..6cdf1929 --- /dev/null +++ b/a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.md5 b/a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.md5 new file mode 100644 index 00000000..fd3e9adc --- /dev/null +++ b/a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.md5 @@ -0,0 +1 @@ +413d3ce8fa7e2e82ddd4d377079f6503 \ No newline at end of file diff --git a/a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.svg b/a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.svg new file mode 100644 index 00000000..1f895e99 --- /dev/null +++ b/a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_cgraph.svg @@ -0,0 +1,192 @@ + + + + + + +utils_config_get_long + + +Node1 + + +utils_config_get_long + + + + + +Node2 + + +_utils_config_get_str + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +utils_config_write_long + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +conf_get + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +system_env_var + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +system_file_size + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +utils_config_get_source + + + + + +Node3->Node6 + + + + + + + + +Node6->Node4 + + + + + + + + +Node8 + + +utils_config_write_str + + + + + +Node7->Node8 + + + + + + + + +Node8->Node3 + + + + + + + + +Node9 + + +conf_set + + + + + +Node8->Node9 + + + + + + + + +Node9->Node6 + + + + + + + + diff --git a/a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.map b/a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.map new file mode 100644 index 00000000..4f9e9a95 --- /dev/null +++ b/a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.map @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.md5 b/a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.md5 new file mode 100644 index 00000000..79bc68b4 --- /dev/null +++ b/a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.md5 @@ -0,0 +1 @@ +caecffbe0ec7d24b3d030ffc62b845f1 \ No newline at end of file diff --git a/a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.svg b/a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.svg new file mode 100644 index 00000000..c69f7191 --- /dev/null +++ b/a01955_a1a28ba7c7791236d03b1fa9f81aa6a71_icgraph.svg @@ -0,0 +1,293 @@ + + + + + + +utils_config_get_long + + +Node1 + + +utils_config_get_long + + + + + +Node2 + + +utils_config_get_int + + + + + +Node1->Node2 + + + + + + + + +Node14 + + +utils_config_get_size + + + + + +Node1->Node14 + + + + + + + + +Node3 + + +utils_config_get_bool + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +_arax_init + + + + + +Node3->Node4 + + + + + + + + +Node12 + + +async_meta_init_once + + + + + +Node3->Node12 + + + + + + + + +Node5 + + +arax_controller_init +_start + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_init + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_plot_register +_metric + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_ptr_valid + + + + + +Node6->Node8 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +_arax_assert_obj + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_data_ref + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +arax_data_ref_offset + + + + + +Node8->Node11 + + + + + + + + +Node10->Node11 + + + + + + + + +Node13 + + +arax_pipe_init + + + + + +Node12->Node13 + + + + + + + + +Node13->Node4 + + + + + + + + +Node14->Node4 + + + + + + + + diff --git a/a01955_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.map b/a01955_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.map new file mode 100644 index 00000000..94bc06b4 --- /dev/null +++ b/a01955_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.map @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/a01955_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.md5 b/a01955_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.md5 new file mode 100644 index 00000000..ce6404f7 --- /dev/null +++ b/a01955_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.md5 @@ -0,0 +1 @@ +4ffcd141f42a9832a81d20a0647d16b4 \ No newline at end of file diff --git a/a01955_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.svg b/a01955_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.svg new file mode 100644 index 00000000..b001953c --- /dev/null +++ b/a01955_a1e8deff7c038efae14d1cc98e4ab109f_cgraph.svg @@ -0,0 +1,174 @@ + + + + + + +utils_config_get_str + + +Node1 + + +utils_config_get_str + + + + + +Node2 + + +_utils_config_get_str + + + + + +Node1->Node2 + + + + + + + + +Node7 + + +utils_config_write_str + + + + + +Node1->Node7 + + + + + + + + +Node3 + + +conf_get + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +system_env_var + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +system_file_size + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +utils_config_get_source + + + + + +Node3->Node6 + + + + + + + + +Node6->Node4 + + + + + + + + +Node7->Node3 + + + + + + + + +Node8 + + +conf_set + + + + + +Node7->Node8 + + + + + + + + +Node8->Node6 + + + + + + + + diff --git a/a01955_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.map b/a01955_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.map new file mode 100644 index 00000000..471c882e --- /dev/null +++ b/a01955_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.map @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01955_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.md5 b/a01955_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.md5 new file mode 100644 index 00000000..9b15065e --- /dev/null +++ b/a01955_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.md5 @@ -0,0 +1 @@ +66cb35033e6ec3a07e661c5dbc5b99ae \ No newline at end of file diff --git a/a01955_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.svg b/a01955_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.svg new file mode 100644 index 00000000..7bb90552 --- /dev/null +++ b/a01955_a1e8deff7c038efae14d1cc98e4ab109f_icgraph.svg @@ -0,0 +1,248 @@ + + + + + + +utils_config_get_str + + +Node1 + + +utils_config_get_str + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +arax_clean + + + + + +Node1->Node10 + + + + + + + + +Node12 + + +async_meta_init_always + + + + + +Node1->Node12 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +arax_exit + + + + + +Node10->Node11 + + + + + + + + +Node12->Node2 + + + + + + + + diff --git a/a01955_a336fa8eefc3d744aa7248d6786cfee03_cgraph.map b/a01955_a336fa8eefc3d744aa7248d6786cfee03_cgraph.map new file mode 100644 index 00000000..56ec660e --- /dev/null +++ b/a01955_a336fa8eefc3d744aa7248d6786cfee03_cgraph.map @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01955_a336fa8eefc3d744aa7248d6786cfee03_cgraph.md5 b/a01955_a336fa8eefc3d744aa7248d6786cfee03_cgraph.md5 new file mode 100644 index 00000000..63a739d4 --- /dev/null +++ b/a01955_a336fa8eefc3d744aa7248d6786cfee03_cgraph.md5 @@ -0,0 +1 @@ +e8c184b7acb935f525429a430af66585 \ No newline at end of file diff --git a/a01955_a336fa8eefc3d744aa7248d6786cfee03_cgraph.svg b/a01955_a336fa8eefc3d744aa7248d6786cfee03_cgraph.svg new file mode 100644 index 00000000..ac787e18 --- /dev/null +++ b/a01955_a336fa8eefc3d744aa7248d6786cfee03_cgraph.svg @@ -0,0 +1,210 @@ + + + + + + +utils_config_get_int + + +Node1 + + +utils_config_get_int + + + + + +Node2 + + +utils_config_get_long + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_utils_config_get_str + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +utils_config_write_long + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +conf_get + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +system_env_var + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +system_file_size + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +utils_config_get_source + + + + + +Node4->Node7 + + + + + + + + +Node7->Node5 + + + + + + + + +Node9 + + +utils_config_write_str + + + + + +Node8->Node9 + + + + + + + + +Node9->Node4 + + + + + + + + +Node10 + + +conf_set + + + + + +Node9->Node10 + + + + + + + + +Node10->Node7 + + + + + + + + diff --git a/a01955_a336fa8eefc3d744aa7248d6786cfee03_icgraph.map b/a01955_a336fa8eefc3d744aa7248d6786cfee03_icgraph.map new file mode 100644 index 00000000..ff4c2ee3 --- /dev/null +++ b/a01955_a336fa8eefc3d744aa7248d6786cfee03_icgraph.map @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01955_a336fa8eefc3d744aa7248d6786cfee03_icgraph.md5 b/a01955_a336fa8eefc3d744aa7248d6786cfee03_icgraph.md5 new file mode 100644 index 00000000..18978dd2 --- /dev/null +++ b/a01955_a336fa8eefc3d744aa7248d6786cfee03_icgraph.md5 @@ -0,0 +1 @@ +e6f904af3d8554980a3e4946a1284b91 \ No newline at end of file diff --git a/a01955_a336fa8eefc3d744aa7248d6786cfee03_icgraph.svg b/a01955_a336fa8eefc3d744aa7248d6786cfee03_icgraph.svg new file mode 100644 index 00000000..225aade6 --- /dev/null +++ b/a01955_a336fa8eefc3d744aa7248d6786cfee03_icgraph.svg @@ -0,0 +1,248 @@ + + + + + + +utils_config_get_int + + +Node1 + + +utils_config_get_int + + + + + +Node2 + + +utils_config_get_bool + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +async_meta_init_once + + + + + +Node2->Node11 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + +Node12 + + +arax_pipe_init + + + + + +Node11->Node12 + + + + + + + + +Node12->Node3 + + + + + + + + diff --git a/a01955_a4a525d89ade920512dc65409bc8e85d8_cgraph.map b/a01955_a4a525d89ade920512dc65409bc8e85d8_cgraph.map new file mode 100644 index 00000000..705fdcfc --- /dev/null +++ b/a01955_a4a525d89ade920512dc65409bc8e85d8_cgraph.map @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01955_a4a525d89ade920512dc65409bc8e85d8_cgraph.md5 b/a01955_a4a525d89ade920512dc65409bc8e85d8_cgraph.md5 new file mode 100644 index 00000000..863650ff --- /dev/null +++ b/a01955_a4a525d89ade920512dc65409bc8e85d8_cgraph.md5 @@ -0,0 +1 @@ +f62863ffd78f170eb700b71d5a0c13f3 \ No newline at end of file diff --git a/a01955_a4a525d89ade920512dc65409bc8e85d8_cgraph.svg b/a01955_a4a525d89ade920512dc65409bc8e85d8_cgraph.svg new file mode 100644 index 00000000..4ed520a1 --- /dev/null +++ b/a01955_a4a525d89ade920512dc65409bc8e85d8_cgraph.svg @@ -0,0 +1,210 @@ + + + + + + +utils_config_get_size + + +Node1 + + +utils_config_get_size + + + + + +Node2 + + +utils_config_get_long + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_utils_config_get_str + + + + + +Node2->Node3 + + + + + + + + +Node8 + + +utils_config_write_long + + + + + +Node2->Node8 + + + + + + + + +Node4 + + +conf_get + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +system_env_var + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +system_file_size + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +utils_config_get_source + + + + + +Node4->Node7 + + + + + + + + +Node7->Node5 + + + + + + + + +Node9 + + +utils_config_write_str + + + + + +Node8->Node9 + + + + + + + + +Node9->Node4 + + + + + + + + +Node10 + + +conf_set + + + + + +Node9->Node10 + + + + + + + + +Node10->Node7 + + + + + + + + diff --git a/a01955_a4a525d89ade920512dc65409bc8e85d8_icgraph.map b/a01955_a4a525d89ade920512dc65409bc8e85d8_icgraph.map new file mode 100644 index 00000000..19fe4901 --- /dev/null +++ b/a01955_a4a525d89ade920512dc65409bc8e85d8_icgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01955_a4a525d89ade920512dc65409bc8e85d8_icgraph.md5 b/a01955_a4a525d89ade920512dc65409bc8e85d8_icgraph.md5 new file mode 100644 index 00000000..b14c8d21 --- /dev/null +++ b/a01955_a4a525d89ade920512dc65409bc8e85d8_icgraph.md5 @@ -0,0 +1 @@ +a24ced9f1840ce0638cb9c7b7bc58bc9 \ No newline at end of file diff --git a/a01955_a4a525d89ade920512dc65409bc8e85d8_icgraph.svg b/a01955_a4a525d89ade920512dc65409bc8e85d8_icgraph.svg new file mode 100644 index 00000000..1dc4d6e5 --- /dev/null +++ b/a01955_a4a525d89ade920512dc65409bc8e85d8_icgraph.svg @@ -0,0 +1,185 @@ + + + + + + +utils_config_get_size + + +Node1 + + +utils_config_get_size + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_cgraph.map b/a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_cgraph.map new file mode 100644 index 00000000..9b1a03bb --- /dev/null +++ b/a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_cgraph.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_cgraph.md5 b/a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_cgraph.md5 new file mode 100644 index 00000000..f6e1c5dd --- /dev/null +++ b/a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_cgraph.md5 @@ -0,0 +1 @@ +9dec909d71f5ecec967672291681cb0f \ No newline at end of file diff --git a/a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_cgraph.svg b/a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_cgraph.svg new file mode 100644 index 00000000..5a7e9303 --- /dev/null +++ b/a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_cgraph.svg @@ -0,0 +1,129 @@ + + + + + + +utils_config_write_str + + +Node1 + + +utils_config_write_str + + + + + +Node2 + + +conf_get + + + + + +Node1->Node2 + + + + + + + + +Node6 + + +conf_set + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +system_env_var + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +system_file_size + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +utils_config_get_source + + + + + +Node2->Node5 + + + + + + + + +Node5->Node3 + + + + + + + + +Node6->Node5 + + + + + + + + diff --git a/a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_icgraph.map b/a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_icgraph.map new file mode 100644 index 00000000..78a9997f --- /dev/null +++ b/a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_icgraph.map @@ -0,0 +1,47 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_icgraph.md5 b/a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_icgraph.md5 new file mode 100644 index 00000000..63e61a1c --- /dev/null +++ b/a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_icgraph.md5 @@ -0,0 +1 @@ +5f93c5e6cc5e7eda36eed192329fa4c9 \ No newline at end of file diff --git a/a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_icgraph.svg b/a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_icgraph.svg new file mode 100644 index 00000000..4e5f5f40 --- /dev/null +++ b/a01955_a4b9cd8f5d0c205ac6c1fd30f77cbf539_icgraph.svg @@ -0,0 +1,419 @@ + + + + + + +utils_config_write_str + + +Node1 + + +utils_config_write_str + + + + + +Node2 + + +utils_config_get_str + + + + + +Node1->Node2 + + + + + + + + +Node14 + + +utils_config_write_long + + + + + +Node1->Node14 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +arax_clean + + + + + +Node2->Node11 + + + + + + + + +Node13 + + +async_meta_init_always + + + + + +Node2->Node13 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + +Node12 + + +arax_exit + + + + + +Node11->Node12 + + + + + + + + +Node13->Node3 + + + + + + + + +Node15 + + +utils_config_get_long + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +utils_config_get_int + + + + + +Node15->Node16 + + + + + + + + +Node20 + + +utils_config_get_size + + + + + +Node15->Node20 + + + + + + + + +Node17 + + +utils_config_get_bool + + + + + +Node16->Node17 + + + + + + + + +Node17->Node3 + + + + + + + + +Node18 + + +async_meta_init_once + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +arax_pipe_init + + + + + +Node18->Node19 + + + + + + + + +Node19->Node3 + + + + + + + + +Node20->Node3 + + + + + + + + diff --git a/a01955_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.map b/a01955_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.map new file mode 100644 index 00000000..0a0c5399 --- /dev/null +++ b/a01955_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.map @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01955_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.md5 b/a01955_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.md5 new file mode 100644 index 00000000..dd34fb62 --- /dev/null +++ b/a01955_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.md5 @@ -0,0 +1 @@ +af51ded722fe30b2857fef9393b18477 \ No newline at end of file diff --git a/a01955_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.svg b/a01955_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.svg new file mode 100644 index 00000000..e1b365d4 --- /dev/null +++ b/a01955_a84f3886cdcb91a28bf13b07aae8b2285_icgraph.svg @@ -0,0 +1,293 @@ + + + + + + +utils_config_free_path + + +Node1 + + +utils_config_free_path + + + + + +Node2 + + +arax_clean + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_exit + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +async_meta_init_always + + + + + +Node1->Node4 + + + + + + + + +Node13 + + +async_meta_init_once + + + + + +Node1->Node13 + + + + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +_arax_init + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_controller_init +_start + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_init + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +arax_plot_register +_metric + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_ptr_valid + + + + + +Node7->Node9 + + + + + + + + +Node9->Node8 + + + + + + + + +Node10 + + +_arax_assert_obj + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_ref + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +arax_data_ref_offset + + + + + +Node9->Node12 + + + + + + + + +Node11->Node12 + + + + + + + + +Node14 + + +arax_pipe_init + + + + + +Node13->Node14 + + + + + + + + +Node14->Node5 + + + + + + + + diff --git a/a01955_a88091e179416d4beec1b5681cfb68742_cgraph.map b/a01955_a88091e179416d4beec1b5681cfb68742_cgraph.map new file mode 100644 index 00000000..9877da46 --- /dev/null +++ b/a01955_a88091e179416d4beec1b5681cfb68742_cgraph.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/a01955_a88091e179416d4beec1b5681cfb68742_cgraph.md5 b/a01955_a88091e179416d4beec1b5681cfb68742_cgraph.md5 new file mode 100644 index 00000000..b776ecff --- /dev/null +++ b/a01955_a88091e179416d4beec1b5681cfb68742_cgraph.md5 @@ -0,0 +1 @@ +4c86211f0c0cbe87a0665eea5f071698 \ No newline at end of file diff --git a/a01955_a88091e179416d4beec1b5681cfb68742_cgraph.svg b/a01955_a88091e179416d4beec1b5681cfb68742_cgraph.svg new file mode 100644 index 00000000..9b6d5c2f --- /dev/null +++ b/a01955_a88091e179416d4beec1b5681cfb68742_cgraph.svg @@ -0,0 +1,147 @@ + + + + + + +utils_config_write_long + + +Node1 + + +utils_config_write_long + + + + + +Node2 + + +utils_config_write_str + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +conf_get + + + + + +Node2->Node3 + + + + + + + + +Node7 + + +conf_set + + + + + +Node2->Node7 + + + + + + + + +Node4 + + +system_env_var + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +system_file_size + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +utils_config_get_source + + + + + +Node3->Node6 + + + + + + + + +Node6->Node4 + + + + + + + + +Node7->Node6 + + + + + + + + diff --git a/a01955_a88091e179416d4beec1b5681cfb68742_icgraph.map b/a01955_a88091e179416d4beec1b5681cfb68742_icgraph.map new file mode 100644 index 00000000..dba0a0a5 --- /dev/null +++ b/a01955_a88091e179416d4beec1b5681cfb68742_icgraph.map @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01955_a88091e179416d4beec1b5681cfb68742_icgraph.md5 b/a01955_a88091e179416d4beec1b5681cfb68742_icgraph.md5 new file mode 100644 index 00000000..9f3230df --- /dev/null +++ b/a01955_a88091e179416d4beec1b5681cfb68742_icgraph.md5 @@ -0,0 +1 @@ +bd61b01d1d3ec7f6964f165f0f5e67ab \ No newline at end of file diff --git a/a01955_a88091e179416d4beec1b5681cfb68742_icgraph.svg b/a01955_a88091e179416d4beec1b5681cfb68742_icgraph.svg new file mode 100644 index 00000000..6afbd860 --- /dev/null +++ b/a01955_a88091e179416d4beec1b5681cfb68742_icgraph.svg @@ -0,0 +1,311 @@ + + + + + + +utils_config_write_long + + +Node1 + + +utils_config_write_long + + + + + +Node2 + + +utils_config_get_long + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +utils_config_get_int + + + + + +Node2->Node3 + + + + + + + + +Node15 + + +utils_config_get_size + + + + + +Node2->Node15 + + + + + + + + +Node4 + + +utils_config_get_bool + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +_arax_init + + + + + +Node4->Node5 + + + + + + + + +Node13 + + +async_meta_init_once + + + + + +Node4->Node13 + + + + + + + + +Node6 + + +arax_controller_init +_start + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_init + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +arax_plot_register +_metric + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_ptr_valid + + + + + +Node7->Node9 + + + + + + + + +Node9->Node8 + + + + + + + + +Node10 + + +_arax_assert_obj + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_ref + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +arax_data_ref_offset + + + + + +Node9->Node12 + + + + + + + + +Node11->Node12 + + + + + + + + +Node14 + + +arax_pipe_init + + + + + +Node13->Node14 + + + + + + + + +Node14->Node5 + + + + + + + + +Node15->Node5 + + + + + + + + diff --git a/a01955_a8b687fb4c464903e23504eea3ddc3873_cgraph.map b/a01955_a8b687fb4c464903e23504eea3ddc3873_cgraph.map new file mode 100644 index 00000000..3ecffa8e --- /dev/null +++ b/a01955_a8b687fb4c464903e23504eea3ddc3873_cgraph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/a01955_a8b687fb4c464903e23504eea3ddc3873_cgraph.md5 b/a01955_a8b687fb4c464903e23504eea3ddc3873_cgraph.md5 new file mode 100644 index 00000000..8f62433e --- /dev/null +++ b/a01955_a8b687fb4c464903e23504eea3ddc3873_cgraph.md5 @@ -0,0 +1 @@ +93914cbd98f26c3084fe391528aa1bfd \ No newline at end of file diff --git a/a01955_a8b687fb4c464903e23504eea3ddc3873_cgraph.svg b/a01955_a8b687fb4c464903e23504eea3ddc3873_cgraph.svg new file mode 100644 index 00000000..320a25e1 --- /dev/null +++ b/a01955_a8b687fb4c464903e23504eea3ddc3873_cgraph.svg @@ -0,0 +1,84 @@ + + + + + + +conf_get + + +Node1 + + +conf_get + + + + + +Node2 + + +system_env_var + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +system_file_size + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +utils_config_get_source + + + + + +Node1->Node4 + + + + + + + + +Node4->Node2 + + + + + + + + diff --git a/a01955_a8b687fb4c464903e23504eea3ddc3873_icgraph.map b/a01955_a8b687fb4c464903e23504eea3ddc3873_icgraph.map new file mode 100644 index 00000000..ea35f7b4 --- /dev/null +++ b/a01955_a8b687fb4c464903e23504eea3ddc3873_icgraph.map @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01955_a8b687fb4c464903e23504eea3ddc3873_icgraph.md5 b/a01955_a8b687fb4c464903e23504eea3ddc3873_icgraph.md5 new file mode 100644 index 00000000..cbeadc65 --- /dev/null +++ b/a01955_a8b687fb4c464903e23504eea3ddc3873_icgraph.md5 @@ -0,0 +1 @@ +19e8750b6a8cb200bb9992d24a0300f4 \ No newline at end of file diff --git a/a01955_a8b687fb4c464903e23504eea3ddc3873_icgraph.svg b/a01955_a8b687fb4c464903e23504eea3ddc3873_icgraph.svg new file mode 100644 index 00000000..b1500134 --- /dev/null +++ b/a01955_a8b687fb4c464903e23504eea3ddc3873_icgraph.svg @@ -0,0 +1,473 @@ + + + + + + +conf_get + + +Node1 + + +conf_get + + + + + +Node2 + + +_utils_config_get_str + + + + + +Node1->Node2 + + + + + + + + +Node21 + + +utils_config_write_str + + + + + +Node1->Node21 + + + + + + + + +Node3 + + +utils_config_get_long + + + + + +Node2->Node3 + + + + + + + + +Node17 + + +utils_config_get_str + + + + + +Node2->Node17 + + + + + + + + +Node4 + + +utils_config_get_int + + + + + +Node3->Node4 + + + + + + + + +Node16 + + +utils_config_get_size + + + + + +Node3->Node16 + + + + + + + + +Node5 + + +utils_config_get_bool + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +_arax_init + + + + + +Node5->Node6 + + + + + + + + +Node14 + + +async_meta_init_once + + + + + +Node5->Node14 + + + + + + + + +Node7 + + +arax_controller_init +_start + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_init + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_plot_register +_metric + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_ptr_valid + + + + + +Node8->Node10 + + + + + + + + +Node10->Node9 + + + + + + + + +Node11 + + +_arax_assert_obj + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_data_ref + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +arax_data_ref_offset + + + + + +Node10->Node13 + + + + + + + + +Node12->Node13 + + + + + + + + +Node15 + + +arax_pipe_init + + + + + +Node14->Node15 + + + + + + + + +Node15->Node6 + + + + + + + + +Node16->Node6 + + + + + + + + +Node17->Node6 + + + + + + + + +Node18 + + +arax_clean + + + + + +Node17->Node18 + + + + + + + + +Node20 + + +async_meta_init_always + + + + + +Node17->Node20 + + + + + + + + +Node19 + + +arax_exit + + + + + +Node18->Node19 + + + + + + + + +Node20->Node6 + + + + + + + + +Node21->Node17 + + + + + + + + +Node22 + + +utils_config_write_long + + + + + +Node21->Node22 + + + + + + + + +Node22->Node3 + + + + + + + + diff --git a/a01955_aa7aa94ad075bf97a566f01f899fcd859_cgraph.map b/a01955_aa7aa94ad075bf97a566f01f899fcd859_cgraph.map new file mode 100644 index 00000000..caa0caf5 --- /dev/null +++ b/a01955_aa7aa94ad075bf97a566f01f899fcd859_cgraph.map @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01955_aa7aa94ad075bf97a566f01f899fcd859_cgraph.md5 b/a01955_aa7aa94ad075bf97a566f01f899fcd859_cgraph.md5 new file mode 100644 index 00000000..2bc8681b --- /dev/null +++ b/a01955_aa7aa94ad075bf97a566f01f899fcd859_cgraph.md5 @@ -0,0 +1 @@ +9aec9110bbd0dad15815ad75747c6a5a \ No newline at end of file diff --git a/a01955_aa7aa94ad075bf97a566f01f899fcd859_cgraph.svg b/a01955_aa7aa94ad075bf97a566f01f899fcd859_cgraph.svg new file mode 100644 index 00000000..3474ae3d --- /dev/null +++ b/a01955_aa7aa94ad075bf97a566f01f899fcd859_cgraph.svg @@ -0,0 +1,228 @@ + + + + + + +utils_config_get_bool + + +Node1 + + +utils_config_get_bool + + + + + +Node2 + + +utils_config_get_int + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +utils_config_get_long + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +_utils_config_get_str + + + + + +Node3->Node4 + + + + + + + + +Node9 + + +utils_config_write_long + + + + + +Node3->Node9 + + + + + + + + +Node5 + + +conf_get + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +system_env_var + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +system_file_size + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +utils_config_get_source + + + + + +Node5->Node8 + + + + + + + + +Node8->Node6 + + + + + + + + +Node10 + + +utils_config_write_str + + + + + +Node9->Node10 + + + + + + + + +Node10->Node5 + + + + + + + + +Node11 + + +conf_set + + + + + +Node10->Node11 + + + + + + + + +Node11->Node8 + + + + + + + + diff --git a/a01955_aa7aa94ad075bf97a566f01f899fcd859_icgraph.map b/a01955_aa7aa94ad075bf97a566f01f899fcd859_icgraph.map new file mode 100644 index 00000000..cac0fdb0 --- /dev/null +++ b/a01955_aa7aa94ad075bf97a566f01f899fcd859_icgraph.map @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01955_aa7aa94ad075bf97a566f01f899fcd859_icgraph.md5 b/a01955_aa7aa94ad075bf97a566f01f899fcd859_icgraph.md5 new file mode 100644 index 00000000..a7223ba4 --- /dev/null +++ b/a01955_aa7aa94ad075bf97a566f01f899fcd859_icgraph.md5 @@ -0,0 +1 @@ +d04bbfe2cfa60ceb2c3a9fb5df8cafa5 \ No newline at end of file diff --git a/a01955_aa7aa94ad075bf97a566f01f899fcd859_icgraph.svg b/a01955_aa7aa94ad075bf97a566f01f899fcd859_icgraph.svg new file mode 100644 index 00000000..18ba1ce6 --- /dev/null +++ b/a01955_aa7aa94ad075bf97a566f01f899fcd859_icgraph.svg @@ -0,0 +1,230 @@ + + + + + + +utils_config_get_bool + + +Node1 + + +utils_config_get_bool + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +async_meta_init_once + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +arax_pipe_init + + + + + +Node10->Node11 + + + + + + + + +Node11->Node2 + + + + + + + + diff --git a/a01955_ab87e9691e65d65348749f8dc70f24602_cgraph.map b/a01955_ab87e9691e65d65348749f8dc70f24602_cgraph.map new file mode 100644 index 00000000..9b4188a8 --- /dev/null +++ b/a01955_ab87e9691e65d65348749f8dc70f24602_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01955_ab87e9691e65d65348749f8dc70f24602_cgraph.md5 b/a01955_ab87e9691e65d65348749f8dc70f24602_cgraph.md5 new file mode 100644 index 00000000..d26505ca --- /dev/null +++ b/a01955_ab87e9691e65d65348749f8dc70f24602_cgraph.md5 @@ -0,0 +1 @@ +116d81eb39096a4edb625a134ac729db \ No newline at end of file diff --git a/a01955_ab87e9691e65d65348749f8dc70f24602_cgraph.svg b/a01955_ab87e9691e65d65348749f8dc70f24602_cgraph.svg new file mode 100644 index 00000000..1fca2683 --- /dev/null +++ b/a01955_ab87e9691e65d65348749f8dc70f24602_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +conf_set + + +Node1 + + +conf_set + + + + + +Node2 + + +utils_config_get_source + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +system_env_var + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01955_ab87e9691e65d65348749f8dc70f24602_icgraph.map b/a01955_ab87e9691e65d65348749f8dc70f24602_icgraph.map new file mode 100644 index 00000000..42471f12 --- /dev/null +++ b/a01955_ab87e9691e65d65348749f8dc70f24602_icgraph.map @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01955_ab87e9691e65d65348749f8dc70f24602_icgraph.md5 b/a01955_ab87e9691e65d65348749f8dc70f24602_icgraph.md5 new file mode 100644 index 00000000..15b005af --- /dev/null +++ b/a01955_ab87e9691e65d65348749f8dc70f24602_icgraph.md5 @@ -0,0 +1 @@ +70274c8364663f3926ad17e50ef7815d \ No newline at end of file diff --git a/a01955_ab87e9691e65d65348749f8dc70f24602_icgraph.svg b/a01955_ab87e9691e65d65348749f8dc70f24602_icgraph.svg new file mode 100644 index 00000000..aefef129 --- /dev/null +++ b/a01955_ab87e9691e65d65348749f8dc70f24602_icgraph.svg @@ -0,0 +1,437 @@ + + + + + + +conf_set + + +Node1 + + +conf_set + + + + + +Node2 + + +utils_config_write_str + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +utils_config_get_str + + + + + +Node2->Node3 + + + + + + + + +Node15 + + +utils_config_write_long + + + + + +Node2->Node15 + + + + + + + + +Node4 + + +_arax_init + + + + + +Node3->Node4 + + + + + + + + +Node12 + + +arax_clean + + + + + +Node3->Node12 + + + + + + + + +Node14 + + +async_meta_init_always + + + + + +Node3->Node14 + + + + + + + + +Node5 + + +arax_controller_init +_start + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_init + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_plot_register +_metric + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_ptr_valid + + + + + +Node6->Node8 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +_arax_assert_obj + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_data_ref + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +arax_data_ref_offset + + + + + +Node8->Node11 + + + + + + + + +Node10->Node11 + + + + + + + + +Node13 + + +arax_exit + + + + + +Node12->Node13 + + + + + + + + +Node14->Node4 + + + + + + + + +Node16 + + +utils_config_get_long + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +utils_config_get_int + + + + + +Node16->Node17 + + + + + + + + +Node21 + + +utils_config_get_size + + + + + +Node16->Node21 + + + + + + + + +Node18 + + +utils_config_get_bool + + + + + +Node17->Node18 + + + + + + + + +Node18->Node4 + + + + + + + + +Node19 + + +async_meta_init_once + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +arax_pipe_init + + + + + +Node19->Node20 + + + + + + + + +Node20->Node4 + + + + + + + + +Node21->Node4 + + + + + + + + diff --git a/a01955_aff9af0356940583dfe3045e693cc8a45_cgraph.map b/a01955_aff9af0356940583dfe3045e693cc8a45_cgraph.map new file mode 100644 index 00000000..3a6cc5f3 --- /dev/null +++ b/a01955_aff9af0356940583dfe3045e693cc8a45_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01955_aff9af0356940583dfe3045e693cc8a45_cgraph.md5 b/a01955_aff9af0356940583dfe3045e693cc8a45_cgraph.md5 new file mode 100644 index 00000000..e0a3c650 --- /dev/null +++ b/a01955_aff9af0356940583dfe3045e693cc8a45_cgraph.md5 @@ -0,0 +1 @@ +c09a03fe99b3321166dc2d1eb8edf8fe \ No newline at end of file diff --git a/a01955_aff9af0356940583dfe3045e693cc8a45_cgraph.svg b/a01955_aff9af0356940583dfe3045e693cc8a45_cgraph.svg new file mode 100644 index 00000000..c3339ed3 --- /dev/null +++ b/a01955_aff9af0356940583dfe3045e693cc8a45_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +utils_config_alloc_path + + +Node1 + + +utils_config_alloc_path + + + + + +Node2 + + +system_home_path + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01955_aff9af0356940583dfe3045e693cc8a45_icgraph.map b/a01955_aff9af0356940583dfe3045e693cc8a45_icgraph.map new file mode 100644 index 00000000..b751b883 --- /dev/null +++ b/a01955_aff9af0356940583dfe3045e693cc8a45_icgraph.map @@ -0,0 +1,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01955_aff9af0356940583dfe3045e693cc8a45_icgraph.md5 b/a01955_aff9af0356940583dfe3045e693cc8a45_icgraph.md5 new file mode 100644 index 00000000..9d2e2ec4 --- /dev/null +++ b/a01955_aff9af0356940583dfe3045e693cc8a45_icgraph.md5 @@ -0,0 +1 @@ +514e0e596f500fdf6a95ec87ff0be997 \ No newline at end of file diff --git a/a01955_aff9af0356940583dfe3045e693cc8a45_icgraph.svg b/a01955_aff9af0356940583dfe3045e693cc8a45_icgraph.svg new file mode 100644 index 00000000..4601c4ea --- /dev/null +++ b/a01955_aff9af0356940583dfe3045e693cc8a45_icgraph.svg @@ -0,0 +1,293 @@ + + + + + + +utils_config_alloc_path + + +Node1 + + +utils_config_alloc_path + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +arax_clean + + + + + +Node1->Node10 + + + + + + + + +Node12 + + +async_meta_init_always + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +async_meta_init_once + + + + + +Node1->Node13 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +arax_exit + + + + + +Node10->Node11 + + + + + + + + +Node12->Node2 + + + + + + + + +Node14 + + +arax_pipe_init + + + + + +Node13->Node14 + + + + + + + + +Node14->Node2 + + + + + + + + diff --git a/a01955_source.html b/a01955_source.html new file mode 100644 index 00000000..0eaf8d5d --- /dev/null +++ b/a01955_source.html @@ -0,0 +1,379 @@ + + + + + + + +Arax: config.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
config.c
+
+
+Go to the documentation of this file.
1#include "config.h"
+
2#include "system.h"
+
3#include <stdio.h>
+
4#include <stdlib.h>
+
5#include <string.h>
+
6#include <unistd.h>
+
7#include <errno.h>
+
8#include <limits.h>
+
9#include <stdint.h>
+
10#include "utils/arax_assert.h"
+
11#include <pwd.h>
+
12
+
13const char* conf_get(const char *path)
+
14{
+
15 switch (utils_config_get_source()) {
+
16 case CONFIG_ENV: {
+
17 char *conf_str;
+
18 conf_str = strdup(system_env_var("ARAX_CONF"));
+
19 return conf_str;
+
20 }
+
21 case CONFIG_FILE: {
+
22 FILE *conf = 0;
+
23
+
24 size_t size = system_file_size(path);
+
25 char *conf_str = malloc(size + 1);
+
26 memset(conf_str, 0, size + 1);
+
27
+
28 if (!size)
+
29 return conf_str;
+
30
+
31 conf = fopen(path, "r");
+
32
+
33 if (conf) {
+
34 char *read_ptr = conf_str;
+
35 size_t read_bytes = 0;
+
36 while ( (read_bytes = fread(conf_str, 1, size, conf) ) ) {
+
37 read_ptr += read_bytes;
+
38 size -= read_bytes;
+
39 }
+
40 fclose(conf);
+
41 }
+
42 return conf_str;
+
43 }
+
44 }
+
45 arax_assert(!"Unkown config source!");
+
46 return 0;
+
47} /* conf_get */
+
48
+
49void conf_set(const char *path, const char *conf_str)
+
50{
+
51 switch (utils_config_get_source()) {
+
52 case CONFIG_ENV: {
+
53 setenv("ARAX_CONF", conf_str, 1);
+
54 return;
+
55 }
+
56 case CONFIG_FILE: {
+
57 FILE *conf = 0;
+
58
+
59 size_t size = strlen(conf_str);
+
60 conf = fopen(path, "w");
+
61 if (conf) {
+
62 fwrite(conf_str, 1, size, conf);
+
63 fclose(conf);
+
64 }
+
65 return;
+
66 }
+
67 }
+
68 arax_assert(!"Unkown config source!");
+
69}
+
70
+
71void utils_config_write_str(char *path, const char *key, const char *value)
+
72{
+
73 const char *prev = conf_get(path);
+
74 char *next = malloc(strlen(prev) + strlen(key) + strlen(value) + 3);
+
75
+
76 strcpy(next, prev);
+
77
+
78 sprintf(next + strlen(next), "%s %s\n", key, value);
+
79
+
80 conf_set(path, next);
+
81
+
82 free(next);
+
83}
+
84
+
85void utils_config_write_long(char *path, const char *key, long value)
+
86{
+
87 char svalue[1024];
+
88
+
89 sprintf(svalue, "%ld", value);
+
90
+
91 utils_config_write_str(path, key, svalue);
+
92}
+
93
+
94char* utils_config_alloc_path(const char *path)
+
95{
+
96 char temp[4096] = { 0 };
+
97 char *tp = temp;
+
98 size_t size = sizeof(temp);
+
99
+
100 if (!path)
+
101 return 0;
+
102
+
103 do{
+
104 if (!size)
+
105 return 0;
+
106
+
107 switch (*path) {
+
108 case '~': {
+
109 const char *home = system_home_path();
+
110 size_t home_len = strlen(home);
+
111 arax_assert(size - home_len <= sizeof(temp)); // would have overflowed
+
112 strncat(tp, home, size);
+
113 tp += home_len;
+
114 size -= home_len;
+
115 break;
+
116 }
+
117 default:
+
118 *tp = *path;
+
119 tp++;
+
120 size--;
+
121 }
+
122 }while (*(path++)); // ensure \0 gets copied
+
123 tp = malloc(strlen(temp) + 1);
+
124 strcpy(tp, temp);
+
125 return tp;
+
126}
+
127
+ +
129{
+
130 free(path);
+
131}
+
132
+
133int _utils_config_get_str(char *path, const char *key, char *value, size_t value_size)
+
134{
+
135 const char *conf = conf_get(path);
+
136 const char *cleanup = conf;
+
137 char ckey[128];
+
138 char cval[896];
+
139 int line = 0;
+
140 int len = 0;
+
141
+
142 if (!conf)
+
143 return 0;
+
144
+
145 while (++line) {
+
146 if (sscanf(conf, "%127s %895s%n", ckey, cval, &len) < 2) {
+
147 break;
+
148 }
+
149 conf += len;
+
150 len = 0;
+
151 if (!strncmp(ckey, key, sizeof(ckey) ) ) {
+
152 /* Found the key i was looking for */
+
153 strncpy(value, cval, value_size);
+
154 len = strlen(cval);
+
155 break;
+
156 }
+
157 }
+
158
+
159 free((void *) cleanup);
+
160
+
161 return len;
+
162}
+
163
+
164int utils_config_get_str(char *path, const char *key, char *value, size_t value_size, const char *def_val)
+
165{
+
166 if (!_utils_config_get_str(path, key, value, value_size)) {
+
167 if (def_val) { // Not found, but have default, update with default
+
168 utils_config_write_str(path, key, def_val);
+
169 strncpy(value, def_val, value_size);
+
170 } else {
+
171 fprintf(stderr, "No default value for \'%s\' config key\n", key);
+
172 }
+
173 return 0;
+
174 }
+
175 return 1;
+
176}
+
177
+
178int utils_config_get_bool(char *path, const char *key, int *value, int def_val)
+
179{
+
180 if (utils_config_get_int(path, key, value, def_val) ) {
+
181 if (*value == 0 || *value == 1)
+
182 return 1;
+
183 }
+
184
+
185
+
186 *value = def_val;
+
187 return 0;
+
188}
+
189
+
190int utils_config_get_int(char *path, const char *key, int *value, int def_val)
+
191{
+
192 long cval;
+
193
+
194 if (utils_config_get_long(path, key, &cval, def_val) ) {
+
195 if (INT_MAX >= cval && INT_MIN <= cval) {
+
196 *value = cval;
+
197 return 1; /* Value was an int */
+
198 }
+
199 }
+
200
+
201
+
202 *value = def_val;
+
203 return 0;
+
204}
+
205
+
206int utils_config_get_long(char *path, const char *key, long *value, long def_val)
+
207{
+
208 char cval[22];
+
209 char *end;
+
210
+
211 if (_utils_config_get_str(path, key, cval, sizeof(cval) ) ) {
+
212 /* Key exists */
+
213 errno = 0;
+
214 *value = strtol(cval, &end, 0);
+
215 if (errno || end == cval) {
+
216 utils_config_write_long(path, key, def_val);
+
217 *value = def_val;
+
218 return 0;
+
219 }
+
220 return 1;
+
221 }
+
222 *value = def_val;
+
223 return 0;
+
224}
+
225
+
226int utils_config_get_size(char *path, const char *key, size_t *value, size_t def_val)
+
227{
+
228 long cval;
+
229
+
230 if (utils_config_get_long(path, key, &cval, def_val) ) {
+
231 if (SIZE_MAX >= cval && 0 <= cval) {
+
232 *value = cval;
+
233 return 1; /* Value was an size_t */
+
234 }
+
235 }
+
236
+
237
+
238 *value = def_val;
+
239 return 0;
+
240}
+
241
+ +
243{
+
244 if (system_env_var("ARAX_CONF"))
+
245 return CONFIG_ENV;
+
246 else
+
247 return CONFIG_FILE;
+
248}
+ +
#define arax_assert(EXPR)
Definition arax_assert.h:7
+ +
utils_config_source
Definition config.h:142
+
@ CONFIG_FILE
Definition config.h:143
+
@ CONFIG_ENV
Definition config.h:144
+ +
int _utils_config_get_str(char *path, const char *key, char *value, size_t value_size)
Definition config.c:133
+
enum utils_config_source utils_config_get_source()
Definition config.c:242
+
int utils_config_get_long(char *path, const char *key, long *value, long def_val)
Definition config.c:206
+
int utils_config_get_str(char *path, const char *key, char *value, size_t value_size, const char *def_val)
Definition config.c:164
+
int utils_config_get_int(char *path, const char *key, int *value, int def_val)
Definition config.c:190
+
int utils_config_get_size(char *path, const char *key, size_t *value, size_t def_val)
Definition config.c:226
+
void utils_config_write_str(char *path, const char *key, const char *value)
Definition config.c:71
+
void utils_config_free_path(char *path)
Definition config.c:128
+
void utils_config_write_long(char *path, const char *key, long value)
Definition config.c:85
+
const char * conf_get(const char *path)
Definition config.c:13
+
int utils_config_get_bool(char *path, const char *key, int *value, int def_val)
Definition config.c:178
+
void conf_set(const char *path, const char *conf_str)
Definition config.c:49
+
char * utils_config_alloc_path(const char *path)
Definition config.c:94
+
char * system_home_path()
Definition system.c:21
+
off_t system_file_size(const char *file)
Definition system.c:68
+
const char * system_env_var(const char *var)
Definition system.c:32
+
+
+ + + + diff --git a/a01956.map b/a01956.map new file mode 100644 index 00000000..800add48 --- /dev/null +++ b/a01956.map @@ -0,0 +1,32 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01956.md5 b/a01956.md5 new file mode 100644 index 00000000..57f3ffe3 --- /dev/null +++ b/a01956.md5 @@ -0,0 +1 @@ +4f311316276dcaafb7a1abe1969920ff \ No newline at end of file diff --git a/a01956.svg b/a01956.svg new file mode 100644 index 00000000..a0f07d8e --- /dev/null +++ b/a01956.svg @@ -0,0 +1,282 @@ + + + + + + +config.c + + +Node1 + + +config.c + + + + + +Node2 + + +config.h + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +system.h + + + + + +Node1->Node4 + + + + + + + + +Node6 + + +stdio.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +stdlib.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +string.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +unistd.h + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +errno.h + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +limits.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +stdint.h + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +utils/arax_assert.h + + + + + +Node1->Node13 + + + + + + + + +Node15 + + +pwd.h + + + + + +Node1->Node15 + + + + + + + + +Node3 + + +stddef.h + + + + + +Node2->Node3 + + + + + + + + +Node4->Node3 + + + + + + + + +Node5 + + +sys/types.h + + + + + +Node4->Node5 + + + + + + + + +Node14 + + +compat.h + + + + + +Node13->Node14 + + + + + + + + diff --git a/a01958.html b/a01958.html new file mode 100644 index 00000000..39fe3de8 --- /dev/null +++ b/a01958.html @@ -0,0 +1,545 @@ + + + + + + + +Arax: list.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
list.c File Reference
+
+
+
#include "list.h"
+
+ + Include dependency graph for list.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + +

+Functions

utils_list_sutils_list_init (void *mem)
 
void utils_list_node_add (utils_list_node_s *head, utils_list_node_s *node)
 
void utils_list_add (utils_list_s *list, utils_list_node_s *node)
 
utils_list_node_sutils_list_del (utils_list_s *list, utils_list_node_s *node)
 
utils_list_node_sutils_list_pop_head (utils_list_s *list)
 
utils_list_node_sutils_list_pop_tail (utils_list_s *list)
 
size_t utils_list_to_array (utils_list_s *list, void **array)
 
void utils_list_node_init (utils_list_node_s *node, void *owner)
 
int utils_list_node_linked (utils_list_node_s *node)
 
+

Function Documentation

+ +

◆ utils_list_add()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void utils_list_add (utils_list_slist,
utils_list_node_snode 
)
+
+

Add node to list as the new head of the list.

+ +

Definition at line 20 of file list.c.

+ +

References utils_list_s::head, utils_list_s::length, and utils_list_node_add().

+ +

Referenced by _add_completion(), arax_accel_add_vaccel(), arax_object_register(), arax_pipe_add_orphan_vaccel(), and async_semaphore_dec().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_list_del()

+ +
+
+ + + + + + + + + + + + + + + + + + +
utils_list_node_s * utils_list_del (utils_list_slist,
utils_list_node_snode 
)
+
+

Delete node from list.

Returns
The deleted node, NULL on failure.
+ +

Definition at line 26 of file list.c.

+ +

References utils_list_s::length, utils_list_node::next, and utils_list_node::prev.

+ +

Referenced by arax_accel_del_vaccel(), arax_object_ref_dec(), arax_object_ref_dec_pre_locked(), arax_pipe_remove_orphan_vaccel(), async_semaphore_inc(), async_thread(), utils_list_pop_head(), and utils_list_pop_tail().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_list_init()

+ +
+
+ + + + + + + + +
utils_list_s * utils_list_init (void * mem)
+
+

Initialize a utils_list_s instance in node.

+
Parameters
+ + +
memAn allocated buffer of at least sizeof(utils_list_s) size.
+
+
+
Returns
Equal to mem if successful, NULL on failure.
+ +

Definition at line 3 of file list.c.

+ +

References utils_list_s::head, utils_list_s::length, and utils_list_node_init().

+ +

Referenced by arax_accel_init(), arax_object_repo_init(), arax_pipe_init(), async_meta_init_once(), and async_semaphore_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_list_node_add()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void utils_list_node_add (utils_list_node_shead,
utils_list_node_snode 
)
+
+ +

Definition at line 12 of file list.c.

+ +

References utils_list_node::next, and utils_list_node::prev.

+ +

Referenced by utils_list_add().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_list_node_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void utils_list_node_init (utils_list_node_snode,
void * owner 
)
+
+

Initialize a utils_list_node_s.

+
Parameters
+ + + +
nodeThe utils_list_node_s to be initialized.
ownerPointer to the node 'usefull' data
+
+
+ +

Definition at line 74 of file list.c.

+ +

References utils_list_node::next, utils_list_node::owner, and utils_list_node::prev.

+ +

Referenced by arax_object_register(), arax_vaccel_init(), async_completion_init(), and utils_list_init().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_list_node_linked()

+ +
+
+ + + + + + + + +
int utils_list_node_linked (utils_list_node_snode)
+
+

Return if node is part of some list.

+
Parameters
+ + +
nodeThe utils_list_node_s to be initialized.
+
+
+
Returns
0 if not is not part of a list, non zero if it is part of a list.
+ +

Definition at line 81 of file list.c.

+ +

References utils_list_node::next.

+ +

Referenced by arax_pipe_remove_orphan_vaccel().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_list_pop_head()

+ +
+
+ + + + + + + + +
utils_list_node_s * utils_list_pop_head (utils_list_slist)
+
+

Remove first node from list and return to caller.

+
Note
Not thread safe!
+
Parameters
+ + +
listA valid utils_list_s instance.
+
+
+
Returns
The node that was first in list, NULL if list was empty
+ +

Definition at line 36 of file list.c.

+ +

References utils_list_s::head, utils_list_s::length, utils_list_node::next, and utils_list_del().

+ +

Referenced by arax_pipe_get_orphan_vaccel().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_list_pop_tail()

+ +
+
+ + + + + + + + +
utils_list_node_s * utils_list_pop_tail (utils_list_slist)
+
+

Remove last node from list and return to caller.

+
Note
Not thread safe!
+
Parameters
+ + +
listA valid utils_list_s instance.
+
+
+
Returns
The node that was last in list, NULL if list was empty
+ +

Definition at line 47 of file list.c.

+ +

References utils_list_s::head, utils_list_s::length, utils_list_node::prev, and utils_list_del().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ utils_list_to_array()

+ +
+
+ + + + + + + + + + + + + + + + + + +
size_t utils_list_to_array (utils_list_slist,
void ** array 
)
+
+

Convert list to array and return number of entries.

+

If array is NULL just return the number of list node in list. If array is not NULL, fill array with the node->owner values of all nodes.

+
Parameters
+ + + +
listA valid utils_list_s instance.
arrayAn array of pointers to all node->owner.
+
+
+
Returns
Number of elements in list.
+ +

Definition at line 58 of file list.c.

+ +

References utils_list_s::length, utils_list_node::owner, and utils_list_for_each.

+ +

Referenced by arax_accel_get_assigned_vaccels().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01958.js b/a01958.js new file mode 100644 index 00000000..2793ab77 --- /dev/null +++ b/a01958.js @@ -0,0 +1,12 @@ +var a01958 = +[ + [ "utils_list_add", "a01958.html#ae06a9e78e6a4f6c9c8afcf0f4862ce29", null ], + [ "utils_list_del", "a01958.html#a0c85e5516222ab7e7fc354c614760ec5", null ], + [ "utils_list_init", "a01958.html#ab36e49d2e694b1da49504a689ed48e4a", null ], + [ "utils_list_node_add", "a01958.html#a5c575f52a42e0e0d2fb41bda2d1268ce", null ], + [ "utils_list_node_init", "a01958.html#a63f2791c9b5c8e2fa15967cfafb7ccbb", null ], + [ "utils_list_node_linked", "a01958.html#ab0c44e095ebfd8721de878c42abcbbdc", null ], + [ "utils_list_pop_head", "a01958.html#a4cace11e17315f11b44dd9e3eabbf72a", null ], + [ "utils_list_pop_tail", "a01958.html#a00a9ced40b89f30fa314c4534bfb0922", null ], + [ "utils_list_to_array", "a01958.html#ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d", null ] +]; \ No newline at end of file diff --git a/a01958_a00a9ced40b89f30fa314c4534bfb0922_cgraph.map b/a01958_a00a9ced40b89f30fa314c4534bfb0922_cgraph.map new file mode 100644 index 00000000..ec9628d4 --- /dev/null +++ b/a01958_a00a9ced40b89f30fa314c4534bfb0922_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01958_a00a9ced40b89f30fa314c4534bfb0922_cgraph.md5 b/a01958_a00a9ced40b89f30fa314c4534bfb0922_cgraph.md5 new file mode 100644 index 00000000..bf231089 --- /dev/null +++ b/a01958_a00a9ced40b89f30fa314c4534bfb0922_cgraph.md5 @@ -0,0 +1 @@ +479ed354e260321b82e11f67aa971340 \ No newline at end of file diff --git a/a01958_a00a9ced40b89f30fa314c4534bfb0922_cgraph.svg b/a01958_a00a9ced40b89f30fa314c4534bfb0922_cgraph.svg new file mode 100644 index 00000000..a853a953 --- /dev/null +++ b/a01958_a00a9ced40b89f30fa314c4534bfb0922_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +utils_list_pop_tail + + +Node1 + + +utils_list_pop_tail + + + + + +Node2 + + +utils_list_del + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01958_a0c85e5516222ab7e7fc354c614760ec5_icgraph.map b/a01958_a0c85e5516222ab7e7fc354c614760ec5_icgraph.map new file mode 100644 index 00000000..682a22dd --- /dev/null +++ b/a01958_a0c85e5516222ab7e7fc354c614760ec5_icgraph.map @@ -0,0 +1,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01958_a0c85e5516222ab7e7fc354c614760ec5_icgraph.md5 b/a01958_a0c85e5516222ab7e7fc354c614760ec5_icgraph.md5 new file mode 100644 index 00000000..619a5ebf --- /dev/null +++ b/a01958_a0c85e5516222ab7e7fc354c614760ec5_icgraph.md5 @@ -0,0 +1 @@ +64e3b994d7defaf8b8d99f7ce33a391e \ No newline at end of file diff --git a/a01958_a0c85e5516222ab7e7fc354c614760ec5_icgraph.svg b/a01958_a0c85e5516222ab7e7fc354c614760ec5_icgraph.svg new file mode 100644 index 00000000..60cbed1a --- /dev/null +++ b/a01958_a0c85e5516222ab7e7fc354c614760ec5_icgraph.svg @@ -0,0 +1,991 @@ + + + + + + +utils_list_del + + +Node1 + + +utils_list_del + + + + + +Node2 + + +arax_accel_del_vaccel + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +arax_object_ref_dec + + + + + +Node1->Node4 + + + + + + + + +Node25 + + +arax_object_ref_dec +_pre_locked + + + + + +Node1->Node25 + + + + + + + + +Node28 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node1->Node28 + + + + + + + + +Node35 + + +async_semaphore_inc + + + + + +Node1->Node35 + + + + + + + + +Node46 + + +async_thread + + + + + +Node1->Node46 + + + + + + + + +Node56 + + +utils_list_pop_head + + + + + +Node1->Node56 + + + + + + + + +Node58 + + +utils_list_pop_tail + + + + + +Node1->Node58 + + + + + + + + +Node3 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +arax_accel_list_free + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_accel_release + + + + + +Node4->Node6 + + + + + + + + +Node8 + + +arax_data_free + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +arax_data_migrate_accel + + + + + +Node4->Node9 + + + + + + + + +Node18 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node4->Node18 + + + + + + + + +Node21 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node4->Node21 + + + + + + + + +Node22 + + +arax_pipe_delete_accel + + + + + +Node4->Node22 + + + + + + + + +Node23 + + +arax_proc_put + + + + + +Node4->Node23 + + + + + + + + +Node24 + + +arax_task_free + + + + + +Node4->Node24 + + + + + + + + +Node7 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node6->Node7 + + + + + + + + +Node10 + + +arax_data_arg_init + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_input_init + + + + + +Node9->Node11 + + + + + + + + +Node20 + + +arax_data_output_init + + + + + +Node9->Node20 + + + + + + + + +Node12 + + +arax_task_alloc + + + + + +Node11->Node12 + + + + + + + + +Node20->Node12 + + + + + + + + +Node15 + + +arax_data_get + + + + + +Node23->Node15 + + + + + + + + +Node17 + + +arax_data_set + + + + + +Node23->Node17 + + + + + + + + +Node16 + + +arax_data_memcpy + + + + + +Node15->Node16 + + + + + + + + +Node17->Node16 + + + + + + + + +Node24->Node15 + + + + + + + + +Node14 + + +arax_data_allocate +_remote + + + + + +Node24->Node14 + + + + + + + + +Node19 + + +arax_task_issue_sync + + + + + +Node24->Node19 + + + + + + + + +Node26 + + +arax_accel_list_free +_pre_locked + + + + + +Node25->Node26 + + + + + + + + +Node27 + + +arax_accel_list + + + + + +Node26->Node27 + + + + + + + + +Node28->Node3 + + + + + + + + +Node29 + + +arax_accel_add_vaccel + + + + + +Node28->Node29 + + + + + + + + +Node30 + + +arax_accel_set_physical + + + + + +Node29->Node30 + + + + + + + + +Node31 + + +arax_vaccel_init + + + + + +Node29->Node31 + + + + + + + + +Node32 + + +arax_accel_acquire_phys + + + + + +Node31->Node32 + + + + + + + + +Node33 + + +arax_accel_acquire_type + + + + + +Node31->Node33 + + + + + + + + +Node34 + + +arax_accel_init + + + + + +Node31->Node34 + + + + + + + + +Node36 + + +async_condition_notify + + + + + +Node35->Node36 + + + + + + + + +Node36->Node2 + + + + + + + + +Node36->Node29 + + + + + + + + +Node37 + + +arax_accel_add_task + + + + + +Node36->Node37 + + + + + + + + +Node40 + + +arax_controller_init_done + + + + + +Node36->Node40 + + + + + + + + +Node41 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node36->Node41 + + + + + + + + +Node42 + + +arax_pipe_orphan_stop + + + + + +Node36->Node42 + + + + + + + + +Node43 + + +arax_throttle_size_inc + + + + + +Node36->Node43 + + + + + + + + +Node38 + + +arax_vaccel_add_task + + + + + +Node37->Node38 + + + + + + + + +Node41->Node31 + + + + + + + + +Node44 + + +arax_accel_size_inc + + + + + +Node43->Node44 + + + + + + + + +Node45 + + +arax_pipe_size_inc + + + + + +Node43->Node45 + + + + + + + + +Node45->Node4 + + + + + + + + +Node45->Node25 + + + + + + + + +Node47 + + +async_meta_init_always + + + + + +Node46->Node47 + + + + + + + + +Node48 + + +_arax_init + + + + + +Node47->Node48 + + + + + + + + +Node49 + + +arax_controller_init +_start + + + + + +Node48->Node49 + + + + + + + + +Node57 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node56->Node57 + + + + + + + + diff --git a/a01958_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.map b/a01958_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.map new file mode 100644 index 00000000..11f987b9 --- /dev/null +++ b/a01958_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01958_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.md5 b/a01958_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.md5 new file mode 100644 index 00000000..212afa1b --- /dev/null +++ b/a01958_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.md5 @@ -0,0 +1 @@ +1a7dd730f66f760b7e8d68b9c59ba61e \ No newline at end of file diff --git a/a01958_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.svg b/a01958_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.svg new file mode 100644 index 00000000..6e3b3aaf --- /dev/null +++ b/a01958_a4cace11e17315f11b44dd9e3eabbf72a_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +utils_list_pop_head + + +Node1 + + +utils_list_pop_head + + + + + +Node2 + + +utils_list_del + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01958_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.map b/a01958_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.map new file mode 100644 index 00000000..97acc152 --- /dev/null +++ b/a01958_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01958_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.md5 b/a01958_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.md5 new file mode 100644 index 00000000..6d298df3 --- /dev/null +++ b/a01958_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.md5 @@ -0,0 +1 @@ +4d0bace0f1bd3a1583b7199093a93f30 \ No newline at end of file diff --git a/a01958_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.svg b/a01958_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.svg new file mode 100644 index 00000000..e26482ca --- /dev/null +++ b/a01958_a4cace11e17315f11b44dd9e3eabbf72a_icgraph.svg @@ -0,0 +1,40 @@ + + + + + + +utils_list_pop_head + + +Node1 + + +utils_list_pop_head + + + + + +Node2 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01958_a5c575f52a42e0e0d2fb41bda2d1268ce_icgraph.map b/a01958_a5c575f52a42e0e0d2fb41bda2d1268ce_icgraph.map new file mode 100644 index 00000000..dfe8bcdb --- /dev/null +++ b/a01958_a5c575f52a42e0e0d2fb41bda2d1268ce_icgraph.map @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01958_a5c575f52a42e0e0d2fb41bda2d1268ce_icgraph.md5 b/a01958_a5c575f52a42e0e0d2fb41bda2d1268ce_icgraph.md5 new file mode 100644 index 00000000..a181d58e --- /dev/null +++ b/a01958_a5c575f52a42e0e0d2fb41bda2d1268ce_icgraph.md5 @@ -0,0 +1 @@ +75028e18fb965f20ddb6b97e6da9ac2e \ No newline at end of file diff --git a/a01958_a5c575f52a42e0e0d2fb41bda2d1268ce_icgraph.svg b/a01958_a5c575f52a42e0e0d2fb41bda2d1268ce_icgraph.svg new file mode 100644 index 00000000..c5280120 --- /dev/null +++ b/a01958_a5c575f52a42e0e0d2fb41bda2d1268ce_icgraph.svg @@ -0,0 +1,1125 @@ + + + + + + +utils_list_node_add + + +Node1 + + +utils_list_node_add + + + + + +Node2 + + +utils_list_add + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_add_completion + + + + + +Node2->Node3 + + + + + + + + +Node26 + + +arax_accel_add_vaccel + + + + + +Node2->Node26 + + + + + + + + +Node37 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node2->Node37 + + + + + + + + +Node44 + + +arax_object_register + + + + + +Node2->Node44 + + + + + + + + +Node70 + + +async_semaphore_dec + + + + + +Node2->Node70 + + + + + + + + +Node4 + + +async_completion_wait + + + + + +Node3->Node4 + + + + + + + + +Node71 + + +async_semaphore_inc + + + + + +Node3->Node71 + + + + + + + + +Node5 + + +arax_task_wait_done + + + + + +Node4->Node5 + + + + + + + + +Node11 + + +async_condition_lock + + + + + +Node4->Node11 + + + + + + + + +Node69 + + +async_condition_wait + + + + + +Node4->Node69 + + + + + + + + +Node4->Node70 + + + + + + + + +Node6 + + +arax_task_wait + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_data_allocate +_remote + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_get + + + + + +Node6->Node8 + + + + + + + + +Node10 + + +arax_task_issue_sync + + + + + +Node6->Node10 + + + + + + + + +Node12 + + +_arax_init + + + + + +Node11->Node12 + + + + + + + + +Node20 + + +arax_accel_add_task + + + + + +Node11->Node20 + + + + + + + + +Node11->Node26 + + + + + + + + +Node32 + + +arax_accel_del_vaccel + + + + + +Node11->Node32 + + + + + + + + +Node34 + + +arax_accel_get_assigned +_vaccels + + + + + +Node11->Node34 + + + + + + + + +Node35 + + +arax_accel_wait_for_task + + + + + +Node11->Node35 + + + + + + + + +Node36 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node11->Node36 + + + + + + + + +Node11->Node37 + + + + + + + + +Node38 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node11->Node38 + + + + + + + + +Node39 + + +arax_pipe_orphan_stop + + + + + +Node11->Node39 + + + + + + + + +Node40 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node11->Node40 + + + + + + + + +Node41 + + +arax_throttle_size_dec + + + + + +Node11->Node41 + + + + + + + + +Node51 + + +arax_throttle_size_inc + + + + + +Node11->Node51 + + + + + + + + +Node13 + + +arax_controller_init +_start + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +arax_init + + + + + +Node12->Node14 + + + + + + + + +Node21 + + +arax_vaccel_add_task + + + + + +Node20->Node21 + + + + + + + + +Node27 + + +arax_accel_set_physical + + + + + +Node26->Node27 + + + + + + + + +Node28 + + +arax_vaccel_init + + + + + +Node26->Node28 + + + + + + + + +Node29 + + +arax_accel_acquire_phys + + + + + +Node28->Node29 + + + + + + + + +Node30 + + +arax_accel_acquire_type + + + + + +Node28->Node30 + + + + + + + + +Node31 + + +arax_accel_init + + + + + +Node28->Node31 + + + + + + + + +Node33 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node32->Node33 + + + + + + + + +Node37->Node28 + + + + + + + + +Node40->Node26 + + + + + + + + +Node40->Node33 + + + + + + + + +Node42 + + +arax_accel_size_dec + + + + + +Node41->Node42 + + + + + + + + +Node43 + + +arax_pipe_size_dec + + + + + +Node41->Node43 + + + + + + + + +Node42->Node7 + + + + + + + + +Node43->Node44 + + + + + + + + +Node44->Node28 + + + + + + + + +Node44->Node31 + + + + + + + + +Node45 + + +arax_data_init_aligned + + + + + +Node44->Node45 + + + + + + + + +Node48 + + +arax_proc_init + + + + + +Node44->Node48 + + + + + + + + +Node50 + + +arax_task_alloc + + + + + +Node44->Node50 + + + + + + + + +Node46 + + +arax_data_init + + + + + +Node45->Node46 + + + + + + + + +Node47 + + +ARAX_BUFFER + + + + + +Node46->Node47 + + + + + + + + +Node49 + + +arax_proc_register + + + + + +Node48->Node49 + + + + + + + + +Node23 + + +arax_task_issue + + + + + +Node50->Node23 + + + + + + + + +Node23->Node7 + + + + + + + + +Node23->Node8 + + + + + + + + +Node23->Node10 + + + + + + + + +Node24 + + +arax_data_set + + + + + +Node23->Node24 + + + + + + + + +Node25 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node23->Node25 + + + + + + + + +Node52 + + +arax_accel_size_inc + + + + + +Node51->Node52 + + + + + + + + +Node69->Node12 + + + + + + + + +Node69->Node35 + + + + + + + + +Node69->Node38 + + + + + + + + +Node69->Node41 + + + + + + + + +Node70->Node69 + + + + + + + + +Node72 + + +async_condition_notify + + + + + +Node71->Node72 + + + + + + + + +Node72->Node20 + + + + + + + + +Node72->Node26 + + + + + + + + +Node72->Node32 + + + + + + + + +Node72->Node37 + + + + + + + + +Node72->Node39 + + + + + + + + +Node72->Node51 + + + + + + + + +Node73 + + +arax_controller_init_done + + + + + +Node72->Node73 + + + + + + + + diff --git a/a01958_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.map b/a01958_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.map new file mode 100644 index 00000000..6d2f9fa8 --- /dev/null +++ b/a01958_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.map @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01958_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.md5 b/a01958_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.md5 new file mode 100644 index 00000000..7191d57a --- /dev/null +++ b/a01958_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.md5 @@ -0,0 +1 @@ +433b9e258b453d788d3877451970fe49 \ No newline at end of file diff --git a/a01958_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.svg b/a01958_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.svg new file mode 100644 index 00000000..92163db1 --- /dev/null +++ b/a01958_a63f2791c9b5c8e2fa15967cfafb7ccbb_icgraph.svg @@ -0,0 +1,916 @@ + + + + + + +utils_list_node_init + + +Node1 + + +utils_list_node_init + + + + + +Node2 + + +arax_object_register + + + + + +Node1->Node2 + + + + + + + + +Node17 + + +arax_vaccel_init + + + + + +Node1->Node17 + + + + + + + + +Node20 + + +async_completion_init + + + + + +Node1->Node20 + + + + + + + + +Node39 + + +utils_list_init + + + + + +Node1->Node39 + + + + + + + + +Node3 + + +arax_accel_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_init_aligned + + + + + +Node2->Node4 + + + + + + + + +Node7 + + +arax_proc_init + + + + + +Node2->Node7 + + + + + + + + +Node9 + + +arax_task_alloc + + + + + +Node2->Node9 + + + + + + + + +Node2->Node17 + + + + + + + + +Node5 + + +arax_data_init + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +ARAX_BUFFER + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +arax_proc_register + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +arax_task_issue + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_allocate +_remote + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_data_get + + + + + +Node10->Node12 + + + + + + + + +Node14 + + +arax_data_set + + + + + +Node10->Node14 + + + + + + + + +Node15 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node10->Node15 + + + + + + + + +Node16 + + +arax_task_issue_sync + + + + + +Node10->Node16 + + + + + + + + +Node13 + + +arax_data_memcpy + + + + + +Node12->Node13 + + + + + + + + +Node14->Node13 + + + + + + + + +Node17->Node3 + + + + + + + + +Node18 + + +arax_accel_acquire_phys + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +arax_accel_acquire_type + + + + + +Node17->Node19 + + + + + + + + +Node20->Node9 + + + + + + + + +Node21 + + +async_condition_init + + + + + +Node20->Node21 + + + + + + + + +Node32 + + +async_semaphore_dec + + + + + +Node20->Node32 + + + + + + + + +Node21->Node3 + + + + + + + + +Node22 + + +arax_pipe_init + + + + + +Node21->Node22 + + + + + + + + +Node31 + + +arax_throttle_init + + + + + +Node21->Node31 + + + + + + + + +Node23 + + +_arax_init + + + + + +Node22->Node23 + + + + + + + + +Node24 + + +arax_controller_init +_start + + + + + +Node23->Node24 + + + + + + + + +Node25 + + +arax_init + + + + + +Node23->Node25 + + + + + + + + +Node26 + + +arax_plot_register +_metric + + + + + +Node25->Node26 + + + + + + + + +Node27 + + +arax_ptr_valid + + + + + +Node25->Node27 + + + + + + + + +Node27->Node26 + + + + + + + + +Node28 + + +_arax_assert_obj + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +arax_data_ref + + + + + +Node27->Node29 + + + + + + + + +Node30 + + +arax_data_ref_offset + + + + + +Node27->Node30 + + + + + + + + +Node29->Node30 + + + + + + + + +Node31->Node3 + + + + + + + + +Node31->Node22 + + + + + + + + +Node33 + + +async_condition_wait + + + + + +Node32->Node33 + + + + + + + + +Node33->Node23 + + + + + + + + +Node34 + + +arax_accel_wait_for_task + + + + + +Node33->Node34 + + + + + + + + +Node35 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node33->Node35 + + + + + + + + +Node36 + + +arax_throttle_size_dec + + + + + +Node33->Node36 + + + + + + + + +Node37 + + +arax_accel_size_dec + + + + + +Node36->Node37 + + + + + + + + +Node38 + + +arax_pipe_size_dec + + + + + +Node36->Node38 + + + + + + + + +Node37->Node11 + + + + + + + + +Node38->Node2 + + + + + + + + +Node39->Node3 + + + + + + + + +Node39->Node22 + + + + + + + + +Node40 + + +arax_object_repo_init + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +async_meta_init_once + + + + + +Node39->Node41 + + + + + + + + +Node42 + + +async_semaphore_init + + + + + +Node39->Node42 + + + + + + + + +Node40->Node22 + + + + + + + + +Node41->Node22 + + + + + + + + +Node42->Node21 + + + + + + + + diff --git a/a01958_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.map b/a01958_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.map new file mode 100644 index 00000000..0f6660d4 --- /dev/null +++ b/a01958_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.map @@ -0,0 +1,19 @@ + + + + + + + + + + + + + + + + + + + diff --git a/a01958_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.md5 b/a01958_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.md5 new file mode 100644 index 00000000..99ecec0e --- /dev/null +++ b/a01958_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.md5 @@ -0,0 +1 @@ +6048436c689ef069e5c0651573f2aca5 \ No newline at end of file diff --git a/a01958_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.svg b/a01958_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.svg new file mode 100644 index 00000000..9870d1d8 --- /dev/null +++ b/a01958_ab0c44e095ebfd8721de878c42abcbbdc_icgraph.svg @@ -0,0 +1,166 @@ + + + + + + +utils_list_node_linked + + +Node1 + + +utils_list_node_linked + + + + + +Node2 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_add_vaccel + + + + + +Node2->Node3 + + + + + + + + +Node9 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +arax_accel_set_physical + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_vaccel_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_accel_acquire_phys + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_accel_acquire_type + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +arax_accel_init + + + + + +Node5->Node8 + + + + + + + + diff --git a/a01958_ab36e49d2e694b1da49504a689ed48e4a_cgraph.map b/a01958_ab36e49d2e694b1da49504a689ed48e4a_cgraph.map new file mode 100644 index 00000000..d810b3d4 --- /dev/null +++ b/a01958_ab36e49d2e694b1da49504a689ed48e4a_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01958_ab36e49d2e694b1da49504a689ed48e4a_cgraph.md5 b/a01958_ab36e49d2e694b1da49504a689ed48e4a_cgraph.md5 new file mode 100644 index 00000000..a616adf0 --- /dev/null +++ b/a01958_ab36e49d2e694b1da49504a689ed48e4a_cgraph.md5 @@ -0,0 +1 @@ +4179309071c4560f5db028bed95b07fd \ No newline at end of file diff --git a/a01958_ab36e49d2e694b1da49504a689ed48e4a_cgraph.svg b/a01958_ab36e49d2e694b1da49504a689ed48e4a_cgraph.svg new file mode 100644 index 00000000..3bbdffff --- /dev/null +++ b/a01958_ab36e49d2e694b1da49504a689ed48e4a_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +utils_list_init + + +Node1 + + +utils_list_init + + + + + +Node2 + + +utils_list_node_init + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01958_ab36e49d2e694b1da49504a689ed48e4a_icgraph.map b/a01958_ab36e49d2e694b1da49504a689ed48e4a_icgraph.map new file mode 100644 index 00000000..988d7fd2 --- /dev/null +++ b/a01958_ab36e49d2e694b1da49504a689ed48e4a_icgraph.map @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01958_ab36e49d2e694b1da49504a689ed48e4a_icgraph.md5 b/a01958_ab36e49d2e694b1da49504a689ed48e4a_icgraph.md5 new file mode 100644 index 00000000..26204852 --- /dev/null +++ b/a01958_ab36e49d2e694b1da49504a689ed48e4a_icgraph.md5 @@ -0,0 +1 @@ +fa268811e00e55a40b80f2cea14c5865 \ No newline at end of file diff --git a/a01958_ab36e49d2e694b1da49504a689ed48e4a_icgraph.svg b/a01958_ab36e49d2e694b1da49504a689ed48e4a_icgraph.svg new file mode 100644 index 00000000..3a3ba3ed --- /dev/null +++ b/a01958_ab36e49d2e694b1da49504a689ed48e4a_icgraph.svg @@ -0,0 +1,365 @@ + + + + + + +utils_list_init + + +Node1 + + +utils_list_init + + + + + +Node2 + + +arax_accel_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_object_repo_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_pipe_init + + + + + +Node1->Node4 + + + + + + + + +Node13 + + +async_meta_init_once + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +async_semaphore_init + + + + + +Node1->Node14 + + + + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +_arax_init + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_controller_init +_start + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_init + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +arax_plot_register +_metric + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_ptr_valid + + + + + +Node7->Node9 + + + + + + + + +Node9->Node8 + + + + + + + + +Node10 + + +_arax_assert_obj + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_ref + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +arax_data_ref_offset + + + + + +Node9->Node12 + + + + + + + + +Node11->Node12 + + + + + + + + +Node13->Node4 + + + + + + + + +Node15 + + +async_condition_init + + + + + +Node14->Node15 + + + + + + + + +Node15->Node2 + + + + + + + + +Node15->Node4 + + + + + + + + +Node16 + + +arax_throttle_init + + + + + +Node15->Node16 + + + + + + + + +Node16->Node2 + + + + + + + + +Node16->Node4 + + + + + + + + diff --git a/a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.map b/a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.map new file mode 100644 index 00000000..8889c606 --- /dev/null +++ b/a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.md5 b/a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.md5 new file mode 100644 index 00000000..e71eb317 --- /dev/null +++ b/a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.md5 @@ -0,0 +1 @@ +478b484785f58e7ec0efd718c122b94c \ No newline at end of file diff --git a/a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.svg b/a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.svg new file mode 100644 index 00000000..2a1571b5 --- /dev/null +++ b/a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +utils_list_add + + +Node1 + + +utils_list_add + + + + + +Node2 + + +utils_list_node_add + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.map b/a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.map new file mode 100644 index 00000000..576872b6 --- /dev/null +++ b/a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.map @@ -0,0 +1,125 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.md5 b/a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.md5 new file mode 100644 index 00000000..99a1ffad --- /dev/null +++ b/a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.md5 @@ -0,0 +1 @@ +01934466697c506d6a5a4d93c4785a91 \ No newline at end of file diff --git a/a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.svg b/a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.svg new file mode 100644 index 00000000..2a3f640f --- /dev/null +++ b/a01958_ae06a9e78e6a4f6c9c8afcf0f4862ce29_icgraph.svg @@ -0,0 +1,1125 @@ + + + + + + +utils_list_add + + +Node1 + + +utils_list_add + + + + + +Node2 + + +_add_completion + + + + + +Node1->Node2 + + + + + + + + +Node25 + + +arax_accel_add_vaccel + + + + + +Node1->Node25 + + + + + + + + +Node36 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node1->Node36 + + + + + + + + +Node43 + + +arax_object_register + + + + + +Node1->Node43 + + + + + + + + +Node69 + + +async_semaphore_dec + + + + + +Node1->Node69 + + + + + + + + +Node3 + + +async_completion_wait + + + + + +Node2->Node3 + + + + + + + + +Node70 + + +async_semaphore_inc + + + + + +Node2->Node70 + + + + + + + + +Node4 + + +arax_task_wait_done + + + + + +Node3->Node4 + + + + + + + + +Node10 + + +async_condition_lock + + + + + +Node3->Node10 + + + + + + + + +Node68 + + +async_condition_wait + + + + + +Node3->Node68 + + + + + + + + +Node3->Node69 + + + + + + + + +Node5 + + +arax_task_wait + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_data_allocate +_remote + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_data_get + + + + + +Node5->Node7 + + + + + + + + +Node9 + + +arax_task_issue_sync + + + + + +Node5->Node9 + + + + + + + + +Node11 + + +_arax_init + + + + + +Node10->Node11 + + + + + + + + +Node19 + + +arax_accel_add_task + + + + + +Node10->Node19 + + + + + + + + +Node10->Node25 + + + + + + + + +Node31 + + +arax_accel_del_vaccel + + + + + +Node10->Node31 + + + + + + + + +Node33 + + +arax_accel_get_assigned +_vaccels + + + + + +Node10->Node33 + + + + + + + + +Node34 + + +arax_accel_wait_for_task + + + + + +Node10->Node34 + + + + + + + + +Node35 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node10->Node35 + + + + + + + + +Node10->Node36 + + + + + + + + +Node37 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node10->Node37 + + + + + + + + +Node38 + + +arax_pipe_orphan_stop + + + + + +Node10->Node38 + + + + + + + + +Node39 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node10->Node39 + + + + + + + + +Node40 + + +arax_throttle_size_dec + + + + + +Node10->Node40 + + + + + + + + +Node50 + + +arax_throttle_size_inc + + + + + +Node10->Node50 + + + + + + + + +Node12 + + +arax_controller_init +_start + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +arax_init + + + + + +Node11->Node13 + + + + + + + + +Node20 + + +arax_vaccel_add_task + + + + + +Node19->Node20 + + + + + + + + +Node26 + + +arax_accel_set_physical + + + + + +Node25->Node26 + + + + + + + + +Node27 + + +arax_vaccel_init + + + + + +Node25->Node27 + + + + + + + + +Node28 + + +arax_accel_acquire_phys + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +arax_accel_acquire_type + + + + + +Node27->Node29 + + + + + + + + +Node30 + + +arax_accel_init + + + + + +Node27->Node30 + + + + + + + + +Node32 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node31->Node32 + + + + + + + + +Node36->Node27 + + + + + + + + +Node39->Node25 + + + + + + + + +Node39->Node32 + + + + + + + + +Node41 + + +arax_accel_size_dec + + + + + +Node40->Node41 + + + + + + + + +Node42 + + +arax_pipe_size_dec + + + + + +Node40->Node42 + + + + + + + + +Node41->Node6 + + + + + + + + +Node42->Node43 + + + + + + + + +Node43->Node27 + + + + + + + + +Node43->Node30 + + + + + + + + +Node44 + + +arax_data_init_aligned + + + + + +Node43->Node44 + + + + + + + + +Node47 + + +arax_proc_init + + + + + +Node43->Node47 + + + + + + + + +Node49 + + +arax_task_alloc + + + + + +Node43->Node49 + + + + + + + + +Node45 + + +arax_data_init + + + + + +Node44->Node45 + + + + + + + + +Node46 + + +ARAX_BUFFER + + + + + +Node45->Node46 + + + + + + + + +Node48 + + +arax_proc_register + + + + + +Node47->Node48 + + + + + + + + +Node22 + + +arax_task_issue + + + + + +Node49->Node22 + + + + + + + + +Node22->Node6 + + + + + + + + +Node22->Node7 + + + + + + + + +Node22->Node9 + + + + + + + + +Node23 + + +arax_data_set + + + + + +Node22->Node23 + + + + + + + + +Node24 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node22->Node24 + + + + + + + + +Node51 + + +arax_accel_size_inc + + + + + +Node50->Node51 + + + + + + + + +Node52 + + +arax_pipe_size_inc + + + + + +Node50->Node52 + + + + + + + + +Node68->Node11 + + + + + + + + +Node68->Node34 + + + + + + + + +Node68->Node37 + + + + + + + + +Node68->Node40 + + + + + + + + +Node69->Node68 + + + + + + + + +Node71 + + +async_condition_notify + + + + + +Node70->Node71 + + + + + + + + +Node71->Node19 + + + + + + + + +Node71->Node25 + + + + + + + + +Node71->Node31 + + + + + + + + +Node71->Node36 + + + + + + + + +Node71->Node38 + + + + + + + + +Node71->Node50 + + + + + + + + +Node72 + + +arax_controller_init_done + + + + + +Node71->Node72 + + + + + + + + diff --git a/a01958_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.map b/a01958_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.map new file mode 100644 index 00000000..1ea34bee --- /dev/null +++ b/a01958_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01958_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.md5 b/a01958_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.md5 new file mode 100644 index 00000000..f3c3875e --- /dev/null +++ b/a01958_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.md5 @@ -0,0 +1 @@ +dd6488f9c3eb573dfe9552e799f46e28 \ No newline at end of file diff --git a/a01958_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.svg b/a01958_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.svg new file mode 100644 index 00000000..384bd3c2 --- /dev/null +++ b/a01958_ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d_icgraph.svg @@ -0,0 +1,40 @@ + + + + + + +utils_list_to_array + + +Node1 + + +utils_list_to_array + + + + + +Node2 + + +arax_accel_get_assigned +_vaccels + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01958_source.html b/a01958_source.html new file mode 100644 index 00000000..a9b591f4 --- /dev/null +++ b/a01958_source.html @@ -0,0 +1,210 @@ + + + + + + + +Arax: list.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
list.c
+
+
+Go to the documentation of this file.
1#include "list.h"
+
2
+ +
4{
+
5 utils_list_s *list = mem;
+
6
+
7 list->length = 0;
+
8 utils_list_node_init(&(list->head), list);
+
9 return list;
+
10}
+
11
+ +
13{
+
14 head->next->prev = node;
+
15 node->next = head->next;
+
16 node->prev = head;
+
17 head->next = node;
+
18}
+
19
+ +
21{
+
22 utils_list_node_add(&(list->head), node);
+
23 list->length++;
+
24}
+
25
+ +
27{
+
28 node->next->prev = node->prev;
+
29 node->prev->next = node->next;
+
30 list->length--;
+
31 node->next = node;
+
32 node->prev = node;
+
33 return node;
+
34}
+
35
+ +
37{
+
38 if (list->length == 0)
+
39 return 0;
+
40
+
41 utils_list_node_s *head = list->head.next;
+
42
+
43 utils_list_del(list, head);
+
44 return head;
+
45}
+
46
+ +
48{
+
49 if (list->length == 0)
+
50 return 0;
+
51
+
52 utils_list_node_s *tail = list->head.prev;
+
53
+
54 utils_list_del(list, tail);
+
55 return tail;
+
56}
+
57
+
58size_t utils_list_to_array(utils_list_s *list, void **array)
+
59{
+ +
61
+
62 if (!array)
+
63 return list->length;
+
64
+
65 if (list->length) {
+
66 utils_list_for_each(*list, itr){
+
67 *array = itr->owner;
+
68 array++;
+
69 }
+
70 }
+
71 return list->length;
+
72}
+
73
+ +
75{
+
76 node->next = node;
+
77 node->prev = node;
+
78 node->owner = owner;
+
79}
+
80
+ +
82{
+
83 return node->next != node;
+
84}
+ +
#define utils_list_for_each(list, itr)
Definition list.h:96
+
utils_list_node_s * utils_list_pop_tail(utils_list_s *list)
Definition list.c:47
+
utils_list_node_s * utils_list_del(utils_list_s *list, utils_list_node_s *node)
Definition list.c:26
+
utils_list_node_s * utils_list_pop_head(utils_list_s *list)
Definition list.c:36
+
void utils_list_node_add(utils_list_node_s *head, utils_list_node_s *node)
Definition list.c:12
+
void utils_list_node_init(utils_list_node_s *node, void *owner)
Definition list.c:74
+
int utils_list_node_linked(utils_list_node_s *node)
Definition list.c:81
+
utils_list_s * utils_list_init(void *mem)
Definition list.c:3
+
void utils_list_add(utils_list_s *list, utils_list_node_s *node)
Definition list.c:20
+
size_t utils_list_to_array(utils_list_s *list, void **array)
Definition list.c:58
+ +
struct utils_list_node * prev
Definition list.h:13
+
struct utils_list_node * next
Definition list.h:12
+
void * owner
Definition list.h:14
+ +
utils_list_node_s head
Definition list.h:18
+
size_t length
Definition list.h:19
+
+
+ + + + diff --git a/a01959.map b/a01959.map new file mode 100644 index 00000000..ae3e4a4d --- /dev/null +++ b/a01959.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a01959.md5 b/a01959.md5 new file mode 100644 index 00000000..f3686bad --- /dev/null +++ b/a01959.md5 @@ -0,0 +1 @@ +8ab790c4ffb6714ccbf7d3f3066c46bf \ No newline at end of file diff --git a/a01959.svg b/a01959.svg new file mode 100644 index 00000000..03bae40f --- /dev/null +++ b/a01959.svg @@ -0,0 +1,75 @@ + + + + + + +list.c + + +Node1 + + +list.c + + + + + +Node2 + + +list.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stddef.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node2->Node4 + + + + + + + + diff --git a/a01961.html b/a01961.html new file mode 100644 index 00000000..bbcf5c0f --- /dev/null +++ b/a01961.html @@ -0,0 +1,470 @@ + + + + + + + +Arax: queue.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
queue.c File Reference
+
+
+
#include "queue.h"
+#include <stddef.h>
+#include <stdio.h>
+#include <stdint.h>
+#include <string.h>
+#include "utils/arax_assert.h"
+#include <limits.h>
+
+ + Include dependency graph for queue.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + +

+Macros

#define COMPILER_BARRIER()   asm volatile ("" : : : "memory")
 The Dynamic circular work-stealing deque WITHOUT the dynamic part ;) (https://dl.acm.org/citation.cfm?id=1073974)
 
#define UNLIKELY(cond)   (cond)
 
#define LIKELY(cond)   (cond)
 
#define utils_spinlock_init(V)
 
#define utils_spinlock_lock(V)
 
#define utils_spinlock_unlock(V)
 
+ + + + + + + + + + + +

+Functions

utils_queue_sutils_queue_init (void *buff)
 
unsigned int utils_queue_used_slots (utils_queue_s *q)
 
void * utils_queue_pop (utils_queue_s *q)
 
void * utils_queue_push (utils_queue_s *q, void *data)
 
void * utils_queue_peek (utils_queue_s *q)
 
+

Macro Definition Documentation

+ +

◆ COMPILER_BARRIER

+ +
+
+ + + + + + + +
#define COMPILER_BARRIER()   asm volatile ("" : : : "memory")
+
+ +

The Dynamic circular work-stealing deque WITHOUT the dynamic part ;) (https://dl.acm.org/citation.cfm?id=1073974)

+

NOTE: Also WITHOUT pop-front

+

Removes the need for dynamic reallocation and constantly increasing bottom and top

+
Author
Foivos Zakkak zakka.nosp@m.k@ic.nosp@m.s.for.nosp@m.th.g.nosp@m.r
+ +

Definition at line 22 of file queue.c.

+ +
+
+ +

◆ LIKELY

+ +
+
+ + + + + + + + +
#define LIKELY( cond)   (cond)
+
+ +

Definition at line 29 of file queue.c.

+ +
+
+ +

◆ UNLIKELY

+ +
+
+ + + + + + + + +
#define UNLIKELY( cond)   (cond)
+
+ +

Definition at line 28 of file queue.c.

+ +
+
+ +

◆ utils_spinlock_init

+ +
+
+ + + + + + + + +
#define utils_spinlock_init( V)
+
+ +

Definition at line 34 of file queue.c.

+ +
+
+ +

◆ utils_spinlock_lock

+ +
+
+ + + + + + + + +
#define utils_spinlock_lock( V)
+
+ +

Definition at line 35 of file queue.c.

+ +
+
+ +

◆ utils_spinlock_unlock

+ +
+
+ + + + + + + + +
#define utils_spinlock_unlock( V)
+
+ +

Definition at line 36 of file queue.c.

+ +
+
+

Function Documentation

+ +

◆ utils_queue_init()

+ +
+
+ + + + + + + + +
utils_queue_s * utils_queue_init (void * buff)
+
+

Initialize a queue at the memory pointed by buff.

+
Parameters
+ + +
buffAllocated buffer.
+
+
+
Returns
queue instance.NULL on failure.
+ +

Definition at line 39 of file queue.c.

+ +

References arax_assert, and utils_spinlock_init.

+ +

Referenced by arax_vaccel_init().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_queue_peek()

+ +
+
+ + + + + + + + +
void * utils_queue_peek (utils_queue_sq)
+
+

Peek first element from queue if any

+
Parameters
+ + +
qValid queue instance pointer.
+
+
+
Returns
Data pointer, NULL on failure.
+ +

Definition at line 126 of file queue.c.

+ +

References queue::entries.

+ +
+
+ +

◆ utils_queue_pop()

+ +
+
+ + + + + + + + +
void * utils_queue_pop (utils_queue_sq)
+
+

Pop data from queue.

+
Parameters
+ + +
qValid queue instance pointer.
+
+
+
Returns
Data pointer, NULL on failure.
+ +

Definition at line 63 of file queue.c.

+ +

References arax_assert, and queue::entries.

+ +
+
+ +

◆ utils_queue_push()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void * utils_queue_push (utils_queue_sq,
void * data 
)
+
+

Add data to an queue

+
Parameters
+ + + +
qValid queue instance pointer.
dataNon NULL pointer to data.
+
+
+
Returns
Equal to data, NULL on failure.
+ +

Definition at line 89 of file queue.c.

+ +

References arax_assert, queue::entries, utils_spinlock_lock, and utils_spinlock_unlock.

+ +

Referenced by arax_vaccel_add_task().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ utils_queue_used_slots()

+ +
+
+ + + + + + + + +
unsigned int utils_queue_used_slots (utils_queue_sq)
+
+

Return number of used slots in the queue.

+

NOTE: Since this is a concurrent queue the value returned by this function may not always reflect the true state of the queue

+
Parameters
+ + +
qValid queue instance pointer.
+
+
+
Returns
Number of used slots in queue.
+ +

Definition at line 51 of file queue.c.

+ +

Referenced by arax_vaccel_queue_size().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a01961.js b/a01961.js new file mode 100644 index 00000000..69e91247 --- /dev/null +++ b/a01961.js @@ -0,0 +1,14 @@ +var a01961 = +[ + [ "COMPILER_BARRIER", "a01961.html#a99ad0e26d85f7be6473a2c23dbfaf4e1", null ], + [ "LIKELY", "a01961.html#a19c8a29a0efa439fe0df43e3c80e8439", null ], + [ "UNLIKELY", "a01961.html#a9bc47b0f2ca95a82343eaf253567b354", null ], + [ "utils_spinlock_init", "a01961.html#a48dab07b5af9a45ad2324cddca2111d0", null ], + [ "utils_spinlock_lock", "a01961.html#a12384163d480f80d5728efb744aba7c0", null ], + [ "utils_spinlock_unlock", "a01961.html#a8b02b87f20799fecba9a0f2132c2e5bf", null ], + [ "utils_queue_init", "a01961.html#a49c353188156b1df4463a5fc7f7bc25e", null ], + [ "utils_queue_peek", "a01961.html#a88a8ed68fcdf9e38ebae44935d735c2d", null ], + [ "utils_queue_pop", "a01961.html#a8dee44046246efe133935d48d2cc387e", null ], + [ "utils_queue_push", "a01961.html#a9fae55b169121c4851bb7c0adf4eac47", null ], + [ "utils_queue_used_slots", "a01961.html#a5d84d59bded666fdcf1a8e949cb56a6a", null ] +]; \ No newline at end of file diff --git a/a01961_a49c353188156b1df4463a5fc7f7bc25e_icgraph.map b/a01961_a49c353188156b1df4463a5fc7f7bc25e_icgraph.map new file mode 100644 index 00000000..b6f31d60 --- /dev/null +++ b/a01961_a49c353188156b1df4463a5fc7f7bc25e_icgraph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/a01961_a49c353188156b1df4463a5fc7f7bc25e_icgraph.md5 b/a01961_a49c353188156b1df4463a5fc7f7bc25e_icgraph.md5 new file mode 100644 index 00000000..7f3234a4 --- /dev/null +++ b/a01961_a49c353188156b1df4463a5fc7f7bc25e_icgraph.md5 @@ -0,0 +1 @@ +eb8e38de84b34969e7cc55a152b3ad2e \ No newline at end of file diff --git a/a01961_a49c353188156b1df4463a5fc7f7bc25e_icgraph.svg b/a01961_a49c353188156b1df4463a5fc7f7bc25e_icgraph.svg new file mode 100644 index 00000000..07a48f3b --- /dev/null +++ b/a01961_a49c353188156b1df4463a5fc7f7bc25e_icgraph.svg @@ -0,0 +1,93 @@ + + + + + + +utils_queue_init + + +Node1 + + +utils_queue_init + + + + + +Node2 + + +arax_vaccel_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_acquire_phys + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_accel_acquire_type + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_accel_init + + + + + +Node2->Node5 + + + + + + + + diff --git a/a01961_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.map b/a01961_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.map new file mode 100644 index 00000000..a91cdfb3 --- /dev/null +++ b/a01961_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01961_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.md5 b/a01961_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.md5 new file mode 100644 index 00000000..dedbd03e --- /dev/null +++ b/a01961_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.md5 @@ -0,0 +1 @@ +cc567d3455e85722ecf1b6160de50177 \ No newline at end of file diff --git a/a01961_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.svg b/a01961_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.svg new file mode 100644 index 00000000..ffb9c020 --- /dev/null +++ b/a01961_a5d84d59bded666fdcf1a8e949cb56a6a_icgraph.svg @@ -0,0 +1,183 @@ + + + + + + +utils_queue_used_slots + + +Node1 + + +utils_queue_used_slots + + + + + +Node2 + + +arax_vaccel_queue_size + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_add_vaccel + + + + + +Node2->Node3 + + + + + + + + +Node9 + + +arax_accel_del_vaccel + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +arax_accel_set_physical + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_vaccel_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_accel_acquire_phys + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_accel_acquire_type + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +arax_accel_init + + + + + +Node5->Node8 + + + + + + + + +Node10 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node9->Node10 + + + + + + + + diff --git a/a01961_a9fae55b169121c4851bb7c0adf4eac47_icgraph.map b/a01961_a9fae55b169121c4851bb7c0adf4eac47_icgraph.map new file mode 100644 index 00000000..3a57baf7 --- /dev/null +++ b/a01961_a9fae55b169121c4851bb7c0adf4eac47_icgraph.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01961_a9fae55b169121c4851bb7c0adf4eac47_icgraph.md5 b/a01961_a9fae55b169121c4851bb7c0adf4eac47_icgraph.md5 new file mode 100644 index 00000000..4d128506 --- /dev/null +++ b/a01961_a9fae55b169121c4851bb7c0adf4eac47_icgraph.md5 @@ -0,0 +1 @@ +3b077a3794f5d582a7e47a4b510b2d4d \ No newline at end of file diff --git a/a01961_a9fae55b169121c4851bb7c0adf4eac47_icgraph.svg b/a01961_a9fae55b169121c4851bb7c0adf4eac47_icgraph.svg new file mode 100644 index 00000000..b4df1505 --- /dev/null +++ b/a01961_a9fae55b169121c4851bb7c0adf4eac47_icgraph.svg @@ -0,0 +1,193 @@ + + + + + + +utils_queue_push + + +Node1 + + +utils_queue_push + + + + + +Node2 + + +arax_vaccel_add_task + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_task_submit + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_task_issue + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data_allocate +_remote + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_data_get + + + + + +Node4->Node6 + + + + + + + + +Node8 + + +arax_data_set + + + + + +Node4->Node8 + + + + + + + + +Node9 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +arax_task_issue_sync + + + + + +Node4->Node10 + + + + + + + + +Node7 + + +arax_data_memcpy + + + + + +Node6->Node7 + + + + + + + + +Node8->Node7 + + + + + + + + diff --git a/a01961_source.html b/a01961_source.html new file mode 100644 index 00000000..c228cc20 --- /dev/null +++ b/a01961_source.html @@ -0,0 +1,251 @@ + + + + + + + +Arax: queue.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
queue.c
+
+
+Go to the documentation of this file.
1
+
14#include "queue.h"
+
15#include <stddef.h>
+
16#include <stdio.h>
+
17#include <stdint.h>
+
18#include <string.h>
+
19#include "utils/arax_assert.h"
+
20#include <limits.h>
+
21
+
22#define COMPILER_BARRIER() asm volatile ("" : : : "memory")
+
23
+
24#ifdef __GNUC__
+
25#define UNLIKELY(cond) __builtin_expect(cond, 0)
+
26#define LIKELY(cond) __builtin_expect(cond, 1)
+
27#else /* ifdef __GNUC__ */
+
28#define UNLIKELY(cond) (cond)
+
29#define LIKELY(cond) (cond)
+
30#endif /* ifdef __GNUC__ */
+
31
+
32#ifndef UTILS_QUEUE_MPMC
+
33// No spinlock, so define spin functions to nop
+
34#define utils_spinlock_init(V)
+
35#define utils_spinlock_lock(V)
+
36#define utils_spinlock_unlock(V)
+
37#endif
+
38
+ +
40{
+
41 arax_assert(!( UTILS_QUEUE_CAPACITY & (UTILS_QUEUE_CAPACITY - 1) ) );
+
42
+
43 /* Zero memory */
+
44 memset(buff, 0, sizeof(struct queue) );
+
45
+
46 utils_spinlock_init(&(((utils_queue_s *) buff)->lock));
+
47
+
48 return (utils_queue_s *) buff;
+
49}
+
50
+ +
52{
+
53 register int used_slots;
+
54
+
55 used_slots = q->bottom - q->top;
+
56
+
57 if (used_slots < 0)
+
58 used_slots += UINT16_MAX + 1;
+
59
+
60 return (unsigned int) used_slots;
+
61}
+
62
+ +
64{
+
65 register uint16_t t, b;
+
66 register int i;
+
67 void *ret_val = 0;
+
68
+
69 arax_assert(q);
+
70
+
71 /* Only one thief can succeed in the following critical section */
+
72 t = q->top;
+
73 b = q->bottom;
+
74
+
75 /* If it is empty */
+
76 if (b == t)
+
77 goto RETURN;
+
78
+
79 /* Get the top element */
+
80 i = t & (UTILS_QUEUE_CAPACITY - 1);
+
81 ret_val = q->entries[i];
+
82 if (!__sync_bool_compare_and_swap(&q->top, t, t + 1) )
+
83 ret_val = 0;
+
84
+
85RETURN:
+
86 return ret_val;
+
87}
+
88
+
89void* utils_queue_push(utils_queue_s *q, void *data)
+
90{
+
91 uint16_t b, t;
+
92 int i;
+
93
+
94 arax_assert(data);
+
95 arax_assert(q);
+
96
+
97 utils_spinlock_lock(&(q->lock));
+
98
+
99 b = q->bottom;
+
100 t = q->top;
+
101
+
102 int used_slots = b - t;
+
103
+
104 if (used_slots < 0)
+
105 used_slots += UINT16_MAX + 1;
+
106
+
107 /* If there is no more space */
+
108 if (used_slots == UTILS_QUEUE_CAPACITY) {
+
109 data = 0;
+
110 goto RETURN;
+
111 }
+
112
+
113 i = b & (UTILS_QUEUE_CAPACITY - 1);
+
114 q->entries[i] = data;
+
115 __sync_synchronize();
+
116 q->bottom = b + 1;
+
117
+
118 /* printf("b=%u t=%u\n", ++b, t);
+
119 * arax_assert(((b >> 7) == (t >> 7)) || ((b & (UTILS_QUEUE_CAPACITY-1)) <= (t & (UTILS_QUEUE_CAPACITY)))); */
+
120
+
121RETURN:
+
122 utils_spinlock_unlock(&(q->lock));
+
123 return data;
+
124} /* utils_queue_push */
+
125
+ +
127{
+
128 register uint16_t t, b;
+
129 register int i;
+
130
+
131 /* Only one thief can succeed in the following critical section */
+
132 t = q->top;
+
133 b = q->bottom;
+
134
+
135 /* If it is empty */
+
136 if (b == t)
+
137 return 0;
+
138
+
139 i = t & (UTILS_QUEUE_CAPACITY - 1);
+
140
+
141 return q->entries[i];
+
142}
+ +
#define arax_assert(EXPR)
Definition arax_assert.h:7
+ +
#define utils_spinlock_lock(V)
Definition queue.c:35
+
#define utils_spinlock_init(V)
Definition queue.c:34
+
utils_queue_s * utils_queue_init(void *buff)
Definition queue.c:39
+
unsigned int utils_queue_used_slots(utils_queue_s *q)
Definition queue.c:51
+
void * utils_queue_peek(utils_queue_s *q)
Definition queue.c:126
+
#define utils_spinlock_unlock(V)
Definition queue.c:36
+
void * utils_queue_pop(utils_queue_s *q)
Definition queue.c:63
+
void * utils_queue_push(utils_queue_s *q, void *data)
Definition queue.c:89
+
Definition queue.h:16
+
void * entries[UTILS_QUEUE_CAPACITY]
Definition queue.h:18
+
+
+ + + + diff --git a/a01962.map b/a01962.map new file mode 100644 index 00000000..ccc7a688 --- /dev/null +++ b/a01962.map @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01962.md5 b/a01962.md5 new file mode 100644 index 00000000..2ac0465b --- /dev/null +++ b/a01962.md5 @@ -0,0 +1 @@ +7b69317a05b9a277400c93608c9ba1cb \ No newline at end of file diff --git a/a01962.svg b/a01962.svg new file mode 100644 index 00000000..e391563c --- /dev/null +++ b/a01962.svg @@ -0,0 +1,237 @@ + + + + + + +queue.c + + +Node1 + + +queue.c + + + + + +Node2 + + +queue.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +stddef.h + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +stdint.h + + + + + +Node1->Node4 + + + + + + + + +Node7 + + +utils/arax_assert.h + + + + + +Node1->Node7 + + + + + + + + +Node9 + + +stdio.h + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +string.h + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +limits.h + + + + + +Node1->Node11 + + + + + + + + +Node2->Node3 + + + + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +conf.h + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +spinlock.h + + + + + +Node2->Node6 + + + + + + + + +Node6->Node4 + + + + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +compat.h + + + + + +Node7->Node8 + + + + + + + + diff --git a/a01964.html b/a01964.html new file mode 100644 index 00000000..0c6b4cb0 --- /dev/null +++ b/a01964.html @@ -0,0 +1,613 @@ + + + + + + + +Arax: system.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
system.c File Reference
+
+
+
#include "system.h"
+#include <sys/stat.h>
+#include <string.h>
+#include <execinfo.h>
+#include <sys/syscall.h>
+#include <unistd.h>
+#include <stdio.h>
+#include <stdlib.h>
+#include <pwd.h>
+#include <fcntl.h>
+#include <sys/mman.h>
+
+ + Include dependency graph for system.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + +

+Macros

#define FMT   "%*s%*s"
 
#define MID(LEN, STR)   (int) (LEN / 2 + strlen(STR)), STR, (int) (LEN / 2 - strlen(STR)), " "
 
+ + + + + + + + + + + + + + + + + + + + + +

+Functions

size_t system_total_memory ()
 
char * system_home_path ()
 
const char * system_env_var (const char *var)
 
int system_mmap (void **base, int *fd, const char *file, size_t shm_size, size_t shm_off, int truncate)
 
off_t system_file_size (const char *file)
 
const char * system_exec_name ()
 
int system_process_id ()
 
int system_thread_id ()
 
char * formatStackLine (const char *bt_sym, int *cwidths, char *dest)
 
const char * system_backtrace (unsigned int skip)
 
+ + + +

+Variables

static char __backtraceStr [32768]
 
+

Macro Definition Documentation

+ +

◆ FMT

+ +
+
+ + + + +
#define FMT   "%*s%*s"
+
+ +

Definition at line 149 of file system.c.

+ +
+
+ +

◆ MID

+ +
+
+ + + + + + + + + + + + + + + + + + +
#define MID( LEN,
 STR 
)   (int) (LEN / 2 + strlen(STR)), STR, (int) (LEN / 2 - strlen(STR)), " "
+
+ +

Definition at line 150 of file system.c.

+ +
+
+

Function Documentation

+ +

◆ formatStackLine()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
char * formatStackLine (const char * bt_sym,
int * cwidths,
char * dest 
)
+
+ +

Definition at line 101 of file system.c.

+ +

Referenced by system_backtrace().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ system_backtrace()

+ +
+
+ + + + + + + + +
const char * system_backtrace (unsigned int skip)
+
+

Get stack backtrace for calling thread. Returned string does not end with a new line.

+
Note
Do not free or modify returned value
+
Parameters
+ + +
skipNumber of functions to skip from trace.0 will show up to the caller.
+
+
+
Returns
formated acktrace
+ +

Definition at line 154 of file system.c.

+ +

References __backtraceStr, FMT, formatStackLine(), and MID.

+ +

Referenced by _arax_assert().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ system_env_var()

+ +
+
+ + + + + + + + +
const char * system_env_var (const char * var)
+
+

Get value of enviroment variable var. NULL if variable not set.

+
Note
Do NOT free returned pointer.
+
Returns
NULL terminated string with enviroment variable value.
+ +

Definition at line 32 of file system.c.

+ +

Referenced by conf_get(), and utils_config_get_source().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ system_exec_name()

+ +
+
+ + + + + + + +
const char * system_exec_name ()
+
+

Get current executable name

+ +

Definition at line 78 of file system.c.

+ +
+
+ +

◆ system_file_size()

+ +
+
+ + + + + + + + +
off_t system_file_size (const char * file)
+
+

Get size of file in bytes.

+
Returns
File size in bytes, 0 on failure.
+ +

Definition at line 68 of file system.c.

+ +

Referenced by conf_get(), and system_mmap().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ system_home_path()

+ +
+
+ + + + + + + +
char * system_home_path ()
+
+

Get current users home directory.

+
Note
Do NOT free returned pointer.
+
Returns
NULL terminated string with home path.
+ +

Definition at line 21 of file system.c.

+ +

Referenced by utils_config_alloc_path().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ system_mmap()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
int system_mmap (void ** base,
int * fd,
const char * file,
size_t shm_size,
size_t shm_off,
int truncate 
)
+
+

Type to mmap file of size shm_size.

+
Parameters
+ + + + + + + +
baseIf succesfull will return mmap location, null otherwise. Initial value is used as a hint.
fdFile descriptor. If succesfull will be positive.Negative on failure.
fileLocation of mmap backing file.
shm_sizeSize of resulting mmap and file.
shm_offSkip bytes from the mmap of file.
truncateTruncate file to shm_size bytes.
+
+
+
Returns
0 on success, check base and fd to figure error.
+ +

Definition at line 37 of file system.c.

+ +

References fd, and system_file_size().

+ +

Referenced by _arax_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ system_process_id()

+ +
+
+ + + + + + + +
int system_process_id ()
+
+

Get PID of current process

+ +

Definition at line 91 of file system.c.

+ +

Referenced by _arax_init(), and arax_exit().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ system_thread_id()

+ +
+
+ + + + + + + +
int system_thread_id ()
+
+

Get thread id of current process thread

+ +

Definition at line 96 of file system.c.

+ +
+
+ +

◆ system_total_memory()

+ +
+
+ + + + + + + +
size_t system_total_memory ()
+
+

Return total memory in bytes.

+
Returns
Total memory in bytes.
+ +

Definition at line 13 of file system.c.

+ +

Referenced by _arax_init().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+

Variable Documentation

+ +

◆ __backtraceStr

+ +
+
+ + + + + +
+ + + + +
char __backtraceStr[32768]
+
+static
+
+ +

Definition at line 152 of file system.c.

+ +

Referenced by system_backtrace().

+ +
+
+
+
+ + + + diff --git a/a01964.js b/a01964.js new file mode 100644 index 00000000..0121b321 --- /dev/null +++ b/a01964.js @@ -0,0 +1,16 @@ +var a01964 = +[ + [ "FMT", "a01964.html#a3dfb8ef0d04e938194da60b4420c7517", null ], + [ "MID", "a01964.html#ad20fe2057831ee479f3115ec3d00d984", null ], + [ "formatStackLine", "a01964.html#a08a7dc8cdb641981a0b564f046dfeb6a", null ], + [ "system_backtrace", "a01964.html#a086232272942235166bf349ef7aacf9d", null ], + [ "system_env_var", "a01964.html#acde493d3889d6f207d1e122cf4bb1b8c", null ], + [ "system_exec_name", "a01964.html#a36e65476d70ed717735bbcfa6c09b75d", null ], + [ "system_file_size", "a01964.html#a86c3bfbf6daaf8172e131aa23dc7393c", null ], + [ "system_home_path", "a01964.html#a0844807fe9679a9a5fbf1bfc9dd78dc6", null ], + [ "system_mmap", "a01964.html#ad8ca0aa2e50dbe9c1827c2d4da814cf6", null ], + [ "system_process_id", "a01964.html#a38809d11e47f180968c23903fed321ef", null ], + [ "system_thread_id", "a01964.html#a1fe891ca2eeb8a21c92ce9868d81ef69", null ], + [ "system_total_memory", "a01964.html#a54bd28e423e19877e5abcb1fe3d12c03", null ], + [ "__backtraceStr", "a01964.html#a0116fa31a0c53892cffee8820f76c510", null ] +]; \ No newline at end of file diff --git a/a01964_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.map b/a01964_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.map new file mode 100644 index 00000000..6663ef83 --- /dev/null +++ b/a01964_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.map @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01964_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.md5 b/a01964_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.md5 new file mode 100644 index 00000000..ef9dfc81 --- /dev/null +++ b/a01964_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.md5 @@ -0,0 +1 @@ +bd91579883bbbaa2f6c0a9a96cce8d4b \ No newline at end of file diff --git a/a01964_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.svg b/a01964_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.svg new file mode 100644 index 00000000..84cdbd71 --- /dev/null +++ b/a01964_a0844807fe9679a9a5fbf1bfc9dd78dc6_icgraph.svg @@ -0,0 +1,311 @@ + + + + + + +system_home_path + + +Node1 + + +system_home_path + + + + + +Node2 + + +utils_config_alloc_path + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +arax_clean + + + + + +Node2->Node11 + + + + + + + + +Node13 + + +async_meta_init_always + + + + + +Node2->Node13 + + + + + + + + +Node14 + + +async_meta_init_once + + + + + +Node2->Node14 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + +Node12 + + +arax_exit + + + + + +Node11->Node12 + + + + + + + + +Node13->Node3 + + + + + + + + +Node15 + + +arax_pipe_init + + + + + +Node14->Node15 + + + + + + + + +Node15->Node3 + + + + + + + + diff --git a/a01964_a086232272942235166bf349ef7aacf9d_cgraph.map b/a01964_a086232272942235166bf349ef7aacf9d_cgraph.map new file mode 100644 index 00000000..7b5f4bbe --- /dev/null +++ b/a01964_a086232272942235166bf349ef7aacf9d_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01964_a086232272942235166bf349ef7aacf9d_cgraph.md5 b/a01964_a086232272942235166bf349ef7aacf9d_cgraph.md5 new file mode 100644 index 00000000..83532637 --- /dev/null +++ b/a01964_a086232272942235166bf349ef7aacf9d_cgraph.md5 @@ -0,0 +1 @@ +bf984d20a404d32bb3052b0b4d892a2b \ No newline at end of file diff --git a/a01964_a086232272942235166bf349ef7aacf9d_cgraph.svg b/a01964_a086232272942235166bf349ef7aacf9d_cgraph.svg new file mode 100644 index 00000000..8d5b5801 --- /dev/null +++ b/a01964_a086232272942235166bf349ef7aacf9d_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +system_backtrace + + +Node1 + + +system_backtrace + + + + + +Node2 + + +formatStackLine + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01964_a086232272942235166bf349ef7aacf9d_icgraph.map b/a01964_a086232272942235166bf349ef7aacf9d_icgraph.map new file mode 100644 index 00000000..e6133157 --- /dev/null +++ b/a01964_a086232272942235166bf349ef7aacf9d_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01964_a086232272942235166bf349ef7aacf9d_icgraph.md5 b/a01964_a086232272942235166bf349ef7aacf9d_icgraph.md5 new file mode 100644 index 00000000..e0951625 --- /dev/null +++ b/a01964_a086232272942235166bf349ef7aacf9d_icgraph.md5 @@ -0,0 +1 @@ +42d7472d9b4682195ee7610a041582ad \ No newline at end of file diff --git a/a01964_a086232272942235166bf349ef7aacf9d_icgraph.svg b/a01964_a086232272942235166bf349ef7aacf9d_icgraph.svg new file mode 100644 index 00000000..8835ab90 --- /dev/null +++ b/a01964_a086232272942235166bf349ef7aacf9d_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +system_backtrace + + +Node1 + + +system_backtrace + + + + + +Node2 + + +_arax_assert + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01964_a08a7dc8cdb641981a0b564f046dfeb6a_icgraph.map b/a01964_a08a7dc8cdb641981a0b564f046dfeb6a_icgraph.map new file mode 100644 index 00000000..acdfb6a7 --- /dev/null +++ b/a01964_a08a7dc8cdb641981a0b564f046dfeb6a_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a01964_a08a7dc8cdb641981a0b564f046dfeb6a_icgraph.md5 b/a01964_a08a7dc8cdb641981a0b564f046dfeb6a_icgraph.md5 new file mode 100644 index 00000000..36330f9b --- /dev/null +++ b/a01964_a08a7dc8cdb641981a0b564f046dfeb6a_icgraph.md5 @@ -0,0 +1 @@ +d8d88565411435c6075c288b491a65ba \ No newline at end of file diff --git a/a01964_a08a7dc8cdb641981a0b564f046dfeb6a_icgraph.svg b/a01964_a08a7dc8cdb641981a0b564f046dfeb6a_icgraph.svg new file mode 100644 index 00000000..a1e256dc --- /dev/null +++ b/a01964_a08a7dc8cdb641981a0b564f046dfeb6a_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +formatStackLine + + +Node1 + + +formatStackLine + + + + + +Node2 + + +system_backtrace + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_assert + + + + + +Node2->Node3 + + + + + + + + diff --git a/a01964_a38809d11e47f180968c23903fed321ef_icgraph.map b/a01964_a38809d11e47f180968c23903fed321ef_icgraph.map new file mode 100644 index 00000000..17f928c0 --- /dev/null +++ b/a01964_a38809d11e47f180968c23903fed321ef_icgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01964_a38809d11e47f180968c23903fed321ef_icgraph.md5 b/a01964_a38809d11e47f180968c23903fed321ef_icgraph.md5 new file mode 100644 index 00000000..c3da82a7 --- /dev/null +++ b/a01964_a38809d11e47f180968c23903fed321ef_icgraph.md5 @@ -0,0 +1 @@ +9d8b3e5fd0d39c3a4c42b11c3e71c63d \ No newline at end of file diff --git a/a01964_a38809d11e47f180968c23903fed321ef_icgraph.svg b/a01964_a38809d11e47f180968c23903fed321ef_icgraph.svg new file mode 100644 index 00000000..937e7a84 --- /dev/null +++ b/a01964_a38809d11e47f180968c23903fed321ef_icgraph.svg @@ -0,0 +1,203 @@ + + + + + + +system_process_id + + +Node1 + + +system_process_id + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +arax_exit + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01964_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.map b/a01964_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.map new file mode 100644 index 00000000..53e69bfc --- /dev/null +++ b/a01964_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01964_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.md5 b/a01964_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.md5 new file mode 100644 index 00000000..4ffbc601 --- /dev/null +++ b/a01964_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.md5 @@ -0,0 +1 @@ +f48f60553c5c0e8d0c28bee47c1749e0 \ No newline at end of file diff --git a/a01964_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.svg b/a01964_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.svg new file mode 100644 index 00000000..5fc49266 --- /dev/null +++ b/a01964_a54bd28e423e19877e5abcb1fe3d12c03_icgraph.svg @@ -0,0 +1,185 @@ + + + + + + +system_total_memory + + +Node1 + + +system_total_memory + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01964_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.map b/a01964_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.map new file mode 100644 index 00000000..7aab62f0 --- /dev/null +++ b/a01964_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.map @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01964_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.md5 b/a01964_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.md5 new file mode 100644 index 00000000..c86ee096 --- /dev/null +++ b/a01964_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.md5 @@ -0,0 +1 @@ +c4066d9755561b07bac1175e30b8b5d3 \ No newline at end of file diff --git a/a01964_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.svg b/a01964_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.svg new file mode 100644 index 00000000..4fd3c7ca --- /dev/null +++ b/a01964_a86c3bfbf6daaf8172e131aa23dc7393c_icgraph.svg @@ -0,0 +1,518 @@ + + + + + + +system_file_size + + +Node1 + + +system_file_size + + + + + +Node2 + + +conf_get + + + + + +Node1->Node2 + + + + + + + + +Node24 + + +system_mmap + + + + + +Node1->Node24 + + + + + + + + +Node3 + + +_utils_config_get_str + + + + + +Node2->Node3 + + + + + + + + +Node22 + + +utils_config_write_str + + + + + +Node2->Node22 + + + + + + + + +Node4 + + +utils_config_get_long + + + + + +Node3->Node4 + + + + + + + + +Node18 + + +utils_config_get_str + + + + + +Node3->Node18 + + + + + + + + +Node5 + + +utils_config_get_int + + + + + +Node4->Node5 + + + + + + + + +Node17 + + +utils_config_get_size + + + + + +Node4->Node17 + + + + + + + + +Node6 + + +utils_config_get_bool + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +_arax_init + + + + + +Node6->Node7 + + + + + + + + +Node15 + + +async_meta_init_once + + + + + +Node6->Node15 + + + + + + + + +Node8 + + +arax_controller_init +_start + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_init + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_plot_register +_metric + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_ptr_valid + + + + + +Node9->Node11 + + + + + + + + +Node11->Node10 + + + + + + + + +Node12 + + +_arax_assert_obj + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +arax_data_ref + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +arax_data_ref_offset + + + + + +Node11->Node14 + + + + + + + + +Node13->Node14 + + + + + + + + +Node16 + + +arax_pipe_init + + + + + +Node15->Node16 + + + + + + + + +Node16->Node7 + + + + + + + + +Node17->Node7 + + + + + + + + +Node18->Node7 + + + + + + + + +Node19 + + +arax_clean + + + + + +Node18->Node19 + + + + + + + + +Node21 + + +async_meta_init_always + + + + + +Node18->Node21 + + + + + + + + +Node20 + + +arax_exit + + + + + +Node19->Node20 + + + + + + + + +Node21->Node7 + + + + + + + + +Node22->Node18 + + + + + + + + +Node23 + + +utils_config_write_long + + + + + +Node22->Node23 + + + + + + + + +Node23->Node4 + + + + + + + + +Node24->Node7 + + + + + + + + diff --git a/a01964_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.map b/a01964_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.map new file mode 100644 index 00000000..696d0b0e --- /dev/null +++ b/a01964_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.map @@ -0,0 +1,62 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01964_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.md5 b/a01964_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.md5 new file mode 100644 index 00000000..1704b446 --- /dev/null +++ b/a01964_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.md5 @@ -0,0 +1 @@ +6e58cd093c6143b2af6a624cebd92675 \ No newline at end of file diff --git a/a01964_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.svg b/a01964_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.svg new file mode 100644 index 00000000..eaba57bc --- /dev/null +++ b/a01964_acde493d3889d6f207d1e122cf4bb1b8c_icgraph.svg @@ -0,0 +1,554 @@ + + + + + + +system_env_var + + +Node1 + + +system_env_var + + + + + +Node2 + + +conf_get + + + + + +Node1->Node2 + + + + + + + + +Node24 + + +utils_config_get_source + + + + + +Node1->Node24 + + + + + + + + +Node3 + + +_utils_config_get_str + + + + + +Node2->Node3 + + + + + + + + +Node22 + + +utils_config_write_str + + + + + +Node2->Node22 + + + + + + + + +Node4 + + +utils_config_get_long + + + + + +Node3->Node4 + + + + + + + + +Node18 + + +utils_config_get_str + + + + + +Node3->Node18 + + + + + + + + +Node5 + + +utils_config_get_int + + + + + +Node4->Node5 + + + + + + + + +Node17 + + +utils_config_get_size + + + + + +Node4->Node17 + + + + + + + + +Node6 + + +utils_config_get_bool + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +_arax_init + + + + + +Node6->Node7 + + + + + + + + +Node15 + + +async_meta_init_once + + + + + +Node6->Node15 + + + + + + + + +Node8 + + +arax_controller_init +_start + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_init + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_plot_register +_metric + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_ptr_valid + + + + + +Node9->Node11 + + + + + + + + +Node11->Node10 + + + + + + + + +Node12 + + +_arax_assert_obj + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +arax_data_ref + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +arax_data_ref_offset + + + + + +Node11->Node14 + + + + + + + + +Node13->Node14 + + + + + + + + +Node16 + + +arax_pipe_init + + + + + +Node15->Node16 + + + + + + + + +Node16->Node7 + + + + + + + + +Node17->Node7 + + + + + + + + +Node18->Node7 + + + + + + + + +Node19 + + +arax_clean + + + + + +Node18->Node19 + + + + + + + + +Node21 + + +async_meta_init_always + + + + + +Node18->Node21 + + + + + + + + +Node20 + + +arax_exit + + + + + +Node19->Node20 + + + + + + + + +Node21->Node7 + + + + + + + + +Node22->Node18 + + + + + + + + +Node23 + + +utils_config_write_long + + + + + +Node22->Node23 + + + + + + + + +Node23->Node4 + + + + + + + + +Node24->Node2 + + + + + + + + +Node24->Node7 + + + + + + + + +Node25 + + +conf_set + + + + + +Node24->Node25 + + + + + + + + +Node25->Node22 + + + + + + + + diff --git a/a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.map b/a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.map new file mode 100644 index 00000000..e2c2c441 --- /dev/null +++ b/a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.md5 b/a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.md5 new file mode 100644 index 00000000..63ec9086 --- /dev/null +++ b/a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.md5 @@ -0,0 +1 @@ +b9a81d31edfe3eca59c769845c394570 \ No newline at end of file diff --git a/a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.svg b/a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.svg new file mode 100644 index 00000000..c28a2867 --- /dev/null +++ b/a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +system_mmap + + +Node1 + + +system_mmap + + + + + +Node2 + + +system_file_size + + + + + +Node1->Node2 + + + + + + + + diff --git a/a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.map b/a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.map new file mode 100644 index 00000000..be27d5c6 --- /dev/null +++ b/a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.md5 b/a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.md5 new file mode 100644 index 00000000..e5852827 --- /dev/null +++ b/a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.md5 @@ -0,0 +1 @@ +aacae3cddf0829faeb76f52195061d3b \ No newline at end of file diff --git a/a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.svg b/a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.svg new file mode 100644 index 00000000..dd7d585c --- /dev/null +++ b/a01964_ad8ca0aa2e50dbe9c1827c2d4da814cf6_icgraph.svg @@ -0,0 +1,185 @@ + + + + + + +system_mmap + + +Node1 + + +system_mmap + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + diff --git a/a01964_source.html b/a01964_source.html new file mode 100644 index 00000000..f643d98a --- /dev/null +++ b/a01964_source.html @@ -0,0 +1,310 @@ + + + + + + + +Arax: system.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
system.c
+
+
+Go to the documentation of this file.
1#include "system.h"
+
2#include <sys/stat.h>
+
3#include <string.h>
+
4#include <execinfo.h>
+
5#include <sys/syscall.h>
+
6#include <unistd.h>
+
7#include <stdio.h>
+
8#include <stdlib.h>
+
9#include <pwd.h>
+
10#include <fcntl.h>
+
11#include <sys/mman.h>
+
12
+ +
14{
+
15 size_t pages = sysconf(_SC_PHYS_PAGES);
+
16 size_t page_size = sysconf(_SC_PAGE_SIZE);
+
17
+
18 return pages * page_size;
+
19}
+
20
+ +
22{
+
23 uid_t uid = getuid();
+
24 struct passwd *pw = getpwuid(uid);
+
25
+
26 if (!pw) // GCOV_EXCL_LINE
+
27 return 0; // GCOV_EXCL_LINE
+
28
+
29 return pw->pw_dir;
+
30}
+
31
+
32const char* system_env_var(const char *var)
+
33{
+
34 return getenv(var);
+
35}
+
36
+
37int system_mmap(void **base, int *fd, const char *file, size_t shm_size, size_t shm_off, int truncate)
+
38{
+
39 if (*fd <= 0) {
+
40 if (file[0] == '/')
+
41 *fd = open(file, O_CREAT | O_RDWR, S_IRWXU);
+
42 else
+
43 *fd = shm_open(file, O_CREAT | O_RDWR, S_IRWXU);
+
44 }
+
45
+
46 if (fd < 0)
+
47 return 1;
+
48
+
49 if (truncate && (system_file_size(file) != shm_size)) { /* If not the correct size */
+
50 if (ftruncate(*fd, shm_size) )
+
51 return 1;
+
52 }
+
53
+
54 #ifdef MMAP_POPULATE
+
55 *base = mmap(*base, shm_size, PROT_READ | PROT_WRITE, MAP_SHARED | MAP_POPULATE, *fd, shm_off);
+
56 #else
+
57 *base = mmap(*base, shm_size, PROT_READ | PROT_WRITE, MAP_SHARED, *fd, shm_off);
+
58 #endif
+
59
+
60 if (MAP_FAILED == *base) {
+
61 *base = 0;
+
62 return 1;
+
63 }
+
64
+
65 return 0;
+
66}
+
67
+
68off_t system_file_size(const char *file)
+
69{
+
70 struct stat stats = { 0 };
+
71
+
72 if (stat(file, &stats))
+
73 return 0;
+
74
+
75 return stats.st_size;
+
76}
+
77
+
78const char* system_exec_name()
+
79{
+
80 static char exec_name[1024];
+
81 const char *proc_exe = "/proc/self/exe";
+
82 size_t size = readlink(proc_exe, exec_name, 1023);
+
83
+
84 if (size == -1)
+
85 snprintf(exec_name, 1023, "%s: Could not readlink!\n", proc_exe);
+
86 else
+
87 exec_name[size] = 0;
+
88 return exec_name;
+
89}
+
90
+ +
92{
+
93 return getpid();
+
94}
+
95
+ +
97{
+
98 return syscall(SYS_gettid);
+
99}
+
100
+
101char* formatStackLine(const char *bt_sym, int *cwidths, char *dest)
+
102{
+
103 char *temp;
+
104 char *pos = strdup(bt_sym);
+
105 size_t bt_sym_len = strlen(bt_sym);
+
106
+
107 for (temp = pos; *temp != 0; temp++) {
+
108 switch (*temp) {
+
109 case '(':
+
110 case ')':
+
111 case '[':
+
112 case ']':
+
113 *temp = ' ';
+
114 }
+
115 }
+
116
+
117 char *exe = malloc(bt_sym_len);
+
118 char *symbol = malloc(bt_sym_len);
+
119 char *addr = malloc(bt_sym_len);
+
120
+
121 sprintf(symbol, "NO_SYMB");
+
122 sprintf(addr, "NO_ADDR");
+
123
+
124 sscanf(pos, "%s %s %s", exe, symbol, addr);
+
125
+
126 if (strcmp(addr, "NO_SYMB") == 0) {
+
127 void *temp = addr;
+
128 addr = symbol;
+
129 symbol = temp;
+
130 sprintf(symbol, "NO_SYMB");
+
131 }
+
132
+
133 if (cwidths[0] < strlen(exe)) cwidths[0] = strlen(exe);
+
134 if (cwidths[1] < strlen(addr)) cwidths[1] = strlen(addr);
+
135 if (cwidths[2] < strlen(symbol)) cwidths[2] = strlen(symbol);
+
136
+
137 if (dest)
+
138 dest += sprintf(dest, "%*s %*s %s", cwidths[0], exe, cwidths[1], addr, symbol);
+
139
+
140
+
141 free(addr);
+
142 free(symbol);
+
143 free(exe);
+
144 free(pos);
+
145
+
146 return dest;
+
147} /* formatStackLine */
+
148
+
149#define FMT "%*s%*s"
+
150#define MID(LEN, STR) (int) (LEN / 2 + strlen(STR)), STR, (int) (LEN / 2 - strlen(STR)), " "
+
151
+
152static char __backtraceStr[32768];
+
153
+
154const char* system_backtrace(unsigned int skip)
+
155{
+
156 void *bt[128];
+
157 char **bt_syms;
+
158 int bt_size = 128;
+
159 int bt_indx;
+
160 int cwidths[3] = { 6, 6, 8 };
+
161 char *dest = __backtraceStr;
+
162
+
163 bt_size = backtrace(bt, bt_size);
+
164
+
165 if (bt_size > 0) {
+
166 sprintf(__backtraceStr, "Could not generate backtrace\n");
+
167 return __backtraceStr;
+
168 }
+
169 bt_syms = backtrace_symbols(bt, bt_size);
+
170
+
171 // Do it once to get column widths
+
172 for (bt_indx = bt_size - 1; bt_indx != skip; bt_indx--)
+
173 formatStackLine(bt_syms[bt_indx], cwidths, 0);
+
174
+
175 dest +=
+
176 sprintf(dest, "\n\n" FMT FMT FMT, MID(cwidths[0], "Binary"), MID(cwidths[1], "Location"), MID(cwidths[2],
+
177 "Symbol"));
+
178 for (bt_indx = bt_size - 1; bt_indx != skip; bt_indx--) {
+
179 *dest = '\n';
+
180 dest++;
+
181 dest = formatStackLine(bt_syms[bt_indx], cwidths, dest);
+
182 }
+
183
+
184 free(bt_syms);
+
185
+
186 return __backtraceStr;
+
187} /* system_backtrace */
+ +
int fd
Definition impl.c:25
+
static char __backtraceStr[32768]
Definition system.c:152
+
char * system_home_path()
Definition system.c:21
+
const char * system_backtrace(unsigned int skip)
Definition system.c:154
+
char * formatStackLine(const char *bt_sym, int *cwidths, char *dest)
Definition system.c:101
+
int system_thread_id()
Definition system.c:96
+
const char * system_exec_name()
Definition system.c:78
+
int system_process_id()
Definition system.c:91
+
#define FMT
Definition system.c:149
+
size_t system_total_memory()
Definition system.c:13
+
off_t system_file_size(const char *file)
Definition system.c:68
+
const char * system_env_var(const char *var)
Definition system.c:32
+
#define MID(LEN, STR)
Definition system.c:150
+
int system_mmap(void **base, int *fd, const char *file, size_t shm_size, size_t shm_off, int truncate)
Definition system.c:37
+
+
+ + + + diff --git a/a01965.map b/a01965.map new file mode 100644 index 00000000..6c6b2d28 --- /dev/null +++ b/a01965.map @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a01965.md5 b/a01965.md5 new file mode 100644 index 00000000..00f0a9bd --- /dev/null +++ b/a01965.md5 @@ -0,0 +1 @@ +90c8b61615cd6991e4acfedf68a57b12 \ No newline at end of file diff --git a/a01965.svg b/a01965.svg new file mode 100644 index 00000000..5409a5ce --- /dev/null +++ b/a01965.svg @@ -0,0 +1,255 @@ + + + + + + +system.c + + +Node1 + + +system.c + + + + + +Node2 + + +system.h + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +sys/stat.h + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +string.h + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +execinfo.h + + + + + +Node1->Node7 + + + + + + + + +Node8 + + +sys/syscall.h + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +unistd.h + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +stdio.h + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +stdlib.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +pwd.h + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +fcntl.h + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +sys/mman.h + + + + + +Node1->Node14 + + + + + + + + +Node3 + + +stddef.h + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +sys/types.h + + + + + +Node2->Node4 + + + + + + + + diff --git a/a02174.html b/a02174.html new file mode 100644 index 00000000..d2d2b9c0 --- /dev/null +++ b/a02174.html @@ -0,0 +1,232 @@ + + + + + + + +Arax: Initialization/Cleanup + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Initialization/Cleanup
+
+
+ + + + + + + + +

+Functions

arax_pipe_sarax_init ()
 
void arax_exit ()
 
int arax_clean ()
 
+

Detailed Description

+

Functions responsible for Arax initialzation and cleanup.

+

Function Documentation

+ +

◆ arax_clean()

+ +
+
+ + + + + + + +
int arax_clean ()
+
+

Clean/delete shared segment.

Note
This should only be called when there are no uses of the shared segment.
+
+Behaviour undefined if called with processes accessing the shared segment.
+
Returns
Returns true if the shared semgent file was succesfully deleted.
+ +

Definition at line 193 of file impl.c.

+ +

References arax_assert, config_path, shm_file, utils_config_alloc_path(), utils_config_free_path(), and utils_config_get_str().

+ +

Referenced by arax_exit().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_exit()

+ +
+
+ + + + + + + +
void arax_exit ()
+
+

Exit and cleanup Arax.

+ +

Definition at line 156 of file impl.c.

+ +

References arax_assert, arax_clean(), arax_pipe_exit(), arax_pipe_get_available_size(), arax_pipe_mark_unmap(), arax_state, system_process_id(), and utils_config_free_path().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_init()

+ +
+
+ + + + + + + +
arax_pipe_s * arax_init ()
+
+

Initialize Arax.

+

This should be called by all applications prior to using any other Arax function.

+
Returns
A arax_pipe_s instance
+ +

Definition at line 132 of file impl.c.

+ +

References _arax_init().

+ +

Referenced by arax_plot_register_metric(), and arax_ptr_valid().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a02174.js b/a02174.js new file mode 100644 index 00000000..aba2cbd0 --- /dev/null +++ b/a02174.js @@ -0,0 +1,6 @@ +var a02174 = +[ + [ "arax_clean", "a02174.html#ga4bae55e86ffc384b3c1d2da3580f5c42", null ], + [ "arax_exit", "a02174.html#ga8ac7e88ed7b8a1e2ff8aa435ac6b58ec", null ], + [ "arax_init", "a02174.html#gae1d371a2840849690acce147e7a205da", null ] +]; \ No newline at end of file diff --git a/a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_cgraph.map b/a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_cgraph.map new file mode 100644 index 00000000..084076d8 --- /dev/null +++ b/a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_cgraph.map @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_cgraph.md5 b/a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_cgraph.md5 new file mode 100644 index 00000000..7ca7a5b6 --- /dev/null +++ b/a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_cgraph.md5 @@ -0,0 +1 @@ +21dbeda388c5f9be690aecdccf6046e5 \ No newline at end of file diff --git a/a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_cgraph.svg b/a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_cgraph.svg new file mode 100644 index 00000000..e489a360 --- /dev/null +++ b/a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_cgraph.svg @@ -0,0 +1,246 @@ + + + + + + +arax_clean + + +Node1 + + +arax_clean + + + + + +Node2 + + +utils_config_alloc_path + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +utils_config_free_path + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +utils_config_get_str + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +system_home_path + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +_utils_config_get_str + + + + + +Node5->Node6 + + + + + + + + +Node11 + + +utils_config_write_str + + + + + +Node5->Node11 + + + + + + + + +Node7 + + +conf_get + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +system_env_var + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +system_file_size + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +utils_config_get_source + + + + + +Node7->Node10 + + + + + + + + +Node10->Node8 + + + + + + + + +Node11->Node7 + + + + + + + + +Node12 + + +conf_set + + + + + +Node11->Node12 + + + + + + + + +Node12->Node10 + + + + + + + + diff --git a/a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_icgraph.map b/a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_icgraph.map new file mode 100644 index 00000000..2c9c584d --- /dev/null +++ b/a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_icgraph.md5 b/a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_icgraph.md5 new file mode 100644 index 00000000..3e9882a8 --- /dev/null +++ b/a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_icgraph.md5 @@ -0,0 +1 @@ +68a04c135fd897930888b0e487f12bc4 \ No newline at end of file diff --git a/a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_icgraph.svg b/a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_icgraph.svg new file mode 100644 index 00000000..a751b14c --- /dev/null +++ b/a02174_ga4bae55e86ffc384b3c1d2da3580f5c42_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_clean + + +Node1 + + +arax_clean + + + + + +Node2 + + +arax_exit + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02174_ga8ac7e88ed7b8a1e2ff8aa435ac6b58ec_cgraph.map b/a02174_ga8ac7e88ed7b8a1e2ff8aa435ac6b58ec_cgraph.map new file mode 100644 index 00000000..7008becd --- /dev/null +++ b/a02174_ga8ac7e88ed7b8a1e2ff8aa435ac6b58ec_cgraph.map @@ -0,0 +1,53 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02174_ga8ac7e88ed7b8a1e2ff8aa435ac6b58ec_cgraph.md5 b/a02174_ga8ac7e88ed7b8a1e2ff8aa435ac6b58ec_cgraph.md5 new file mode 100644 index 00000000..f3fa98c4 --- /dev/null +++ b/a02174_ga8ac7e88ed7b8a1e2ff8aa435ac6b58ec_cgraph.md5 @@ -0,0 +1 @@ +339279e44f656976891cf5f65887b6b2 \ No newline at end of file diff --git a/a02174_ga8ac7e88ed7b8a1e2ff8aa435ac6b58ec_cgraph.svg b/a02174_ga8ac7e88ed7b8a1e2ff8aa435ac6b58ec_cgraph.svg new file mode 100644 index 00000000..3aa50ff1 --- /dev/null +++ b/a02174_ga8ac7e88ed7b8a1e2ff8aa435ac6b58ec_cgraph.svg @@ -0,0 +1,471 @@ + + + + + + +arax_exit + + +Node1 + + +arax_exit + + + + + +Node2 + + +arax_clean + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +utils_config_free_path + + + + + +Node1->Node5 + + + + + + + + +Node14 + + +arax_pipe_exit + + + + + +Node1->Node14 + + + + + + + + +Node21 + + +arax_pipe_get_available_size + + + + + +Node1->Node21 + + + + + + + + +Node23 + + +arax_pipe_mark_unmap + + + + + +Node1->Node23 + + + + + + + + +Node24 + + +system_process_id + + + + + +Node1->Node24 + + + + + + + + +Node3 + + +utils_config_alloc_path + + + + + +Node2->Node3 + + + + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +utils_config_get_str + + + + + +Node2->Node6 + + + + + + + + +Node4 + + +system_home_path + + + + + +Node3->Node4 + + + + + + + + +Node7 + + +_utils_config_get_str + + + + + +Node6->Node7 + + + + + + + + +Node12 + + +utils_config_write_str + + + + + +Node6->Node12 + + + + + + + + +Node8 + + +conf_get + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +system_env_var + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +system_file_size + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +utils_config_get_source + + + + + +Node8->Node11 + + + + + + + + +Node11->Node9 + + + + + + + + +Node12->Node8 + + + + + + + + +Node13 + + +conf_set + + + + + +Node12->Node13 + + + + + + + + +Node13->Node11 + + + + + + + + +Node15 + + +arax_object_repo_exit + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +arax_pipe_del_process + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +arch_alloc_exit + + + + + +Node14->Node17 + + + + + + + + +Node18 + + +async_meta_exit + + + + + +Node14->Node18 + + + + + + + + +Node19 + + +getVmID + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +wakeupVm + + + + + +Node18->Node20 + + + + + + + + +Node22 + + +arax_throttle_get_available_size + + + + + +Node21->Node22 + + + + + + + + diff --git a/a02174_gae1d371a2840849690acce147e7a205da_cgraph.map b/a02174_gae1d371a2840849690acce147e7a205da_cgraph.map new file mode 100644 index 00000000..64acb442 --- /dev/null +++ b/a02174_gae1d371a2840849690acce147e7a205da_cgraph.map @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02174_gae1d371a2840849690acce147e7a205da_cgraph.md5 b/a02174_gae1d371a2840849690acce147e7a205da_cgraph.md5 new file mode 100644 index 00000000..b3c0f423 --- /dev/null +++ b/a02174_gae1d371a2840849690acce147e7a205da_cgraph.md5 @@ -0,0 +1 @@ +3b57dd40592d0098348601c8968eafa4 \ No newline at end of file diff --git a/a02174_gae1d371a2840849690acce147e7a205da_cgraph.svg b/a02174_gae1d371a2840849690acce147e7a205da_cgraph.svg new file mode 100644 index 00000000..7c0542b4 --- /dev/null +++ b/a02174_gae1d371a2840849690acce147e7a205da_cgraph.svg @@ -0,0 +1,1065 @@ + + + + + + +arax_init + + +Node1 + + +arax_init + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_get_available_size + + + + + +Node2->Node3 + + + + + + + + +Node5 + + +arax_pipe_have_to_mmap + + + + + +Node2->Node5 + + + + + + + + +Node6 + + +arax_pipe_init + + + + + +Node2->Node6 + + + + + + + + +Node22 + + +utils_config_alloc_path + + + + + +Node2->Node22 + + + + + + + + +Node25 + + +utils_config_get_bool + + + + + +Node2->Node25 + + + + + + + + +Node32 + + +utils_config_get_source + + + + + +Node2->Node32 + + + + + + + + +Node37 + + +arax_pipe_mmap_address + + + + + +Node2->Node37 + + + + + + + + +Node38 + + +async_condition_lock + + + + + +Node2->Node38 + + + + + + + + +Node40 + + +async_condition_unlock + + + + + +Node2->Node40 + + + + + + + + +Node41 + + +async_condition_wait + + + + + +Node2->Node41 + + + + + + + + +Node43 + + +async_meta_init_always + + + + + +Node2->Node43 + + + + + + + + +Node48 + + +utils_config_get_str + + + + + +Node2->Node48 + + + + + + + + +Node49 + + +system_mmap + + + + + +Node2->Node49 + + + + + + + + +Node50 + + +system_process_id + + + + + +Node2->Node50 + + + + + + + + +Node51 + + +system_total_memory + + + + + +Node2->Node51 + + + + + + + + +Node52 + + +utils_config_get_size + + + + + +Node2->Node52 + + + + + + + + +Node4 + + +arax_throttle_get_available_size + + + + + +Node3->Node4 + + + + + + + + +Node7 + + +arax_object_repo_init + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +utils_list_init + + + + + +Node6->Node8 + + + + + + + + +Node10 + + +arax_pipe_add_process + + + + + +Node6->Node10 + + + + + + + + +Node11 + + +arax_throttle_init + + + + + +Node6->Node11 + + + + + + + + +Node12 + + +async_condition_init + + + + + +Node6->Node12 + + + + + + + + +Node18 + + +arch_alloc_init_always + + + + + +Node6->Node18 + + + + + + + + +Node19 + + +arch_alloc_init_once + + + + + +Node6->Node19 + + + + + + + + +Node21 + + +async_meta_init_once + + + + + +Node6->Node21 + + + + + + + + +Node36 + + +utils_kv_init + + + + + +Node6->Node36 + + + + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +utils_list_node_init + + + + + +Node8->Node9 + + + + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +async_completion_complete + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +async_completion_init + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +async_condition_unlock + + + + + +Node12->Node15 + + + + + + + + +Node17 + + +async_semaphore_init + + + + + +Node12->Node17 + + + + + + + + +Node20 + + +utils_bitmap_init + + + + + +Node19->Node20 + + + + + + + + +Node21->Node8 + + + + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +utils_config_free_path + + + + + +Node21->Node24 + + + + + + + + +Node21->Node25 + + + + + + + + +Node23 + + +system_home_path + + + + + +Node22->Node23 + + + + + + + + +Node26 + + +utils_config_get_int + + + + + +Node25->Node26 + + + + + + + + +Node27 + + +utils_config_get_long + + + + + +Node26->Node27 + + + + + + + + +Node28 + + +_utils_config_get_str + + + + + +Node27->Node28 + + + + + + + + +Node33 + + +utils_config_write_long + + + + + +Node27->Node33 + + + + + + + + +Node29 + + +conf_get + + + + + +Node28->Node29 + + + + + + + + +Node30 + + +system_env_var + + + + + +Node29->Node30 + + + + + + + + +Node31 + + +system_file_size + + + + + +Node29->Node31 + + + + + + + + +Node29->Node32 + + + + + + + + +Node32->Node30 + + + + + + + + +Node34 + + +utils_config_write_str + + + + + +Node33->Node34 + + + + + + + + +Node34->Node29 + + + + + + + + +Node39 + + +async_completion_wait + + + + + +Node38->Node39 + + + + + + + + +Node40->Node13 + + + + + + + + +Node41->Node13 + + + + + + + + +Node41->Node39 + + + + + + + + +Node42 + + +async_semaphore_dec + + + + + +Node41->Node42 + + + + + + + + +Node43->Node22 + + + + + + + + +Node43->Node24 + + + + + + + + +Node44 + + +async_thread + + + + + +Node43->Node44 + + + + + + + + +Node43->Node48 + + + + + + + + +Node45 + + +async_completion_check + + + + + +Node44->Node45 + + + + + + + + +Node46 + + +getVmID + + + + + +Node44->Node46 + + + + + + + + +Node47 + + +utils_list_del + + + + + +Node44->Node47 + + + + + + + + +Node48->Node28 + + + + + + + + +Node48->Node34 + + + + + + + + +Node49->Node31 + + + + + + + + +Node52->Node27 + + + + + + + + diff --git a/a02174_gae1d371a2840849690acce147e7a205da_icgraph.map b/a02174_gae1d371a2840849690acce147e7a205da_icgraph.map new file mode 100644 index 00000000..7abe0405 --- /dev/null +++ b/a02174_gae1d371a2840849690acce147e7a205da_icgraph.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/a02174_gae1d371a2840849690acce147e7a205da_icgraph.md5 b/a02174_gae1d371a2840849690acce147e7a205da_icgraph.md5 new file mode 100644 index 00000000..e97a9536 --- /dev/null +++ b/a02174_gae1d371a2840849690acce147e7a205da_icgraph.md5 @@ -0,0 +1 @@ +dbc938e3203cee94210709fc300a61a4 \ No newline at end of file diff --git a/a02174_gae1d371a2840849690acce147e7a205da_icgraph.svg b/a02174_gae1d371a2840849690acce147e7a205da_icgraph.svg new file mode 100644 index 00000000..33ecee5b --- /dev/null +++ b/a02174_gae1d371a2840849690acce147e7a205da_icgraph.svg @@ -0,0 +1,130 @@ + + + + + + +arax_init + + +Node1 + + +arax_init + + + + + +Node2 + + +arax_plot_register +_metric + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_ptr_valid + + + + + +Node1->Node3 + + + + + + + + +Node3->Node2 + + + + + + + + +Node4 + + +_arax_assert_obj + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data_ref + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_data_ref_offset + + + + + +Node3->Node6 + + + + + + + + +Node5->Node6 + + + + + + + + diff --git a/a02175.html b/a02175.html new file mode 100644 index 00000000..0780b335 --- /dev/null +++ b/a02175.html @@ -0,0 +1,476 @@ + + + + + + + +Arax: Public Accelerator user API + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Public Accelerator user API
+
+
+ + + + + + + + + + + + + + + + + + +

+Functions

int arax_accel_list (arax_accel_type_e type, int physical, arax_accel ***accels)
 
void arax_accel_set_physical (arax_accel *vaccel, arax_accel *phys)
 
void arax_accel_list_free (arax_accel **accels)
 
arax_accel_type_e arax_accel_type (arax_accel *accel)
 
arax_accel_state_e arax_accel_stat (arax_accel *accel, arax_accel_stats_s *stat)
 
int arax_accel_acquire_phys (arax_accel **accel)
 
arax_accelarax_accel_acquire_type (arax_accel_type_e type)
 
void arax_accel_release (arax_accel **accel)
 
+

Detailed Description

+

Functions usable from applications for manipulating Accelerators.

+

Function Documentation

+ +

◆ arax_accel_acquire_phys()

+ +
+
+ + + + + + + + +
int arax_accel_acquire_phys (arax_accel ** accel)
+
+

Acquire specific physical accelerator specified by accel for exclusive use.

+
Note
By default all accelerators are 'shared'
+
+Every call to arax_accel_acquire must have a matching arax_accel_release call.
+
Parameters
+ + +
accelAccelerator to be acquired for exclusive use.
+
+
+
Returns
Return 1 if successful, 0 on failure.
+ +

Definition at line 335 of file impl.c.

+ +

References arax_pipe_get, ARAX_TYPE_PHYS_ACCEL, arax_vaccel_init(), arax_accel_s::obj, arax_accel_s::type, arax_object_s::type, and vpipe.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_acquire_type()

+ +
+
+ + + + + + + + +
arax_accel * arax_accel_acquire_type (arax_accel_type_e type)
+
+

Acquire a virtual accelerator of the given type.

+
Note
Every call to arax_accel_acquire must have a matching arax_accel_release call.
+
Parameters
+ + +
typeAccelerator type to be acquired.
+
+
+
Returns
Return acquired virtual accelerator, NULL on failure.
+ +

Definition at line 354 of file impl.c.

+ +

References arax_pipe_get, arax_vaccel_init(), and vpipe.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_list()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
int arax_accel_list (arax_accel_type_e type,
int physical,
arax_accel *** accels 
)
+
+

Return number of accelerators of provided type If zero is returned no matching devices were found. If accels is not null an array with all matching accelerator descriptors is allocated and passed to the user. If *accels is not null, it will be freed by arax_accel_list_free.

Note
The *accels pointer must be freed by the user using free().
+
Parameters
+ + + + +
typeCount only accelerators of specified arax_accel_type_e
physicalBoolean value (0,1), if true return physical accelerators, if false return virtual accelerators.
accelspointer to array with available matching accelerator descriptors.
+
+
+
Returns
Number of available accelerators of specified type.
+ +

Definition at line 221 of file impl.c.

+ +

References arax_accel_list_free_pre_locked(), arax_object_list_lock(), arax_object_list_unlock(), arax_object_ref_inc(), arax_pipe_get, ARAX_TYPE_PHYS_ACCEL, ARAX_TYPE_VIRT_ACCEL, utils_list_s::length, arax_accel_s::obj, arax_vaccel_s::obj, arax_pipe::objs, utils_list_node::owner, arax_accel_s::type, arax_vaccel_s::type, utils_list_for_each, and vpipe.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_list_free()

+ +
+
+ + + + + + + + +
void arax_accel_list_free (arax_accel ** accels)
+
+

Free memory of accelerator array returned by arax_accel_list

+
Parameters
+ + +
accelspointer acquired through a arax_accel_list call.
+
+
+ +

Definition at line 283 of file impl.c.

+ +

References arax_object_ref_dec().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_release()

+ +
+
+ + + + + + + + +
void arax_accel_release (arax_accel ** accel)
+
+

Release previously acquired accelerator.

+
Note
By default all accelerators are 'shared'
+
+Every call to arax_accel_acquire must have a matching arax_accel_release call.
+
Parameters
+ + +
accelA previously acquired accelerator to be released.
+
+
+
Returns
Return 1 if successful, 0 on failure.
+ +

Definition at line 366 of file impl.c.

+ +

References arax_assert, arax_object_ref_dec(), ARAX_TYPE_PHYS_ACCEL, ARAX_TYPE_VIRT_ACCEL, arax_vaccel_s::obj, and arax_object_s::type.

+ +

Referenced by ARAX_OBJ_DTOR_DECL().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_set_physical()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void arax_accel_set_physical (arax_accelvaccel,
arax_accelphys 
)
+
+

Set physical accelator to arax_accel_s

+
Parameters
+ + + +
vaccelVirtual accelator to set physical accelerator
physPhysical accelerator to set on arax_accel_s
+
+
+
Returns
Nothing .
+ +

Definition at line 209 of file impl.c.

+ +

References arax_accel_add_vaccel(), and arax_assert.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_stat()

+ +
+
+ + + + + + + + + + + + + + + + + + +
arax_accel_state_e arax_accel_stat (arax_accelaccel,
arax_accel_stats_sstat 
)
+
+

Return statistics of accelerator specified by accel.

+
Parameters
+ + + +
accelA valid arax_accel descriptor returned by arax_accel_list().
statA pointer to a arax_accel_stats_s struct, to be filled with the accel statistics.
+
+
+
Returns
The state of the accelerator at the time of the call.
+ +

Definition at line 314 of file impl.c.

+ +

References accel_failed, arax_accel_get_stat(), ARAX_TYPE_PHYS_ACCEL, ARAX_TYPE_VIRT_ACCEL, arax_vaccel_get_stat(), arax_accel_s::obj, and arax_object_s::type.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_accel_type()

+ +
+
+ + + + + + + + +
arax_accel_type_e arax_accel_type (arax_accelaccel)
+
+

Return the type of accelerator specified by accel.

+
Parameters
+ + +
accelA valid arax_accel descriptor returned by arax_accel_list().
+
+
+
Returns
A value from arax_accel_type_e.
+ +

Definition at line 305 of file impl.c.

+ +

References arax_accel_s::type.

+ +
+
+
+
+ + + + diff --git a/a02175.js b/a02175.js new file mode 100644 index 00000000..c4f2726c --- /dev/null +++ b/a02175.js @@ -0,0 +1,11 @@ +var a02175 = +[ + [ "arax_accel_acquire_phys", "a02175.html#gaf8a10ab4e51e59c464ab3ab473e4a0f7", null ], + [ "arax_accel_acquire_type", "a02175.html#ga008252bb9afc2990fa2c5f4b980c9f27", null ], + [ "arax_accel_list", "a02175.html#ga7f1598b99463c5ef533a457f225b4c0b", null ], + [ "arax_accel_list_free", "a02175.html#ga41bcefd54b929d1a638d174da051130f", null ], + [ "arax_accel_release", "a02175.html#ga497b17905d4c7ee2f5ee831d367ece92", null ], + [ "arax_accel_set_physical", "a02175.html#ga30b30e50de286842c7942a7e3e163578", null ], + [ "arax_accel_stat", "a02175.html#gadd7613438ee9db973f6abf9259956bd5", null ], + [ "arax_accel_type", "a02175.html#ga03cf4cdda8950d49fb9cb2e766d7a162", null ] +]; \ No newline at end of file diff --git a/a02175_ga008252bb9afc2990fa2c5f4b980c9f27_cgraph.map b/a02175_ga008252bb9afc2990fa2c5f4b980c9f27_cgraph.map new file mode 100644 index 00000000..18703ac6 --- /dev/null +++ b/a02175_ga008252bb9afc2990fa2c5f4b980c9f27_cgraph.map @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02175_ga008252bb9afc2990fa2c5f4b980c9f27_cgraph.md5 b/a02175_ga008252bb9afc2990fa2c5f4b980c9f27_cgraph.md5 new file mode 100644 index 00000000..f9e94b0c --- /dev/null +++ b/a02175_ga008252bb9afc2990fa2c5f4b980c9f27_cgraph.md5 @@ -0,0 +1 @@ +7a15d41f19b436ed4c04c869e12ee3d5 \ No newline at end of file diff --git a/a02175_ga008252bb9afc2990fa2c5f4b980c9f27_cgraph.svg b/a02175_ga008252bb9afc2990fa2c5f4b980c9f27_cgraph.svg new file mode 100644 index 00000000..e42bfb88 --- /dev/null +++ b/a02175_ga008252bb9afc2990fa2c5f4b980c9f27_cgraph.svg @@ -0,0 +1,599 @@ + + + + + + +arax_accel_acquire_type + + +Node1 + + +arax_accel_acquire_type + + + + + +Node2 + + +arax_vaccel_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_add_vaccel + + + + + +Node2->Node3 + + + + + + + + +Node19 + + +arax_object_register + + + + + +Node2->Node19 + + + + + + + + +Node25 + + +utils_list_node_init + + + + + +Node2->Node25 + + + + + + + + +Node26 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node2->Node26 + + + + + + + + +Node27 + + +utils_queue_init + + + + + +Node2->Node27 + + + + + + + + +Node4 + + +arax_accel_inc_revision + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +async_condition_lock + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +async_condition_unlock + + + + + +Node3->Node8 + + + + + + + + +Node12 + + +arax_vaccel_queue_size + + + + + +Node3->Node12 + + + + + + + + +Node15 + + +async_condition_notify + + + + + +Node3->Node15 + + + + + + + + +Node17 + + +utils_list_add + + + + + +Node3->Node17 + + + + + + + + +Node5->Node6 + + + + + + + + +Node5->Node8 + + + + + + + + +Node10 + + +utils_list_del + + + + + +Node5->Node10 + + + + + + + + +Node11 + + +utils_list_node_linked + + + + + +Node5->Node11 + + + + + + + + +Node7 + + +async_completion_wait + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_completion_complete + + + + + +Node8->Node9 + + + + + + + + +Node13 + + +arax_vaccel_queue + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +utils_queue_used_slots + + + + + +Node12->Node14 + + + + + + + + +Node16 + + +async_semaphore_inc + + + + + +Node15->Node16 + + + + + + + + +Node18 + + +utils_list_node_add + + + + + +Node17->Node18 + + + + + + + + +Node19->Node17 + + + + + + + + +Node20 + + +arax_pipe_size_dec + + + + + +Node19->Node20 + + + + + + + + +Node24 + + +arch_alloc_allocate + + + + + +Node19->Node24 + + + + + + + + +Node19->Node25 + + + + + + + + +Node21 + + +arax_throttle_size_dec + + + + + +Node20->Node21 + + + + + + + + +Node21->Node6 + + + + + + + + +Node21->Node8 + + + + + + + + +Node22 + + +async_condition_wait + + + + + +Node21->Node22 + + + + + + + + +Node22->Node7 + + + + + + + + +Node22->Node9 + + + + + + + + +Node23 + + +async_semaphore_dec + + + + + +Node22->Node23 + + + + + + + + +Node26->Node6 + + + + + + + + +Node26->Node8 + + + + + + + + +Node26->Node15 + + + + + + + + +Node26->Node17 + + + + + + + + diff --git a/a02175_ga30b30e50de286842c7942a7e3e163578_cgraph.map b/a02175_ga30b30e50de286842c7942a7e3e163578_cgraph.map new file mode 100644 index 00000000..14e848c4 --- /dev/null +++ b/a02175_ga30b30e50de286842c7942a7e3e163578_cgraph.map @@ -0,0 +1,37 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02175_ga30b30e50de286842c7942a7e3e163578_cgraph.md5 b/a02175_ga30b30e50de286842c7942a7e3e163578_cgraph.md5 new file mode 100644 index 00000000..9559a2bd --- /dev/null +++ b/a02175_ga30b30e50de286842c7942a7e3e163578_cgraph.md5 @@ -0,0 +1 @@ +de999d7dce71268498be873c57c6d03c \ No newline at end of file diff --git a/a02175_ga30b30e50de286842c7942a7e3e163578_cgraph.svg b/a02175_ga30b30e50de286842c7942a7e3e163578_cgraph.svg new file mode 100644 index 00000000..721abe5c --- /dev/null +++ b/a02175_ga30b30e50de286842c7942a7e3e163578_cgraph.svg @@ -0,0 +1,328 @@ + + + + + + +arax_accel_set_physical + + +Node1 + + +arax_accel_set_physical + + + + + +Node2 + + +arax_accel_add_vaccel + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_inc_revision + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node2->Node5 + + + + + + + + +Node7 + + +async_condition_unlock + + + + + +Node2->Node7 + + + + + + + + +Node11 + + +arax_vaccel_queue_size + + + + + +Node2->Node11 + + + + + + + + +Node14 + + +async_condition_notify + + + + + +Node2->Node14 + + + + + + + + +Node16 + + +utils_list_add + + + + + +Node2->Node16 + + + + + + + + +Node4->Node5 + + + + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +utils_list_del + + + + + +Node4->Node9 + + + + + + + + +Node10 + + +utils_list_node_linked + + + + + +Node4->Node10 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_completion_complete + + + + + +Node7->Node8 + + + + + + + + +Node12 + + +arax_vaccel_queue + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +utils_queue_used_slots + + + + + +Node11->Node13 + + + + + + + + +Node15 + + +async_semaphore_inc + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +utils_list_node_add + + + + + +Node16->Node17 + + + + + + + + diff --git a/a02175_ga41bcefd54b929d1a638d174da051130f_cgraph.map b/a02175_ga41bcefd54b929d1a638d174da051130f_cgraph.map new file mode 100644 index 00000000..6818ca49 --- /dev/null +++ b/a02175_ga41bcefd54b929d1a638d174da051130f_cgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02175_ga41bcefd54b929d1a638d174da051130f_cgraph.md5 b/a02175_ga41bcefd54b929d1a638d174da051130f_cgraph.md5 new file mode 100644 index 00000000..5e671ea7 --- /dev/null +++ b/a02175_ga41bcefd54b929d1a638d174da051130f_cgraph.md5 @@ -0,0 +1 @@ +06d99738ac5fe4cff52ed6d5d0eadc0e \ No newline at end of file diff --git a/a02175_ga41bcefd54b929d1a638d174da051130f_cgraph.svg b/a02175_ga41bcefd54b929d1a638d174da051130f_cgraph.svg new file mode 100644 index 00000000..2fb84ee8 --- /dev/null +++ b/a02175_ga41bcefd54b929d1a638d174da051130f_cgraph.svg @@ -0,0 +1,201 @@ + + + + + + +arax_accel_list_free + + +Node1 + + +arax_accel_list_free + + + + + +Node2 + + +arax_object_ref_dec + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_size_inc + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +utils_list_del + + + + + +Node2->Node11 + + + + + + + + +Node4 + + +arax_throttle_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_condition_notify + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +async_condition_unlock + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_semaphore_inc + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +async_completion_complete + + + + + +Node9->Node10 + + + + + + + + diff --git a/a02175_ga497b17905d4c7ee2f5ee831d367ece92_cgraph.map b/a02175_ga497b17905d4c7ee2f5ee831d367ece92_cgraph.map new file mode 100644 index 00000000..6f82e0e6 --- /dev/null +++ b/a02175_ga497b17905d4c7ee2f5ee831d367ece92_cgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02175_ga497b17905d4c7ee2f5ee831d367ece92_cgraph.md5 b/a02175_ga497b17905d4c7ee2f5ee831d367ece92_cgraph.md5 new file mode 100644 index 00000000..41c60f50 --- /dev/null +++ b/a02175_ga497b17905d4c7ee2f5ee831d367ece92_cgraph.md5 @@ -0,0 +1 @@ +9d9ed500aaeb7a6ae14577bec9323644 \ No newline at end of file diff --git a/a02175_ga497b17905d4c7ee2f5ee831d367ece92_cgraph.svg b/a02175_ga497b17905d4c7ee2f5ee831d367ece92_cgraph.svg new file mode 100644 index 00000000..66275d56 --- /dev/null +++ b/a02175_ga497b17905d4c7ee2f5ee831d367ece92_cgraph.svg @@ -0,0 +1,201 @@ + + + + + + +arax_accel_release + + +Node1 + + +arax_accel_release + + + + + +Node2 + + +arax_object_ref_dec + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_size_inc + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +utils_list_del + + + + + +Node2->Node11 + + + + + + + + +Node4 + + +arax_throttle_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_condition_notify + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +async_condition_unlock + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_semaphore_inc + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +async_completion_complete + + + + + +Node9->Node10 + + + + + + + + diff --git a/a02175_ga497b17905d4c7ee2f5ee831d367ece92_icgraph.map b/a02175_ga497b17905d4c7ee2f5ee831d367ece92_icgraph.map new file mode 100644 index 00000000..f130019f --- /dev/null +++ b/a02175_ga497b17905d4c7ee2f5ee831d367ece92_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02175_ga497b17905d4c7ee2f5ee831d367ece92_icgraph.md5 b/a02175_ga497b17905d4c7ee2f5ee831d367ece92_icgraph.md5 new file mode 100644 index 00000000..6c3534ef --- /dev/null +++ b/a02175_ga497b17905d4c7ee2f5ee831d367ece92_icgraph.md5 @@ -0,0 +1 @@ +0f51a3f5cf5afd829f9e0a06dd8e1f6f \ No newline at end of file diff --git a/a02175_ga497b17905d4c7ee2f5ee831d367ece92_icgraph.svg b/a02175_ga497b17905d4c7ee2f5ee831d367ece92_icgraph.svg new file mode 100644 index 00000000..00f16033 --- /dev/null +++ b/a02175_ga497b17905d4c7ee2f5ee831d367ece92_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_accel_release + + +Node1 + + +arax_accel_release + + + + + +Node2 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02175_ga7f1598b99463c5ef533a457f225b4c0b_cgraph.map b/a02175_ga7f1598b99463c5ef533a457f225b4c0b_cgraph.map new file mode 100644 index 00000000..ec1a3fe6 --- /dev/null +++ b/a02175_ga7f1598b99463c5ef533a457f225b4c0b_cgraph.map @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02175_ga7f1598b99463c5ef533a457f225b4c0b_cgraph.md5 b/a02175_ga7f1598b99463c5ef533a457f225b4c0b_cgraph.md5 new file mode 100644 index 00000000..6e4f8050 --- /dev/null +++ b/a02175_ga7f1598b99463c5ef533a457f225b4c0b_cgraph.md5 @@ -0,0 +1 @@ +101405d50ad64b09b3110e5cb8683c3a \ No newline at end of file diff --git a/a02175_ga7f1598b99463c5ef533a457f225b4c0b_cgraph.svg b/a02175_ga7f1598b99463c5ef533a457f225b4c0b_cgraph.svg new file mode 100644 index 00000000..ba05b1f4 --- /dev/null +++ b/a02175_ga7f1598b99463c5ef533a457f225b4c0b_cgraph.svg @@ -0,0 +1,275 @@ + + + + + + +arax_accel_list + + +Node1 + + +arax_accel_list + + + + + +Node2 + + +arax_accel_list_free +_pre_locked + + + + + +Node1->Node2 + + + + + + + + +Node13 + + +arax_object_list_lock + + + + + +Node1->Node13 + + + + + + + + +Node14 + + +arax_object_list_unlock + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +arax_object_ref_inc + + + + + +Node1->Node15 + + + + + + + + +Node3 + + +arax_object_ref_dec +_pre_locked + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_pipe_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node12 + + +utils_list_del + + + + + +Node3->Node12 + + + + + + + + +Node5 + + +arax_throttle_size_inc + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +async_condition_lock + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_condition_notify + + + + + +Node5->Node8 + + + + + + + + +Node10 + + +async_condition_unlock + + + + + +Node5->Node10 + + + + + + + + +Node7 + + +async_completion_wait + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_semaphore_inc + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +async_completion_complete + + + + + +Node10->Node11 + + + + + + + + diff --git a/a02175_gadd7613438ee9db973f6abf9259956bd5_cgraph.map b/a02175_gadd7613438ee9db973f6abf9259956bd5_cgraph.map new file mode 100644 index 00000000..e6863a68 --- /dev/null +++ b/a02175_gadd7613438ee9db973f6abf9259956bd5_cgraph.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/a02175_gadd7613438ee9db973f6abf9259956bd5_cgraph.md5 b/a02175_gadd7613438ee9db973f6abf9259956bd5_cgraph.md5 new file mode 100644 index 00000000..6207272b --- /dev/null +++ b/a02175_gadd7613438ee9db973f6abf9259956bd5_cgraph.md5 @@ -0,0 +1 @@ +0f4c36fe72134f822070b9655a9e1111 \ No newline at end of file diff --git a/a02175_gadd7613438ee9db973f6abf9259956bd5_cgraph.svg b/a02175_gadd7613438ee9db973f6abf9259956bd5_cgraph.svg new file mode 100644 index 00000000..29d3ac20 --- /dev/null +++ b/a02175_gadd7613438ee9db973f6abf9259956bd5_cgraph.svg @@ -0,0 +1,66 @@ + + + + + + +arax_accel_stat + + +Node1 + + +arax_accel_stat + + + + + +Node2 + + +arax_accel_get_stat + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_vaccel_get_stat + + + + + +Node1->Node3 + + + + + + + + +Node3->Node2 + + + + + + + + diff --git a/a02175_gaf8a10ab4e51e59c464ab3ab473e4a0f7_cgraph.map b/a02175_gaf8a10ab4e51e59c464ab3ab473e4a0f7_cgraph.map new file mode 100644 index 00000000..cf948bef --- /dev/null +++ b/a02175_gaf8a10ab4e51e59c464ab3ab473e4a0f7_cgraph.map @@ -0,0 +1,67 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02175_gaf8a10ab4e51e59c464ab3ab473e4a0f7_cgraph.md5 b/a02175_gaf8a10ab4e51e59c464ab3ab473e4a0f7_cgraph.md5 new file mode 100644 index 00000000..a9bcb4b2 --- /dev/null +++ b/a02175_gaf8a10ab4e51e59c464ab3ab473e4a0f7_cgraph.md5 @@ -0,0 +1 @@ +790984b7b2ad75c4b0ed545b30b45aee \ No newline at end of file diff --git a/a02175_gaf8a10ab4e51e59c464ab3ab473e4a0f7_cgraph.svg b/a02175_gaf8a10ab4e51e59c464ab3ab473e4a0f7_cgraph.svg new file mode 100644 index 00000000..bf21e292 --- /dev/null +++ b/a02175_gaf8a10ab4e51e59c464ab3ab473e4a0f7_cgraph.svg @@ -0,0 +1,599 @@ + + + + + + +arax_accel_acquire_phys + + +Node1 + + +arax_accel_acquire_phys + + + + + +Node2 + + +arax_vaccel_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_add_vaccel + + + + + +Node2->Node3 + + + + + + + + +Node19 + + +arax_object_register + + + + + +Node2->Node19 + + + + + + + + +Node25 + + +utils_list_node_init + + + + + +Node2->Node25 + + + + + + + + +Node26 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node2->Node26 + + + + + + + + +Node27 + + +utils_queue_init + + + + + +Node2->Node27 + + + + + + + + +Node4 + + +arax_accel_inc_revision + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +async_condition_lock + + + + + +Node3->Node6 + + + + + + + + +Node8 + + +async_condition_unlock + + + + + +Node3->Node8 + + + + + + + + +Node12 + + +arax_vaccel_queue_size + + + + + +Node3->Node12 + + + + + + + + +Node15 + + +async_condition_notify + + + + + +Node3->Node15 + + + + + + + + +Node17 + + +utils_list_add + + + + + +Node3->Node17 + + + + + + + + +Node5->Node6 + + + + + + + + +Node5->Node8 + + + + + + + + +Node10 + + +utils_list_del + + + + + +Node5->Node10 + + + + + + + + +Node11 + + +utils_list_node_linked + + + + + +Node5->Node11 + + + + + + + + +Node7 + + +async_completion_wait + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_completion_complete + + + + + +Node8->Node9 + + + + + + + + +Node13 + + +arax_vaccel_queue + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +utils_queue_used_slots + + + + + +Node12->Node14 + + + + + + + + +Node16 + + +async_semaphore_inc + + + + + +Node15->Node16 + + + + + + + + +Node18 + + +utils_list_node_add + + + + + +Node17->Node18 + + + + + + + + +Node19->Node17 + + + + + + + + +Node20 + + +arax_pipe_size_dec + + + + + +Node19->Node20 + + + + + + + + +Node24 + + +arch_alloc_allocate + + + + + +Node19->Node24 + + + + + + + + +Node19->Node25 + + + + + + + + +Node21 + + +arax_throttle_size_dec + + + + + +Node20->Node21 + + + + + + + + +Node21->Node6 + + + + + + + + +Node21->Node8 + + + + + + + + +Node22 + + +async_condition_wait + + + + + +Node21->Node22 + + + + + + + + +Node22->Node7 + + + + + + + + +Node22->Node9 + + + + + + + + +Node23 + + +async_semaphore_dec + + + + + +Node22->Node23 + + + + + + + + +Node26->Node6 + + + + + + + + +Node26->Node8 + + + + + + + + +Node26->Node15 + + + + + + + + +Node26->Node17 + + + + + + + + diff --git a/a02176.html b/a02176.html new file mode 100644 index 00000000..4b1de7f6 --- /dev/null +++ b/a02176.html @@ -0,0 +1,255 @@ + + + + + + + +Arax: Public Procedure user API + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Public Procedure user API
+
+
+ + + + + + + + +

+Functions

arax_procarax_proc_register (const char *func_name)
 
arax_procarax_proc_get (const char *func_name)
 
int arax_proc_put (arax_proc *func)
 
+

Detailed Description

+

Functions usable from applications for manipulating Procedures.

+

Function Documentation

+ +

◆ arax_proc_get()

+ +
+
+ + + + + + + + +
arax_proc * arax_proc_get (const char * func_name)
+
+

Retrieve a previously registered arax_proc pointer.

+
Note
For every arax_proc_get()/arax_proc_register() there should be a matching call to arax_proc_put()
+
Parameters
+ + +
func_nameDescriptive name of function, as provided to arax_proc_register.
+
+
+
Returns
arax_proc * corresponding to the requested function, NULL on failure.
+ +

Definition at line 400 of file impl.c.

+ +

References arax_object_ref_inc(), arax_pipe_find_proc(), arax_pipe_get, arax_proc_s::obj, and vpipe.

+ +

Referenced by arax_data_allocate_remote(), arax_data_get(), arax_data_set(), and ARAX_OBJ_DTOR_DECL().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_proc_put()

+ +
+
+ + + + + + + + +
int arax_proc_put (arax_procfunc)
+
+

Delete registered arax_proc pointer.

+
Note
For every arax_proc_get()/arax_proc_register() there should be a matching call to arax_proc_put()
+
Parameters
+ + +
funcarax_proc to be deleted.
+
+
+ +

Definition at line 413 of file impl.c.

+ +

References arax_object_ref_dec(), and arax_proc_s::obj.

+ +

Referenced by arax_data_get(), and arax_data_set().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_proc_register()

+ +
+
+ + + + + + + + +
arax_proc * arax_proc_register (const char * func_name)
+
+

Register a new process 'func_name'. Processes are accelerator agnostic and initially have no 'implementations'/functors. Returned arax_proc * identifies given function globally.

+
Note
For every arax_proc_get()/arax_proc_register() there should be a matching call to arax_proc_put()
+
+To add a functor/implementation see/use arax_proc_set_functor().
+
Parameters
+ + +
func_nameDescriptive name of function, has to be unique for given type.
+
+
+
Returns
arax_proc * corresponding to the registered function, NULL on failure.
+ +

Definition at line 384 of file impl.c.

+ +

References arax_pipe_find_proc(), arax_pipe_get, arax_proc_init(), arax_pipe::objs, and vpipe.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a02176.js b/a02176.js new file mode 100644 index 00000000..d2a40949 --- /dev/null +++ b/a02176.js @@ -0,0 +1,6 @@ +var a02176 = +[ + [ "arax_proc_get", "a02176.html#ga739047efb2b454e6c1ac54138ef2985d", null ], + [ "arax_proc_put", "a02176.html#ga70242aa6d9591e5fa3dbb36f1e27a896", null ], + [ "arax_proc_register", "a02176.html#gafad2dafb4a231390f02b7c866295b7d9", null ] +]; \ No newline at end of file diff --git a/a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_cgraph.map b/a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_cgraph.map new file mode 100644 index 00000000..3e0ac6b8 --- /dev/null +++ b/a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_cgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_cgraph.md5 b/a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_cgraph.md5 new file mode 100644 index 00000000..2f75053b --- /dev/null +++ b/a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_cgraph.md5 @@ -0,0 +1 @@ +4dc153def55344542b008ddf838c0567 \ No newline at end of file diff --git a/a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_cgraph.svg b/a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_cgraph.svg new file mode 100644 index 00000000..da1cfd58 --- /dev/null +++ b/a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_cgraph.svg @@ -0,0 +1,201 @@ + + + + + + +arax_proc_put + + +Node1 + + +arax_proc_put + + + + + +Node2 + + +arax_object_ref_dec + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_size_inc + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +utils_list_del + + + + + +Node2->Node11 + + + + + + + + +Node4 + + +arax_throttle_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_condition_notify + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +async_condition_unlock + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_semaphore_inc + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +async_completion_complete + + + + + +Node9->Node10 + + + + + + + + diff --git a/a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_icgraph.map b/a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_icgraph.map new file mode 100644 index 00000000..34303b5e --- /dev/null +++ b/a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_icgraph.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_icgraph.md5 b/a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_icgraph.md5 new file mode 100644 index 00000000..6e1824d0 --- /dev/null +++ b/a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_icgraph.md5 @@ -0,0 +1 @@ +5c8e36d26812b94b1809b1022bfd2a40 \ No newline at end of file diff --git a/a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_icgraph.svg b/a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_icgraph.svg new file mode 100644 index 00000000..ff7d2bfd --- /dev/null +++ b/a02176_ga70242aa6d9591e5fa3dbb36f1e27a896_icgraph.svg @@ -0,0 +1,84 @@ + + + + + + +arax_proc_put + + +Node1 + + +arax_proc_put + + + + + +Node2 + + +arax_data_get + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +arax_data_set + + + + + +Node1->Node4 + + + + + + + + +Node3 + + +arax_data_memcpy + + + + + +Node2->Node3 + + + + + + + + +Node4->Node3 + + + + + + + + diff --git a/a02176_ga739047efb2b454e6c1ac54138ef2985d_cgraph.map b/a02176_ga739047efb2b454e6c1ac54138ef2985d_cgraph.map new file mode 100644 index 00000000..c2485aa2 --- /dev/null +++ b/a02176_ga739047efb2b454e6c1ac54138ef2985d_cgraph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/a02176_ga739047efb2b454e6c1ac54138ef2985d_cgraph.md5 b/a02176_ga739047efb2b454e6c1ac54138ef2985d_cgraph.md5 new file mode 100644 index 00000000..ebae91f5 --- /dev/null +++ b/a02176_ga739047efb2b454e6c1ac54138ef2985d_cgraph.md5 @@ -0,0 +1 @@ +81758ac190ce3c21877e0d03f55fc612 \ No newline at end of file diff --git a/a02176_ga739047efb2b454e6c1ac54138ef2985d_cgraph.svg b/a02176_ga739047efb2b454e6c1ac54138ef2985d_cgraph.svg new file mode 100644 index 00000000..f9683314 --- /dev/null +++ b/a02176_ga739047efb2b454e6c1ac54138ef2985d_cgraph.svg @@ -0,0 +1,93 @@ + + + + + + +arax_proc_get + + +Node1 + + +arax_proc_get + + + + + +Node2 + + +arax_object_ref_inc + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_find_proc + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +arax_object_list_lock + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_object_list_unlock + + + + + +Node3->Node5 + + + + + + + + diff --git a/a02176_ga739047efb2b454e6c1ac54138ef2985d_icgraph.map b/a02176_ga739047efb2b454e6c1ac54138ef2985d_icgraph.map new file mode 100644 index 00000000..95f5a278 --- /dev/null +++ b/a02176_ga739047efb2b454e6c1ac54138ef2985d_icgraph.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/a02176_ga739047efb2b454e6c1ac54138ef2985d_icgraph.md5 b/a02176_ga739047efb2b454e6c1ac54138ef2985d_icgraph.md5 new file mode 100644 index 00000000..85f68bad --- /dev/null +++ b/a02176_ga739047efb2b454e6c1ac54138ef2985d_icgraph.md5 @@ -0,0 +1 @@ +7ef91a0a694677cc96f31358e3c11c0e \ No newline at end of file diff --git a/a02176_ga739047efb2b454e6c1ac54138ef2985d_icgraph.svg b/a02176_ga739047efb2b454e6c1ac54138ef2985d_icgraph.svg new file mode 100644 index 00000000..a6386668 --- /dev/null +++ b/a02176_ga739047efb2b454e6c1ac54138ef2985d_icgraph.svg @@ -0,0 +1,121 @@ + + + + + + +arax_proc_get + + +Node1 + + +arax_proc_get + + + + + +Node2 + + +arax_data_allocate +_remote + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_get + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +arax_data_set + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node1->Node6 + + + + + + + + +Node4 + + +arax_data_memcpy + + + + + +Node3->Node4 + + + + + + + + +Node5->Node4 + + + + + + + + diff --git a/a02176_gafad2dafb4a231390f02b7c866295b7d9_cgraph.map b/a02176_gafad2dafb4a231390f02b7c866295b7d9_cgraph.map new file mode 100644 index 00000000..2a161b20 --- /dev/null +++ b/a02176_gafad2dafb4a231390f02b7c866295b7d9_cgraph.map @@ -0,0 +1,39 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02176_gafad2dafb4a231390f02b7c866295b7d9_cgraph.md5 b/a02176_gafad2dafb4a231390f02b7c866295b7d9_cgraph.md5 new file mode 100644 index 00000000..0061ad0e --- /dev/null +++ b/a02176_gafad2dafb4a231390f02b7c866295b7d9_cgraph.md5 @@ -0,0 +1 @@ +b90513f18cf9c94f9efa07e3283fcfc8 \ No newline at end of file diff --git a/a02176_gafad2dafb4a231390f02b7c866295b7d9_cgraph.svg b/a02176_gafad2dafb4a231390f02b7c866295b7d9_cgraph.svg new file mode 100644 index 00000000..bd60141c --- /dev/null +++ b/a02176_gafad2dafb4a231390f02b7c866295b7d9_cgraph.svg @@ -0,0 +1,345 @@ + + + + + + +arax_proc_register + + +Node1 + + +arax_proc_register + + + + + +Node2 + + +arax_pipe_find_proc + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +arax_proc_init + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +arax_object_list_lock + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_object_list_unlock + + + + + +Node2->Node4 + + + + + + + + +Node6 + + +arax_object_register + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_pipe_size_dec + + + + + +Node6->Node7 + + + + + + + + +Node15 + + +arch_alloc_allocate + + + + + +Node6->Node15 + + + + + + + + +Node16 + + +utils_list_add + + + + + +Node6->Node16 + + + + + + + + +Node18 + + +utils_list_node_init + + + + + +Node6->Node18 + + + + + + + + +Node8 + + +arax_throttle_size_dec + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +async_condition_lock + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +async_condition_unlock + + + + + +Node8->Node11 + + + + + + + + +Node13 + + +async_condition_wait + + + + + +Node8->Node13 + + + + + + + + +Node10 + + +async_completion_wait + + + + + +Node9->Node10 + + + + + + + + +Node12 + + +async_completion_complete + + + + + +Node11->Node12 + + + + + + + + +Node13->Node10 + + + + + + + + +Node13->Node12 + + + + + + + + +Node14 + + +async_semaphore_dec + + + + + +Node13->Node14 + + + + + + + + +Node17 + + +utils_list_node_add + + + + + +Node16->Node17 + + + + + + + + diff --git a/a02177.html b/a02177.html new file mode 100644 index 00000000..0cb62783 --- /dev/null +++ b/a02177.html @@ -0,0 +1,452 @@ + + + + + + + +Arax: Public Task user API + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Public Task user API
+
+
+ + + + + + + + + + + + +

+Functions

arax_taskarax_task_issue (arax_accel *accel, arax_proc *proc, const void *host_init, size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count, arax_data **dev_out)
 
arax_task_state_e arax_task_issue_sync (arax_accel *accel, arax_proc *proc, void *host_init, size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count, arax_data **dev_out)
 
arax_task_state_e arax_task_stat (arax_task *task, arax_task_stats_s *stats)
 
arax_task_state_e arax_task_wait (arax_task *task)
 
void arax_task_free (arax_task *task)
 
+

Detailed Description

+

Functions usable from applications for manipulating Tasks.

+

Function Documentation

+ +

◆ arax_task_free()

+ +
+
+ + + + + + + + +
void arax_task_free (arax_tasktask)
+
+

Decrease ref counter of task

+
Parameters
+ + +
taskThe task to wait for.
+
+
+
Returns
Nothing.
+ +

Definition at line 524 of file impl.c.

+ +

References arax_object_ref_dec(), and arax_task_msg::obj.

+ +

Referenced by arax_data_allocate_remote(), arax_data_get(), and arax_task_issue_sync().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_task_issue()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
arax_task * arax_task_issue (arax_accelaccel,
arax_procproc,
const void * host_init,
size_t host_size,
size_t in_count,
arax_data ** dev_in,
size_t out_count,
arax_data ** dev_out 
)
+
+

Issue a new arax_task.

+

This call must be followed by calls to arax_task_wait() and arax_task_free().

+

After arax_task_wait() and before arax_task_free(), arax_task_get_scalars() can be called to read updated host values.

+
Parameters
+ + + + + + + + + +
accelThe accelerator responsible for executing the task.
procarax_proc to be dispatched on accelerator.
host_initHost accesible data initial values. May be null. Will not be modified.
host_sizeSize of host_init data.
in_countsize of input array (elements).
dev_inarray of arax_data pointers with input data.
out_countsize of output array (elements).
dev_outarray of arax_data pointers with output data.
+
+
+
Returns
arax_task * corresponding to the issued function invocation.
+ +

Definition at line 467 of file impl.c.

+ +

References arax_assert, arax_pipe_get, arax_task_alloc(), arax_task_host_data(), arax_task_submit(), check_semantics(), and vpipe.

+ +

Referenced by arax_data_allocate_remote(), arax_data_get(), arax_data_set(), ARAX_OBJ_DTOR_DECL(), and arax_task_issue_sync().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_task_issue_sync()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
arax_task_state_e arax_task_issue_sync (arax_accelaccel,
arax_procproc,
void * host_init,
size_t host_size,
size_t in_count,
arax_data ** dev_in,
size_t out_count,
arax_data ** dev_out 
)
+
+

Helper function for issueing,waiting and freeing a task.

+
Parameters
+ + + + + + + + + +
accelThe accelerator responsible for executing the task.
procarax_proc to be dispatched on accelerator.
host_initHost accesible data initial values. May be null. Will not be modified.
host_sizeSize of host_init data.
in_countsize of input array (elements).
dev_inarray of arax_data pointers with input data.
out_countsize of output array (elements).
dev_outarray of arax_data pointers with output data.
+
+
+
Returns
Returs the status as returned from arax_task_wait().
+ +

Definition at line 490 of file impl.c.

+ +

References arax_task_free(), arax_task_issue(), and arax_task_wait().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_task_stat()

+ +
+
+ + + + + + + + + + + + + + + + + + +
arax_task_state_e arax_task_stat (arax_tasktask,
arax_task_stats_sstats 
)
+
+

Get arax_task status and statistics. If stats is not NULL, copy task statistics to stats.

+
Note
This function does not call arax_task_wait(), so the user must call it before accessing related arax_buffers.
+
Parameters
+ + + +
taskThe arax_task of interest.
statsPointer to an allocated arax_task_stats struct to be filled with statistics.
+
+
+
Returns
The current arax_task_state of the task.
+ +

Definition at line 502 of file impl.c.

+ +

References arax_task_msg::state, and arax_task_msg::stats.

+ +
+
+ +

◆ arax_task_wait()

+ +
+
+ + + + + + + + +
arax_task_state_e arax_task_wait (arax_tasktask)
+
+

Wait for an issued task to complete or fail.

+

When provided task is successfully completed, user buffers are synchronized with up to date data from araxs internal buffers.

+
Parameters
+ + +
taskThe task to wait for.
+
+
+
Returns
The arax_task_state of the given arax_task.
+ +

Definition at line 515 of file impl.c.

+ +

References arax_task_wait_done(), and arax_task_msg::state.

+ +

Referenced by arax_data_allocate_remote(), arax_data_get(), and arax_task_issue_sync().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a02177.js b/a02177.js new file mode 100644 index 00000000..dc9caf78 --- /dev/null +++ b/a02177.js @@ -0,0 +1,8 @@ +var a02177 = +[ + [ "arax_task_free", "a02177.html#ga55195957c1cde1508257782716aa6db3", null ], + [ "arax_task_issue", "a02177.html#gac9f0f3fbb14da879d3ff09bd367bbb24", null ], + [ "arax_task_issue_sync", "a02177.html#ga1418f4cd7336bf77cce7b955a1bf7077", null ], + [ "arax_task_stat", "a02177.html#gafd8ed07de431241d4a3e20ddb1eaede5", null ], + [ "arax_task_wait", "a02177.html#gacb098c0a8c3908f3fdd32e7ea7d780bb", null ] +]; \ No newline at end of file diff --git a/a02177_ga1418f4cd7336bf77cce7b955a1bf7077_cgraph.map b/a02177_ga1418f4cd7336bf77cce7b955a1bf7077_cgraph.map new file mode 100644 index 00000000..4cd215e3 --- /dev/null +++ b/a02177_ga1418f4cd7336bf77cce7b955a1bf7077_cgraph.map @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02177_ga1418f4cd7336bf77cce7b955a1bf7077_cgraph.md5 b/a02177_ga1418f4cd7336bf77cce7b955a1bf7077_cgraph.md5 new file mode 100644 index 00000000..7f4c72cc --- /dev/null +++ b/a02177_ga1418f4cd7336bf77cce7b955a1bf7077_cgraph.md5 @@ -0,0 +1 @@ +2e1aa71f66a80e71fcafb2e038c486d6 \ No newline at end of file diff --git a/a02177_ga1418f4cd7336bf77cce7b955a1bf7077_cgraph.svg b/a02177_ga1418f4cd7336bf77cce7b955a1bf7077_cgraph.svg new file mode 100644 index 00000000..a8645467 --- /dev/null +++ b/a02177_ga1418f4cd7336bf77cce7b955a1bf7077_cgraph.svg @@ -0,0 +1,849 @@ + + + + + + +arax_task_issue_sync + + +Node1 + + +arax_task_issue_sync + + + + + +Node2 + + +arax_task_free + + + + + +Node1->Node2 + + + + + + + + +Node13 + + +arax_task_issue + + + + + +Node1->Node13 + + + + + + + + +Node36 + + +arax_task_wait + + + + + +Node1->Node36 + + + + + + + + +Node3 + + +arax_object_ref_dec + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_pipe_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node12 + + +utils_list_del + + + + + +Node3->Node12 + + + + + + + + +Node5 + + +arax_throttle_size_inc + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +async_condition_lock + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_condition_notify + + + + + +Node5->Node8 + + + + + + + + +Node10 + + +async_condition_unlock + + + + + +Node5->Node10 + + + + + + + + +Node7 + + +async_completion_wait + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_semaphore_inc + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +async_completion_complete + + + + + +Node10->Node11 + + + + + + + + +Node14 + + +arax_task_alloc + + + + + +Node13->Node14 + + + + + + + + +Node30 + + +arax_task_host_data + + + + + +Node13->Node30 + + + + + + + + +Node31 + + +arax_task_submit + + + + + +Node13->Node31 + + + + + + + + +Node35 + + +check_semantics + + + + + +Node13->Node35 + + + + + + + + +Node15 + + +arax_data_input_init + + + + + +Node14->Node15 + + + + + + + + +Node19 + + +arax_data_output_init + + + + + +Node14->Node19 + + + + + + + + +Node20 + + +arax_object_register + + + + + +Node14->Node20 + + + + + + + + +Node29 + + +async_completion_init + + + + + +Node14->Node29 + + + + + + + + +Node16 + + +arax_data_migrate_accel + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +arax_object_ref_inc + + + + + +Node15->Node17 + + + + + + + + +Node16->Node3 + + + + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +arax_object_type_to_str + + + + + +Node16->Node18 + + + + + + + + +Node19->Node16 + + + + + + + + +Node19->Node17 + + + + + + + + +Node21 + + +arax_pipe_size_dec + + + + + +Node20->Node21 + + + + + + + + +Node25 + + +arch_alloc_allocate + + + + + +Node20->Node25 + + + + + + + + +Node26 + + +utils_list_add + + + + + +Node20->Node26 + + + + + + + + +Node28 + + +utils_list_node_init + + + + + +Node20->Node28 + + + + + + + + +Node22 + + +arax_throttle_size_dec + + + + + +Node21->Node22 + + + + + + + + +Node22->Node6 + + + + + + + + +Node22->Node10 + + + + + + + + +Node23 + + +async_condition_wait + + + + + +Node22->Node23 + + + + + + + + +Node23->Node7 + + + + + + + + +Node23->Node11 + + + + + + + + +Node24 + + +async_semaphore_dec + + + + + +Node23->Node24 + + + + + + + + +Node27 + + +utils_list_node_add + + + + + +Node26->Node27 + + + + + + + + +Node29->Node28 + + + + + + + + +Node31->Node17 + + + + + + + + +Node32 + + +arax_vaccel_add_task + + + + + +Node31->Node32 + + + + + + + + +Node33 + + +arax_accel_add_task + + + + + +Node32->Node33 + + + + + + + + +Node34 + + +utils_queue_push + + + + + +Node32->Node34 + + + + + + + + +Node33->Node6 + + + + + + + + +Node33->Node8 + + + + + + + + +Node33->Node10 + + + + + + + + +Node37 + + +arax_task_wait_done + + + + + +Node36->Node37 + + + + + + + + +Node38 + + +async_completion_wait + + + + + +Node37->Node38 + + + + + + + + +Node39 + + +_add_completion + + + + + +Node38->Node39 + + + + + + + + +Node40 + + +getVmID + + + + + +Node38->Node40 + + + + + + + + +Node39->Node26 + + + + + + + + diff --git a/a02177_ga55195957c1cde1508257782716aa6db3_cgraph.map b/a02177_ga55195957c1cde1508257782716aa6db3_cgraph.map new file mode 100644 index 00000000..93cc436c --- /dev/null +++ b/a02177_ga55195957c1cde1508257782716aa6db3_cgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02177_ga55195957c1cde1508257782716aa6db3_cgraph.md5 b/a02177_ga55195957c1cde1508257782716aa6db3_cgraph.md5 new file mode 100644 index 00000000..06230115 --- /dev/null +++ b/a02177_ga55195957c1cde1508257782716aa6db3_cgraph.md5 @@ -0,0 +1 @@ +76ba0eba570a96d3773343a7d3896177 \ No newline at end of file diff --git a/a02177_ga55195957c1cde1508257782716aa6db3_cgraph.svg b/a02177_ga55195957c1cde1508257782716aa6db3_cgraph.svg new file mode 100644 index 00000000..33142370 --- /dev/null +++ b/a02177_ga55195957c1cde1508257782716aa6db3_cgraph.svg @@ -0,0 +1,201 @@ + + + + + + +arax_task_free + + +Node1 + + +arax_task_free + + + + + +Node2 + + +arax_object_ref_dec + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_size_inc + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +utils_list_del + + + + + +Node2->Node11 + + + + + + + + +Node4 + + +arax_throttle_size_inc + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +async_condition_lock + + + + + +Node4->Node5 + + + + + + + + +Node7 + + +async_condition_notify + + + + + +Node4->Node7 + + + + + + + + +Node9 + + +async_condition_unlock + + + + + +Node4->Node9 + + + + + + + + +Node6 + + +async_completion_wait + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +async_semaphore_inc + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +async_completion_complete + + + + + +Node9->Node10 + + + + + + + + diff --git a/a02177_ga55195957c1cde1508257782716aa6db3_icgraph.map b/a02177_ga55195957c1cde1508257782716aa6db3_icgraph.map new file mode 100644 index 00000000..bbc0910b --- /dev/null +++ b/a02177_ga55195957c1cde1508257782716aa6db3_icgraph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/a02177_ga55195957c1cde1508257782716aa6db3_icgraph.md5 b/a02177_ga55195957c1cde1508257782716aa6db3_icgraph.md5 new file mode 100644 index 00000000..25e326f0 --- /dev/null +++ b/a02177_ga55195957c1cde1508257782716aa6db3_icgraph.md5 @@ -0,0 +1 @@ +c620f2438c34fd77098f7082a223b069 \ No newline at end of file diff --git a/a02177_ga55195957c1cde1508257782716aa6db3_icgraph.svg b/a02177_ga55195957c1cde1508257782716aa6db3_icgraph.svg new file mode 100644 index 00000000..e8415c2a --- /dev/null +++ b/a02177_ga55195957c1cde1508257782716aa6db3_icgraph.svg @@ -0,0 +1,94 @@ + + + + + + +arax_task_free + + +Node1 + + +arax_task_free + + + + + +Node2 + + +arax_data_allocate +_remote + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_get + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +arax_task_issue_sync + + + + + +Node1->Node5 + + + + + + + + +Node4 + + +arax_data_memcpy + + + + + +Node3->Node4 + + + + + + + + diff --git a/a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_cgraph.map b/a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_cgraph.map new file mode 100644 index 00000000..13017154 --- /dev/null +++ b/a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_cgraph.map @@ -0,0 +1,79 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_cgraph.md5 b/a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_cgraph.md5 new file mode 100644 index 00000000..5820ffea --- /dev/null +++ b/a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_cgraph.md5 @@ -0,0 +1 @@ +164857350f1fa964a9067debbdbc22f7 \ No newline at end of file diff --git a/a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_cgraph.svg b/a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_cgraph.svg new file mode 100644 index 00000000..19103272 --- /dev/null +++ b/a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_cgraph.svg @@ -0,0 +1,705 @@ + + + + + + +arax_task_issue + + +Node1 + + +arax_task_issue + + + + + +Node2 + + +arax_task_alloc + + + + + +Node1->Node2 + + + + + + + + +Node28 + + +arax_task_host_data + + + + + +Node1->Node28 + + + + + + + + +Node29 + + +arax_task_submit + + + + + +Node1->Node29 + + + + + + + + +Node33 + + +check_semantics + + + + + +Node1->Node33 + + + + + + + + +Node3 + + +arax_data_input_init + + + + + +Node2->Node3 + + + + + + + + +Node17 + + +arax_data_output_init + + + + + +Node2->Node17 + + + + + + + + +Node18 + + +arax_object_register + + + + + +Node2->Node18 + + + + + + + + +Node27 + + +async_completion_init + + + + + +Node2->Node27 + + + + + + + + +Node4 + + +arax_data_migrate_accel + + + + + +Node3->Node4 + + + + + + + + +Node15 + + +arax_object_ref_inc + + + + + +Node3->Node15 + + + + + + + + +Node5 + + +arax_object_ref_dec + + + + + +Node4->Node5 + + + + + + + + +Node4->Node15 + + + + + + + + +Node16 + + +arax_object_type_to_str + + + + + +Node4->Node16 + + + + + + + + +Node6 + + +arax_pipe_size_inc + + + + + +Node5->Node6 + + + + + + + + +Node14 + + +utils_list_del + + + + + +Node5->Node14 + + + + + + + + +Node7 + + +arax_throttle_size_inc + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +async_condition_lock + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +async_condition_notify + + + + + +Node7->Node10 + + + + + + + + +Node12 + + +async_condition_unlock + + + + + +Node7->Node12 + + + + + + + + +Node9 + + +async_completion_wait + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +async_semaphore_inc + + + + + +Node10->Node11 + + + + + + + + +Node13 + + +async_completion_complete + + + + + +Node12->Node13 + + + + + + + + +Node17->Node4 + + + + + + + + +Node17->Node15 + + + + + + + + +Node19 + + +arax_pipe_size_dec + + + + + +Node18->Node19 + + + + + + + + +Node23 + + +arch_alloc_allocate + + + + + +Node18->Node23 + + + + + + + + +Node24 + + +utils_list_add + + + + + +Node18->Node24 + + + + + + + + +Node26 + + +utils_list_node_init + + + + + +Node18->Node26 + + + + + + + + +Node20 + + +arax_throttle_size_dec + + + + + +Node19->Node20 + + + + + + + + +Node20->Node8 + + + + + + + + +Node20->Node12 + + + + + + + + +Node21 + + +async_condition_wait + + + + + +Node20->Node21 + + + + + + + + +Node21->Node9 + + + + + + + + +Node21->Node13 + + + + + + + + +Node22 + + +async_semaphore_dec + + + + + +Node21->Node22 + + + + + + + + +Node25 + + +utils_list_node_add + + + + + +Node24->Node25 + + + + + + + + +Node27->Node26 + + + + + + + + +Node29->Node15 + + + + + + + + +Node30 + + +arax_vaccel_add_task + + + + + +Node29->Node30 + + + + + + + + +Node31 + + +arax_accel_add_task + + + + + +Node30->Node31 + + + + + + + + +Node32 + + +utils_queue_push + + + + + +Node30->Node32 + + + + + + + + +Node31->Node8 + + + + + + + + +Node31->Node10 + + + + + + + + +Node31->Node12 + + + + + + + + diff --git a/a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_icgraph.map b/a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_icgraph.map new file mode 100644 index 00000000..8ff9e369 --- /dev/null +++ b/a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_icgraph.map @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_icgraph.md5 b/a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_icgraph.md5 new file mode 100644 index 00000000..700744bc --- /dev/null +++ b/a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_icgraph.md5 @@ -0,0 +1 @@ +d971ac6c174e52604c366fa9fdf8143d \ No newline at end of file diff --git a/a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_icgraph.svg b/a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_icgraph.svg new file mode 100644 index 00000000..28721392 --- /dev/null +++ b/a02177_gac9f0f3fbb14da879d3ff09bd367bbb24_icgraph.svg @@ -0,0 +1,139 @@ + + + + + + +arax_task_issue + + +Node1 + + +arax_task_issue + + + + + +Node2 + + +arax_data_allocate +_remote + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_get + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +arax_data_set + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node1->Node6 + + + + + + + + +Node7 + + +arax_task_issue_sync + + + + + +Node1->Node7 + + + + + + + + +Node4 + + +arax_data_memcpy + + + + + +Node3->Node4 + + + + + + + + +Node5->Node4 + + + + + + + + diff --git a/a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_cgraph.map b/a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_cgraph.map new file mode 100644 index 00000000..1e095a4c --- /dev/null +++ b/a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_cgraph.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_cgraph.md5 b/a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_cgraph.md5 new file mode 100644 index 00000000..f01f0a82 --- /dev/null +++ b/a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_cgraph.md5 @@ -0,0 +1 @@ +3cfe8b817b297618a6a0979bfab1002b \ No newline at end of file diff --git a/a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_cgraph.svg b/a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_cgraph.svg new file mode 100644 index 00000000..4093a621 --- /dev/null +++ b/a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_cgraph.svg @@ -0,0 +1,129 @@ + + + + + + +arax_task_wait + + +Node1 + + +arax_task_wait + + + + + +Node2 + + +arax_task_wait_done + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_completion_wait + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +_add_completion + + + + + +Node3->Node4 + + + + + + + + +Node7 + + +getVmID + + + + + +Node3->Node7 + + + + + + + + +Node5 + + +utils_list_add + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +utils_list_node_add + + + + + +Node5->Node6 + + + + + + + + diff --git a/a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_icgraph.map b/a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_icgraph.map new file mode 100644 index 00000000..db443514 --- /dev/null +++ b/a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_icgraph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_icgraph.md5 b/a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_icgraph.md5 new file mode 100644 index 00000000..bfce55bf --- /dev/null +++ b/a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_icgraph.md5 @@ -0,0 +1 @@ +767c7694cde1a9f5011bdd2c1a4d7fa8 \ No newline at end of file diff --git a/a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_icgraph.svg b/a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_icgraph.svg new file mode 100644 index 00000000..43577911 --- /dev/null +++ b/a02177_gacb098c0a8c3908f3fdd32e7ea7d780bb_icgraph.svg @@ -0,0 +1,94 @@ + + + + + + +arax_task_wait + + +Node1 + + +arax_task_wait + + + + + +Node2 + + +arax_data_allocate +_remote + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_get + + + + + +Node1->Node3 + + + + + + + + +Node5 + + +arax_task_issue_sync + + + + + +Node1->Node5 + + + + + + + + +Node4 + + +arax_data_memcpy + + + + + +Node3->Node4 + + + + + + + + diff --git a/a02178.html b/a02178.html new file mode 100644 index 00000000..6dcb6810 --- /dev/null +++ b/a02178.html @@ -0,0 +1,155 @@ + + + + + + + +Arax: Public Buffer user API + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
Public Buffer user API
+
+
+ + + + +

+Functions

arax_buffer_s ARAX_BUFFER (size_t size)
 
+

Detailed Description

+

Functions usable from applications for manipulating arax_buffers.

+

Function Documentation

+ +

◆ ARAX_BUFFER()

+ +
+
+ + + + + + + + +
arax_buffer_s ARAX_BUFFER (size_t size)
+
+

ARAX_BUFFER create a arax_buffer_s object.

+
Parameters
+ + +
sizeSize of user_buffer.
+
+
+
Returns
arax_buffer_s.
+ +

Definition at line 531 of file impl.c.

+ +

References arax_data_init(), arax_pipe_get, and vpipe.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a02178.js b/a02178.js new file mode 100644 index 00000000..8925b33a --- /dev/null +++ b/a02178.js @@ -0,0 +1,4 @@ +var a02178 = +[ + [ "ARAX_BUFFER", "a02178.html#ga9260ad2dd766aec3274c518e2e312b1f", null ] +]; \ No newline at end of file diff --git a/a02178_ga9260ad2dd766aec3274c518e2e312b1f_cgraph.map b/a02178_ga9260ad2dd766aec3274c518e2e312b1f_cgraph.map new file mode 100644 index 00000000..5bf99ff7 --- /dev/null +++ b/a02178_ga9260ad2dd766aec3274c518e2e312b1f_cgraph.map @@ -0,0 +1,35 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02178_ga9260ad2dd766aec3274c518e2e312b1f_cgraph.md5 b/a02178_ga9260ad2dd766aec3274c518e2e312b1f_cgraph.md5 new file mode 100644 index 00000000..f2e6fd19 --- /dev/null +++ b/a02178_ga9260ad2dd766aec3274c518e2e312b1f_cgraph.md5 @@ -0,0 +1 @@ +405ff6f12cc4bd3a8a7bfa9cabcebb36 \ No newline at end of file diff --git a/a02178_ga9260ad2dd766aec3274c518e2e312b1f_cgraph.svg b/a02178_ga9260ad2dd766aec3274c518e2e312b1f_cgraph.svg new file mode 100644 index 00000000..31830673 --- /dev/null +++ b/a02178_ga9260ad2dd766aec3274c518e2e312b1f_cgraph.svg @@ -0,0 +1,309 @@ + + + + + + +ARAX_BUFFER + + +Node1 + + +ARAX_BUFFER + + + + + +Node2 + + +arax_data_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_data_init_aligned + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_object_register + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_pipe_size_dec + + + + + +Node4->Node5 + + + + + + + + +Node13 + + +arch_alloc_allocate + + + + + +Node4->Node13 + + + + + + + + +Node14 + + +utils_list_add + + + + + +Node4->Node14 + + + + + + + + +Node16 + + +utils_list_node_init + + + + + +Node4->Node16 + + + + + + + + +Node6 + + +arax_throttle_size_dec + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +async_condition_lock + + + + + +Node6->Node7 + + + + + + + + +Node9 + + +async_condition_unlock + + + + + +Node6->Node9 + + + + + + + + +Node11 + + +async_condition_wait + + + + + +Node6->Node11 + + + + + + + + +Node8 + + +async_completion_wait + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +async_completion_complete + + + + + +Node9->Node10 + + + + + + + + +Node11->Node8 + + + + + + + + +Node11->Node10 + + + + + + + + +Node12 + + +async_semaphore_dec + + + + + +Node11->Node12 + + + + + + + + +Node15 + + +utils_list_node_add + + + + + +Node14->Node15 + + + + + + + + diff --git a/a02182.html b/a02182.html new file mode 100644 index 00000000..0bd89680 --- /dev/null +++ b/a02182.html @@ -0,0 +1,141 @@ + + + + + + + +Arax: arch_alloc_s Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arch_alloc_s Struct Reference
+
+
+ +

#include <alloc.h>

+ + + + +

+Data Fields

char padd
 
+

Detailed Description

+
+

Definition at line 17 of file alloc.h.

+

Field Documentation

+ +

◆ padd

+ +
+
+ + + + +
char padd
+
+ +

Definition at line 26 of file alloc.h.

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02182.js b/a02182.js new file mode 100644 index 00000000..b542ba7a --- /dev/null +++ b/a02182.js @@ -0,0 +1,4 @@ +var a02182 = +[ + [ "padd", "a02182.html#a19a76b743b2972be73c5fbf5231edd65", null ] +]; \ No newline at end of file diff --git a/a02186.html b/a02186.html new file mode 100644 index 00000000..eee2c66c --- /dev/null +++ b/a02186.html @@ -0,0 +1,163 @@ + + + + + + + +Arax: arch_alloc_stats_s Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arch_alloc_stats_s Struct Reference
+
+
+ +

#include <alloc.h>

+ + + + + + +

+Data Fields

size_t total_bytes
 
size_t used_bytes
 
+

Detailed Description

+
+

Definition at line 83 of file alloc.h.

+

Field Documentation

+ +

◆ total_bytes

+ +
+
+ + + + +
size_t total_bytes
+
+ +

Definition at line 85 of file alloc.h.

+ +

Referenced by _arch_alloc_mspace_mallinfo().

+ +
+
+ +

◆ used_bytes

+ +
+
+ + + + +
size_t used_bytes
+
+ +

Definition at line 86 of file alloc.h.

+ +

Referenced by _arch_alloc_mspace_mallinfo().

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02186.js b/a02186.js new file mode 100644 index 00000000..e115e787 --- /dev/null +++ b/a02186.js @@ -0,0 +1,5 @@ +var a02186 = +[ + [ "total_bytes", "a02186.html#a44f6c734c0aa9cad16cdbb25ca6aa471", null ], + [ "used_bytes", "a02186.html#a5931414ae1520521e029e466278fb642", null ] +]; \ No newline at end of file diff --git a/a02188.map b/a02188.map new file mode 100644 index 00000000..c032aa22 --- /dev/null +++ b/a02188.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a02188.md5 b/a02188.md5 new file mode 100644 index 00000000..07d11362 --- /dev/null +++ b/a02188.md5 @@ -0,0 +1 @@ +be7f205ced0d5e15b6a531251dc55c41 \ No newline at end of file diff --git a/a02188.svg b/a02188.svg new file mode 100644 index 00000000..0ca656d2 --- /dev/null +++ b/a02188.svg @@ -0,0 +1,59 @@ + + + + + + +arch_alloc_inner_s + + +Node1 + + +arch_alloc_inner_s + + + + + +Node2 + + +arch_alloc_s + + + + + +Node2->Node1 + + + + + + base + + + +Node3 + + +utils_bitmap + + + + + +Node3->Node1 + + + + + + bmp + + + diff --git a/a02190.html b/a02190.html new file mode 100644 index 00000000..9cb563f9 --- /dev/null +++ b/a02190.html @@ -0,0 +1,245 @@ + + + + + + + +Arax: arch_alloc_inner_s Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arch_alloc_inner_s Struct Reference
+
+
+
+ + Collaboration diagram for arch_alloc_inner_s:
+
+
+ + + + + + + + + + + + + + + +

+Data Fields

arch_alloc_s base
 
mspace * root
 
void * start
 
utils_bitmap_s bmp
 
tlsf_t root
 
utils_spinlock lock
 
+

Detailed Description

+
+

Definition at line 12 of file dlmalloc/alloc.c.

+

Field Documentation

+ +

◆ base

+ +
+
+ + + + +
arch_alloc_s base
+
+ +

Definition at line 14 of file dlmalloc/alloc.c.

+ +
+
+ +

◆ bmp

+ +
+
+ + + + +
utils_bitmap_s bmp
+
+ +

Definition at line 17 of file dlmalloc/alloc.c.

+ +

Referenced by arax_mmap(), arax_ummap(), arch_alloc_get_bitmap(), and arch_alloc_init_once().

+ +
+
+ +

◆ lock

+ +
+
+ + + + +
utils_spinlock lock
+
+ +

Definition at line 8 of file tlsf/alloc.c.

+ +

Referenced by _arch_alloc_free(), arch_alloc_allocate(), and arch_alloc_init_once().

+ +
+
+ +

◆ root [1/2]

+ + + +

◆ root [2/2]

+ +
+
+ + + + +
tlsf_t root
+
+ +

Definition at line 7 of file tlsf/alloc.c.

+ +
+
+ +

◆ start

+ +
+
+ + + + +
void* start
+
+
+
The documentation for this struct was generated from the following files: +
+
+ + + + diff --git a/a02190.js b/a02190.js new file mode 100644 index 00000000..f537c11e --- /dev/null +++ b/a02190.js @@ -0,0 +1,9 @@ +var a02190 = +[ + [ "base", "a02190.html#a4d09c141a8139b5f30b5877cb9de4ec2", null ], + [ "bmp", "a02190.html#a67dc8652bdc3bc475d07ce02740c879d", null ], + [ "lock", "a02190.html#a2d0e255f518332321e7cbd964ebb9681", null ], + [ "root", "a02190.html#afbd7d5930f6ef1eaf064bcb5088deed9", null ], + [ "root", "a02190.html#a7877d65cbc19e86dd20e002a9510d8b6", null ], + [ "start", "a02190.html#a53255b934b07b472175fbb8e847f9b5d", null ] +]; \ No newline at end of file diff --git a/a02194.html b/a02194.html new file mode 100644 index 00000000..0b761804 --- /dev/null +++ b/a02194.html @@ -0,0 +1,318 @@ + + + + + + + +Arax: mallinfo Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
mallinfo Struct Reference
+
+
+ +

#include <malloc.h>

+ + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

MALLINFO_FIELD_TYPE arena
 
MALLINFO_FIELD_TYPE ordblks
 
MALLINFO_FIELD_TYPE smblks
 
MALLINFO_FIELD_TYPE hblks
 
MALLINFO_FIELD_TYPE hblkhd
 
MALLINFO_FIELD_TYPE usmblks
 
MALLINFO_FIELD_TYPE fsmblks
 
MALLINFO_FIELD_TYPE uordblks
 
MALLINFO_FIELD_TYPE fordblks
 
MALLINFO_FIELD_TYPE keepcost
 
+

Detailed Description

+
+

Definition at line 770 of file malloc.c.

+

Field Documentation

+ +

◆ arena

+ +
+
+ + + + +
MALLINFO_FIELD_TYPE arena
+
+ +

Definition at line 772 of file malloc.c.

+ +

Referenced by _arch_alloc_mspace_mallinfo(), and internal_mallinfo().

+ +
+
+ +

◆ fordblks

+ +
+
+ + + + +
MALLINFO_FIELD_TYPE fordblks
+
+ +

Definition at line 780 of file malloc.c.

+ +

Referenced by internal_mallinfo().

+ +
+
+ +

◆ fsmblks

+ +
+
+ + + + +
MALLINFO_FIELD_TYPE fsmblks
+
+ +

Definition at line 778 of file malloc.c.

+ +
+
+ +

◆ hblkhd

+ +
+
+ + + + +
MALLINFO_FIELD_TYPE hblkhd
+
+ +

Definition at line 776 of file malloc.c.

+ +

Referenced by internal_mallinfo().

+ +
+
+ +

◆ hblks

+ +
+
+ + + + +
MALLINFO_FIELD_TYPE hblks
+
+ +

Definition at line 775 of file malloc.c.

+ +
+
+ +

◆ keepcost

+ +
+
+ + + + +
MALLINFO_FIELD_TYPE keepcost
+
+ +

Definition at line 781 of file malloc.c.

+ +

Referenced by internal_mallinfo().

+ +
+
+ +

◆ ordblks

+ +
+
+ + + + +
MALLINFO_FIELD_TYPE ordblks
+
+ +

Definition at line 773 of file malloc.c.

+ +

Referenced by internal_mallinfo().

+ +
+
+ +

◆ smblks

+ +
+
+ + + + +
MALLINFO_FIELD_TYPE smblks
+
+ +

Definition at line 774 of file malloc.c.

+ +
+
+ +

◆ uordblks

+ +
+
+ + + + +
MALLINFO_FIELD_TYPE uordblks
+
+ +

Definition at line 779 of file malloc.c.

+ +

Referenced by _arch_alloc_mspace_mallinfo(), and internal_mallinfo().

+ +
+
+ +

◆ usmblks

+ +
+
+ + + + +
MALLINFO_FIELD_TYPE usmblks
+
+ +

Definition at line 777 of file malloc.c.

+ +

Referenced by internal_mallinfo().

+ +
+
+
The documentation for this struct was generated from the following files: +
+
+ + + + diff --git a/a02194.js b/a02194.js new file mode 100644 index 00000000..29a97eb2 --- /dev/null +++ b/a02194.js @@ -0,0 +1,13 @@ +var a02194 = +[ + [ "arena", "a02194.html#a79200c7739bcd93e03f760a5cdeeeaa5", null ], + [ "fordblks", "a02194.html#ac6a88ce3ab6dabef49c2edccd96916b1", null ], + [ "fsmblks", "a02194.html#a65d7b5265e7b59522a0cdc2b08b9b6c7", null ], + [ "hblkhd", "a02194.html#a043c274dfbe801c8167a89356bde604b", null ], + [ "hblks", "a02194.html#a6bd460d78e8a4838267861923b77a49e", null ], + [ "keepcost", "a02194.html#a8342d14eaf4190a788d1add93998532b", null ], + [ "ordblks", "a02194.html#a149e2e324e9f2cb71db5e9c4d382a67f", null ], + [ "smblks", "a02194.html#a3e7598cedb4cf3db48ac2dbdaedba8c3", null ], + [ "uordblks", "a02194.html#adfae0d223395438424dc280941abd2d8", null ], + [ "usmblks", "a02194.html#af6ad0df613ea4a48ade27b83b8ad38ad", null ] +]; \ No newline at end of file diff --git a/a02196.map b/a02196.map new file mode 100644 index 00000000..e69ad6b5 --- /dev/null +++ b/a02196.map @@ -0,0 +1,4 @@ + + + + diff --git a/a02196.md5 b/a02196.md5 new file mode 100644 index 00000000..d7189c7a --- /dev/null +++ b/a02196.md5 @@ -0,0 +1 @@ +25820dc505c25901dfc174c7aaeeb5fa \ No newline at end of file diff --git a/a02196.svg b/a02196.svg new file mode 100644 index 00000000..6ad385ce --- /dev/null +++ b/a02196.svg @@ -0,0 +1,32 @@ + + + + + + +malloc_chunk + + +Node1 + + +malloc_chunk + + + + + +Node1->Node1 + + + + + + bk +fd + + + diff --git a/a02198.html b/a02198.html new file mode 100644 index 00000000..a6fade3d --- /dev/null +++ b/a02198.html @@ -0,0 +1,208 @@ + + + + + + + +Arax: malloc_chunk Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
malloc_chunk Struct Reference
+
+
+
+ + Collaboration diagram for malloc_chunk:
+
+
+ + + + + + + + + + + +

+Data Fields

size_t prev_foot
 
size_t head
 
struct malloc_chunkfd
 
struct malloc_chunkbk
 
+

Detailed Description

+
+

Definition at line 2231 of file malloc.c.

+

Field Documentation

+ +

◆ bk

+ +
+
+ + + + +
struct malloc_chunk* bk
+
+ +

Definition at line 2236 of file malloc.c.

+ +

Referenced by init_bins().

+ +
+
+ +

◆ fd

+ +
+
+ + + + +
struct malloc_chunk* fd
+
+ +

Definition at line 2235 of file malloc.c.

+ +

Referenced by dlmalloc(), and init_bins().

+ +
+
+ +

◆ head

+ + + +

◆ prev_foot

+ +
+
+ + + + +
size_t prev_foot
+
+ +

Definition at line 2233 of file malloc.c.

+ +

Referenced by dispose_chunk(), dlfree(), internal_memalign(), mmap_alloc(), and mmap_resize().

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02198.js b/a02198.js new file mode 100644 index 00000000..48e058bc --- /dev/null +++ b/a02198.js @@ -0,0 +1,7 @@ +var a02198 = +[ + [ "bk", "a02198.html#a9b61390def3591c51c3eac16f3adb2ee", null ], + [ "fd", "a02198.html#a46b9e4df4af8fd25880852d61b92bdba", null ], + [ "head", "a02198.html#a75844ce74940ef333d11ae090e07c9af", null ], + [ "prev_foot", "a02198.html#a56df26ccbddbb4632d11f87c26f97ef1", null ] +]; \ No newline at end of file diff --git a/a02200.map b/a02200.map new file mode 100644 index 00000000..726b2b95 --- /dev/null +++ b/a02200.map @@ -0,0 +1,4 @@ + + + + diff --git a/a02200.md5 b/a02200.md5 new file mode 100644 index 00000000..21e24934 --- /dev/null +++ b/a02200.md5 @@ -0,0 +1 @@ +18fe872f4bd6cb18b5c36b1afebe2b7c \ No newline at end of file diff --git a/a02200.svg b/a02200.svg new file mode 100644 index 00000000..9432aa55 --- /dev/null +++ b/a02200.svg @@ -0,0 +1,34 @@ + + + + + + +malloc_tree_chunk + + +Node1 + + +malloc_tree_chunk + + + + + +Node1->Node1 + + + + + + bk +child +fd +parent + + + diff --git a/a02202.html b/a02202.html new file mode 100644 index 00000000..04b54844 --- /dev/null +++ b/a02202.html @@ -0,0 +1,256 @@ + + + + + + + +Arax: malloc_tree_chunk Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
malloc_tree_chunk Struct Reference
+
+
+
+ + Collaboration diagram for malloc_tree_chunk:
+
+
+ + + + + + + + + + + + + + + + + +

+Data Fields

size_t prev_foot
 
size_t head
 
struct malloc_tree_chunkfd
 
struct malloc_tree_chunkbk
 
struct malloc_tree_chunkchild [2]
 
struct malloc_tree_chunkparent
 
bindex_t index
 
+

Detailed Description

+
+

Definition at line 2441 of file malloc.c.

+

Field Documentation

+ +

◆ bk

+ +
+
+ + + + +
struct malloc_tree_chunk* bk
+
+ +

Definition at line 2447 of file malloc.c.

+ +
+
+ +

◆ child

+ +
+
+ + + + +
struct malloc_tree_chunk* child[2]
+
+ +

Definition at line 2449 of file malloc.c.

+ +

Referenced by tmalloc_large().

+ +
+
+ +

◆ fd

+ +
+
+ + + + +
struct malloc_tree_chunk* fd
+
+ +

Definition at line 2446 of file malloc.c.

+ +
+
+ +

◆ head

+ +
+
+ + + + +
size_t head
+
+ +

Definition at line 2445 of file malloc.c.

+ +
+
+ +

◆ index

+ +
+
+ + + + +
bindex_t index
+
+ +

Definition at line 2451 of file malloc.c.

+ +
+
+ +

◆ parent

+ +
+
+ + + + +
struct malloc_tree_chunk* parent
+
+ +

Definition at line 2450 of file malloc.c.

+ +
+
+ +

◆ prev_foot

+ +
+
+ + + + +
size_t prev_foot
+
+ +

Definition at line 2444 of file malloc.c.

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02202.js b/a02202.js new file mode 100644 index 00000000..07d84889 --- /dev/null +++ b/a02202.js @@ -0,0 +1,10 @@ +var a02202 = +[ + [ "bk", "a02202.html#abe98d6367dd96eb904a24a085b4f38a1", null ], + [ "child", "a02202.html#a42725ba2abbd10eb7ed652a704933d2b", null ], + [ "fd", "a02202.html#a7c8401bc7129e9f2b94ed95902bf3765", null ], + [ "head", "a02202.html#a75844ce74940ef333d11ae090e07c9af", null ], + [ "index", "a02202.html#a8f7b2e36145b1e2ec5bfea94dd922aec", null ], + [ "parent", "a02202.html#a80e9dd6097047a98cad29852a12e2135", null ], + [ "prev_foot", "a02202.html#a56df26ccbddbb4632d11f87c26f97ef1", null ] +]; \ No newline at end of file diff --git a/a02204.map b/a02204.map new file mode 100644 index 00000000..e52cd545 --- /dev/null +++ b/a02204.map @@ -0,0 +1,4 @@ + + + + diff --git a/a02204.md5 b/a02204.md5 new file mode 100644 index 00000000..63c395a3 --- /dev/null +++ b/a02204.md5 @@ -0,0 +1 @@ +be1d702bcb97b2a631f04e5fc5cf52c2 \ No newline at end of file diff --git a/a02204.svg b/a02204.svg new file mode 100644 index 00000000..400f3324 --- /dev/null +++ b/a02204.svg @@ -0,0 +1,31 @@ + + + + + + +malloc_segment + + +Node1 + + +malloc_segment + + + + + +Node1->Node1 + + + + + + next + + + diff --git a/a02206.html b/a02206.html new file mode 100644 index 00000000..21b5d769 --- /dev/null +++ b/a02206.html @@ -0,0 +1,208 @@ + + + + + + + +Arax: malloc_segment Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
malloc_segment Struct Reference
+
+
+
+ + Collaboration diagram for malloc_segment:
+
+
+ + + + + + + + + + + +

+Data Fields

char * base
 
size_t size
 
struct malloc_segmentnext
 
flag_t sflags
 
+

Detailed Description

+
+

Definition at line 2518 of file malloc.c.

+

Field Documentation

+ +

◆ base

+ +
+
+ + + + +
char* base
+
+
+ +

◆ next

+ +
+
+ + + + +
struct malloc_segment* next
+
+
+ +

◆ sflags

+ +
+
+ + + + +
flag_t sflags
+
+ +

Definition at line 2523 of file malloc.c.

+ +

Referenced by add_segment(), and sys_alloc().

+ +
+
+ +

◆ size

+ +
+
+ + + + +
size_t size
+
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02206.js b/a02206.js new file mode 100644 index 00000000..0eddd4f3 --- /dev/null +++ b/a02206.js @@ -0,0 +1,7 @@ +var a02206 = +[ + [ "base", "a02206.html#aaa2fae125feca2b4de4f3f7640c76ce4", null ], + [ "next", "a02206.html#a6d7b4b2f0c010593cf90799d057d4655", null ], + [ "sflags", "a02206.html#a9b646ca2cdec5a027aaab2177712760f", null ], + [ "size", "a02206.html#a854352f53b148adc24983a58a1866d66", null ] +]; \ No newline at end of file diff --git a/a02208.map b/a02208.map new file mode 100644 index 00000000..4ababeca --- /dev/null +++ b/a02208.map @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/a02208.md5 b/a02208.md5 new file mode 100644 index 00000000..3beaa655 --- /dev/null +++ b/a02208.md5 @@ -0,0 +1 @@ +2a8367ce03f6d92cf96358548da706b8 \ No newline at end of file diff --git a/a02208.svg b/a02208.svg new file mode 100644 index 00000000..b0027909 --- /dev/null +++ b/a02208.svg @@ -0,0 +1,114 @@ + + + + + + +malloc_state + + +Node1 + + +malloc_state + + + + + +Node2 + + +malloc_chunk + + + + + +Node2->Node1 + + + + + + dv +smallbins +top + + + +Node2->Node2 + + + + + + bk +fd + + + +Node3 + + +malloc_tree_chunk + + + + + +Node3->Node1 + + + + + + treebins + + + +Node3->Node3 + + + + + + bk +child +fd +parent + + + +Node4 + + +malloc_segment + + + + + +Node4->Node1 + + + + + + seg + + + +Node4->Node4 + + + + + + next + + + diff --git a/a02210.html b/a02210.html new file mode 100644 index 00000000..4cf674e1 --- /dev/null +++ b/a02210.html @@ -0,0 +1,496 @@ + + + + + + + +Arax: malloc_state Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
malloc_state Struct Reference
+
+
+
+ + Collaboration diagram for malloc_state:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

binmap_t smallmap
 
binmap_t treemap
 
size_t dvsize
 
size_t topsize
 
char * least_addr
 
mchunkptr dv
 
mchunkptr top
 
size_t trim_check
 
size_t release_checks
 
size_t magic
 
mchunkptr smallbins [(NSMALLBINS+1) *2]
 
tbinptr treebins [NTREEBINS]
 
size_t footprint
 
size_t max_footprint
 
size_t footprint_limit
 
flag_t mflags
 
msegment seg
 
void * extp
 
size_t exts
 
+

Detailed Description

+
+

Definition at line 2629 of file malloc.c.

+

Field Documentation

+ +

◆ dv

+ +
+
+ + + + +
mchunkptr dv
+
+ +

Definition at line 2636 of file malloc.c.

+ +

Referenced by dispose_chunk(), prepend_alloc(), release_unused_segments(), and try_realloc_chunk().

+ +
+
+ +

◆ dvsize

+ +
+
+ + + + +
size_t dvsize
+
+ +

Definition at line 2633 of file malloc.c.

+ +

Referenced by dispose_chunk(), prepend_alloc(), release_unused_segments(), tmalloc_large(), and try_realloc_chunk().

+ +
+
+ +

◆ extp

+ +
+
+ + + + +
void* extp
+
+ +

Definition at line 2651 of file malloc.c.

+ +
+
+ +

◆ exts

+ +
+
+ + + + +
size_t exts
+
+ +

Definition at line 2652 of file malloc.c.

+ +
+
+ +

◆ footprint

+ +
+
+ + + + +
size_t footprint
+
+
+ +

◆ footprint_limit

+ +
+
+ + + + +
size_t footprint_limit
+
+ +

Definition at line 2645 of file malloc.c.

+ +

Referenced by mmap_alloc(), and sys_alloc().

+ +
+
+ +

◆ least_addr

+ +
+
+ + + + +
char* least_addr
+
+ +

Definition at line 2635 of file malloc.c.

+ +

Referenced by mmap_alloc(), mmap_resize(), and sys_alloc().

+ +
+
+ +

◆ magic

+ +
+
+ + + + +
size_t magic
+
+ +

Definition at line 2640 of file malloc.c.

+ +

Referenced by init_mparams(), and sys_alloc().

+ +
+
+ +

◆ max_footprint

+ +
+
+ + + + +
size_t max_footprint
+
+ +

Definition at line 2644 of file malloc.c.

+ +

Referenced by internal_mallinfo(), internal_malloc_stats(), mmap_alloc(), mmap_resize(), and sys_alloc().

+ +
+
+ +

◆ mflags

+ +
+
+ + + + +
flag_t mflags
+
+ +

Definition at line 2646 of file malloc.c.

+ +
+
+ +

◆ release_checks

+ +
+
+ + + + +
size_t release_checks
+
+ +

Definition at line 2639 of file malloc.c.

+ +

Referenced by release_unused_segments(), and sys_alloc().

+ +
+
+ +

◆ seg

+ + + +

◆ smallbins

+ +
+
+ + + + +
mchunkptr smallbins[(NSMALLBINS+1) *2]
+
+ +

Definition at line 2641 of file malloc.c.

+ +
+
+ +

◆ smallmap

+ +
+
+ + + + +
binmap_t smallmap
+
+ +

Definition at line 2631 of file malloc.c.

+ +
+
+ +

◆ top

+ + + +

◆ topsize

+ +
+
+ + + + +
size_t topsize
+
+
+ +

◆ treebins

+ +
+
+ + + + +
tbinptr treebins[NTREEBINS]
+
+ +

Definition at line 2642 of file malloc.c.

+ +
+
+ +

◆ treemap

+ +
+
+ + + + +
binmap_t treemap
+
+ +

Definition at line 2632 of file malloc.c.

+ +

Referenced by tmalloc_large(), and tmalloc_small().

+ +
+
+ +

◆ trim_check

+ +
+
+ + + + +
size_t trim_check
+
+ +

Definition at line 2638 of file malloc.c.

+ +

Referenced by init_top(), and sys_trim().

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02210.js b/a02210.js new file mode 100644 index 00000000..7119c274 --- /dev/null +++ b/a02210.js @@ -0,0 +1,22 @@ +var a02210 = +[ + [ "dv", "a02210.html#a329b3fddb21d881a43e77fd54f72b5ae", null ], + [ "dvsize", "a02210.html#aed3ab97862c4626ee4bbadf7c25dd1ce", null ], + [ "extp", "a02210.html#a878c3903148a6bf1e83e53bc4a12d124", null ], + [ "exts", "a02210.html#a1ab5c0b073f3a2620532f1f83151ea7e", null ], + [ "footprint", "a02210.html#ac2bc215504f3f4794b1f706db6448f7a", null ], + [ "footprint_limit", "a02210.html#aeae602c4f517ad94dabb35f661ebe617", null ], + [ "least_addr", "a02210.html#af46a51a6744c1ae0e650d247f5aab215", null ], + [ "magic", "a02210.html#a43dc3ebb377552917742f3765e0517d0", null ], + [ "max_footprint", "a02210.html#adb20bc30abe3b56fd540e595b9e7af9d", null ], + [ "mflags", "a02210.html#abdda6bcfb3ffa3a646183be8557a4806", null ], + [ "release_checks", "a02210.html#a766f07a23bfc640d0ea9e0d4881c70d1", null ], + [ "seg", "a02210.html#ac3d059568e5fdb458026c9116d593ba7", null ], + [ "smallbins", "a02210.html#a3bb0caf88c843de908e1c9f5abce088d", null ], + [ "smallmap", "a02210.html#ab56163a714e0775cc6fad5ad6fe1cafd", null ], + [ "top", "a02210.html#ab3d2153aba94814a2c95ec60473349e1", null ], + [ "topsize", "a02210.html#a4589d6dbc477b316b19d53681682a11b", null ], + [ "treebins", "a02210.html#afd1d06df09a882464f21df287e5fe194", null ], + [ "treemap", "a02210.html#a19964ccc0ef0ae2fc26f07d61c0ffaf1", null ], + [ "trim_check", "a02210.html#aa3e67387da01af088f98c37f455ecab1", null ] +]; \ No newline at end of file diff --git a/a02214.html b/a02214.html new file mode 100644 index 00000000..c0f7682e --- /dev/null +++ b/a02214.html @@ -0,0 +1,241 @@ + + + + + + + +Arax: malloc_params Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
malloc_params Struct Reference
+
+
+ + + + + + + + + + + + + + +

+Data Fields

size_t magic
 
size_t page_size
 
size_t granularity
 
size_t mmap_threshold
 
size_t trim_threshold
 
flag_t default_mflags
 
+

Detailed Description

+
+

Definition at line 2666 of file malloc.c.

+

Field Documentation

+ +

◆ default_mflags

+ +
+
+ + + + +
flag_t default_mflags
+
+ +

Definition at line 2673 of file malloc.c.

+ +

Referenced by init_mparams().

+ +
+
+ +

◆ granularity

+ +
+
+ + + + +
size_t granularity
+
+ +

Definition at line 2670 of file malloc.c.

+ +

Referenced by change_mparam(), init_mparams(), mmap_resize(), and sys_trim().

+ +
+
+ +

◆ magic

+ +
+
+ + + + +
size_t magic
+
+ +

Definition at line 2668 of file malloc.c.

+ +

Referenced by init_mparams(), and sys_alloc().

+ +
+
+ +

◆ mmap_threshold

+ +
+
+ + + + +
size_t mmap_threshold
+
+ +

Definition at line 2671 of file malloc.c.

+ +

Referenced by change_mparam(), init_mparams(), and sys_alloc().

+ +
+
+ +

◆ page_size

+ +
+
+ + + + +
size_t page_size
+
+ +

Definition at line 2669 of file malloc.c.

+ +

Referenced by change_mparam(), dlpvalloc(), dlvalloc(), and init_mparams().

+ +
+
+ +

◆ trim_threshold

+ +
+
+ + + + +
size_t trim_threshold
+
+ +

Definition at line 2672 of file malloc.c.

+ +

Referenced by change_mparam(), init_mparams(), and init_top().

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02214.js b/a02214.js new file mode 100644 index 00000000..7531f2ee --- /dev/null +++ b/a02214.js @@ -0,0 +1,9 @@ +var a02214 = +[ + [ "default_mflags", "a02214.html#ab4bea0fc0d7da4969f30083aa2715e16", null ], + [ "granularity", "a02214.html#af0b67a891dd0a005ba8056c2175bc2de", null ], + [ "magic", "a02214.html#a43dc3ebb377552917742f3765e0517d0", null ], + [ "mmap_threshold", "a02214.html#a4dc878eab398b4508ec605f2c7718dd0", null ], + [ "page_size", "a02214.html#af91f634fbc8d26e705035b0613f7d077", null ], + [ "trim_threshold", "a02214.html#afd809f8bd873d7fa33254b3fb1916647", null ] +]; \ No newline at end of file diff --git a/a02218.html b/a02218.html new file mode 100644 index 00000000..7543f40d --- /dev/null +++ b/a02218.html @@ -0,0 +1,161 @@ + + + + + + + +Arax: inspect_walker_state Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
inspect_walker_state Struct Reference
+
+
+ + + + + + +

+Data Fields

void(* inspector )(void *start, void *end, size_t size, void *arg)
 
void * arg
 
+

Detailed Description

+
+

Definition at line 92 of file tlsf/alloc.c.

+

Field Documentation

+ +

◆ arg

+ +
+
+ + + + +
void* arg
+
+ +

Definition at line 95 of file tlsf/alloc.c.

+ +

Referenced by arch_alloc_inspect(), and inspect_walker().

+ +
+
+ +

◆ inspector

+ +
+
+ + + + +
void(* inspector) (void *start, void *end, size_t size, void *arg)
+
+ +

Definition at line 94 of file tlsf/alloc.c.

+ +

Referenced by arch_alloc_inspect(), and inspect_walker().

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02218.js b/a02218.js new file mode 100644 index 00000000..6be710bc --- /dev/null +++ b/a02218.js @@ -0,0 +1,5 @@ +var a02218 = +[ + [ "arg", "a02218.html#a9ce2ec4812a92cb6ab39f6e81e9173a9", null ], + [ "inspector", "a02218.html#a56e3784a48052abb33a929edf650ac95", null ] +]; \ No newline at end of file diff --git a/a02226.html b/a02226.html new file mode 100644 index 00000000..668bd1ac --- /dev/null +++ b/a02226.html @@ -0,0 +1,141 @@ + + + + + + + +Arax: ivshmem Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
ivshmem Struct Reference
+
+
+ + + + +

+Data Fields

volatile unsigned int regs [64]
 
+

Detailed Description

+
+

Definition at line 21 of file ivshmem/async.c.

+

Field Documentation

+ +

◆ regs

+ +
+
+ + + + +
volatile unsigned int regs[64]
+
+ +

Definition at line 23 of file ivshmem/async.c.

+ +

Referenced by getVmID(), and wakeupVm().

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02226.js b/a02226.js new file mode 100644 index 00000000..6ec29e36 --- /dev/null +++ b/a02226.js @@ -0,0 +1,4 @@ +var a02226 = +[ + [ "regs", "a02226.html#ac179a6a7a5851f887c473385a0e679fe", null ] +]; \ No newline at end of file diff --git a/a02228.map b/a02228.map new file mode 100644 index 00000000..ea161509 --- /dev/null +++ b/a02228.map @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/a02228.md5 b/a02228.md5 new file mode 100644 index 00000000..b40bfe1e --- /dev/null +++ b/a02228.md5 @@ -0,0 +1 @@ +0f7b6b40c1e203b70009ea32d3ef96ce \ No newline at end of file diff --git a/a02228.svg b/a02228.svg new file mode 100644 index 00000000..cd7dab53 --- /dev/null +++ b/a02228.svg @@ -0,0 +1,108 @@ + + + + + + +async_meta_s + + +Node1 + + +async_meta_s + + + + + +Node2 + + +utils_list_s + + + + + +Node2->Node1 + + + + + + outstanding + + + +Node3 + + +utils_list_node + + + + + +Node3->Node2 + + + + + + head + + + +Node3->Node3 + + + + + + next +prev + + + +Node4 + + +ivshmem + + + + + +Node4->Node1 + + + + + + regs + + + +Node5 + + +arch_alloc_s + + + + + +Node5->Node1 + + + + + + alloc + + + diff --git a/a02230.html b/a02230.html new file mode 100644 index 00000000..1d15a5d2 --- /dev/null +++ b/a02230.html @@ -0,0 +1,270 @@ + + + + + + + +Arax: async_meta_s Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
async_meta_s Struct Reference
+
+
+ +

#include <async.h>

+
+ + Collaboration diagram for async_meta_s:
+
+
+ + + + + + + + + + + + + + + + + +

+Data Fields

utils_spinlock lock
 
utils_list_s outstanding
 
ivshmem_sregs
 
arch_alloc_salloc
 
pthread_t thread
 
volatile int fd
 
char padd
 
+

Detailed Description

+
+

Definition at line 10 of file ivshmem/async.h.

+

Field Documentation

+ +

◆ alloc

+ +
+
+ + + + +
arch_alloc_s* alloc
+
+ +

Definition at line 15 of file ivshmem/async.h.

+ +

Referenced by async_meta_init_once(), and async_semaphore_dec().

+ +
+
+ +

◆ fd

+ +
+
+ + + + +
volatile int fd
+
+ +

Definition at line 17 of file ivshmem/async.h.

+ +

Referenced by async_meta_exit().

+ +
+
+ +

◆ lock

+ +
+
+ + + + +
utils_spinlock lock
+
+ +

Definition at line 12 of file ivshmem/async.h.

+ +

Referenced by _add_completion(), and async_meta_init_once().

+ +
+
+ +

◆ outstanding

+ +
+
+ + + + +
utils_list_s outstanding
+
+ +

Definition at line 13 of file ivshmem/async.h.

+ +

Referenced by _add_completion(), async_meta_init_once(), and async_thread().

+ +
+
+ +

◆ padd

+ +
+
+ + + + +
char padd
+
+ +

Definition at line 11 of file mutex/async.h.

+ +
+
+ +

◆ regs

+ +
+
+ + + + +
ivshmem_s* regs
+
+ +

Definition at line 14 of file ivshmem/async.h.

+ +

Referenced by async_meta_exit(), async_meta_init_always(), getVmID(), and wakeupVm().

+ +
+
+ +

◆ thread

+ +
+
+ + + + +
pthread_t thread
+
+ +

Definition at line 16 of file ivshmem/async.h.

+ +

Referenced by async_meta_exit(), and async_meta_init_always().

+ +
+
+
The documentation for this struct was generated from the following files: +
+
+ + + + diff --git a/a02230.js b/a02230.js new file mode 100644 index 00000000..c7fe0416 --- /dev/null +++ b/a02230.js @@ -0,0 +1,10 @@ +var a02230 = +[ + [ "alloc", "a02230.html#a9491197c0fea85ff7b458c8bf4b0c34b", null ], + [ "fd", "a02230.html#a5025f8324c508df26ad84cd1b25b7271", null ], + [ "lock", "a02230.html#a2d0e255f518332321e7cbd964ebb9681", null ], + [ "outstanding", "a02230.html#a47a7502433746daac507810838ddc621", null ], + [ "padd", "a02230.html#a19a76b743b2972be73c5fbf5231edd65", null ], + [ "regs", "a02230.html#ae7c9d52cb7b08010aa59746f038fc96e", null ], + [ "thread", "a02230.html#a01f75a9ad916f63a94e06a27635ba278", null ] +]; \ No newline at end of file diff --git a/a02232.map b/a02232.map new file mode 100644 index 00000000..b1fa2ce3 --- /dev/null +++ b/a02232.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/a02232.md5 b/a02232.md5 new file mode 100644 index 00000000..44b0e161 --- /dev/null +++ b/a02232.md5 @@ -0,0 +1 @@ +0e4a07a949a3bc9d21834332c88ac9d0 \ No newline at end of file diff --git a/a02232.svg b/a02232.svg new file mode 100644 index 00000000..e342c2e0 --- /dev/null +++ b/a02232.svg @@ -0,0 +1,137 @@ + + + + + + +async_completion_s + + +Node1 + + +async_completion_s + + + + + +Node2 + + +async_meta_s + + + + + +Node2->Node1 + + + + + + meta + + + +Node3 + + +utils_list_s + + + + + +Node3->Node2 + + + + + + outstanding + + + +Node4 + + +utils_list_node + + + + + +Node4->Node1 + + + + + + outstanding + + + +Node4->Node3 + + + + + + head + + + +Node4->Node4 + + + + + + next +prev + + + +Node5 + + +ivshmem + + + + + +Node5->Node2 + + + + + + regs + + + +Node6 + + +arch_alloc_s + + + + + +Node6->Node2 + + + + + + alloc + + + diff --git a/a02234.html b/a02234.html new file mode 100644 index 00000000..794c9e24 --- /dev/null +++ b/a02234.html @@ -0,0 +1,252 @@ + + + + + + + +Arax: async_completion_s Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
async_completion_s Struct Reference
+
+
+ +

#include <async.h>

+
+ + Collaboration diagram for async_completion_s:
+
+
+ + + + + + + + + + + + + + + +

+Data Fields

async_meta_smeta
 
utils_list_node_s outstanding
 
size_t vm_id
 
volatile size_t completed
 
pthread_mutex_t mutex
 
pthread_mutexattr_t attr
 
+

Detailed Description

+
+

Definition at line 20 of file ivshmem/async.h.

+

Field Documentation

+ +

◆ attr

+ +
+
+ + + + +
pthread_mutexattr_t attr
+
+ +

Definition at line 27 of file ivshmem/async.h.

+ +

Referenced by async_completion_init().

+ +
+
+ +

◆ completed

+ +
+
+ + + + +
volatile size_t completed
+
+
+ +

◆ meta

+ +
+
+ + + + +
async_meta_s* meta
+
+ +

Definition at line 22 of file ivshmem/async.h.

+ +

Referenced by async_completion_complete(), async_completion_init(), and async_completion_wait().

+ +
+
+ +

◆ mutex

+ +
+
+ + + + +
pthread_mutex_t mutex
+
+
+ +

◆ outstanding

+ +
+
+ + + + +
utils_list_node_s outstanding
+
+ +

Definition at line 23 of file ivshmem/async.h.

+ +

Referenced by _add_completion(), async_completion_init(), and async_semaphore_dec().

+ +
+
+ +

◆ vm_id

+ +
+
+ + + + +
size_t vm_id
+
+ +

Definition at line 24 of file ivshmem/async.h.

+ +

Referenced by async_completion_complete(), and async_completion_wait().

+ +
+
+
The documentation for this struct was generated from the following files: +
+
+ + + + diff --git a/a02234.js b/a02234.js new file mode 100644 index 00000000..3253bc52 --- /dev/null +++ b/a02234.js @@ -0,0 +1,9 @@ +var a02234 = +[ + [ "attr", "a02234.html#a857e6704f8bd64cf25dd3a6d9608b30c", null ], + [ "completed", "a02234.html#a82dda01b9639dbae2ddcc3825ee09490", null ], + [ "meta", "a02234.html#a164069aba681c1b3802ccaa42f1708bc", null ], + [ "mutex", "a02234.html#a4acff8232e4aec9cd5c6dc200ac55ef3", null ], + [ "outstanding", "a02234.html#aa3839c48e46fd23ae146e18a645a872c", null ], + [ "vm_id", "a02234.html#a43b7b681263bcb1b241a120f8b9eafe8", null ] +]; \ No newline at end of file diff --git a/a02236.map b/a02236.map new file mode 100644 index 00000000..62a3d196 --- /dev/null +++ b/a02236.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/a02236.md5 b/a02236.md5 new file mode 100644 index 00000000..1a80855b --- /dev/null +++ b/a02236.md5 @@ -0,0 +1 @@ +d6c7b351669541cf2d17808b0ffe904b \ No newline at end of file diff --git a/a02236.svg b/a02236.svg new file mode 100644 index 00000000..f8e7b716 --- /dev/null +++ b/a02236.svg @@ -0,0 +1,137 @@ + + + + + + +async_semaphore_s + + +Node1 + + +async_semaphore_s + + + + + +Node2 + + +async_meta_s + + + + + +Node2->Node1 + + + + + + meta + + + +Node3 + + +utils_list_s + + + + + +Node3->Node1 + + + + + + pending_list + + + +Node3->Node2 + + + + + + outstanding + + + +Node4 + + +utils_list_node + + + + + +Node4->Node3 + + + + + + head + + + +Node4->Node4 + + + + + + next +prev + + + +Node5 + + +ivshmem + + + + + +Node5->Node2 + + + + + + regs + + + +Node6 + + +arch_alloc_s + + + + + +Node6->Node2 + + + + + + alloc + + + diff --git a/a02238.html b/a02238.html new file mode 100644 index 00000000..b47da5fd --- /dev/null +++ b/a02238.html @@ -0,0 +1,232 @@ + + + + + + + +Arax: async_semaphore_s Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
async_semaphore_s Struct Reference
+
+
+ +

#include <async.h>

+
+ + Collaboration diagram for async_semaphore_s:
+
+
+ + + + + + + + + + + + + +

+Data Fields

async_meta_smeta
 
utils_list_s pending_list
 
utils_spinlock pending_lock
 
volatile size_t value
 
sem_t sem
 
+

Detailed Description

+
+

Definition at line 30 of file ivshmem/async.h.

+

Field Documentation

+ +

◆ meta

+ +
+
+ + + + +
async_meta_s* meta
+
+ +

Definition at line 32 of file ivshmem/async.h.

+ +

Referenced by async_semaphore_dec(), and async_semaphore_inc().

+ +
+
+ +

◆ pending_list

+ +
+
+ + + + +
utils_list_s pending_list
+
+ +

Definition at line 33 of file ivshmem/async.h.

+ +

Referenced by async_semaphore_dec(), async_semaphore_inc(), and async_semaphore_init().

+ +
+
+ +

◆ pending_lock

+ +
+
+ + + + +
utils_spinlock pending_lock
+
+ +

Definition at line 34 of file ivshmem/async.h.

+ +

Referenced by async_semaphore_dec(), async_semaphore_inc(), and async_semaphore_init().

+ +
+
+ +

◆ sem

+ +
+
+ + + + +
sem_t sem
+
+
+ +

◆ value

+ +
+
+ + + + +
volatile size_t value
+
+
+
The documentation for this struct was generated from the following files: +
+
+ + + + diff --git a/a02238.js b/a02238.js new file mode 100644 index 00000000..a6bb7325 --- /dev/null +++ b/a02238.js @@ -0,0 +1,8 @@ +var a02238 = +[ + [ "meta", "a02238.html#a164069aba681c1b3802ccaa42f1708bc", null ], + [ "pending_list", "a02238.html#a1a8d3979e0bc18afe7da7b2e1d874469", null ], + [ "pending_lock", "a02238.html#a19a62322e82fb915daabc946e6d356e8", null ], + [ "sem", "a02238.html#a57e5f989454185402d689672f370a749", null ], + [ "value", "a02238.html#a4b66d20bc6c0e165a6bd27620f840caa", null ] +]; \ No newline at end of file diff --git a/a02240.map b/a02240.map new file mode 100644 index 00000000..bffb74e8 --- /dev/null +++ b/a02240.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02240.md5 b/a02240.md5 new file mode 100644 index 00000000..7d1000bd --- /dev/null +++ b/a02240.md5 @@ -0,0 +1 @@ +5269350332dbd5333ed49e2dc6d5a2b5 \ No newline at end of file diff --git a/a02240.svg b/a02240.svg new file mode 100644 index 00000000..1b7e4a2d --- /dev/null +++ b/a02240.svg @@ -0,0 +1,205 @@ + + + + + + +async_condition_s + + +Node1 + + +async_condition_s + + + + + +Node2 + + +async_meta_s + + + + + +Node2->Node1 + + + + + + meta + + + +Node7 + + +async_completion_s + + + + + +Node2->Node7 + + + + + + meta + + + +Node8 + + +async_semaphore_s + + + + + +Node2->Node8 + + + + + + meta + + + +Node3 + + +utils_list_s + + + + + +Node3->Node2 + + + + + + outstanding + + + +Node3->Node8 + + + + + + pending_list + + + +Node4 + + +utils_list_node + + + + + +Node4->Node3 + + + + + + head + + + +Node4->Node4 + + + + + + next +prev + + + +Node4->Node7 + + + + + + outstanding + + + +Node5 + + +ivshmem + + + + + +Node5->Node2 + + + + + + regs + + + +Node6 + + +arch_alloc_s + + + + + +Node6->Node2 + + + + + + alloc + + + +Node7->Node1 + + + + + + mutex + + + +Node8->Node1 + + + + + + semaphore + + + diff --git a/a02242.html b/a02242.html new file mode 100644 index 00000000..3be9850c --- /dev/null +++ b/a02242.html @@ -0,0 +1,230 @@ + + + + + + + +Arax: async_condition_s Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
async_condition_s Struct Reference
+
+
+ +

#include <async.h>

+
+ + Collaboration diagram for async_condition_s:
+
+
+ + + + + + + + + + + + + +

+Data Fields

async_meta_smeta
 
async_completion_s mutex
 
async_semaphore_s semaphore
 
pthread_cond_t condition
 
pthread_condattr_t c_attr
 
+

Detailed Description

+
+

Definition at line 39 of file ivshmem/async.h.

+

Field Documentation

+ +

◆ c_attr

+ +
+
+ + + + +
pthread_condattr_t c_attr
+
+ +

Definition at line 31 of file mutex/async.h.

+ +

Referenced by async_condition_init().

+ +
+
+ +

◆ condition

+ +
+
+ + + + +
pthread_cond_t condition
+
+ +

Definition at line 30 of file mutex/async.h.

+ +

Referenced by async_condition_init(), async_condition_notify(), and async_condition_wait().

+ +
+
+ +

◆ meta

+ +
+
+ + + + +
async_meta_s* meta
+
+ +

Definition at line 41 of file ivshmem/async.h.

+ +
+
+ +

◆ mutex

+ +
+
+ + + + +
async_completion_s mutex
+
+
+ +

◆ semaphore

+ +
+
+ + + + +
async_semaphore_s semaphore
+
+ +

Definition at line 43 of file ivshmem/async.h.

+ +

Referenced by async_condition_init(), async_condition_notify(), and async_condition_wait().

+ +
+
+
The documentation for this struct was generated from the following files: +
+
+ + + + diff --git a/a02242.js b/a02242.js new file mode 100644 index 00000000..cb95297c --- /dev/null +++ b/a02242.js @@ -0,0 +1,8 @@ +var a02242 = +[ + [ "c_attr", "a02242.html#af506bcbb7e47f4be8ce0c712755732d8", null ], + [ "condition", "a02242.html#a2d017047068ee847b500c14427ac4d6b", null ], + [ "meta", "a02242.html#a164069aba681c1b3802ccaa42f1708bc", null ], + [ "mutex", "a02242.html#ad4d2969642664df0e2f88a5b391d8b29", null ], + [ "semaphore", "a02242.html#a732830f0357a2ac025e7b5e04b2886a1", null ] +]; \ No newline at end of file diff --git a/a02244.map b/a02244.map new file mode 100644 index 00000000..8df47275 --- /dev/null +++ b/a02244.map @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02244.md5 b/a02244.md5 new file mode 100644 index 00000000..51445052 --- /dev/null +++ b/a02244.md5 @@ -0,0 +1 @@ +1defd1396e161cac65da8cd2d706fc48 \ No newline at end of file diff --git a/a02244.svg b/a02244.svg new file mode 100644 index 00000000..bf616f49 --- /dev/null +++ b/a02244.svg @@ -0,0 +1,527 @@ + + + + + + +arax_accel_s + + +Node1 + + +arax_accel_s + + + + + +Node17 + + +arax_vaccel_s + + + + + +Node1->Node17 + + + + + + phys + + + +Node2 + + +arax_object_s + + + + + +Node2->Node1 + + + + + + obj + + + +Node2->Node17 + + + + + + obj + + + +Node3 + + +arax_object_repo_s + + + + + +Node3->Node2 + + + + + + repo + + + +Node4 + + +arax_pipe + + + + + +Node3->Node4 + + + + + + objs + + + +Node4->Node3 + + + + + + pipe + + + +Node5 + + +async_meta_s + + + + + +Node5->Node4 + + + + + + async + + + +Node11 + + +async_condition_s + + + + + +Node5->Node11 + + + + + + meta + + + +Node12 + + +async_completion_s + + + + + +Node5->Node12 + + + + + + meta + + + +Node13 + + +async_semaphore_s + + + + + +Node5->Node13 + + + + + + meta + + + +Node6 + + +utils_list_s + + + + + +Node6->Node1 + + + + + + vaccels + + + +Node6->Node3 + + + + + + list + + + +Node6->Node4 + + + + + + orphan_vacs + + + +Node6->Node5 + + + + + + outstanding + + + +Node6->Node13 + + + + + + pending_list + + + +Node7 + + +utils_list_node + + + + + +Node7->Node2 + + + + + + list + + + +Node7->Node6 + + + + + + head + + + +Node7->Node7 + + + + + + next +prev + + + +Node7->Node12 + + + + + + outstanding + + + +Node7->Node17 + + + + + + vaccels + + + +Node8 + + +ivshmem + + + + + +Node8->Node5 + + + + + + regs + + + +Node9 + + +arch_alloc_s + + + + + +Node9->Node4 + + + + + + allocator + + + +Node9->Node5 + + + + + + alloc + + + +Node10 + + +arax_throttle_s + + + + + +Node10->Node1 + + + + + + throttle + + + +Node10->Node4 + + + + + + throttle + + + +Node11->Node1 + + + + + + lock + + + +Node11->Node4 + + + + + + cntrl_ready_cond +orphan_cond + + + +Node11->Node10 + + + + + + ready + + + +Node12->Node11 + + + + + + mutex + + + +Node13->Node11 + + + + + + semaphore + + + +Node14 + + +utils_kv_s + + + + + +Node14->Node4 + + + + + + ass_kv +metrics_kv + + + +Node15 + + +Pair + + + + + +Node15->Node14 + + + + + + kv + + + +Node16 + + +arax_accel_stats + + + + + +Node16->Node1 + + + + + + stats + + + +Node17->Node1 + + + + + + free_vaq + + + +Node18 + + +queue + + + + + +Node18->Node17 + + + + + + queue + + + diff --git a/a02246.html b/a02246.html new file mode 100644 index 00000000..015a390c --- /dev/null +++ b/a02246.html @@ -0,0 +1,329 @@ + + + + + + + +Arax: arax_accel_s Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_accel_s Struct Reference
+
+
+ +

#include <arax_accel.h>

+
+ + Collaboration diagram for arax_accel_s:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

arax_object_s obj
 
arax_accel_type_e type
 
arax_accel_state_e state
 
async_condition_s lock
 
utils_list_s vaccels
 
size_t tasks
 
size_t revision
 
arax_throttle_s throttle
 
arax_accel_stats_s stats
 
arax_vaccel_sfree_vaq
 
+

Detailed Description

+
+

Definition at line 14 of file arax_accel.h.

+

Field Documentation

+ +

◆ free_vaq

+ +
+
+ + + + +
arax_vaccel_s* free_vaq
+
+ +

Definition at line 25 of file arax_accel.h.

+ +

Referenced by arax_accel_init(), ARAX_OBJ_DTOR_DECL(), and ARAX_OBJ_DTOR_DECL().

+ +
+
+ +

◆ lock

+ + + +

◆ obj

+ + + +

◆ revision

+ +
+
+ + + + +
size_t revision
+
+ +

Definition at line 22 of file arax_accel.h.

+ +

Referenced by arax_accel_get_revision(), arax_accel_inc_revision(), and arax_accel_init().

+ +
+
+ +

◆ state

+ +
+
+ + + + +
arax_accel_state_e state
+
+ +

Definition at line 18 of file arax_accel.h.

+ +

Referenced by arax_accel_get_stat(), and arax_accel_init().

+ +
+
+ +

◆ stats

+ +
+
+ + + + +
arax_accel_stats_s stats
+
+ +

Definition at line 24 of file arax_accel.h.

+ +
+
+ +

◆ tasks

+ +
+
+ + + + +
size_t tasks
+
+
+ +

◆ throttle

+ + + +

◆ type

+ +
+
+ + + + +
arax_accel_type_e type
+
+
+ +

◆ vaccels

+ + +
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02246.js b/a02246.js new file mode 100644 index 00000000..e643716c --- /dev/null +++ b/a02246.js @@ -0,0 +1,13 @@ +var a02246 = +[ + [ "free_vaq", "a02246.html#ac4dbf6d1c47ebd8e1d4beaf0a1da4df0", null ], + [ "lock", "a02246.html#a2f98a424a24cffa63a7bb11a62b023ae", null ], + [ "obj", "a02246.html#a62baad2fa0dcd6ee63e1e69974047ac4", null ], + [ "revision", "a02246.html#ae9204680c5c7da117703c346fb753d5b", null ], + [ "state", "a02246.html#a8d0a70f38fa190a80948927823ee208f", null ], + [ "stats", "a02246.html#ab7c39f30624eeec7821ca8b4da58a1a3", null ], + [ "tasks", "a02246.html#a027bd400267a8d114c0ffc4a7f58eb70", null ], + [ "throttle", "a02246.html#a1646aa51ec6b87327b5d9bb13e4efb71", null ], + [ "type", "a02246.html#abc0d19a0f38e8eff06a6023c517bc183", null ], + [ "vaccels", "a02246.html#a17a66e8f84a523da90c1201d2ce6c9d1", null ] +]; \ No newline at end of file diff --git a/a02250.html b/a02250.html new file mode 100644 index 00000000..dbef2560 --- /dev/null +++ b/a02250.html @@ -0,0 +1,161 @@ + + + + + + + +Arax: arax_accel_type_map Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_accel_type_map Struct Reference
+
+
+ + + + + + +

+Data Fields

const char * str
 
arax_accel_type_e type
 
+

Detailed Description

+
+

Definition at line 4 of file arax_accel_types.c.

+

Field Documentation

+ +

◆ str

+ +
+
+ + + + +
const char* str
+
+ +

Definition at line 6 of file arax_accel_types.c.

+ +

Referenced by arax_accel_type_from_str(), and arax_accel_type_to_str().

+ +
+
+ +

◆ type

+ +
+
+ + + + +
arax_accel_type_e type
+
+ +

Definition at line 7 of file arax_accel_types.c.

+ +

Referenced by arax_accel_type_from_str(), arax_accel_type_to_str(), and arax_accel_valid_type().

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02250.js b/a02250.js new file mode 100644 index 00000000..5284e883 --- /dev/null +++ b/a02250.js @@ -0,0 +1,5 @@ +var a02250 = +[ + [ "str", "a02250.html#af25d6dc49269fa2003ac7c7fa6f13915", null ], + [ "type", "a02250.html#abc0d19a0f38e8eff06a6023c517bc183", null ] +]; \ No newline at end of file diff --git a/a02252.map b/a02252.map new file mode 100644 index 00000000..00f070e7 --- /dev/null +++ b/a02252.map @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02252.md5 b/a02252.md5 new file mode 100644 index 00000000..08eac179 --- /dev/null +++ b/a02252.md5 @@ -0,0 +1 @@ +fc8fda70f8e87dfe6a32533dae84b2b0 \ No newline at end of file diff --git a/a02252.svg b/a02252.svg new file mode 100644 index 00000000..489cd213 --- /dev/null +++ b/a02252.svg @@ -0,0 +1,556 @@ + + + + + + +arax_data_s + + +Node1 + + +arax_data_s + + + + + +Node2 + + +arax_object_s + + + + + +Node2->Node1 + + + + + + obj + + + +Node16 + + +arax_accel_s + + + + + +Node2->Node16 + + + + + + obj + + + +Node18 + + +arax_vaccel_s + + + + + +Node2->Node18 + + + + + + obj + + + +Node3 + + +arax_object_repo_s + + + + + +Node3->Node2 + + + + + + repo + + + +Node4 + + +arax_pipe + + + + + +Node3->Node4 + + + + + + objs + + + +Node4->Node3 + + + + + + pipe + + + +Node5 + + +async_meta_s + + + + + +Node5->Node4 + + + + + + async + + + +Node11 + + +async_condition_s + + + + + +Node5->Node11 + + + + + + meta + + + +Node12 + + +async_completion_s + + + + + +Node5->Node12 + + + + + + meta + + + +Node13 + + +async_semaphore_s + + + + + +Node5->Node13 + + + + + + meta + + + +Node6 + + +utils_list_s + + + + + +Node6->Node3 + + + + + + list + + + +Node6->Node4 + + + + + + orphan_vacs + + + +Node6->Node5 + + + + + + outstanding + + + +Node6->Node13 + + + + + + pending_list + + + +Node6->Node16 + + + + + + vaccels + + + +Node7 + + +utils_list_node + + + + + +Node7->Node2 + + + + + + list + + + +Node7->Node6 + + + + + + head + + + +Node7->Node7 + + + + + + next +prev + + + +Node7->Node12 + + + + + + outstanding + + + +Node7->Node18 + + + + + + vaccels + + + +Node8 + + +ivshmem + + + + + +Node8->Node5 + + + + + + regs + + + +Node9 + + +arch_alloc_s + + + + + +Node9->Node4 + + + + + + allocator + + + +Node9->Node5 + + + + + + alloc + + + +Node10 + + +arax_throttle_s + + + + + +Node10->Node4 + + + + + + throttle + + + +Node10->Node16 + + + + + + throttle + + + +Node11->Node4 + + + + + + cntrl_ready_cond +orphan_cond + + + +Node11->Node10 + + + + + + ready + + + +Node11->Node16 + + + + + + lock + + + +Node12->Node11 + + + + + + mutex + + + +Node13->Node11 + + + + + + semaphore + + + +Node14 + + +utils_kv_s + + + + + +Node14->Node4 + + + + + + ass_kv +metrics_kv + + + +Node15 + + +Pair + + + + + +Node15->Node14 + + + + + + kv + + + +Node16->Node1 + + + + + + phys + + + +Node16->Node18 + + + + + + phys + + + +Node17 + + +arax_accel_stats + + + + + +Node17->Node16 + + + + + + stats + + + +Node18->Node16 + + + + + + free_vaq + + + +Node19 + + +queue + + + + + +Node19->Node18 + + + + + + queue + + + diff --git a/a02254.html b/a02254.html new file mode 100644 index 00000000..d4aa881a --- /dev/null +++ b/a02254.html @@ -0,0 +1,308 @@ + + + + + + + +Arax: arax_data_s Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_data_s Struct Reference
+
+
+ +

#include <arax_data.h>

+
+ + Collaboration diagram for arax_data_s:
+
+
+ + + + + + + + + + + + + + + + + + + + + +

+Data Fields

arax_object_s obj
 
void * remote
 
void * accel_meta
 
arax_accelaccel
 
size_t size
 
size_t align
 
size_t flags
 
void * buffer
 
arax_accel_sphys
 
+

Detailed Description

+
+

Definition at line 36 of file arax_data.h.

+

Field Documentation

+ +

◆ accel

+ + + +

◆ accel_meta

+ +
+
+ + + + +
void* accel_meta
+
+ +

Definition at line 41 of file arax_data.h.

+ +
+
+ +

◆ align

+ +
+
+ + + + +
size_t align
+
+ +

Definition at line 44 of file arax_data.h.

+ +

Referenced by arax_data_init_aligned().

+ +
+
+ +

◆ buffer

+ +
+
+ + + + +
void* buffer
+
+ +

Definition at line 46 of file arax_data.h.

+ +

Referenced by arax_data_deref(), and arax_data_init_aligned().

+ +
+
+ +

◆ flags

+ +
+
+ + + + +
size_t flags
+
+
+ +

◆ obj

+ +
+
+ + + + +
arax_object_s obj
+
+
+ +

◆ phys

+ +
+
+ + + + +
arax_accel_s* phys
+
+ +

Definition at line 47 of file arax_data.h.

+ +

Referenced by arax_data_init_aligned(), and ARAX_OBJ_DTOR_DECL().

+ +
+
+ +

◆ remote

+ +
+
+ + + + +
void* remote
+
+
+ +

◆ size

+ +
+
+ + + + +
size_t size
+
+ +

Definition at line 43 of file arax_data.h.

+ +

Referenced by arax_data_init_aligned(), arax_data_size(), and ARAX_OBJ_DTOR_DECL().

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02254.js b/a02254.js new file mode 100644 index 00000000..1ef46389 --- /dev/null +++ b/a02254.js @@ -0,0 +1,12 @@ +var a02254 = +[ + [ "accel", "a02254.html#aac76039ff5a85f955313124fe283fd8d", null ], + [ "accel_meta", "a02254.html#a0977d418ee33f73ccf82fcc69ef9447a", null ], + [ "align", "a02254.html#ab2a8be45758f8c35a4a1574ccb26702d", null ], + [ "buffer", "a02254.html#a368f7094dc38acca20612bbb392552f4", null ], + [ "flags", "a02254.html#acd295305d7afff1060998172e8c70116", null ], + [ "obj", "a02254.html#a62baad2fa0dcd6ee63e1e69974047ac4", null ], + [ "phys", "a02254.html#aacfb411e7befb69b45a527305d3e61d7", null ], + [ "remote", "a02254.html#a8a907a1cc7012008d76537db130f4d45", null ], + [ "size", "a02254.html#a854352f53b148adc24983a58a1866d66", null ] +]; \ No newline at end of file diff --git a/a02258.html b/a02258.html new file mode 100644 index 00000000..fcc2c3ce --- /dev/null +++ b/a02258.html @@ -0,0 +1,177 @@ + + + + + + + +Arax: arax_data_dtr Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_data_dtr Struct Reference
+
+
+ +

#include <arax_data.h>

+ + + + + + + + +

+Data Fields

void * remote
 
size_t size
 
void * phys
 
+

Detailed Description

+
+

Definition at line 55 of file arax_data.h.

+

Field Documentation

+ +

◆ phys

+ +
+
+ + + + +
void* phys
+
+ +

Definition at line 59 of file arax_data.h.

+ +
+
+ +

◆ remote

+ +
+
+ + + + +
void* remote
+
+ +

Definition at line 57 of file arax_data.h.

+ +
+
+ +

◆ size

+ +
+
+ + + + +
size_t size
+
+ +

Definition at line 58 of file arax_data.h.

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02258.js b/a02258.js new file mode 100644 index 00000000..fda0ae72 --- /dev/null +++ b/a02258.js @@ -0,0 +1,6 @@ +var a02258 = +[ + [ "phys", "a02258.html#a14720b729b1318dca7c8c8f6dd756c20", null ], + [ "remote", "a02258.html#a8a907a1cc7012008d76537db130f4d45", null ], + [ "size", "a02258.html#a854352f53b148adc24983a58a1866d66", null ] +]; \ No newline at end of file diff --git a/a02260.map b/a02260.map new file mode 100644 index 00000000..5dd182d3 --- /dev/null +++ b/a02260.map @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02260.md5 b/a02260.md5 new file mode 100644 index 00000000..417014a9 --- /dev/null +++ b/a02260.md5 @@ -0,0 +1 @@ +d9a0e0921546460e070c9c887d6de29c \ No newline at end of file diff --git a/a02260.svg b/a02260.svg new file mode 100644 index 00000000..80b9347f --- /dev/null +++ b/a02260.svg @@ -0,0 +1,713 @@ + + + + + + +arax_object_union + + +Node1 + + +arax_object_union + + + + + +Node2 + + +arax_accel_s + + + + + +Node2->Node1 + + + + + + accel + + + +Node18 + + +arax_vaccel_s + + + + + +Node2->Node18 + + + + + + phys + + + +Node24 + + +arax_data_s + + + + + +Node2->Node24 + + + + + + phys + + + +Node3 + + +arax_object_s + + + + + +Node3->Node2 + + + + + + obj + + + +Node3->Node18 + + + + + + obj + + + +Node20 + + +arax_proc_s + + + + + +Node3->Node20 + + + + + + obj + + + +Node21 + + +arax_task_msg + + + + + +Node3->Node21 + + + + + + obj + + + +Node3->Node24 + + + + + + obj + + + +Node4 + + +arax_object_repo_s + + + + + +Node4->Node3 + + + + + + repo + + + +Node5 + + +arax_pipe + + + + + +Node4->Node5 + + + + + + objs + + + +Node5->Node4 + + + + + + pipe + + + +Node5->Node21 + + + + + + pipe + + + +Node6 + + +async_meta_s + + + + + +Node6->Node5 + + + + + + async + + + +Node12 + + +async_condition_s + + + + + +Node6->Node12 + + + + + + meta + + + +Node13 + + +async_completion_s + + + + + +Node6->Node13 + + + + + + meta + + + +Node14 + + +async_semaphore_s + + + + + +Node6->Node14 + + + + + + meta + + + +Node7 + + +utils_list_s + + + + + +Node7->Node2 + + + + + + vaccels + + + +Node7->Node4 + + + + + + list + + + +Node7->Node5 + + + + + + orphan_vacs + + + +Node7->Node6 + + + + + + outstanding + + + +Node7->Node14 + + + + + + pending_list + + + +Node8 + + +utils_list_node + + + + + +Node8->Node3 + + + + + + list + + + +Node8->Node7 + + + + + + head + + + +Node8->Node8 + + + + + + next +prev + + + +Node8->Node13 + + + + + + outstanding + + + +Node8->Node18 + + + + + + vaccels + + + +Node9 + + +ivshmem + + + + + +Node9->Node6 + + + + + + regs + + + +Node10 + + +arch_alloc_s + + + + + +Node10->Node5 + + + + + + allocator + + + +Node10->Node6 + + + + + + alloc + + + +Node11 + + +arax_throttle_s + + + + + +Node11->Node2 + + + + + + throttle + + + +Node11->Node5 + + + + + + throttle + + + +Node12->Node2 + + + + + + lock + + + +Node12->Node5 + + + + + + cntrl_ready_cond +orphan_cond + + + +Node12->Node11 + + + + + + ready + + + +Node13->Node12 + + + + + + mutex + + + +Node13->Node21 + + + + + + done + + + +Node14->Node12 + + + + + + semaphore + + + +Node15 + + +utils_kv_s + + + + + +Node15->Node5 + + + + + + ass_kv +metrics_kv + + + +Node16 + + +Pair + + + + + +Node16->Node15 + + + + + + kv + + + +Node17 + + +arax_accel_stats + + + + + +Node17->Node2 + + + + + + stats + + + +Node18->Node1 + + + + + + vaccel + + + +Node18->Node2 + + + + + + free_vaq + + + +Node19 + + +queue + + + + + +Node19->Node18 + + + + + + queue + + + +Node20->Node1 + + + + + + proc + + + +Node21->Node1 + + + + + + task + + + +Node22 + + +arax_task_stats + + + + + +Node22->Node21 + + + + + + stats + + + +Node23 + + +utils_timer_s + + + + + +Node23->Node22 + + + + + + task_duration +task_duration_without +_issue + + + +Node24->Node1 + + + + + + data + + + diff --git a/a02262.html b/a02262.html new file mode 100644 index 00000000..f483c93f --- /dev/null +++ b/a02262.html @@ -0,0 +1,218 @@ + + + + + + + +Arax: arax_object_union Union Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_object_union Union Reference
+
+
+
+ + Collaboration diagram for arax_object_union:
+
+
+ + + + + + + + + + + + + +

+Data Fields

arax_accel_s accel
 
arax_vaccel_s vaccel
 
arax_proc_s proc
 
arax_task_msg_s task
 
arax_data_s data
 
+

Detailed Description

+
+

Definition at line 19 of file arax_object.c.

+

Field Documentation

+ +

◆ accel

+ +
+
+ + + + +
arax_accel_s accel
+
+ +

Definition at line 20 of file arax_object.c.

+ +
+
+ +

◆ data

+ +
+
+ + + + +
arax_data_s data
+
+ +

Definition at line 24 of file arax_object.c.

+ +
+
+ +

◆ proc

+ +
+
+ + + + +
arax_proc_s proc
+
+ +

Definition at line 22 of file arax_object.c.

+ +
+
+ +

◆ task

+ +
+
+ + + + +
arax_task_msg_s task
+
+ +

Definition at line 23 of file arax_object.c.

+ +
+
+ +

◆ vaccel

+ +
+
+ + + + +
arax_vaccel_s vaccel
+
+ +

Definition at line 21 of file arax_object.c.

+ +
+
+
The documentation for this union was generated from the following file: +
+
+ + + + diff --git a/a02262.js b/a02262.js new file mode 100644 index 00000000..7a185268 --- /dev/null +++ b/a02262.js @@ -0,0 +1,8 @@ +var a02262 = +[ + [ "accel", "a02262.html#a895fba8dd9f82f0dbe615064ba7f2259", null ], + [ "data", "a02262.html#ac74255a77b098e4cb5dfef0876a5dc81", null ], + [ "proc", "a02262.html#a1ddeb4db4abbbcdaa95f9ab621026af7", null ], + [ "task", "a02262.html#a345d6434c7ca1b983591d2d8bc9648cf", null ], + [ "vaccel", "a02262.html#a0854c3a45b3a05405f7713a09022aeeb", null ] +]; \ No newline at end of file diff --git a/a02264.map b/a02264.map new file mode 100644 index 00000000..6bc70f42 --- /dev/null +++ b/a02264.map @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02264.md5 b/a02264.md5 new file mode 100644 index 00000000..5fb0eb25 --- /dev/null +++ b/a02264.md5 @@ -0,0 +1 @@ +a1fbab3d86bc3327f9e96ab3ea6bb93f \ No newline at end of file diff --git a/a02264.svg b/a02264.svg new file mode 100644 index 00000000..da23c05b --- /dev/null +++ b/a02264.svg @@ -0,0 +1,362 @@ + + + + + + +arax_object_repo_s + + +Node1 + + +arax_object_repo_s + + + + + +Node2 + + +arax_pipe + + + + + +Node1->Node2 + + + + + + objs + + + +Node2->Node1 + + + + + + pipe + + + +Node3 + + +async_meta_s + + + + + +Node3->Node2 + + + + + + async + + + +Node9 + + +async_condition_s + + + + + +Node3->Node9 + + + + + + meta + + + +Node10 + + +async_completion_s + + + + + +Node3->Node10 + + + + + + meta + + + +Node11 + + +async_semaphore_s + + + + + +Node3->Node11 + + + + + + meta + + + +Node4 + + +utils_list_s + + + + + +Node4->Node1 + + + + + + list + + + +Node4->Node2 + + + + + + orphan_vacs + + + +Node4->Node3 + + + + + + outstanding + + + +Node4->Node11 + + + + + + pending_list + + + +Node5 + + +utils_list_node + + + + + +Node5->Node4 + + + + + + head + + + +Node5->Node5 + + + + + + next +prev + + + +Node5->Node10 + + + + + + outstanding + + + +Node6 + + +ivshmem + + + + + +Node6->Node3 + + + + + + regs + + + +Node7 + + +arch_alloc_s + + + + + +Node7->Node2 + + + + + + allocator + + + +Node7->Node3 + + + + + + alloc + + + +Node8 + + +arax_throttle_s + + + + + +Node8->Node2 + + + + + + throttle + + + +Node9->Node2 + + + + + + cntrl_ready_cond +orphan_cond + + + +Node9->Node8 + + + + + + ready + + + +Node10->Node9 + + + + + + mutex + + + +Node11->Node9 + + + + + + semaphore + + + +Node12 + + +utils_kv_s + + + + + +Node12->Node2 + + + + + + ass_kv +metrics_kv + + + +Node13 + + +Pair + + + + + +Node13->Node12 + + + + + + kv + + + diff --git a/a02266.html b/a02266.html new file mode 100644 index 00000000..291fc5b3 --- /dev/null +++ b/a02266.html @@ -0,0 +1,211 @@ + + + + + + + +Arax: arax_object_repo_s Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_object_repo_s Struct Reference
+
+
+ +

#include <arax_object.h>

+
+ + Collaboration diagram for arax_object_repo_s:
+
+
+ + + + + + + + + + + + + +

+Data Fields

arax_pipe_spipe
 
struct { 
 
   utils_list_s   list 
 
   utils_spinlock   lock 
 
repo [ARAX_TYPE_COUNT
 
+

Detailed Description

+

Arax object repository struct, contains references to all Arax objects.

+ +

Definition at line 27 of file arax_object.h.

+

Field Documentation

+ +

◆ list

+ + + +

◆ lock

+ + + +

◆ pipe

+ + + +

◆ [struct]

+ + +
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02266.js b/a02266.js new file mode 100644 index 00000000..e67421f4 --- /dev/null +++ b/a02266.js @@ -0,0 +1,7 @@ +var a02266 = +[ + [ "list", "a02266.html#afe92c84bfb521aecb0830c5c08692123", null ], + [ "lock", "a02266.html#a2d0e255f518332321e7cbd964ebb9681", null ], + [ "pipe", "a02266.html#ab24709352dad0d1b140e77c0b4effd43", null ], + [ "repo", "a02266.html#a9183e8bc68789d8769857d1bf2eb9a74", null ] +]; \ No newline at end of file diff --git a/a02272.map b/a02272.map new file mode 100644 index 00000000..f5d01413 --- /dev/null +++ b/a02272.map @@ -0,0 +1,41 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02272.md5 b/a02272.md5 new file mode 100644 index 00000000..4244c8d5 --- /dev/null +++ b/a02272.md5 @@ -0,0 +1 @@ +7afb4fd63e8d6c75617dd5bbd9cc2318 \ No newline at end of file diff --git a/a02272.svg b/a02272.svg new file mode 100644 index 00000000..bfc826ab --- /dev/null +++ b/a02272.svg @@ -0,0 +1,391 @@ + + + + + + +arax_object_s + + +Node1 + + +arax_object_s + + + + + +Node2 + + +arax_object_repo_s + + + + + +Node2->Node1 + + + + + + repo + + + +Node3 + + +arax_pipe + + + + + +Node2->Node3 + + + + + + objs + + + +Node3->Node2 + + + + + + pipe + + + +Node4 + + +async_meta_s + + + + + +Node4->Node3 + + + + + + async + + + +Node10 + + +async_condition_s + + + + + +Node4->Node10 + + + + + + meta + + + +Node11 + + +async_completion_s + + + + + +Node4->Node11 + + + + + + meta + + + +Node12 + + +async_semaphore_s + + + + + +Node4->Node12 + + + + + + meta + + + +Node5 + + +utils_list_s + + + + + +Node5->Node2 + + + + + + list + + + +Node5->Node3 + + + + + + orphan_vacs + + + +Node5->Node4 + + + + + + outstanding + + + +Node5->Node12 + + + + + + pending_list + + + +Node6 + + +utils_list_node + + + + + +Node6->Node1 + + + + + + list + + + +Node6->Node5 + + + + + + head + + + +Node6->Node6 + + + + + + next +prev + + + +Node6->Node11 + + + + + + outstanding + + + +Node7 + + +ivshmem + + + + + +Node7->Node4 + + + + + + regs + + + +Node8 + + +arch_alloc_s + + + + + +Node8->Node3 + + + + + + allocator + + + +Node8->Node4 + + + + + + alloc + + + +Node9 + + +arax_throttle_s + + + + + +Node9->Node3 + + + + + + throttle + + + +Node10->Node3 + + + + + + cntrl_ready_cond +orphan_cond + + + +Node10->Node9 + + + + + + ready + + + +Node11->Node10 + + + + + + mutex + + + +Node12->Node10 + + + + + + semaphore + + + +Node13 + + +utils_kv_s + + + + + +Node13->Node3 + + + + + + ass_kv +metrics_kv + + + +Node14 + + +Pair + + + + + +Node14->Node13 + + + + + + kv + + + diff --git a/a02274.html b/a02274.html new file mode 100644 index 00000000..4695d705 --- /dev/null +++ b/a02274.html @@ -0,0 +1,251 @@ + + + + + + + +Arax: arax_object_s Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_object_s Struct Reference
+
+
+ +

#include <arax_object.h>

+
+ + Collaboration diagram for arax_object_s:
+
+
+ + + + + + + + + + + + + + + +

+Data Fields

arax_object_repo_srepo
 
utils_list_node_s list
 
size_t alloc_size
 
arax_object_type_e type
 
volatile int ref_count
 
char * name
 
+

Detailed Description

+

Arax Object super class, all Arax Objects have this as their first member.

+ +

Definition at line 40 of file arax_object.h.

+

Field Documentation

+ +

◆ alloc_size

+ +
+
+ + + + +
size_t alloc_size
+
+ +

Definition at line 44 of file arax_object.h.

+ +

Referenced by arax_object_ref_dec(), arax_object_ref_dec_pre_locked(), and arax_object_register().

+ +
+
+ +

◆ list

+ +
+
+ + + + +
utils_list_node_s list
+
+ +

Definition at line 43 of file arax_object.h.

+ +

Referenced by arax_object_ref_dec(), arax_object_ref_dec_pre_locked(), and arax_object_register().

+ +
+
+ +

◆ name

+ + + +

◆ ref_count

+ +
+
+ + + + +
volatile int ref_count
+
+
+ +

◆ repo

+ + + +

◆ type

+ + +
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02274.js b/a02274.js new file mode 100644 index 00000000..baa10577 --- /dev/null +++ b/a02274.js @@ -0,0 +1,9 @@ +var a02274 = +[ + [ "alloc_size", "a02274.html#a17be629b5c7f3f19ca40d24c42ec7636", null ], + [ "list", "a02274.html#accac206ff1a3a110956de2919fbac340", null ], + [ "name", "a02274.html#a5ac083a645d964373f022d03df4849c8", null ], + [ "ref_count", "a02274.html#a3992dd0defc891eaf99d5fd80f63e633", null ], + [ "repo", "a02274.html#a7d88fc5e96fd0b650cb15f8db8171bad", null ], + [ "type", "a02274.html#a58fd61e4b715a2ae25b8d8da210ad32e", null ] +]; \ No newline at end of file diff --git a/a02276.map b/a02276.map new file mode 100644 index 00000000..1c6f733c --- /dev/null +++ b/a02276.map @@ -0,0 +1,43 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02276.md5 b/a02276.md5 new file mode 100644 index 00000000..798bd5e7 --- /dev/null +++ b/a02276.md5 @@ -0,0 +1 @@ +1832717e51264c9b77567581ef64dc88 \ No newline at end of file diff --git a/a02276.svg b/a02276.svg new file mode 100644 index 00000000..79904f26 --- /dev/null +++ b/a02276.svg @@ -0,0 +1,410 @@ + + + + + + +arax_proc_s + + +Node1 + + +arax_proc_s + + + + + +Node2 + + +arax_object_s + + + + + +Node2->Node1 + + + + + + obj + + + +Node3 + + +arax_object_repo_s + + + + + +Node3->Node2 + + + + + + repo + + + +Node4 + + +arax_pipe + + + + + +Node3->Node4 + + + + + + objs + + + +Node4->Node3 + + + + + + pipe + + + +Node5 + + +async_meta_s + + + + + +Node5->Node4 + + + + + + async + + + +Node11 + + +async_condition_s + + + + + +Node5->Node11 + + + + + + meta + + + +Node12 + + +async_completion_s + + + + + +Node5->Node12 + + + + + + meta + + + +Node13 + + +async_semaphore_s + + + + + +Node5->Node13 + + + + + + meta + + + +Node6 + + +utils_list_s + + + + + +Node6->Node3 + + + + + + list + + + +Node6->Node4 + + + + + + orphan_vacs + + + +Node6->Node5 + + + + + + outstanding + + + +Node6->Node13 + + + + + + pending_list + + + +Node7 + + +utils_list_node + + + + + +Node7->Node2 + + + + + + list + + + +Node7->Node6 + + + + + + head + + + +Node7->Node7 + + + + + + next +prev + + + +Node7->Node12 + + + + + + outstanding + + + +Node8 + + +ivshmem + + + + + +Node8->Node5 + + + + + + regs + + + +Node9 + + +arch_alloc_s + + + + + +Node9->Node4 + + + + + + allocator + + + +Node9->Node5 + + + + + + alloc + + + +Node10 + + +arax_throttle_s + + + + + +Node10->Node4 + + + + + + throttle + + + +Node11->Node4 + + + + + + cntrl_ready_cond +orphan_cond + + + +Node11->Node10 + + + + + + ready + + + +Node12->Node11 + + + + + + mutex + + + +Node13->Node11 + + + + + + semaphore + + + +Node14 + + +utils_kv_s + + + + + +Node14->Node4 + + + + + + ass_kv +metrics_kv + + + +Node15 + + +Pair + + + + + +Node15->Node14 + + + + + + kv + + + diff --git a/a02278.html b/a02278.html new file mode 100644 index 00000000..ec7ec303 --- /dev/null +++ b/a02278.html @@ -0,0 +1,190 @@ + + + + + + + +Arax: arax_proc_s Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_proc_s Struct Reference
+
+
+ +

#include <arax_proc.h>

+
+ + Collaboration diagram for arax_proc_s:
+
+
+ + + + + + + + + +

+Data Fields

arax_object_s obj
 
uint64_t canrun
 
AraxFunctorfunctors [ARAX_ACCEL_TYPES]
 
+

Detailed Description

+
+

Definition at line 15 of file arax_proc.h.

+

Field Documentation

+ +

◆ canrun

+ +
+
+ + + + +
uint64_t canrun
+
+ +

Definition at line 18 of file arax_proc.h.

+ +

Referenced by arax_proc_can_run_at(), and arax_proc_set_functor().

+ +
+
+ +

◆ functors

+ +
+
+ + + + +
AraxFunctor* functors[ARAX_ACCEL_TYPES]
+
+ +

Definition at line 19 of file arax_proc.h.

+ +

Referenced by arax_proc_get_functor(), and arax_proc_set_functor().

+ +
+
+ +

◆ obj

+ +
+
+ + + + +
arax_object_s obj
+
+ +

Definition at line 17 of file arax_proc.h.

+ +

Referenced by arax_pipe_find_proc(), arax_proc_get(), and arax_proc_put().

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02278.js b/a02278.js new file mode 100644 index 00000000..16641635 --- /dev/null +++ b/a02278.js @@ -0,0 +1,6 @@ +var a02278 = +[ + [ "canrun", "a02278.html#a493b9cf53eb6d948c3e9194d1712857c", null ], + [ "functors", "a02278.html#a29e4645c9e12dd9eee28626e19298dc6", null ], + [ "obj", "a02278.html#a62baad2fa0dcd6ee63e1e69974047ac4", null ] +]; \ No newline at end of file diff --git a/a02280.map b/a02280.map new file mode 100644 index 00000000..0f9a4569 --- /dev/null +++ b/a02280.map @@ -0,0 +1,49 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02280.md5 b/a02280.md5 new file mode 100644 index 00000000..7c40cf67 --- /dev/null +++ b/a02280.md5 @@ -0,0 +1 @@ +66af59c06bf978919f2aa1af908ba9cc \ No newline at end of file diff --git a/a02280.svg b/a02280.svg new file mode 100644 index 00000000..b0c1214a --- /dev/null +++ b/a02280.svg @@ -0,0 +1,470 @@ + + + + + + +arax_task_msg + + +Node1 + + +arax_task_msg + + + + + +Node2 + + +arax_object_s + + + + + +Node2->Node1 + + + + + + obj + + + +Node3 + + +arax_object_repo_s + + + + + +Node3->Node2 + + + + + + repo + + + +Node4 + + +arax_pipe + + + + + +Node3->Node4 + + + + + + objs + + + +Node4->Node1 + + + + + + pipe + + + +Node4->Node3 + + + + + + pipe + + + +Node5 + + +async_meta_s + + + + + +Node5->Node4 + + + + + + async + + + +Node11 + + +async_condition_s + + + + + +Node5->Node11 + + + + + + meta + + + +Node12 + + +async_completion_s + + + + + +Node5->Node12 + + + + + + meta + + + +Node13 + + +async_semaphore_s + + + + + +Node5->Node13 + + + + + + meta + + + +Node6 + + +utils_list_s + + + + + +Node6->Node3 + + + + + + list + + + +Node6->Node4 + + + + + + orphan_vacs + + + +Node6->Node5 + + + + + + outstanding + + + +Node6->Node13 + + + + + + pending_list + + + +Node7 + + +utils_list_node + + + + + +Node7->Node2 + + + + + + list + + + +Node7->Node6 + + + + + + head + + + +Node7->Node7 + + + + + + next +prev + + + +Node7->Node12 + + + + + + outstanding + + + +Node8 + + +ivshmem + + + + + +Node8->Node5 + + + + + + regs + + + +Node9 + + +arch_alloc_s + + + + + +Node9->Node4 + + + + + + allocator + + + +Node9->Node5 + + + + + + alloc + + + +Node10 + + +arax_throttle_s + + + + + +Node10->Node4 + + + + + + throttle + + + +Node11->Node4 + + + + + + cntrl_ready_cond +orphan_cond + + + +Node11->Node10 + + + + + + ready + + + +Node12->Node1 + + + + + + done + + + +Node12->Node11 + + + + + + mutex + + + +Node13->Node11 + + + + + + semaphore + + + +Node14 + + +utils_kv_s + + + + + +Node14->Node4 + + + + + + ass_kv +metrics_kv + + + +Node15 + + +Pair + + + + + +Node15->Node14 + + + + + + kv + + + +Node16 + + +arax_task_stats + + + + + +Node16->Node1 + + + + + + stats + + + +Node17 + + +utils_timer_s + + + + + +Node17->Node16 + + + + + + task_duration +task_duration_without +_issue + + + diff --git a/a02282.html b/a02282.html new file mode 100644 index 00000000..fe601eb0 --- /dev/null +++ b/a02282.html @@ -0,0 +1,379 @@ + + + + + + + +Arax: arax_task_msg Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_task_msg Struct Reference
+
+
+ +

#include <arax_task.h>

+
+ + Collaboration diagram for arax_task_msg:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

arax_object_s obj
 
arax_pipe_spipe
 
arax_accelaccel
 
arax_procproc
 
size_t host_size
 
int in_count
 
int out_count
 
arax_accel_type_e type
 
arax_task_state_e state
 
arax_task_stats_s stats
 
async_completion_s done
 
arax_dataio []
 
+

Detailed Description

+

Arax Task message.

+ +

Definition at line 9 of file arax_task.h.

+

Field Documentation

+ +

◆ accel

+ +
+
+ + + + +
arax_accel* accel
+
+

Accelerator responsible for this task

+ +

Definition at line 13 of file arax_task.h.

+ +

Referenced by ARAX_OBJ_DTOR_DECL(), arax_task_alloc(), and arax_task_submit().

+ +
+
+ +

◆ done

+ +
+
+ + + + +
async_completion_s done
+
+

Used for arax_task_mark_done(), arax_task_wait_done()

+ +

Definition at line 21 of file arax_task.h.

+ +

Referenced by arax_task_alloc(), arax_task_mark_done(), and arax_task_wait_done().

+ +
+
+ +

◆ host_size

+ +
+
+ + + + +
size_t host_size
+
+

Size of host_data in bytes

+ +

Definition at line 15 of file arax_task.h.

+ +

Referenced by arax_task_alloc(), and arax_task_host_data().

+ +
+
+ +

◆ in_count

+ +
+
+ + + + +
int in_count
+
+

Number of input buffers

+ +

Definition at line 16 of file arax_task.h.

+ +

Referenced by ARAX_OBJ_DTOR_DECL(), arax_task_alloc(), and arax_task_host_data().

+ +
+
+ +

◆ io

+ +
+
+ + + + +
arax_data* io[]
+
+

Array of input and output buffers has in_count+out_count elements. The first in_count elements point to the inputs and the remaining out_count elements point to the outputs

+ +

Definition at line 22 of file arax_task.h.

+ +

Referenced by ARAX_OBJ_DTOR_DECL(), and arax_task_alloc().

+ +
+
+ +

◆ obj

+ +
+
+ + + + +
arax_object_s obj
+
+ +

Definition at line 11 of file arax_task.h.

+ +

Referenced by arax_task_free().

+ +
+
+ +

◆ out_count

+ +
+
+ + + + +
int out_count
+
+

Number of output buffers

+ +

Definition at line 17 of file arax_task.h.

+ +

Referenced by ARAX_OBJ_DTOR_DECL(), arax_task_alloc(), and arax_task_host_data().

+ +
+
+ +

◆ pipe

+ +
+
+ + + + +
arax_pipe_s* pipe
+
+ +

Definition at line 12 of file arax_task.h.

+ +

Referenced by arax_task_alloc().

+ +
+
+ +

◆ proc

+ +
+
+ + + + +
arax_proc* proc
+
+

Process id

+ +

Definition at line 14 of file arax_task.h.

+ +

Referenced by arax_task_alloc().

+ +
+
+ +

◆ state

+ +
+
+ + + + +
arax_task_state_e state
+
+

Current state of task.

+ +

Definition at line 19 of file arax_task.h.

+ +

Referenced by arax_task_mark_done(), arax_task_stat(), arax_task_submit(), arax_task_wait(), and arax_task_wait_done().

+ +
+
+ +

◆ stats

+ +
+
+ + + + +
arax_task_stats_s stats
+
+

Task related statistics

+ +

Definition at line 20 of file arax_task.h.

+ +

Referenced by arax_task_stat(), and arax_task_submit().

+ +
+
+ +

◆ type

+ +
+
+ + + + +
arax_accel_type_e type
+
+

Type of task at issue

+ +

Definition at line 18 of file arax_task.h.

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02282.js b/a02282.js new file mode 100644 index 00000000..8c18b2b5 --- /dev/null +++ b/a02282.js @@ -0,0 +1,15 @@ +var a02282 = +[ + [ "accel", "a02282.html#aac76039ff5a85f955313124fe283fd8d", null ], + [ "done", "a02282.html#abf82bc3499a9c391a4003fcbf32ab80f", null ], + [ "host_size", "a02282.html#ade845c1158821ebff168efbbc07809b6", null ], + [ "in_count", "a02282.html#a3258a2fa7a2c3acdefe9b33f34e1a243", null ], + [ "io", "a02282.html#ab503a43915fca68de9bd6b6fe853c9b2", null ], + [ "obj", "a02282.html#a62baad2fa0dcd6ee63e1e69974047ac4", null ], + [ "out_count", "a02282.html#ad9c8a879267b6ba0962ee8d90f8e3b81", null ], + [ "pipe", "a02282.html#ab24709352dad0d1b140e77c0b4effd43", null ], + [ "proc", "a02282.html#acad9d5fa4ef41c9eee372d1782d4a487", null ], + [ "state", "a02282.html#a934524bb93ea14db8a9df9d44c388749", null ], + [ "stats", "a02282.html#aff85928b0bb97173be36af219640090a", null ], + [ "type", "a02282.html#abc0d19a0f38e8eff06a6023c517bc183", null ] +]; \ No newline at end of file diff --git a/a02284.map b/a02284.map new file mode 100644 index 00000000..850d5dd1 --- /dev/null +++ b/a02284.map @@ -0,0 +1,24 @@ + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02284.md5 b/a02284.md5 new file mode 100644 index 00000000..c23211f7 --- /dev/null +++ b/a02284.md5 @@ -0,0 +1 @@ +8b5ee877bdb77237dc7f26877bc9a2dc \ No newline at end of file diff --git a/a02284.svg b/a02284.svg new file mode 100644 index 00000000..447a9f7d --- /dev/null +++ b/a02284.svg @@ -0,0 +1,224 @@ + + + + + + +arax_throttle_s + + +Node1 + + +arax_throttle_s + + + + + +Node2 + + +async_condition_s + + + + + +Node2->Node1 + + + + + + ready + + + +Node3 + + +async_meta_s + + + + + +Node3->Node2 + + + + + + meta + + + +Node8 + + +async_completion_s + + + + + +Node3->Node8 + + + + + + meta + + + +Node9 + + +async_semaphore_s + + + + + +Node3->Node9 + + + + + + meta + + + +Node4 + + +utils_list_s + + + + + +Node4->Node3 + + + + + + outstanding + + + +Node4->Node9 + + + + + + pending_list + + + +Node5 + + +utils_list_node + + + + + +Node5->Node4 + + + + + + head + + + +Node5->Node5 + + + + + + next +prev + + + +Node5->Node8 + + + + + + outstanding + + + +Node6 + + +ivshmem + + + + + +Node6->Node3 + + + + + + regs + + + +Node7 + + +arch_alloc_s + + + + + +Node7->Node3 + + + + + + alloc + + + +Node8->Node2 + + + + + + mutex + + + +Node9->Node2 + + + + + + semaphore + + + diff --git a/a02286.html b/a02286.html new file mode 100644 index 00000000..0ecf96d5 --- /dev/null +++ b/a02286.html @@ -0,0 +1,190 @@ + + + + + + + +Arax: arax_throttle_s Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_throttle_s Struct Reference
+
+
+ +

#include <arax_throttle.h>

+
+ + Collaboration diagram for arax_throttle_s:
+
+
+ + + + + + + + + +

+Data Fields

size_t available
 
size_t capacity
 
async_condition_s ready
 
+

Detailed Description

+
+

Definition at line 12 of file arax_throttle.h.

+

Field Documentation

+ +

◆ available

+ +
+
+ + + + +
size_t available
+
+ +

Definition at line 14 of file arax_throttle.h.

+ +

Referenced by arax_throttle_get_available_size(), and arax_throttle_init().

+ +
+
+ +

◆ capacity

+ +
+
+ + + + +
size_t capacity
+
+ +

Definition at line 15 of file arax_throttle.h.

+ +

Referenced by arax_throttle_get_total_size(), and arax_throttle_init().

+ +
+
+ +

◆ ready

+ +
+
+ + + + +
async_condition_s ready
+
+ +

Definition at line 16 of file arax_throttle.h.

+ +

Referenced by arax_throttle_init().

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02286.js b/a02286.js new file mode 100644 index 00000000..47285308 --- /dev/null +++ b/a02286.js @@ -0,0 +1,6 @@ +var a02286 = +[ + [ "available", "a02286.html#a39b14fe33027e3b0ddc54570c6d1a067", null ], + [ "capacity", "a02286.html#ad721fc6ca6a3d6ba3bc506576622aab0", null ], + [ "ready", "a02286.html#a9e79fa69c4c65224256f073c896d1646", null ] +]; \ No newline at end of file diff --git a/a02288.map b/a02288.map new file mode 100644 index 00000000..861f61c1 --- /dev/null +++ b/a02288.map @@ -0,0 +1,55 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02288.md5 b/a02288.md5 new file mode 100644 index 00000000..f99d5ce7 --- /dev/null +++ b/a02288.md5 @@ -0,0 +1 @@ +0942b767432b4ee82183127ccf75704f \ No newline at end of file diff --git a/a02288.svg b/a02288.svg new file mode 100644 index 00000000..cbd8a087 --- /dev/null +++ b/a02288.svg @@ -0,0 +1,527 @@ + + + + + + +arax_vaccel_s + + +Node1 + + +arax_vaccel_s + + + + + +Node16 + + +arax_accel_s + + + + + +Node1->Node16 + + + + + + free_vaq + + + +Node2 + + +arax_object_s + + + + + +Node2->Node1 + + + + + + obj + + + +Node2->Node16 + + + + + + obj + + + +Node3 + + +arax_object_repo_s + + + + + +Node3->Node2 + + + + + + repo + + + +Node4 + + +arax_pipe + + + + + +Node3->Node4 + + + + + + objs + + + +Node4->Node3 + + + + + + pipe + + + +Node5 + + +async_meta_s + + + + + +Node5->Node4 + + + + + + async + + + +Node11 + + +async_condition_s + + + + + +Node5->Node11 + + + + + + meta + + + +Node12 + + +async_completion_s + + + + + +Node5->Node12 + + + + + + meta + + + +Node13 + + +async_semaphore_s + + + + + +Node5->Node13 + + + + + + meta + + + +Node6 + + +utils_list_s + + + + + +Node6->Node3 + + + + + + list + + + +Node6->Node4 + + + + + + orphan_vacs + + + +Node6->Node5 + + + + + + outstanding + + + +Node6->Node13 + + + + + + pending_list + + + +Node6->Node16 + + + + + + vaccels + + + +Node7 + + +utils_list_node + + + + + +Node7->Node1 + + + + + + vaccels + + + +Node7->Node2 + + + + + + list + + + +Node7->Node6 + + + + + + head + + + +Node7->Node7 + + + + + + next +prev + + + +Node7->Node12 + + + + + + outstanding + + + +Node8 + + +ivshmem + + + + + +Node8->Node5 + + + + + + regs + + + +Node9 + + +arch_alloc_s + + + + + +Node9->Node4 + + + + + + allocator + + + +Node9->Node5 + + + + + + alloc + + + +Node10 + + +arax_throttle_s + + + + + +Node10->Node4 + + + + + + throttle + + + +Node10->Node16 + + + + + + throttle + + + +Node11->Node4 + + + + + + cntrl_ready_cond +orphan_cond + + + +Node11->Node10 + + + + + + ready + + + +Node11->Node16 + + + + + + lock + + + +Node12->Node11 + + + + + + mutex + + + +Node13->Node11 + + + + + + semaphore + + + +Node14 + + +utils_kv_s + + + + + +Node14->Node4 + + + + + + ass_kv +metrics_kv + + + +Node15 + + +Pair + + + + + +Node15->Node14 + + + + + + kv + + + +Node16->Node1 + + + + + + phys + + + +Node17 + + +arax_accel_stats + + + + + +Node17->Node16 + + + + + + stats + + + +Node18 + + +queue + + + + + +Node18->Node1 + + + + + + queue + + + diff --git a/a02290.html b/a02290.html new file mode 100644 index 00000000..6dda6cda --- /dev/null +++ b/a02290.html @@ -0,0 +1,333 @@ + + + + + + + +Arax: arax_vaccel_s Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_vaccel_s Struct Reference
+
+
+ +

#include <arax_vaccel.h>

+
+ + Collaboration diagram for arax_vaccel_s:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

arax_object_s obj
 
arax_accel_type_e type
 
arax_accel_ordering_e ordering
 
utils_spinlock lock
 
utils_list_node_s vaccels
 
uint64_t cid
 
uint64_t priority
 
arax_accel_sphys
 
void * meta
 
utils_queue_s queue
 
+

Detailed Description

+

Virtual Accelerator

+

Creates a dedicated task queue.

+

@NOTE: arax_accel_s are single producer, multiple consumer.

+ +

Definition at line 29 of file arax_vaccel.h.

+

Field Documentation

+ +

◆ cid

+ +
+
+ + + + +
uint64_t cid
+
+ +

Definition at line 36 of file arax_vaccel.h.

+ +

Referenced by arax_vaccel_get_cid(), arax_vaccel_init(), and arax_vaccel_set_cid().

+ +
+
+ +

◆ lock

+ +
+
+ + + + +
utils_spinlock lock
+
+
+ +

◆ meta

+ +
+
+ + + + +
void* meta
+
+ +

Definition at line 39 of file arax_vaccel.h.

+ +

Referenced by arax_vaccel_get_meta(), arax_vaccel_init(), and arax_vaccel_set_meta().

+ +
+
+ +

◆ obj

+ +
+
+ + + + +
arax_object_s obj
+
+ +

Definition at line 31 of file arax_vaccel.h.

+ +

Referenced by arax_accel_add_vaccel(), arax_accel_list(), and arax_accel_release().

+ +
+
+ +

◆ ordering

+ +
+
+ + + + +
arax_accel_ordering_e ordering
+
+ +

Definition at line 33 of file arax_vaccel.h.

+ +

Referenced by arax_vaccel_get_ordering(), arax_vaccel_init(), and arax_vaccel_set_ordering().

+ +
+
+ +

◆ phys

+ + + +

◆ priority

+ +
+
+ + + + +
uint64_t priority
+
+ +

Definition at line 37 of file arax_vaccel.h.

+ +

Referenced by arax_vaccel_get_job_priority(), arax_vaccel_init(), and arax_vaccel_set_job_priority().

+ +
+
+ +

◆ queue

+ +
+
+ + + + +
utils_queue_s queue
+
+ +

Definition at line 40 of file arax_vaccel.h.

+ +

Referenced by arax_vaccel_add_task(), arax_vaccel_init(), and arax_vaccel_queue().

+ +
+
+ +

◆ type

+ +
+
+ + + + +
arax_accel_type_e type
+
+ +

Definition at line 32 of file arax_vaccel.h.

+ +

Referenced by arax_accel_list(), and arax_vaccel_init().

+ +
+
+ +

◆ vaccels

+ + +
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02290.js b/a02290.js new file mode 100644 index 00000000..830c0ac2 --- /dev/null +++ b/a02290.js @@ -0,0 +1,13 @@ +var a02290 = +[ + [ "cid", "a02290.html#a7799217ab3775472b2c3f62cbaded780", null ], + [ "lock", "a02290.html#a2d0e255f518332321e7cbd964ebb9681", null ], + [ "meta", "a02290.html#ac4dd2b9f4655e1965c4d71b25ff39217", null ], + [ "obj", "a02290.html#a62baad2fa0dcd6ee63e1e69974047ac4", null ], + [ "ordering", "a02290.html#a2b340596fb7f904041734cd1d17ad2ee", null ], + [ "phys", "a02290.html#aacfb411e7befb69b45a527305d3e61d7", null ], + [ "priority", "a02290.html#af43b7b00bdbaf3d0602086885a410899", null ], + [ "queue", "a02290.html#aeb168d5887a099188b8ea6f764eec28d", null ], + [ "type", "a02290.html#abc0d19a0f38e8eff06a6023c517bc183", null ], + [ "vaccels", "a02290.html#ad1f970085318cf558d1b34d4a3284f02", null ] +]; \ No newline at end of file diff --git a/a02294.html b/a02294.html new file mode 100644 index 00000000..6bc75e12 --- /dev/null +++ b/a02294.html @@ -0,0 +1,243 @@ + + + + + + + +Arax: utils_bitmap Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
utils_bitmap Struct Reference
+
+
+ +

#include <bitmap.h>

+ + + + + + + + + + + + + + +

+Data Fields

utils_spinlock lock
 
uint64_t * free_p
 
uint64_t * end
 
size_t used_bits
 
size_t size_bits
 
uint64_t bits []
 
+

Detailed Description

+
+

Definition at line 6 of file bitmap.h.

+

Field Documentation

+ +

◆ bits

+ + + +

◆ end

+ +
+
+ + + + +
uint64_t* end
+
+ +

Definition at line 10 of file bitmap.h.

+ +

Referenced by find_start_big(), find_start_small(), utils_bitmap_alloc_bits(), and utils_bitmap_init().

+ +
+
+ +

◆ free_p

+ +
+
+ + + + +
uint64_t* free_p
+
+ +

Definition at line 9 of file bitmap.h.

+ +

Referenced by utils_bitmap_alloc_bits(), and utils_bitmap_init().

+ +
+
+ +

◆ lock

+ +
+
+ + + + +
utils_spinlock lock
+
+ +

Definition at line 8 of file bitmap.h.

+ +

Referenced by utils_bitmap_alloc_bits(), utils_bitmap_free_bits(), and utils_bitmap_init().

+ +
+
+ +

◆ size_bits

+ +
+
+ + + + +
size_t size_bits
+
+
+ +

◆ used_bits

+ +
+
+ + + + +
size_t used_bits
+
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02294.js b/a02294.js new file mode 100644 index 00000000..162e69c5 --- /dev/null +++ b/a02294.js @@ -0,0 +1,9 @@ +var a02294 = +[ + [ "bits", "a02294.html#ad5bb3cdaaa30848e14f53cc84569fc40", null ], + [ "end", "a02294.html#a081887179d5c8bbf60afdebf1ba775ca", null ], + [ "free_p", "a02294.html#ab4558fb932c23450c39dd49fa7b4cb1e", null ], + [ "lock", "a02294.html#a2d0e255f518332321e7cbd964ebb9681", null ], + [ "size_bits", "a02294.html#a6a989035a6bfea6ac1343a9b646e2b88", null ], + [ "used_bits", "a02294.html#a5d2a0cf45be4611047446c1bf07556ab", null ] +]; \ No newline at end of file diff --git a/a02298.html b/a02298.html new file mode 100644 index 00000000..173181a4 --- /dev/null +++ b/a02298.html @@ -0,0 +1,144 @@ + + + + + + + +Arax: utils_compat_empty_s Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
utils_compat_empty_s Struct Reference
+
+
+ +

#include <compat.h>

+ + + + +

+Data Fields

unsigned long nothing
 
+

Detailed Description

+

Placeholder struct to be used instead of an empty struct.

+

This struct is necessary as a c struct is 0 bytes*, whereas a c++ struct is 1 byte big**, resulting in problematic c<->c++ interaction.

+

https://gcc.gnu.org/onlinedocs/gcc/Empty-Structures.html#Empty-Structures ** Could not find reference, but seems to be defined as 'non zero'.

+ +

Definition at line 13 of file compat.h.

+

Field Documentation

+ +

◆ nothing

+ +
+
+ + + + +
unsigned long nothing
+
+ +

Definition at line 15 of file compat.h.

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02298.js b/a02298.js new file mode 100644 index 00000000..ced5975a --- /dev/null +++ b/a02298.js @@ -0,0 +1,4 @@ +var a02298 = +[ + [ "nothing", "a02298.html#a819b91e732f1e8ee19dd607340513237", null ] +]; \ No newline at end of file diff --git a/a02300.map b/a02300.map new file mode 100644 index 00000000..e988f08a --- /dev/null +++ b/a02300.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02300.md5 b/a02300.md5 new file mode 100644 index 00000000..8707392c --- /dev/null +++ b/a02300.md5 @@ -0,0 +1 @@ +1ce27efc9e48cece58f026997d090404 \ No newline at end of file diff --git a/a02300.svg b/a02300.svg new file mode 100644 index 00000000..b8107073 --- /dev/null +++ b/a02300.svg @@ -0,0 +1,40 @@ + + + + + + +utils_kv_s + + +Node1 + + +utils_kv_s + + + + + +Node2 + + +Pair + + + + + +Node2->Node1 + + + + + + kv + + + diff --git a/a02302.html b/a02302.html new file mode 100644 index 00000000..10e99d89 --- /dev/null +++ b/a02302.html @@ -0,0 +1,195 @@ + + + + + + + +Arax: utils_kv_s Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
utils_kv_s Struct Reference
+
+
+ +

#include <Kv.h>

+
+ + Collaboration diagram for utils_kv_s:
+
+
+ + + + + +

+Data Structures

struct  Pair
 
+ + + + + + + +

+Data Fields

struct utils_kv_s::Pair kv [ARAX_KV_CAP]
 
size_t pairs
 
utils_spinlock lock
 
+

Detailed Description

+

Basic key-value object.

+ +

Definition at line 10 of file Kv.h.

+

Field Documentation

+ +

◆ kv

+ +
+
+ + + + +
struct utils_kv_s::Pair kv[ARAX_KV_CAP]
+
+ +

Referenced by utils_kv_get(), and utils_kv_set().

+ +
+
+ +

◆ lock

+ +
+
+ + + + +
utils_spinlock lock
+
+ +

Definition at line 18 of file Kv.h.

+ +

Referenced by utils_kv_get(), utils_kv_init(), and utils_kv_set().

+ +
+
+ +

◆ pairs

+ +
+
+ + + + +
size_t pairs
+
+ +

Definition at line 17 of file Kv.h.

+ +

Referenced by utils_kv_get(), and utils_kv_set().

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02302.js b/a02302.js new file mode 100644 index 00000000..1629ffee --- /dev/null +++ b/a02302.js @@ -0,0 +1,7 @@ +var a02302 = +[ + [ "Pair", "a02306.html", "a02306" ], + [ "kv", "a02302.html#a6bc1545b84713e17bed59f6dba43a2ba", null ], + [ "lock", "a02302.html#a2d0e255f518332321e7cbd964ebb9681", null ], + [ "pairs", "a02302.html#a033557d71b26833df9b231ed0cda5d46", null ] +]; \ No newline at end of file diff --git a/a02306.html b/a02306.html new file mode 100644 index 00000000..ca138308 --- /dev/null +++ b/a02306.html @@ -0,0 +1,163 @@ + + + + + + + +Arax: utils_kv_s::Pair Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
utils_kv_s::Pair Struct Reference
+
+
+ +

#include <Kv.h>

+ + + + + + +

+Data Fields

void * key
 
void * value
 
+

Detailed Description

+
+

Definition at line 12 of file Kv.h.

+

Field Documentation

+ +

◆ key

+ +
+
+ + + + +
void* key
+
+ +

Definition at line 14 of file Kv.h.

+ +

Referenced by utils_kv_get(), and utils_kv_set().

+ +
+
+ +

◆ value

+ +
+
+ + + + +
void* value
+
+ +

Definition at line 15 of file Kv.h.

+ +

Referenced by utils_kv_get(), and utils_kv_set().

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02306.js b/a02306.js new file mode 100644 index 00000000..86dc5371 --- /dev/null +++ b/a02306.js @@ -0,0 +1,5 @@ +var a02306 = +[ + [ "key", "a02306.html#ab5c000aec752f2206131e183daf5efbf", null ], + [ "value", "a02306.html#a0f61d63b009d0880a89c843bd50d8d76", null ] +]; \ No newline at end of file diff --git a/a02308.map b/a02308.map new file mode 100644 index 00000000..8f09ca58 --- /dev/null +++ b/a02308.map @@ -0,0 +1,4 @@ + + + + diff --git a/a02308.md5 b/a02308.md5 new file mode 100644 index 00000000..939fe08d --- /dev/null +++ b/a02308.md5 @@ -0,0 +1 @@ +945e2f3b3a3a72e37671b619f7588c1a \ No newline at end of file diff --git a/a02308.svg b/a02308.svg new file mode 100644 index 00000000..83a90dfe --- /dev/null +++ b/a02308.svg @@ -0,0 +1,32 @@ + + + + + + +utils_list_node + + +Node1 + + +utils_list_node + + + + + +Node1->Node1 + + + + + + next +prev + + + diff --git a/a02310.html b/a02310.html new file mode 100644 index 00000000..26818d44 --- /dev/null +++ b/a02310.html @@ -0,0 +1,193 @@ + + + + + + + +Arax: utils_list_node Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
utils_list_node Struct Reference
+
+
+ +

#include <list.h>

+
+ + Collaboration diagram for utils_list_node:
+
+
+ + + + + + + + + +

+Data Fields

struct utils_list_nodenext
 
struct utils_list_nodeprev
 
void * owner
 
+

Detailed Description

+
+

Definition at line 10 of file list.h.

+

Field Documentation

+ +

◆ next

+ +
+
+ + + + +
struct utils_list_node* next
+
+

Pointer to next list node

+ +

Definition at line 12 of file list.h.

+ +

Referenced by async_semaphore_inc(), utils_list_del(), utils_list_node_add(), utils_list_node_init(), utils_list_node_linked(), and utils_list_pop_head().

+ +
+
+ +

◆ owner

+ + + +

◆ prev

+ +
+
+ + + + +
struct utils_list_node* prev
+
+

Pointer to prev list node

+ +

Definition at line 13 of file list.h.

+ +

Referenced by utils_list_del(), utils_list_node_add(), utils_list_node_init(), and utils_list_pop_tail().

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02310.js b/a02310.js new file mode 100644 index 00000000..8f2ea46a --- /dev/null +++ b/a02310.js @@ -0,0 +1,6 @@ +var a02310 = +[ + [ "next", "a02310.html#a37611aaa06306650bc1378f58ffc0ff5", null ], + [ "owner", "a02310.html#a432ddf574279073be3ca2cbd5c7831c5", null ], + [ "prev", "a02310.html#a064ba2eaa129694a87d24356fb5f463d", null ] +]; \ No newline at end of file diff --git a/a02312.map b/a02312.map new file mode 100644 index 00000000..7769ce10 --- /dev/null +++ b/a02312.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/a02312.md5 b/a02312.md5 new file mode 100644 index 00000000..bee521bc --- /dev/null +++ b/a02312.md5 @@ -0,0 +1 @@ +232a487525fac4b9e7ab4694f6989171 \ No newline at end of file diff --git a/a02312.svg b/a02312.svg new file mode 100644 index 00000000..44f8f95c --- /dev/null +++ b/a02312.svg @@ -0,0 +1,51 @@ + + + + + + +utils_list_s + + +Node1 + + +utils_list_s + + + + + +Node2 + + +utils_list_node + + + + + +Node2->Node1 + + + + + + head + + + +Node2->Node2 + + + + + + next +prev + + + diff --git a/a02314.html b/a02314.html new file mode 100644 index 00000000..af99a9a9 --- /dev/null +++ b/a02314.html @@ -0,0 +1,172 @@ + + + + + + + +Arax: utils_list_s Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
utils_list_s Struct Reference
+
+
+ +

#include <list.h>

+
+ + Collaboration diagram for utils_list_s:
+
+
+ + + + + + + +

+Data Fields

utils_list_node_s head
 
size_t length
 
+

Detailed Description

+
+

Definition at line 16 of file list.h.

+

Field Documentation

+ +

◆ head

+ +
+
+ + + + +
utils_list_node_s head
+
+

Head node

+ +

Definition at line 18 of file list.h.

+ +

Referenced by async_semaphore_inc(), utils_list_add(), utils_list_init(), utils_list_pop_head(), and utils_list_pop_tail().

+ +
+
+ +

◆ length

+ + +
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02314.js b/a02314.js new file mode 100644 index 00000000..c35f30a8 --- /dev/null +++ b/a02314.js @@ -0,0 +1,5 @@ +var a02314 = +[ + [ "head", "a02314.html#aa27391fd8251bfc042b5881500f9f4ef", null ], + [ "length", "a02314.html#ae809d5359ac030c60a30a8f0b2294b82", null ] +]; \ No newline at end of file diff --git a/a02318.html b/a02318.html new file mode 100644 index 00000000..31f2f33d --- /dev/null +++ b/a02318.html @@ -0,0 +1,193 @@ + + + + + + + +Arax: queue Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
queue Struct Reference
+
+
+ +

#include <queue.h>

+ + + + + + +

+Public Member Functions

volatile uint16_t bottom __attribute__ ((aligned(CONF_CACHE_LINE)))
 
volatile uint16_t top __attribute__ ((aligned(CONF_CACHE_LINE)))
 
+ + + +

+Data Fields

void * entries [UTILS_QUEUE_CAPACITY]
 
+

Detailed Description

+

Internal structure of queue.

+ +

Definition at line 15 of file queue.h.

+

Member Function Documentation

+ +

◆ __attribute__() [1/2]

+ +
+
+ + + + + + + + +
volatile uint16_t bottom __attribute__ ((aligned(CONF_CACHE_LINE)) )
+
+

Push here
+

+ +
+
+ +

◆ __attribute__() [2/2]

+ +
+
+ + + + + + + + +
volatile uint16_t top __attribute__ ((aligned(CONF_CACHE_LINE)) )
+
+

Pop here

+ +
+
+

Field Documentation

+ +

◆ entries

+ +
+
+ + + + +
void* entries[UTILS_QUEUE_CAPACITY]
+
+

Pointers to data.

+ +

Definition at line 18 of file queue.h.

+ +

Referenced by utils_queue_peek(), utils_queue_pop(), and utils_queue_push().

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02318.js b/a02318.js new file mode 100644 index 00000000..df55ea38 --- /dev/null +++ b/a02318.js @@ -0,0 +1,6 @@ +var a02318 = +[ + [ "__attribute__", "a02318.html#a4c166daef0391e2e123926168d60dc01", null ], + [ "__attribute__", "a02318.html#a22ce7d1481ed08520fb7502ee9434678", null ], + [ "entries", "a02318.html#adec38c3b1601c7334cb62eb08a16bdef", null ] +]; \ No newline at end of file diff --git a/a02322.html b/a02322.html new file mode 100644 index 00000000..5d9b5b9e --- /dev/null +++ b/a02322.html @@ -0,0 +1,159 @@ + + + + + + + +Arax: arax_process_tracker_s Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_process_tracker_s Struct Reference
+
+
+ +

#include <arax_pipe.h>

+ + + + + + +

+Data Fields

int pid
 
int threads
 
+

Detailed Description

+
+

Definition at line 13 of file arax_pipe.h.

+

Field Documentation

+ +

◆ pid

+ +
+
+ + + + +
int pid
+
+ +

Definition at line 15 of file arax_pipe.h.

+ +
+
+ +

◆ threads

+ +
+
+ + + + +
int threads
+
+ +

Definition at line 16 of file arax_pipe.h.

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02322.js b/a02322.js new file mode 100644 index 00000000..c6010d12 --- /dev/null +++ b/a02322.js @@ -0,0 +1,5 @@ +var a02322 = +[ + [ "pid", "a02322.html#af500917c052066b40cf47f96b43c607b", null ], + [ "threads", "a02322.html#a4f987a98d3e1221916748962e45399fe", null ] +]; \ No newline at end of file diff --git a/a02324.map b/a02324.map new file mode 100644 index 00000000..e7f93aa9 --- /dev/null +++ b/a02324.map @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02324.md5 b/a02324.md5 new file mode 100644 index 00000000..772e691e --- /dev/null +++ b/a02324.md5 @@ -0,0 +1 @@ +d80c0779a7dd4f627c826ce6b1b81dce \ No newline at end of file diff --git a/a02324.svg b/a02324.svg new file mode 100644 index 00000000..b69f75de --- /dev/null +++ b/a02324.svg @@ -0,0 +1,362 @@ + + + + + + +arax_pipe + + +Node1 + + +arax_pipe + + + + + +Node2 + + +arax_object_repo_s + + + + + +Node1->Node2 + + + + + + pipe + + + +Node2->Node1 + + + + + + objs + + + +Node3 + + +utils_list_s + + + + + +Node3->Node1 + + + + + + orphan_vacs + + + +Node3->Node2 + + + + + + list + + + +Node5 + + +async_meta_s + + + + + +Node3->Node5 + + + + + + outstanding + + + +Node11 + + +async_semaphore_s + + + + + +Node3->Node11 + + + + + + pending_list + + + +Node4 + + +utils_list_node + + + + + +Node4->Node3 + + + + + + head + + + +Node4->Node4 + + + + + + next +prev + + + +Node10 + + +async_completion_s + + + + + +Node4->Node10 + + + + + + outstanding + + + +Node5->Node1 + + + + + + async + + + +Node9 + + +async_condition_s + + + + + +Node5->Node9 + + + + + + meta + + + +Node5->Node10 + + + + + + meta + + + +Node5->Node11 + + + + + + meta + + + +Node6 + + +ivshmem + + + + + +Node6->Node5 + + + + + + regs + + + +Node7 + + +arch_alloc_s + + + + + +Node7->Node1 + + + + + + allocator + + + +Node7->Node5 + + + + + + alloc + + + +Node8 + + +arax_throttle_s + + + + + +Node8->Node1 + + + + + + throttle + + + +Node9->Node1 + + + + + + cntrl_ready_cond +orphan_cond + + + +Node9->Node8 + + + + + + ready + + + +Node10->Node9 + + + + + + mutex + + + +Node11->Node9 + + + + + + semaphore + + + +Node12 + + +utils_kv_s + + + + + +Node12->Node1 + + + + + + ass_kv +metrics_kv + + + +Node13 + + +Pair + + + + + +Node13->Node12 + + + + + + kv + + + diff --git a/a02326.html b/a02326.html new file mode 100644 index 00000000..34b20985 --- /dev/null +++ b/a02326.html @@ -0,0 +1,485 @@ + + + + + + + +Arax: arax_pipe Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_pipe Struct Reference
+
+
+ +

#include <arax_pipe.h>

+
+ + Collaboration diagram for arax_pipe:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Data Fields

char sha [ARAX_PIPE_SHA_SIZE+1]
 
void * self
 
uint64_t shm_size
 
uint64_t processes
 
utils_spinlock proc_lock
 
uint64_t proc_map [ARAX_PROC_MAP_SIZE]
 
uint64_t last_uid
 
arax_object_repo_s objs
 
async_meta_s async
 
arax_throttle_s throttle
 
int cntrl_ready
 
async_condition_s cntrl_ready_cond
 
async_condition_s orphan_cond
 
utils_list_s orphan_vacs
 
utils_kv_s ass_kv
 
utils_kv_s metrics_kv
 
arch_alloc_s allocator
 
+

Detailed Description

+

Shared Memory segment layout

+ +

Definition at line 24 of file arax_pipe.h.

+

Field Documentation

+ +

◆ allocator

+ +
+
+ + + + +
arch_alloc_s allocator
+
+
+ +

◆ ass_kv

+ +
+
+ + + + +
utils_kv_s ass_kv
+
+

Assignees KV, <assigne_id,task_count>

+ +

Definition at line 43 of file arax_pipe.h.

+ +

Referenced by arax_pipe_init().

+ +
+
+ +

◆ async

+ +
+
+ + + + +
async_meta_s async
+
+

Async related metadata
+

+ +

Definition at line 34 of file arax_pipe.h.

+ +

Referenced by arax_accel_init(), arax_pipe_exit(), arax_pipe_init(), and arax_task_alloc().

+ +
+
+ +

◆ cntrl_ready

+ +
+
+ + + + +
int cntrl_ready
+
+

Flag if != 0 means, controller is fully initialized

+ +

Definition at line 37 of file arax_pipe.h.

+ +
+
+ +

◆ cntrl_ready_cond

+ +
+
+ + + + +
async_condition_s cntrl_ready_cond
+
+

Condition for cntrl_ready

+ +

Definition at line 38 of file arax_pipe.h.

+ +

Referenced by arax_pipe_init().

+ +
+
+ +

◆ last_uid

+ +
+
+ + + + +
uint64_t last_uid
+
+

Last instance UID

+ +

Definition at line 32 of file arax_pipe.h.

+ +
+
+ +

◆ metrics_kv

+ +
+
+ + + + +
utils_kv_s metrics_kv
+
+

Name, Metric

+ +

Definition at line 44 of file arax_pipe.h.

+ +

Referenced by arax_pipe_init(), and arax_plot_register_metric().

+ +
+
+ +

◆ objs

+ + + +

◆ orphan_cond

+ +
+
+ + + + +
async_condition_s orphan_cond
+
+
+ +

◆ orphan_vacs

+ +
+
+ + + + +
utils_list_s orphan_vacs
+
+
+ +

◆ proc_lock

+ +
+
+ + + + +
utils_spinlock proc_lock
+
+

Protect the proc_map

+ +

Definition at line 30 of file arax_pipe.h.

+ +

Referenced by arax_pipe_have_to_mmap(), and arax_pipe_mark_unmap().

+ +
+
+ +

◆ proc_map

+ +
+
+ + + + +
uint64_t proc_map[ARAX_PROC_MAP_SIZE]
+
+

Array contains PIDs of all mmaped processes

+ +

Definition at line 31 of file arax_pipe.h.

+ +

Referenced by arax_pipe_have_to_mmap(), and arax_pipe_mark_unmap().

+ +
+
+ +

◆ processes

+ +
+
+ + + + +
uint64_t processes
+
+

Process counter - Processes using this

+ +

Definition at line 29 of file arax_pipe.h.

+ +

Referenced by arax_pipe_add_process(), and arax_pipe_del_process().

+ +
+
+ +

◆ self

+ +
+
+ + + + +
void* self
+
+

Pointer to myself

+ +

Definition at line 27 of file arax_pipe.h.

+ +

Referenced by arax_pipe_mmap_address().

+ +
+
+ +

◆ sha

+ +
+
+ + + + +
char sha[ARAX_PIPE_SHA_SIZE+1]
+
+

Git revision 48+1 for \0

+ +

Definition at line 26 of file arax_pipe.h.

+ +

Referenced by arax_pipe_get_revision(), and arax_pipe_init().

+ +
+
+ +

◆ shm_size

+ +
+
+ + + + +
uint64_t shm_size
+
+

Size in bytes of shared region

+ +

Definition at line 28 of file arax_pipe.h.

+ +

Referenced by arax_pipe_init(), and arax_ptr_valid().

+ +
+
+ +

◆ throttle

+ +
+
+ + + + +
arax_throttle_s throttle
+
+ +

Definition at line 35 of file arax_pipe.h.

+ +

Referenced by arax_pipe_get_available_size(), arax_pipe_get_total_size(), and arax_pipe_init().

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02326.js b/a02326.js new file mode 100644 index 00000000..dcaf5a9a --- /dev/null +++ b/a02326.js @@ -0,0 +1,20 @@ +var a02326 = +[ + [ "allocator", "a02326.html#a28d08d89821adf5b72be5dee86ccd8be", null ], + [ "ass_kv", "a02326.html#a9e15c094a6cd246495b66cf9064286bf", null ], + [ "async", "a02326.html#ab3b4f5fa47d217079fcc159459f09f2a", null ], + [ "cntrl_ready", "a02326.html#a8a91cba1e61921c58a95716107ad4c36", null ], + [ "cntrl_ready_cond", "a02326.html#ad0090e9831a5037432c1e073bf48b94b", null ], + [ "last_uid", "a02326.html#a6b050cc9159448300fecb32e96fcd5a6", null ], + [ "metrics_kv", "a02326.html#ae006dc7ee0008c6a6d43fb73f6cb47b4", null ], + [ "objs", "a02326.html#ae15dcc631ccbd970fd4a7481b20b80ca", null ], + [ "orphan_cond", "a02326.html#a0dc33b0b9a85ed4ba4b1817fa73cdd58", null ], + [ "orphan_vacs", "a02326.html#a03445cfc4aeeff547106275333bb765a", null ], + [ "proc_lock", "a02326.html#a823c0ac436088935d819ff347cc2ff3c", null ], + [ "proc_map", "a02326.html#a461601bdde9627f8146bd693594f2ecc", null ], + [ "processes", "a02326.html#a28873f26b2aa9e532ff74899460a4480", null ], + [ "self", "a02326.html#add843125b63b1afec9686fbaa3deb708", null ], + [ "sha", "a02326.html#a87b1ac4f5560ca8319632593785d4dcf", null ], + [ "shm_size", "a02326.html#a28948fedd958f16682e8465a585f5df5", null ], + [ "throttle", "a02326.html#a1646aa51ec6b87327b5d9bb13e4efb71", null ] +]; \ No newline at end of file diff --git a/a02330.html b/a02330.html new file mode 100644 index 00000000..92987087 --- /dev/null +++ b/a02330.html @@ -0,0 +1,142 @@ + + + + + + + +Arax: arax_accel_stats Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_accel_stats Struct Reference
+
+
+ +

#include <arax_types.h>

+ + + + +

+Data Fields

char padd
 
+

Detailed Description

+

Accelerator Statistics

+ +

Definition at line 24 of file arax_types.h.

+

Field Documentation

+ +

◆ padd

+ +
+
+ + + + +
char padd
+
+ +

Definition at line 28 of file arax_types.h.

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02330.js b/a02330.js new file mode 100644 index 00000000..1d39f0a4 --- /dev/null +++ b/a02330.js @@ -0,0 +1,4 @@ +var a02330 = +[ + [ "padd", "a02330.html#a19a76b743b2972be73c5fbf5231edd65", null ] +]; \ No newline at end of file diff --git a/a02334.html b/a02334.html new file mode 100644 index 00000000..6166a908 --- /dev/null +++ b/a02334.html @@ -0,0 +1,159 @@ + + + + + + + +Arax: utils_timer_s Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
utils_timer_s Struct Reference
+
+
+ +

#include <arax_types.h>

+ + + + + + +

+Data Fields

struct timespec start
 
struct timespec stop
 
+

Detailed Description

+
+

Definition at line 32 of file arax_types.h.

+

Field Documentation

+ +

◆ start

+ +
+
+ + + + +
struct timespec start
+
+ +

Definition at line 34 of file arax_types.h.

+ +
+
+ +

◆ stop

+ +
+
+ + + + +
struct timespec stop
+
+ +

Definition at line 35 of file arax_types.h.

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02334.js b/a02334.js new file mode 100644 index 00000000..f9f00f4d --- /dev/null +++ b/a02334.js @@ -0,0 +1,5 @@ +var a02334 = +[ + [ "start", "a02334.html#a87659dd781b771019d5936762c0e3604", null ], + [ "stop", "a02334.html#a0e0b9ddde38b77f2b739eeffac21104e", null ] +]; \ No newline at end of file diff --git a/a02336.map b/a02336.map new file mode 100644 index 00000000..09f67b5d --- /dev/null +++ b/a02336.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02336.md5 b/a02336.md5 new file mode 100644 index 00000000..cf128e08 --- /dev/null +++ b/a02336.md5 @@ -0,0 +1 @@ +d5d44e479540bf4468d35f2705097bac \ No newline at end of file diff --git a/a02336.svg b/a02336.svg new file mode 100644 index 00000000..b785cb0b --- /dev/null +++ b/a02336.svg @@ -0,0 +1,42 @@ + + + + + + +arax_task_stats + + +Node1 + + +arax_task_stats + + + + + +Node2 + + +utils_timer_s + + + + + +Node2->Node1 + + + + + + task_duration +task_duration_without +_issue + + + diff --git a/a02338.html b/a02338.html new file mode 100644 index 00000000..a1341b59 --- /dev/null +++ b/a02338.html @@ -0,0 +1,187 @@ + + + + + + + +Arax: arax_task_stats Struct Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
arax_task_stats Struct Reference
+
+
+ +

#include <arax_types.h>

+
+ + Collaboration diagram for arax_task_stats:
+
+
+ + + + + + + + + +

+Data Fields

int usedSlots
 
utils_timer_s task_duration_without_issue
 
utils_timer_s task_duration
 
+

Detailed Description

+

Arax Task Statistics

+ +

Definition at line 71 of file arax_types.h.

+

Field Documentation

+ +

◆ task_duration

+ +
+
+ + + + +
utils_timer_s task_duration
+
+ +

Definition at line 75 of file arax_types.h.

+ +

Referenced by arax_task_submit().

+ +
+
+ +

◆ task_duration_without_issue

+ +
+
+ + + + +
utils_timer_s task_duration_without_issue
+
+ +

Definition at line 74 of file arax_types.h.

+ +
+
+ +

◆ usedSlots

+ +
+
+ + + + +
int usedSlots
+
+ +

Definition at line 73 of file arax_types.h.

+ +
+
+
The documentation for this struct was generated from the following file: +
+
+ + + + diff --git a/a02338.js b/a02338.js new file mode 100644 index 00000000..5baa1dff --- /dev/null +++ b/a02338.js @@ -0,0 +1,6 @@ +var a02338 = +[ + [ "task_duration", "a02338.html#a175afe70429615aa9ff48ed7ff4d4dab", null ], + [ "task_duration_without_issue", "a02338.html#a7a0abc66690ba30b24b5a312fbccaf6d", null ], + [ "usedSlots", "a02338.html#a7ccc765d17a22afe69777157999cefce", null ] +]; \ No newline at end of file diff --git a/a02340.html b/a02340.html new file mode 100644 index 00000000..1aeac93d --- /dev/null +++ b/a02340.html @@ -0,0 +1,726 @@ + + + + + + + +Arax: alloc.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
dlmalloc/alloc.c File Reference
+
+
+
#include "arch/alloc.h"
+#include "utils/timer.h"
+#include <string.h>
+#include <malloc.h>
+
+ + Include dependency graph for dlmalloc/alloc.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  arch_alloc_inner_s
 
+ + + + + + + + + + + + + + + + + +

+Macros

#define MALLOC_INSPECT_ALL   1
 
#define ONLY_MSPACES   1
 
#define USE_SPIN_LOCKS   1
 
#define MSPACES   1
 
#define HAVE_MMAP   1
 
#define BIT_ALLOCATOR_BLOCK   (4096ul)
 
#define BIT_ALLOCATOR_BLOCK_MASK   (BIT_ALLOCATOR_BLOCK - 1)
 
#define BITS_PER_PAGE   (BIT_ALLOCATOR_BLOCK * 8ul)
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

int arch_alloc_init_once (arch_alloc_s *_alloc, size_t size)
 
void arch_alloc_init_always (arch_alloc_s *alloc)
 
void * arch_alloc_allocate (arch_alloc_s *_alloc, size_t size)
 
void _arch_alloc_free (arch_alloc_s *_alloc, void *mem)
 
void arch_alloc_exit (arch_alloc_s *_alloc)
 
static void _arch_alloc_mspace_mallinfo (mspace *mspace, arch_alloc_stats_s *stats)
 
arch_alloc_stats_s arch_alloc_stats (arch_alloc_s *_alloc)
 
void arch_alloc_inspect (arch_alloc_s *_alloc, void(*inspector)(void *start, void *end, size_t size, void *arg), void *arg)
 
void * arax_mmap (size_t s)
 
void * arax_ummap (void *a, size_t s)
 
arch_alloc_sarch_alloc_create_sub_alloc (arch_alloc_s *parent)
 
utils_bitmap_sarch_alloc_get_bitmap ()
 
+ + + +

+Variables

static struct arch_alloc_inner_sglobal_alloc
 
+

Macro Definition Documentation

+ +

◆ BIT_ALLOCATOR_BLOCK

+ +
+
+ + + + +
#define BIT_ALLOCATOR_BLOCK   (4096ul)
+
+ +

Definition at line 20 of file dlmalloc/alloc.c.

+ +
+
+ +

◆ BIT_ALLOCATOR_BLOCK_MASK

+ +
+
+ + + + +
#define BIT_ALLOCATOR_BLOCK_MASK   (BIT_ALLOCATOR_BLOCK - 1)
+
+ +

Definition at line 21 of file dlmalloc/alloc.c.

+ +
+
+ +

◆ BITS_PER_PAGE

+ +
+
+ + + + +
#define BITS_PER_PAGE   (BIT_ALLOCATOR_BLOCK * 8ul)
+
+ +

Definition at line 22 of file dlmalloc/alloc.c.

+ +
+
+ +

◆ HAVE_MMAP

+ +
+
+ + + + +
#define HAVE_MMAP   1
+
+ +

Definition at line 9 of file dlmalloc/alloc.c.

+ +
+
+ +

◆ MALLOC_INSPECT_ALL

+ +
+
+ + + + +
#define MALLOC_INSPECT_ALL   1
+
+ +

Definition at line 4 of file dlmalloc/alloc.c.

+ +
+
+ +

◆ MSPACES

+ +
+
+ + + + +
#define MSPACES   1
+
+ +

Definition at line 8 of file dlmalloc/alloc.c.

+ +
+
+ +

◆ ONLY_MSPACES

+ +
+
+ + + + +
#define ONLY_MSPACES   1
+
+ +

Definition at line 6 of file dlmalloc/alloc.c.

+ +
+
+ +

◆ USE_SPIN_LOCKS

+ +
+
+ + + + +
#define USE_SPIN_LOCKS   1
+
+ +

Definition at line 7 of file dlmalloc/alloc.c.

+ +
+
+

Function Documentation

+ +

◆ _arch_alloc_free()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void _arch_alloc_free (arch_alloc_s_alloc,
void * mem 
)
+
+ +

Definition at line 83 of file dlmalloc/alloc.c.

+ +
+
+ +

◆ _arch_alloc_mspace_mallinfo()

+ +
+
+ + + + + +
+ + + + + + + + + + + + + + + + + + +
static void _arch_alloc_mspace_mallinfo (mspace * mspace,
arch_alloc_stats_sstats 
)
+
+static
+
+ +

Definition at line 109 of file dlmalloc/alloc.c.

+ +

References mallinfo::arena, arch_alloc_stats_s::total_bytes, mallinfo::uordblks, and arch_alloc_stats_s::used_bytes.

+ +

Referenced by arch_alloc_stats().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arax_mmap()

+ +
+
+ + + + + + + + +
void * arax_mmap (size_t s)
+
+

Allocate enough pages(4096 bytes) to hold s bytes.

Parameters
+ + +
sNumber of bytes requested (has to be multiple of BIT_ALLOCATOR_BLOCK)
+
+
+
Returns
Page alligned pointer to memory
+ +

Definition at line 143 of file dlmalloc/alloc.c.

+ +
+
+ +

◆ arax_ummap()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void * arax_ummap (void * a,
size_t s 
)
+
+

Release the pages starting from a and ending after bytes

Parameters
+ + + +
aPointer returned from a call of arax_mmap().
sNumber of bytes to be freed (has to be multiple of BIT_ALLOCATOR_BLOCK)
+
+
+
Returns
NULL on success
+ +

Definition at line 154 of file dlmalloc/alloc.c.

+ +
+
+ +

◆ arch_alloc_allocate()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void * arch_alloc_allocate (arch_alloc_salloc,
size_t size 
)
+
+

Allocate contiguous memory from the alloc arch_alloc_s instance.

+
Parameters
+ + + +
allocAn initialized arch_alloc_s instance.
sizeThe size of the allocation.
+
+
+
Returns
Pointer to the beginning of size usable bytes, or NULL on failure.
+ +

Definition at line 62 of file dlmalloc/alloc.c.

+ +

Referenced by arch_alloc_create_sub_alloc().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arch_alloc_create_sub_alloc()

+ +
+
+ + + + + + + + +
arch_alloc_s * arch_alloc_create_sub_alloc (arch_alloc_sparent)
+
+

Create a sub-allocator.

+

This allocator user the same global bitmap for requesting bulk allocations, but maintains separate metadata from the 'global' allocator.

+

Use arch_alloc_free(), arch_alloc_allocate() to alloc/free memory.

+

Returned allocator should be eventually released by calling arch_alloc_exit()

Parameters
+ + +
parentallocator
+
+
+
Returns
New arch_alloc_s instance.
+ +

Definition at line 163 of file dlmalloc/alloc.c.

+ +
+
+ +

◆ arch_alloc_exit()

+ +
+
+ + + + + + + + +
void arch_alloc_exit (arch_alloc_salloc)
+
+

Release any resources claimed by the alloc arch_alloc_s instance.

Note
The shared memory segment (shm in arch_alloc_init) must be freed by the user.
+ +

Definition at line 102 of file dlmalloc/alloc.c.

+ +
+
+ +

◆ arch_alloc_get_bitmap()

+ +
+
+ + + + + + + +
utils_bitmap_s * arch_alloc_get_bitmap ()
+
+ +

Definition at line 172 of file dlmalloc/alloc.c.

+ +
+
+ +

◆ arch_alloc_init_always()

+ +
+
+ + + + + + + + +
void arch_alloc_init_always (arch_alloc_salloc)
+
+

Perform necessary initialization for every arax application.

+
Note
This has to be called on new processes, that have not called arch_alloc_init_once
+
Parameters
+ + +
alloc
+
+
+ +

Definition at line 57 of file dlmalloc/alloc.c.

+ +
+
+ +

◆ arch_alloc_init_once()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int arch_alloc_init_once (arch_alloc_salloc,
size_t size 
)
+
+

Initialize a arch_alloc_s instance on a mapped shared memory segment.

+
Note
This only has to be called by the first process, to initialize global state
+
Parameters
+ + + +
allocPointer to be filled with initialized instance.
sizeThe size of the shared memory segment in bytes.
+
+
+
Returns
0 on success.
+ +

Definition at line 27 of file dlmalloc/alloc.c.

+ +
+
+ +

◆ arch_alloc_inspect()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void arch_alloc_inspect (arch_alloc_s_alloc,
void(*)(void *start, void *end, size_t size, void *arg) inspector,
void * arg 
)
+
+ +

Definition at line 135 of file dlmalloc/alloc.c.

+ +
+
+ +

◆ arch_alloc_stats()

+ +
+
+ + + + + + + + +
arch_alloc_stats_s arch_alloc_stats (arch_alloc_s_alloc)
+
+ +

Definition at line 117 of file dlmalloc/alloc.c.

+ +
+
+

Variable Documentation

+ +

◆ global_alloc

+ +
+
+ + + + + +
+ + + + +
struct arch_alloc_inner_s* global_alloc
+
+static
+
+
+
+
+ + + + diff --git a/a02340.js b/a02340.js new file mode 100644 index 00000000..eb0a0618 --- /dev/null +++ b/a02340.js @@ -0,0 +1,25 @@ +var a02340 = +[ + [ "arch_alloc_inner_s", "a02190.html", "a02190" ], + [ "BIT_ALLOCATOR_BLOCK", "a02340.html#a968206c9e5d9e1333fc7c00766c9620b", null ], + [ "BIT_ALLOCATOR_BLOCK_MASK", "a02340.html#a44449154cfb840851f1546a576113a16", null ], + [ "BITS_PER_PAGE", "a02340.html#a56f9dcbbd13828d582d3ca909596017e", null ], + [ "HAVE_MMAP", "a02340.html#ac24e9c0562704d17896d14869e748fcc", null ], + [ "MALLOC_INSPECT_ALL", "a02340.html#a4a82252300d827ca28d4ab5ce089c41f", null ], + [ "MSPACES", "a02340.html#ab69b328d35c5a8e3bdc3463d3603e950", null ], + [ "ONLY_MSPACES", "a02340.html#aeb595638a14befbd356f77f8ec2a5c0d", null ], + [ "USE_SPIN_LOCKS", "a02340.html#a2272cf5f1db0ea5dd0e89d1a3c5028f0", null ], + [ "_arch_alloc_free", "a02340.html#aee3468c272395a101cb7cc10e56fcc76", null ], + [ "_arch_alloc_mspace_mallinfo", "a02340.html#a714d6d40ed6d39c37c11df8d98fe78a2", null ], + [ "arax_mmap", "a02340.html#a645f029b25098d24aca61b20beabe1bf", null ], + [ "arax_ummap", "a02340.html#a169e798e54b8e0933d5c39960d6c2ad3", null ], + [ "arch_alloc_allocate", "a02340.html#ac9828b5c2758940f6d3c7d4335228de5", null ], + [ "arch_alloc_create_sub_alloc", "a02340.html#a32b9155cb5133ef21023a1ff4653bf04", null ], + [ "arch_alloc_exit", "a02340.html#a726fb6388e92c5d82c9d5750fee1a7fb", null ], + [ "arch_alloc_get_bitmap", "a02340.html#a4c8fda139857abec3429d4d00f8a725c", null ], + [ "arch_alloc_init_always", "a02340.html#a75bfaa5e934f1853fc8fd536ea469ad9", null ], + [ "arch_alloc_init_once", "a02340.html#a44fec37f87bcd49aaacc97696f9e0e7d", null ], + [ "arch_alloc_inspect", "a02340.html#a6f21f41c6c1797ff0b8754fb046f3dbc", null ], + [ "arch_alloc_stats", "a02340.html#a687bef36a598f3a197afea8e055e6608", null ], + [ "global_alloc", "a02340.html#acf7073ea893bdaef02d84268ba9b77ae", null ] +]; \ No newline at end of file diff --git a/a02340_a714d6d40ed6d39c37c11df8d98fe78a2_icgraph.map b/a02340_a714d6d40ed6d39c37c11df8d98fe78a2_icgraph.map new file mode 100644 index 00000000..e3e67bbb --- /dev/null +++ b/a02340_a714d6d40ed6d39c37c11df8d98fe78a2_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02340_a714d6d40ed6d39c37c11df8d98fe78a2_icgraph.md5 b/a02340_a714d6d40ed6d39c37c11df8d98fe78a2_icgraph.md5 new file mode 100644 index 00000000..70e341dc --- /dev/null +++ b/a02340_a714d6d40ed6d39c37c11df8d98fe78a2_icgraph.md5 @@ -0,0 +1 @@ +ac4881e54d5671e6ef3525aa588ea201 \ No newline at end of file diff --git a/a02340_a714d6d40ed6d39c37c11df8d98fe78a2_icgraph.svg b/a02340_a714d6d40ed6d39c37c11df8d98fe78a2_icgraph.svg new file mode 100644 index 00000000..79233ae4 --- /dev/null +++ b/a02340_a714d6d40ed6d39c37c11df8d98fe78a2_icgraph.svg @@ -0,0 +1,40 @@ + + + + + + +_arch_alloc_mspace_mallinfo + + +Node1 + + +_arch_alloc_mspace +_mallinfo + + + + + +Node2 + + +arch_alloc_stats + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02340_ac9828b5c2758940f6d3c7d4335228de5_icgraph.map b/a02340_ac9828b5c2758940f6d3c7d4335228de5_icgraph.map new file mode 100644 index 00000000..70769d3d --- /dev/null +++ b/a02340_ac9828b5c2758940f6d3c7d4335228de5_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02340_ac9828b5c2758940f6d3c7d4335228de5_icgraph.md5 b/a02340_ac9828b5c2758940f6d3c7d4335228de5_icgraph.md5 new file mode 100644 index 00000000..67261cf1 --- /dev/null +++ b/a02340_ac9828b5c2758940f6d3c7d4335228de5_icgraph.md5 @@ -0,0 +1 @@ +a1e32b706802885971e28f0242d5cf51 \ No newline at end of file diff --git a/a02340_ac9828b5c2758940f6d3c7d4335228de5_icgraph.svg b/a02340_ac9828b5c2758940f6d3c7d4335228de5_icgraph.svg new file mode 100644 index 00000000..c8579444 --- /dev/null +++ b/a02340_ac9828b5c2758940f6d3c7d4335228de5_icgraph.svg @@ -0,0 +1,40 @@ + + + + + + +arch_alloc_allocate + + +Node1 + + +arch_alloc_allocate + + + + + +Node2 + + +arch_alloc_create_sub +_alloc + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02340_source.html b/a02340_source.html new file mode 100644 index 00000000..4deba759 --- /dev/null +++ b/a02340_source.html @@ -0,0 +1,322 @@ + + + + + + + +Arax: alloc.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dlmalloc/alloc.c
+
+
+Go to the documentation of this file.
1#include "arch/alloc.h"
+
2#include "utils/timer.h"
+
3#include <string.h>
+
4#define MALLOC_INSPECT_ALL 1
+
5#include <malloc.h>
+
6#define ONLY_MSPACES 1
+
7#define USE_SPIN_LOCKS 1
+
8#define MSPACES 1
+
9#define HAVE_MMAP 1
+
10#include "malloc.h"
+
11
+ +
13{
+ +
15 mspace * root;
+
16 void * start;
+ +
18};
+
19
+
20#define BIT_ALLOCATOR_BLOCK (4096ul)
+
21#define BIT_ALLOCATOR_BLOCK_MASK (BIT_ALLOCATOR_BLOCK - 1)
+
22#define BITS_PER_PAGE (BIT_ALLOCATOR_BLOCK * 8ul)
+
23
+
24
+ +
26
+
27int arch_alloc_init_once(arch_alloc_s *_alloc, size_t size)
+
28{
+
29 struct arch_alloc_inner_s *alloc = (struct arch_alloc_inner_s *) _alloc;
+
30
+
31 void *usable_area = alloc + 1;
+
32
+
33 void *alligned_start =
+
34 (void *) ((((size_t) usable_area) + (BIT_ALLOCATOR_BLOCK_MASK)) & (~BIT_ALLOCATOR_BLOCK_MASK));
+
35
+
36 size_t alligned_size = size - (((size_t) alligned_start) - ((size_t) _alloc));
+
37
+
38 size_t alligned_pages = alligned_size / BIT_ALLOCATOR_BLOCK;
+
39
+
40 size_t bitmap_pages = (alligned_pages + (BITS_PER_PAGE - 1)) / BITS_PER_PAGE;
+
41
+
42 alligned_start += BIT_ALLOCATOR_BLOCK * bitmap_pages;
+
43
+
44 alligned_pages -= bitmap_pages;
+
45
+
46 utils_bitmap_init(&(alloc->bmp), alligned_pages);
+
47
+
48 alloc->start = alligned_start;
+
49
+
50 global_alloc = alloc;
+
51
+
52 alloc->root = create_mspace(0, 1);
+
53
+
54 return 0;
+
55}
+
56
+ +
58{
+
59 global_alloc = (struct arch_alloc_inner_s *) alloc;
+
60}
+
61
+
62void* arch_alloc_allocate(arch_alloc_s *_alloc, size_t size)
+
63{
+
64 struct arch_alloc_inner_s *alloc = (struct arch_alloc_inner_s *) _alloc;
+
65 void *data;
+
66
+
67 #ifdef ALLOC_STATS
+ + +
70 #endif
+
71
+
72 data = mspace_malloc(alloc->root, size);
+
73
+
74 #ifdef ALLOC_STATS
+
75 utils_timer_set(dt, stop);
+
76 __sync_fetch_and_add(&(_alloc->alloc_ns[!!data]),
+ +
78 __sync_fetch_and_add(&(_alloc->allocs[!!data]), 1);
+
79 #endif
+
80 return data;
+
81}
+
82
+
83void _arch_alloc_free(arch_alloc_s *_alloc, void *mem)
+
84{
+
85 struct arch_alloc_inner_s *alloc = (struct arch_alloc_inner_s *) _alloc;
+
86
+
87 #ifdef ALLOC_STATS
+ + +
90 #endif
+
91
+
92 mspace_free(alloc->root, mem);
+
93
+
94 #ifdef ALLOC_STATS
+
95 utils_timer_set(dt, stop);
+
96 __sync_fetch_and_add(&(_alloc->free_ns),
+ +
98 __sync_fetch_and_add(&(_alloc->frees), 1);
+
99 #endif
+
100}
+
101
+ +
103{
+
104 struct arch_alloc_inner_s *alloc = (struct arch_alloc_inner_s *) _alloc;
+
105
+
106 destroy_mspace(alloc->root);
+
107}
+
108
+
109static void _arch_alloc_mspace_mallinfo(mspace *mspace, arch_alloc_stats_s *stats)
+
110{
+
111 struct mallinfo minfo = mspace_mallinfo(mspace);
+
112
+
113 stats->total_bytes += (unsigned int) minfo.arena;
+
114 stats->used_bytes += (unsigned int) minfo.uordblks;
+
115}
+
116
+ +
118{
+
119 struct arch_alloc_inner_s *alloc = (struct arch_alloc_inner_s *) _alloc;
+
120 arch_alloc_stats_s stats = { 0 };
+
121
+
122 _arch_alloc_mspace_mallinfo(alloc->root, &stats);
+
123
+
124 #ifdef ALLOC_STATS
+
125 stats.allocs[0] = _alloc->allocs[0];
+
126 stats.allocs[1] = _alloc->allocs[1];
+
127 stats.frees = _alloc->frees;
+
128 stats.alloc_ns[0] = _alloc->alloc_ns[0];
+
129 stats.alloc_ns[1] = _alloc->alloc_ns[1];
+
130 stats.free_ns = _alloc->free_ns;
+
131 #endif
+
132 return stats;
+
133}
+
134
+
135void arch_alloc_inspect(arch_alloc_s *_alloc, void (*inspector)(void *start, void *end, size_t size,
+
136 void *arg), void *arg)
+
137{
+
138 struct arch_alloc_inner_s *alloc = (struct arch_alloc_inner_s *) _alloc;
+
139
+
140 mspace_inspect_all(alloc->root, inspector, arg);
+
141}
+
142
+
143void* arax_mmap(size_t s)
+
144{
+ + +
147 size_t off = utils_bitmap_alloc_bits(&(global_alloc->bmp), s);
+
148
+ +
150 off *= BIT_ALLOCATOR_BLOCK;
+
151 return global_alloc->start + off;
+
152}
+
153
+
154void* arax_ummap(void *a, size_t s)
+
155{
+
156 size_t start = (a - (global_alloc->start)) / BIT_ALLOCATOR_BLOCK;
+
157 size_t size_blocks = s / BIT_ALLOCATOR_BLOCK;
+
158
+
159 utils_bitmap_free_bits(&(global_alloc->bmp), start, size_blocks);
+
160 return 0;
+
161}
+
162
+ +
164{
+
165 struct arch_alloc_inner_s *alloc = arch_alloc_allocate(parent, sizeof(*alloc));
+
166
+
167 alloc->root = create_mspace(0, 1);
+
168
+
169 return (arch_alloc_s *) alloc;
+
170}
+
171
+ +
173{
+
174 return &(global_alloc->bmp);
+
175}
+
#define arax_assert(EXPR)
Definition arax_assert.h:7
+
#define BITMAP_NOT_FOUND
Definition bitmap.h:18
+ +
#define utils_timer_get_duration_ns(NAME)
Definition timer.h:82
+
#define utils_timer_set(NAME, WHAT)
Definition timer.h:13
+ +
size_t utils_bitmap_alloc_bits(utils_bitmap_s *bmp, size_t bits)
Definition bitmap.c:217
+
utils_bitmap_s * utils_bitmap_init(void *mem, size_t size_bits)
Definition bitmap.c:25
+
void utils_bitmap_free_bits(utils_bitmap_s *bmp, size_t start, size_t bits)
Definition bitmap.c:255
+ + +
size_t total_bytes
Definition alloc.h:85
+
size_t used_bytes
Definition alloc.h:86
+ + + +
utils_bitmap_s bmp
+ + +
MALLINFO_FIELD_TYPE arena
Definition malloc.c:772
+
MALLINFO_FIELD_TYPE uordblks
Definition malloc.c:779
+ + +
void * arax_ummap(void *a, size_t s)
+
arch_alloc_s * arch_alloc_create_sub_alloc(arch_alloc_s *parent)
+
#define BIT_ALLOCATOR_BLOCK_MASK
+
int arch_alloc_init_once(arch_alloc_s *_alloc, size_t size)
+
utils_bitmap_s * arch_alloc_get_bitmap()
+
#define BITS_PER_PAGE
+
void * arax_mmap(size_t s)
+
arch_alloc_stats_s arch_alloc_stats(arch_alloc_s *_alloc)
+
void arch_alloc_inspect(arch_alloc_s *_alloc, void(*inspector)(void *start, void *end, size_t size, void *arg), void *arg)
+
static void _arch_alloc_mspace_mallinfo(mspace *mspace, arch_alloc_stats_s *stats)
+
void arch_alloc_exit(arch_alloc_s *_alloc)
+
void arch_alloc_init_always(arch_alloc_s *alloc)
+
#define BIT_ALLOCATOR_BLOCK
+
void * arch_alloc_allocate(arch_alloc_s *_alloc, size_t size)
+
static struct arch_alloc_inner_s * global_alloc
+
void _arch_alloc_free(arch_alloc_s *_alloc, void *mem)
+
+
+ + + + diff --git a/a02341.map b/a02341.map new file mode 100644 index 00000000..7eaed4a4 --- /dev/null +++ b/a02341.map @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02341.md5 b/a02341.md5 new file mode 100644 index 00000000..597ae6e9 --- /dev/null +++ b/a02341.md5 @@ -0,0 +1 @@ +1b18c1b9c86bf06c41694439066788bb \ No newline at end of file diff --git a/a02341.svg b/a02341.svg new file mode 100644 index 00000000..8eee96ec --- /dev/null +++ b/a02341.svg @@ -0,0 +1,255 @@ + + + + + + +alloc.c + + +Node1 + + +alloc.c + + + + + +Node2 + + +arch/alloc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +utils/timer.h + + + + + +Node1->Node3 + + + + + + + + +Node12 + + +string.h + + + + + +Node1->Node12 + + + + + + + + +Node13 + + +malloc.h + + + + + +Node1->Node13 + + + + + + + + +Node4 + + +arax.h + + + + + +Node3->Node4 + + + + + + + + +Node11 + + +unistd.h + + + + + +Node3->Node11 + + + + + + + + +Node5 + + +stdio.h + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +stddef.h + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_types.h + + + + + +Node4->Node7 + + + + + + + + +Node10 + + +core/arax_accel_types.h + + + + + +Node4->Node10 + + + + + + + + +Node8 + + +sys/time.h + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +time.h + + + + + +Node7->Node9 + + + + + + + + +Node10->Node7 + + + + + + + + +Node13->Node6 + + + + + + + + diff --git a/a02343.html b/a02343.html new file mode 100644 index 00000000..9ba123ef --- /dev/null +++ b/a02343.html @@ -0,0 +1,639 @@ + + + + + + + +Arax: alloc.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
tlsf/alloc.c File Reference
+
+
+
#include "arch/alloc.h"
+#include "tlsf.h"
+
+ + Include dependency graph for tlsf/alloc.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + +

+Data Structures

struct  arch_alloc_inner_s
 
struct  inspect_walker_state
 
+ + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

int arch_alloc_init_once (arch_alloc_s *_alloc, size_t size)
 
void arch_alloc_init_always (arch_alloc_s *alloc)
 
void * arch_alloc_allocate (arch_alloc_s *_alloc, size_t size)
 
void _arch_alloc_free (arch_alloc_s *_alloc, void *mem)
 
void arch_alloc_exit (arch_alloc_s *_alloc)
 
arch_alloc_stats_s arch_alloc_stats (arch_alloc_s *_alloc)
 
void inspect_walker (void *ptr, size_t size, int used, void *user)
 
void arch_alloc_inspect (arch_alloc_s *_alloc, void(*inspector)(void *start, void *end, size_t size, void *arg), void *arg)
 
void * arax_mmap (size_t s)
 
void * arax_ummap (void *a, size_t s)
 
arch_alloc_sarch_alloc_create_sub_alloc (arch_alloc_s *parent)
 
utils_bitmap_sarch_alloc_get_bitmap ()
 
+

Function Documentation

+ +

◆ _arch_alloc_free()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void _arch_alloc_free (arch_alloc_s_alloc,
void * mem 
)
+
+
+ +

◆ arax_mmap()

+ +
+
+ + + + + + + + +
void * arax_mmap (size_t s)
+
+

Allocate enough pages(4096 bytes) to hold s bytes.

Parameters
+ + +
sNumber of bytes requested (has to be multiple of BIT_ALLOCATOR_BLOCK)
+
+
+
Returns
Page alligned pointer to memory
+ +

Definition at line 114 of file tlsf/alloc.c.

+ +

References arax_assert, BIT_ALLOCATOR_BLOCK, BIT_ALLOCATOR_BLOCK_MASK, BITMAP_NOT_FOUND, arch_alloc_inner_s::bmp, global_alloc, arch_alloc_inner_s::start, and utils_bitmap_alloc_bits().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arax_ummap()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void * arax_ummap (void * a,
size_t s 
)
+
+

Release the pages starting from a and ending after bytes

Parameters
+ + + +
aPointer returned from a call of arax_mmap().
sNumber of bytes to be freed (has to be multiple of BIT_ALLOCATOR_BLOCK)
+
+
+
Returns
NULL on success
+ +

Definition at line 119 of file tlsf/alloc.c.

+ +

References BIT_ALLOCATOR_BLOCK, arch_alloc_inner_s::bmp, global_alloc, arch_alloc_inner_s::start, and utils_bitmap_free_bits().

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arch_alloc_allocate()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void * arch_alloc_allocate (arch_alloc_salloc,
size_t size 
)
+
+

Allocate contiguous memory from the alloc arch_alloc_s instance.

+
Parameters
+ + + +
allocAn initialized arch_alloc_s instance.
sizeThe size of the allocation.
+
+
+
Returns
Pointer to the beginning of size usable bytes, or NULL on failure.
+ +

Definition at line 26 of file tlsf/alloc.c.

+ +

References arch_alloc_inner_s::lock, arch_alloc_inner_s::root, arch_alloc_inner_s::start, utils_spinlock_lock, utils_spinlock_unlock, utils_timer_get_duration_ns, and utils_timer_set.

+ +

Referenced by arax_object_register(), arax_object_rename(), arax_plot_register_metric(), and async_semaphore_dec().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arch_alloc_create_sub_alloc()

+ +
+
+ + + + + + + + +
arch_alloc_s * arch_alloc_create_sub_alloc (arch_alloc_sparent)
+
+

Create a sub-allocator.

+

This allocator user the same global bitmap for requesting bulk allocations, but maintains separate metadata from the 'global' allocator.

+

Use arch_alloc_free(), arch_alloc_allocate() to alloc/free memory.

+

Returned allocator should be eventually released by calling arch_alloc_exit()

Parameters
+ + +
parentallocator
+
+
+
Returns
New arch_alloc_s instance.
+ +

Definition at line 124 of file tlsf/alloc.c.

+ +

References arch_alloc_allocate(), and arch_alloc_inner_s::root.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arch_alloc_exit()

+ +
+
+ + + + + + + + +
void arch_alloc_exit (arch_alloc_salloc)
+
+

Release any resources claimed by the alloc arch_alloc_s instance.

Note
The shared memory segment (shm in arch_alloc_init) must be freed by the user.
+ +

Definition at line 70 of file tlsf/alloc.c.

+ +

References arch_alloc_inner_s::root.

+ +

Referenced by arax_pipe_exit().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arch_alloc_get_bitmap()

+ +
+
+ + + + + + + +
utils_bitmap_s * arch_alloc_get_bitmap ()
+
+ +

Definition at line 129 of file tlsf/alloc.c.

+ +

References arch_alloc_inner_s::bmp, and global_alloc.

+ +
+
+ +

◆ arch_alloc_init_always()

+ +
+
+ + + + + + + + +
void arch_alloc_init_always (arch_alloc_salloc)
+
+

Perform necessary initialization for every arax application.

+
Note
This has to be called on new processes, that have not called arch_alloc_init_once
+
Parameters
+ + +
alloc
+
+
+ +

Definition at line 23 of file tlsf/alloc.c.

+ +

References global_alloc.

+ +

Referenced by arax_pipe_init().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arch_alloc_init_once()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int arch_alloc_init_once (arch_alloc_salloc,
size_t size 
)
+
+

Initialize a arch_alloc_s instance on a mapped shared memory segment.

+
Note
This only has to be called by the first process, to initialize global state
+
Parameters
+ + + +
allocPointer to be filled with initialized instance.
sizeThe size of the shared memory segment in bytes.
+
+
+
Returns
0 on success.
+ +

Definition at line 11 of file tlsf/alloc.c.

+ +

References BIT_ALLOCATOR_BLOCK, BIT_ALLOCATOR_BLOCK_MASK, BITS_PER_PAGE, arch_alloc_inner_s::bmp, global_alloc, arch_alloc_inner_s::lock, arch_alloc_inner_s::root, arch_alloc_inner_s::start, utils_bitmap_init(), and utils_spinlock_init.

+ +

Referenced by arax_pipe_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ arch_alloc_inspect()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void arch_alloc_inspect (arch_alloc_s_alloc,
void(*)(void *start, void *end, size_t size, void *arg) inspector,
void * arg 
)
+
+ +

Definition at line 105 of file tlsf/alloc.c.

+ +

References inspect_walker_state::arg, inspect_walker(), inspect_walker_state::inspector, and arch_alloc_inner_s::root.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ arch_alloc_stats()

+ +
+
+ + + + + + + + +
arch_alloc_stats_s arch_alloc_stats (arch_alloc_s_alloc)
+
+ +

Definition at line 77 of file tlsf/alloc.c.

+ +

References _arch_alloc_mspace_mallinfo(), and arch_alloc_inner_s::root.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ inspect_walker()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
void inspect_walker (void * ptr,
size_t size,
int used,
void * user 
)
+
+ +

Definition at line 98 of file tlsf/alloc.c.

+ +

References inspect_walker_state::arg, and inspect_walker_state::inspector.

+ +

Referenced by arch_alloc_inspect().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+
+
+ + + + diff --git a/a02343.js b/a02343.js new file mode 100644 index 00000000..babc7459 --- /dev/null +++ b/a02343.js @@ -0,0 +1,17 @@ +var a02343 = +[ + [ "arch_alloc_inner_s", "a02190.html", "a02190" ], + [ "inspect_walker_state", "a02218.html", "a02218" ], + [ "_arch_alloc_free", "a02343.html#aee3468c272395a101cb7cc10e56fcc76", null ], + [ "arax_mmap", "a02343.html#a645f029b25098d24aca61b20beabe1bf", null ], + [ "arax_ummap", "a02343.html#a169e798e54b8e0933d5c39960d6c2ad3", null ], + [ "arch_alloc_allocate", "a02343.html#ac9828b5c2758940f6d3c7d4335228de5", null ], + [ "arch_alloc_create_sub_alloc", "a02343.html#a32b9155cb5133ef21023a1ff4653bf04", null ], + [ "arch_alloc_exit", "a02343.html#a726fb6388e92c5d82c9d5750fee1a7fb", null ], + [ "arch_alloc_get_bitmap", "a02343.html#a4c8fda139857abec3429d4d00f8a725c", null ], + [ "arch_alloc_init_always", "a02343.html#a75bfaa5e934f1853fc8fd536ea469ad9", null ], + [ "arch_alloc_init_once", "a02343.html#a44fec37f87bcd49aaacc97696f9e0e7d", null ], + [ "arch_alloc_inspect", "a02343.html#a6f21f41c6c1797ff0b8754fb046f3dbc", null ], + [ "arch_alloc_stats", "a02343.html#a687bef36a598f3a197afea8e055e6608", null ], + [ "inspect_walker", "a02343.html#a6c80c36522a102a50963aa44fe7c692c", null ] +]; \ No newline at end of file diff --git a/a02343_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.map b/a02343_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.map new file mode 100644 index 00000000..776c16fb --- /dev/null +++ b/a02343_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02343_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.md5 b/a02343_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.md5 new file mode 100644 index 00000000..05abdb19 --- /dev/null +++ b/a02343_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.md5 @@ -0,0 +1 @@ +99bd4b7db21df80451306000dd14029b \ No newline at end of file diff --git a/a02343_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.svg b/a02343_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.svg new file mode 100644 index 00000000..d3bb91f7 --- /dev/null +++ b/a02343_a169e798e54b8e0933d5c39960d6c2ad3_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arax_ummap + + +Node1 + + +arax_ummap + + + + + +Node2 + + +utils_bitmap_free_bits + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02343_a32b9155cb5133ef21023a1ff4653bf04_cgraph.map b/a02343_a32b9155cb5133ef21023a1ff4653bf04_cgraph.map new file mode 100644 index 00000000..47db0939 --- /dev/null +++ b/a02343_a32b9155cb5133ef21023a1ff4653bf04_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02343_a32b9155cb5133ef21023a1ff4653bf04_cgraph.md5 b/a02343_a32b9155cb5133ef21023a1ff4653bf04_cgraph.md5 new file mode 100644 index 00000000..34cb077b --- /dev/null +++ b/a02343_a32b9155cb5133ef21023a1ff4653bf04_cgraph.md5 @@ -0,0 +1 @@ +566e917b957b427e7c81e604739a6c74 \ No newline at end of file diff --git a/a02343_a32b9155cb5133ef21023a1ff4653bf04_cgraph.svg b/a02343_a32b9155cb5133ef21023a1ff4653bf04_cgraph.svg new file mode 100644 index 00000000..f9f4a1b8 --- /dev/null +++ b/a02343_a32b9155cb5133ef21023a1ff4653bf04_cgraph.svg @@ -0,0 +1,40 @@ + + + + + + +arch_alloc_create_sub_alloc + + +Node1 + + +arch_alloc_create_sub +_alloc + + + + + +Node2 + + +arch_alloc_allocate + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02343_a44fec37f87bcd49aaacc97696f9e0e7d_cgraph.map b/a02343_a44fec37f87bcd49aaacc97696f9e0e7d_cgraph.map new file mode 100644 index 00000000..8d1f1cb3 --- /dev/null +++ b/a02343_a44fec37f87bcd49aaacc97696f9e0e7d_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02343_a44fec37f87bcd49aaacc97696f9e0e7d_cgraph.md5 b/a02343_a44fec37f87bcd49aaacc97696f9e0e7d_cgraph.md5 new file mode 100644 index 00000000..0b413bad --- /dev/null +++ b/a02343_a44fec37f87bcd49aaacc97696f9e0e7d_cgraph.md5 @@ -0,0 +1 @@ +d1942b1c9c798e15cd69b83404bbb348 \ No newline at end of file diff --git a/a02343_a44fec37f87bcd49aaacc97696f9e0e7d_cgraph.svg b/a02343_a44fec37f87bcd49aaacc97696f9e0e7d_cgraph.svg new file mode 100644 index 00000000..bd6f0e77 --- /dev/null +++ b/a02343_a44fec37f87bcd49aaacc97696f9e0e7d_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arch_alloc_init_once + + +Node1 + + +arch_alloc_init_once + + + + + +Node2 + + +utils_bitmap_init + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02343_a44fec37f87bcd49aaacc97696f9e0e7d_icgraph.map b/a02343_a44fec37f87bcd49aaacc97696f9e0e7d_icgraph.map new file mode 100644 index 00000000..db81e3e5 --- /dev/null +++ b/a02343_a44fec37f87bcd49aaacc97696f9e0e7d_icgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02343_a44fec37f87bcd49aaacc97696f9e0e7d_icgraph.md5 b/a02343_a44fec37f87bcd49aaacc97696f9e0e7d_icgraph.md5 new file mode 100644 index 00000000..5f01ab34 --- /dev/null +++ b/a02343_a44fec37f87bcd49aaacc97696f9e0e7d_icgraph.md5 @@ -0,0 +1 @@ +8ac0eb4b68bdef2fee0bef9873f038c8 \ No newline at end of file diff --git a/a02343_a44fec37f87bcd49aaacc97696f9e0e7d_icgraph.svg b/a02343_a44fec37f87bcd49aaacc97696f9e0e7d_icgraph.svg new file mode 100644 index 00000000..ff8eb798 --- /dev/null +++ b/a02343_a44fec37f87bcd49aaacc97696f9e0e7d_icgraph.svg @@ -0,0 +1,203 @@ + + + + + + +arch_alloc_init_once + + +Node1 + + +arch_alloc_init_once + + + + + +Node2 + + +arax_pipe_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + diff --git a/a02343_a645f029b25098d24aca61b20beabe1bf_cgraph.map b/a02343_a645f029b25098d24aca61b20beabe1bf_cgraph.map new file mode 100644 index 00000000..15401d9b --- /dev/null +++ b/a02343_a645f029b25098d24aca61b20beabe1bf_cgraph.map @@ -0,0 +1,16 @@ + + + + + + + + + + + + + + + + diff --git a/a02343_a645f029b25098d24aca61b20beabe1bf_cgraph.md5 b/a02343_a645f029b25098d24aca61b20beabe1bf_cgraph.md5 new file mode 100644 index 00000000..8eb16151 --- /dev/null +++ b/a02343_a645f029b25098d24aca61b20beabe1bf_cgraph.md5 @@ -0,0 +1 @@ +d05b096a54b9f7d7bd53422b83ca0c43 \ No newline at end of file diff --git a/a02343_a645f029b25098d24aca61b20beabe1bf_cgraph.svg b/a02343_a645f029b25098d24aca61b20beabe1bf_cgraph.svg new file mode 100644 index 00000000..1a7da096 --- /dev/null +++ b/a02343_a645f029b25098d24aca61b20beabe1bf_cgraph.svg @@ -0,0 +1,138 @@ + + + + + + +arax_mmap + + +Node1 + + +arax_mmap + + + + + +Node2 + + +utils_bitmap_alloc_bits + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +find_start + + + + + +Node2->Node3 + + + + + + + + +Node7 + + +utils_bitmap_free + + + + + +Node2->Node7 + + + + + + + + +Node4 + + +find_start_big + + + + + +Node3->Node4 + + + + + + + + +Node6 + + +find_start_small + + + + + +Node3->Node6 + + + + + + + + +Node5 + + +find_end_small + + + + + +Node4->Node5 + + + + + + + + +Node6->Node5 + + + + + + + + diff --git a/a02343_a687bef36a598f3a197afea8e055e6608_cgraph.map b/a02343_a687bef36a598f3a197afea8e055e6608_cgraph.map new file mode 100644 index 00000000..3440ab17 --- /dev/null +++ b/a02343_a687bef36a598f3a197afea8e055e6608_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02343_a687bef36a598f3a197afea8e055e6608_cgraph.md5 b/a02343_a687bef36a598f3a197afea8e055e6608_cgraph.md5 new file mode 100644 index 00000000..4dea9955 --- /dev/null +++ b/a02343_a687bef36a598f3a197afea8e055e6608_cgraph.md5 @@ -0,0 +1 @@ +2156b87cee861a37cab04fc7e8b897f7 \ No newline at end of file diff --git a/a02343_a687bef36a598f3a197afea8e055e6608_cgraph.svg b/a02343_a687bef36a598f3a197afea8e055e6608_cgraph.svg new file mode 100644 index 00000000..b4f3fb8b --- /dev/null +++ b/a02343_a687bef36a598f3a197afea8e055e6608_cgraph.svg @@ -0,0 +1,40 @@ + + + + + + +arch_alloc_stats + + +Node1 + + +arch_alloc_stats + + + + + +Node2 + + +_arch_alloc_mspace +_mallinfo + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02343_a6c80c36522a102a50963aa44fe7c692c_icgraph.map b/a02343_a6c80c36522a102a50963aa44fe7c692c_icgraph.map new file mode 100644 index 00000000..6b05d31b --- /dev/null +++ b/a02343_a6c80c36522a102a50963aa44fe7c692c_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02343_a6c80c36522a102a50963aa44fe7c692c_icgraph.md5 b/a02343_a6c80c36522a102a50963aa44fe7c692c_icgraph.md5 new file mode 100644 index 00000000..d955f618 --- /dev/null +++ b/a02343_a6c80c36522a102a50963aa44fe7c692c_icgraph.md5 @@ -0,0 +1 @@ +f44fa2c1f4550b74402257a2a9e13b07 \ No newline at end of file diff --git a/a02343_a6c80c36522a102a50963aa44fe7c692c_icgraph.svg b/a02343_a6c80c36522a102a50963aa44fe7c692c_icgraph.svg new file mode 100644 index 00000000..0e922c63 --- /dev/null +++ b/a02343_a6c80c36522a102a50963aa44fe7c692c_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +inspect_walker + + +Node1 + + +inspect_walker + + + + + +Node2 + + +arch_alloc_inspect + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02343_a6f21f41c6c1797ff0b8754fb046f3dbc_cgraph.map b/a02343_a6f21f41c6c1797ff0b8754fb046f3dbc_cgraph.map new file mode 100644 index 00000000..5adaae56 --- /dev/null +++ b/a02343_a6f21f41c6c1797ff0b8754fb046f3dbc_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02343_a6f21f41c6c1797ff0b8754fb046f3dbc_cgraph.md5 b/a02343_a6f21f41c6c1797ff0b8754fb046f3dbc_cgraph.md5 new file mode 100644 index 00000000..4066468b --- /dev/null +++ b/a02343_a6f21f41c6c1797ff0b8754fb046f3dbc_cgraph.md5 @@ -0,0 +1 @@ +87ca36cbf511b5895dc9ed7789a3e7ea \ No newline at end of file diff --git a/a02343_a6f21f41c6c1797ff0b8754fb046f3dbc_cgraph.svg b/a02343_a6f21f41c6c1797ff0b8754fb046f3dbc_cgraph.svg new file mode 100644 index 00000000..bb169992 --- /dev/null +++ b/a02343_a6f21f41c6c1797ff0b8754fb046f3dbc_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +arch_alloc_inspect + + +Node1 + + +arch_alloc_inspect + + + + + +Node2 + + +inspect_walker + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02343_a726fb6388e92c5d82c9d5750fee1a7fb_icgraph.map b/a02343_a726fb6388e92c5d82c9d5750fee1a7fb_icgraph.map new file mode 100644 index 00000000..f1d38c7a --- /dev/null +++ b/a02343_a726fb6388e92c5d82c9d5750fee1a7fb_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a02343_a726fb6388e92c5d82c9d5750fee1a7fb_icgraph.md5 b/a02343_a726fb6388e92c5d82c9d5750fee1a7fb_icgraph.md5 new file mode 100644 index 00000000..6f8da5c4 --- /dev/null +++ b/a02343_a726fb6388e92c5d82c9d5750fee1a7fb_icgraph.md5 @@ -0,0 +1 @@ +d95f56ca498e4ee357517ab187e0c235 \ No newline at end of file diff --git a/a02343_a726fb6388e92c5d82c9d5750fee1a7fb_icgraph.svg b/a02343_a726fb6388e92c5d82c9d5750fee1a7fb_icgraph.svg new file mode 100644 index 00000000..fc87abef --- /dev/null +++ b/a02343_a726fb6388e92c5d82c9d5750fee1a7fb_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +arch_alloc_exit + + +Node1 + + +arch_alloc_exit + + + + + +Node2 + + +arax_pipe_exit + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_exit + + + + + +Node2->Node3 + + + + + + + + diff --git a/a02343_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.map b/a02343_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.map new file mode 100644 index 00000000..e77de1d5 --- /dev/null +++ b/a02343_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02343_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.md5 b/a02343_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.md5 new file mode 100644 index 00000000..8887fc43 --- /dev/null +++ b/a02343_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.md5 @@ -0,0 +1 @@ +a4029dbd6f07ddae33e812b311389d31 \ No newline at end of file diff --git a/a02343_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.svg b/a02343_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.svg new file mode 100644 index 00000000..9bde6c17 --- /dev/null +++ b/a02343_a75bfaa5e934f1853fc8fd536ea469ad9_icgraph.svg @@ -0,0 +1,203 @@ + + + + + + +arch_alloc_init_always + + +Node1 + + +arch_alloc_init_always + + + + + +Node2 + + +arax_pipe_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + diff --git a/a02343_ac9828b5c2758940f6d3c7d4335228de5_icgraph.map b/a02343_ac9828b5c2758940f6d3c7d4335228de5_icgraph.map new file mode 100644 index 00000000..5d296c0e --- /dev/null +++ b/a02343_ac9828b5c2758940f6d3c7d4335228de5_icgraph.map @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02343_ac9828b5c2758940f6d3c7d4335228de5_icgraph.md5 b/a02343_ac9828b5c2758940f6d3c7d4335228de5_icgraph.md5 new file mode 100644 index 00000000..c52e70bc --- /dev/null +++ b/a02343_ac9828b5c2758940f6d3c7d4335228de5_icgraph.md5 @@ -0,0 +1 @@ +b055707a35d8e434933d78f3037228da \ No newline at end of file diff --git a/a02343_ac9828b5c2758940f6d3c7d4335228de5_icgraph.svg b/a02343_ac9828b5c2758940f6d3c7d4335228de5_icgraph.svg new file mode 100644 index 00000000..9a7545bb --- /dev/null +++ b/a02343_ac9828b5c2758940f6d3c7d4335228de5_icgraph.svg @@ -0,0 +1,700 @@ + + + + + + +arch_alloc_allocate + + +Node1 + + +arch_alloc_allocate + + + + + +Node2 + + +arax_object_register + + + + + +Node1->Node2 + + + + + + + + +Node20 + + +arax_object_rename + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +arax_plot_register +_metric + + + + + +Node1->Node21 + + + + + + + + +Node22 + + +async_semaphore_dec + + + + + +Node1->Node22 + + + + + + + + +Node3 + + +arax_accel_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_init_aligned + + + + + +Node2->Node4 + + + + + + + + +Node7 + + +arax_proc_init + + + + + +Node2->Node7 + + + + + + + + +Node9 + + +arax_task_alloc + + + + + +Node2->Node9 + + + + + + + + +Node17 + + +arax_vaccel_init + + + + + +Node2->Node17 + + + + + + + + +Node5 + + +arax_data_init + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +ARAX_BUFFER + + + + + +Node5->Node6 + + + + + + + + +Node8 + + +arax_proc_register + + + + + +Node7->Node8 + + + + + + + + +Node10 + + +arax_task_issue + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_allocate +_remote + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_data_get + + + + + +Node10->Node12 + + + + + + + + +Node14 + + +arax_data_set + + + + + +Node10->Node14 + + + + + + + + +Node15 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node10->Node15 + + + + + + + + +Node16 + + +arax_task_issue_sync + + + + + +Node10->Node16 + + + + + + + + +Node13 + + +arax_data_memcpy + + + + + +Node12->Node13 + + + + + + + + +Node14->Node13 + + + + + + + + +Node17->Node3 + + + + + + + + +Node18 + + +arax_accel_acquire_phys + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +arax_accel_acquire_type + + + + + +Node17->Node19 + + + + + + + + +Node23 + + +async_condition_wait + + + + + +Node22->Node23 + + + + + + + + +Node24 + + +_arax_init + + + + + +Node23->Node24 + + + + + + + + +Node31 + + +arax_accel_wait_for_task + + + + + +Node23->Node31 + + + + + + + + +Node32 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node23->Node32 + + + + + + + + +Node33 + + +arax_throttle_size_dec + + + + + +Node23->Node33 + + + + + + + + +Node25 + + +arax_controller_init +_start + + + + + +Node24->Node25 + + + + + + + + +Node26 + + +arax_init + + + + + +Node24->Node26 + + + + + + + + +Node26->Node21 + + + + + + + + +Node27 + + +arax_ptr_valid + + + + + +Node26->Node27 + + + + + + + + +Node27->Node21 + + + + + + + + +Node28 + + +_arax_assert_obj + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +arax_data_ref + + + + + +Node27->Node29 + + + + + + + + +Node30 + + +arax_data_ref_offset + + + + + +Node27->Node30 + + + + + + + + +Node29->Node30 + + + + + + + + +Node34 + + +arax_accel_size_dec + + + + + +Node33->Node34 + + + + + + + + +Node35 + + +arax_pipe_size_dec + + + + + +Node33->Node35 + + + + + + + + +Node34->Node11 + + + + + + + + +Node35->Node2 + + + + + + + + diff --git a/a02343_source.html b/a02343_source.html new file mode 100644 index 00000000..c8239091 --- /dev/null +++ b/a02343_source.html @@ -0,0 +1,271 @@ + + + + + + + +Arax: alloc.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tlsf/alloc.c
+
+
+Go to the documentation of this file.
1#include "arch/alloc.h"
+
2#include "tlsf.h"
+
3
+ +
5{
+ +
7 tlsf_t root;
+ +
9};
+
10
+
11int arch_alloc_init_once(arch_alloc_s *_alloc, size_t size)
+
12{
+
13 struct arch_alloc_inner_s *alloc = (struct arch_alloc_inner_s *) _alloc;
+
14
+
15 void *usable_area = alloc + 1;
+
16
+
17 utils_spinlock_init(&(alloc->lock));
+
18 alloc->root = tlsf_create_with_pool(usable_area, size - sizeof(struct arch_alloc_inner_s));
+
19
+
20 return 0;
+
21}
+
22
+ +
24{ }
+
25
+
26void* arch_alloc_allocate(arch_alloc_s *_alloc, size_t size)
+
27{
+
28 struct arch_alloc_inner_s *alloc = (struct arch_alloc_inner_s *) _alloc;
+
29 void *data;
+
30
+
31 #ifdef ALLOC_STATS
+ + +
34 #endif
+
35
+
36 utils_spinlock_lock(&(alloc->lock));
+
37 data = tlsf_malloc(alloc->root, size);
+
38 utils_spinlock_unlock(&(alloc->lock));
+
39
+
40 #ifdef ALLOC_STATS
+
41 utils_timer_set(dt, stop);
+
42 __sync_fetch_and_add(&(_alloc->alloc_ns[!!data]),
+ +
44 __sync_fetch_and_add(&(_alloc->allocs[!!data]), 1);
+
45 #endif
+
46 return data;
+
47}
+
48
+
49void _arch_alloc_free(arch_alloc_s *_alloc, void *mem)
+
50{
+
51 struct arch_alloc_inner_s *alloc = (struct arch_alloc_inner_s *) _alloc;
+
52
+
53 #ifdef ALLOC_STATS
+ + +
56 #endif
+
57
+
58 utils_spinlock_lock(&(alloc->lock));
+
59 tlsf_free(alloc->root, mem);
+
60 utils_spinlock_unlock(&(alloc->lock));
+
61
+
62 #ifdef ALLOC_STATS
+
63 utils_timer_set(dt, stop);
+
64 __sync_fetch_and_add(&(_alloc->free_ns),
+ +
66 __sync_fetch_and_add(&(_alloc->frees), 1);
+
67 #endif
+
68}
+
69
+ +
71{
+
72 struct arch_alloc_inner_s *alloc = (struct arch_alloc_inner_s *) _alloc;
+
73
+
74 tlsf_destroy(alloc->root);
+
75}
+
76
+ +
78{
+
79 arch_alloc_stats_s stats = { 0 };
+
80
+
81 #ifdef ALLOC_STATS
+
82 stats.allocs[0] = _alloc->allocs[0];
+
83 stats.allocs[1] = _alloc->allocs[1];
+
84 stats.frees = _alloc->frees;
+
85 stats.alloc_ns[0] = _alloc->alloc_ns[0];
+
86 stats.alloc_ns[1] = _alloc->alloc_ns[1];
+
87 stats.free_ns = _alloc->free_ns;
+
88 #endif
+
89 return stats;
+
90}
+
91
+ +
93{
+
94 void (*inspector)(void *start, void *end, size_t size, void *arg);
+
95 void *arg;
+
96};
+
97
+
98void inspect_walker(void *ptr, size_t size, int used, void *user)
+
99{
+
100 struct inspect_walker_state *iws = (struct inspect_walker_state *) user;
+
101
+
102 iws->inspector(ptr, ptr + size, used * size, iws->arg);
+
103}
+
104
+
105void arch_alloc_inspect(arch_alloc_s *_alloc, void (*inspector)(void *start, void *end, size_t size,
+
106 void *arg), void *arg)
+
107{
+
108 struct arch_alloc_inner_s *alloc = (struct arch_alloc_inner_s *) _alloc;
+
109 struct inspect_walker_state iws = { inspector, arg };
+
110
+
111 tlsf_walk_pool(tlsf_get_pool(alloc->root), inspect_walker, &iws);
+
112}
+
113
+
114void* arax_mmap(size_t s)
+
115{
+
116 return 0;
+
117}
+
118
+
119void* arax_ummap(void *a, size_t s)
+
120{
+
121 return 0;
+
122}
+
123
+ +
125{
+
126 return parent;
+
127}
+
128
+ +
130{
+
131 return 0;
+
132}
+
volatile uint32_t utils_spinlock
Definition spinlock.h:10
+
#define utils_timer_get_duration_ns(NAME)
Definition timer.h:82
+
#define utils_timer_set(NAME, WHAT)
Definition timer.h:13
+
#define utils_spinlock_lock(V)
Definition queue.c:35
+
#define utils_spinlock_init(V)
Definition queue.c:34
+
#define utils_spinlock_unlock(V)
Definition queue.c:36
+ + + +
utils_spinlock lock
Definition tlsf/alloc.c:8
+ + + + + +
void(* inspector)(void *start, void *end, size_t size, void *arg)
Definition tlsf/alloc.c:94
+ + + +
void * arax_ummap(void *a, size_t s)
Definition tlsf/alloc.c:119
+
arch_alloc_s * arch_alloc_create_sub_alloc(arch_alloc_s *parent)
Definition tlsf/alloc.c:124
+
int arch_alloc_init_once(arch_alloc_s *_alloc, size_t size)
Definition tlsf/alloc.c:11
+
utils_bitmap_s * arch_alloc_get_bitmap()
Definition tlsf/alloc.c:129
+
void * arax_mmap(size_t s)
Definition tlsf/alloc.c:114
+
arch_alloc_stats_s arch_alloc_stats(arch_alloc_s *_alloc)
Definition tlsf/alloc.c:77
+
void inspect_walker(void *ptr, size_t size, int used, void *user)
Definition tlsf/alloc.c:98
+
void arch_alloc_inspect(arch_alloc_s *_alloc, void(*inspector)(void *start, void *end, size_t size, void *arg), void *arg)
Definition tlsf/alloc.c:105
+
void arch_alloc_exit(arch_alloc_s *_alloc)
Definition tlsf/alloc.c:70
+
void arch_alloc_init_always(arch_alloc_s *alloc)
Definition tlsf/alloc.c:23
+
void * arch_alloc_allocate(arch_alloc_s *_alloc, size_t size)
Definition tlsf/alloc.c:26
+
void _arch_alloc_free(arch_alloc_s *_alloc, void *mem)
Definition tlsf/alloc.c:49
+
+
+ + + + diff --git a/a02344.map b/a02344.map new file mode 100644 index 00000000..aaf5e695 --- /dev/null +++ b/a02344.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a02344.md5 b/a02344.md5 new file mode 100644 index 00000000..d70f20d8 --- /dev/null +++ b/a02344.md5 @@ -0,0 +1 @@ +104f76f38f29d907e131b47eee88de2a \ No newline at end of file diff --git a/a02344.svg b/a02344.svg new file mode 100644 index 00000000..d4781ab6 --- /dev/null +++ b/a02344.svg @@ -0,0 +1,57 @@ + + + + + + +alloc.c + + +Node1 + + +alloc.c + + + + + +Node2 + + +arch/alloc.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +tlsf.h + + + + + +Node1->Node3 + + + + + + + + diff --git a/a02346.html b/a02346.html new file mode 100644 index 00000000..c704e3ee --- /dev/null +++ b/a02346.html @@ -0,0 +1,949 @@ + + + + + + + +Arax: async.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
ivshmem/async.c File Reference
+
+
+
#include "conf.h"
+#include "async.h"
+#include "utils/config.h"
+#include <stdlib.h>
+#include <stdio.h>
+#include <unistd.h>
+#include <fcntl.h>
+#include <sys/mman.h>
+
+ + Include dependency graph for ivshmem/async.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + +

+Data Structures

struct  ivshmem
 
+ + + +

+Enumerations

enum  RegisterOffsets { ISR_REG = 0 +, IMR_REG = 1 +, VM_ID_REG = 2 +, BELL_REG = 3 + }
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

void wakeupVm (async_meta_s *meta, unsigned int vm_id)
 
unsigned int getVmID (async_meta_s *meta)
 
void * async_thread (void *data)
 
void _add_completion (async_meta_s *meta, async_completion_s *completion)
 
void async_meta_init_once (async_meta_s *meta, arch_alloc_s *alloc)
 
void async_meta_init_always (async_meta_s *meta)
 
void async_completion_init (async_meta_s *meta, async_completion_s *completion)
 
void async_completion_complete (async_completion_s *completion)
 
void async_completion_wait (async_completion_s *completion)
 
int async_completion_check (async_completion_s *completion)
 
void async_semaphore_init (async_meta_s *meta, async_semaphore_s *sem)
 
int async_semaphore_value (async_semaphore_s *sem)
 
void async_semaphore_inc (async_semaphore_s *sem)
 
void async_semaphore_dec (async_semaphore_s *sem)
 
void async_condition_init (async_meta_s *meta, async_condition_s *cond)
 
void async_condition_lock (async_condition_s *cond)
 
void async_condition_wait (async_condition_s *cond)
 
void async_condition_notify (async_condition_s *cond)
 
void async_condition_unlock (async_condition_s *cond)
 
void async_meta_exit (async_meta_s *meta)
 
+ + + +

+Variables

static int reg_fd = 0
 
+

Enumeration Type Documentation

+ +

◆ RegisterOffsets

+ +
+
+ + + + +
enum RegisterOffsets
+
+ + + + + +
Enumerator
ISR_REG 
IMR_REG 
VM_ID_REG 
BELL_REG 
+ +

Definition at line 13 of file ivshmem/async.c.

+ +
+
+

Function Documentation

+ +

◆ _add_completion()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void _add_completion (async_meta_smeta,
async_completion_scompletion 
)
+
+ +

Definition at line 64 of file ivshmem/async.c.

+ +

References async_meta_s::lock, async_meta_s::outstanding, async_completion_s::outstanding, utils_list_add(), utils_spinlock_lock, and utils_spinlock_unlock.

+ +

Referenced by async_completion_wait(), and async_semaphore_inc().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_completion_check()

+ +
+
+ + + + + + + + +
int async_completion_check (async_completion_scompletion)
+
+

Check if completion has been marked as completed.

+
Parameters
+ + +
completionCompletion to be checked.
+
+
+
Returns
0 if not completed, !0 if completed.
+ +

Definition at line 144 of file ivshmem/async.c.

+ +

Referenced by async_thread().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_completion_complete()

+ +
+
+ + + + + + + + +
void async_completion_complete (async_completion_scompletion)
+
+

Mark compl as completed and notify pending async_completion_wait() callers.

+
Parameters
+ + +
completionCompletion to be marked as completed.
+
+
+ +

Definition at line 129 of file ivshmem/async.c.

+ +

Referenced by async_condition_init(), async_condition_unlock(), async_condition_wait(), and async_semaphore_inc().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_completion_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void async_completion_init (async_meta_smeta,
async_completion_scompletion 
)
+
+

Create and register async_completion_s objects created in buff.

+
Parameters
+ + + +
metaPointer to async_meta_s that will 'own' this completion.
completionCompletion to be initialized
+
+
+
Returns
Number of objects created, should be buff_size/async_completion_size().
+ +

Definition at line 118 of file ivshmem/async.c.

+ +

Referenced by async_condition_init(), and async_semaphore_dec().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_completion_wait()

+ +
+
+ + + + + + + + +
void async_completion_wait (async_completion_scompletion)
+
+

Wait for compl to be completed with async_completion_complete().

+
Parameters
+ + +
completionSleep untill it has been completed with async_completion_complete.
+
+
+ +

Definition at line 135 of file ivshmem/async.c.

+ +

Referenced by async_condition_lock(), async_condition_wait(), and async_semaphore_dec().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_condition_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void async_condition_init (async_meta_smeta,
async_condition_scond 
)
+
+

Initialize semaphore.

+
Parameters
+ + + +
metaPointer to async_meta_s that will 'own' this semaphore.
condCondition to be initialized
+
+
+ +

Definition at line 206 of file ivshmem/async.c.

+ +
+
+ +

◆ async_condition_lock()

+ +
+
+ + + + + + + + +
void async_condition_lock (async_condition_scond)
+
+

Lock on condition cond.

+
Parameters
+ + +
condCondition to be read.
+
+
+ +

Definition at line 213 of file ivshmem/async.c.

+ +
+
+ +

◆ async_condition_notify()

+ +
+
+ + + + + + + + +
void async_condition_notify (async_condition_scond)
+
+

Notify cond.

+
Note
Prior to this call cond must be locked using async_condition_lock().
+
Parameters
+ + +
condCondition to be notified.
+
+
+ +

Definition at line 225 of file ivshmem/async.c.

+ +
+
+ +

◆ async_condition_unlock()

+ +
+
+ + + + + + + + +
void async_condition_unlock (async_condition_scond)
+
+

Lock on condition cond.

+
Note
Prior to this call cond must be locked using async_condition_lock().
+
Parameters
+ + +
condCondition to be read.
+
+
+ +

Definition at line 230 of file ivshmem/async.c.

+ +
+
+ +

◆ async_condition_wait()

+ +
+
+ + + + + + + + +
void async_condition_wait (async_condition_scond)
+
+

Wait on cond.

+
Note
Prior to this call cond must be locked using async_condition_lock().
+
Parameters
+ + +
condCondition to be read.
+
+
+ +

Definition at line 218 of file ivshmem/async.c.

+ +
+
+ +

◆ async_meta_exit()

+ +
+
+ + + + + + + + +
void async_meta_exit (async_meta_smeta)
+
+

De initialize an async_meta_s object.

+
Parameters
+ + +
metaThe async_meta_s object to be uninitialized.
+
+
+ +

Definition at line 235 of file ivshmem/async.c.

+ +
+
+ +

◆ async_meta_init_always()

+ +
+
+ + + + + + + + +
void async_meta_init_always (async_meta_smeta)
+
+

Initialize a async_meta_s object on every node.

+

This will be called multiple times, once for every node.

+
Parameters
+ + +
metaAn uninitialized async_meta_s object.
+
+
+ +

Definition at line 89 of file ivshmem/async.c.

+ +
+
+ +

◆ async_meta_init_once()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void async_meta_init_once (async_meta_smeta,
arch_alloc_salloc 
)
+
+

Initialize a async_meta_s object once.

+

This will be called only once, on the first node.

+
Parameters
+ + + +
metaAn uninitialized async_meta_s object.
allocAllocator instance to be used for internall allocations.
+
+
+ +

Definition at line 71 of file ivshmem/async.c.

+ +
+
+ +

◆ async_semaphore_dec()

+ +
+
+ + + + + + + + +
void async_semaphore_dec (async_semaphore_ssem)
+
+

Decrease semaphore.

+

Decrease(ie consume) sem by one. This function will block if async_semaphore_value() == 0.

+
Parameters
+ + +
semSemaphore to be increased.
+
+
+ +

Definition at line 181 of file ivshmem/async.c.

+ +

Referenced by async_condition_wait().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_semaphore_inc()

+ +
+
+ + + + + + + + +
void async_semaphore_inc (async_semaphore_ssem)
+
+

Increase semaphore.

+

Increase(ie produce) sem by one. This function will never block.

+
Parameters
+ + +
semSemaphore to be increased.
+
+
+ +

Definition at line 161 of file ivshmem/async.c.

+ +

Referenced by async_condition_notify().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_semaphore_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void async_semaphore_init (async_meta_smeta,
async_semaphore_ssem 
)
+
+

Initialize semaphore.

+
Parameters
+ + + +
metaPointer to async_meta_s that will 'own' this semaphore.
semSemaphore to be initialized
+
+
+ +

Definition at line 149 of file ivshmem/async.c.

+ +

Referenced by async_condition_init().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_semaphore_value()

+ +
+
+ + + + + + + + +
int async_semaphore_value (async_semaphore_ssem)
+
+

Return value of sem.

Parameters
+ + +
semSemaphore to be initialized
+
+
+ +

Definition at line 156 of file ivshmem/async.c.

+ +
+
+ +

◆ async_thread()

+ +
+
+ + + + + + + + +
void * async_thread (void * data)
+
+ +

Definition at line 37 of file ivshmem/async.c.

+ +

References async_completion_check(), getVmID(), async_completion_s::mutex, async_meta_s::outstanding, utils_list_node::owner, reg_fd, utils_list_del(), and utils_list_for_each_safe.

+ +

Referenced by async_meta_init_always().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ getVmID()

+ +
+
+ + + + + + + + +
unsigned int getVmID (async_meta_smeta)
+
+ +

Definition at line 31 of file ivshmem/async.c.

+ +

References ivshmem::regs, async_meta_s::regs, and VM_ID_REG.

+ +

Referenced by async_completion_wait(), async_meta_exit(), async_semaphore_dec(), and async_thread().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ wakeupVm()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void wakeupVm (async_meta_smeta,
unsigned int vm_id 
)
+
+ +

Definition at line 26 of file ivshmem/async.c.

+ +

References BELL_REG, ivshmem::regs, and async_meta_s::regs.

+ +

Referenced by async_completion_complete(), async_meta_exit(), and async_semaphore_dec().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+

Variable Documentation

+ +

◆ reg_fd

+ +
+
+ + + + + +
+ + + + +
int reg_fd = 0
+
+static
+
+ +

Definition at line 36 of file ivshmem/async.c.

+ +

Referenced by async_meta_init_always(), and async_thread().

+ +
+
+
+
+ + + + diff --git a/a02346.js b/a02346.js new file mode 100644 index 00000000..a95da0d7 --- /dev/null +++ b/a02346.js @@ -0,0 +1,31 @@ +var a02346 = +[ + [ "ivshmem", "a02226.html", "a02226" ], + [ "RegisterOffsets", "a02346.html#a5c6cef9bc2984aa826698bd328126308", [ + [ "ISR_REG", "a02346.html#a5c6cef9bc2984aa826698bd328126308a059675f16c9fa28d8974fb69b2003119", null ], + [ "IMR_REG", "a02346.html#a5c6cef9bc2984aa826698bd328126308a0668cff940eef901d490e4b8576a31ad", null ], + [ "VM_ID_REG", "a02346.html#a5c6cef9bc2984aa826698bd328126308afe84fc01c1e474b531d34e31ea7677dd", null ], + [ "BELL_REG", "a02346.html#a5c6cef9bc2984aa826698bd328126308a613577583c292244ee27da18aea86012", null ] + ] ], + [ "_add_completion", "a02346.html#aa459f71b73bbc23f0b4bb342d093dde3", null ], + [ "async_completion_check", "a02346.html#ae66ae81847153386c57918f4d91be8a7", null ], + [ "async_completion_complete", "a02346.html#ad1d30ecbf6bff6457b680aa940281072", null ], + [ "async_completion_init", "a02346.html#ac728117d73179c279de49e01ae905dda", null ], + [ "async_completion_wait", "a02346.html#aebf9e72bb6cbd8b9e33489d46c25075d", null ], + [ "async_condition_init", "a02346.html#ac7fbf1f43289d3e0e862b315f00e35e2", null ], + [ "async_condition_lock", "a02346.html#aed6af4d83e934e3e654ead541b15f2d9", null ], + [ "async_condition_notify", "a02346.html#a45a896fb606c2aa66a5a4c2af59ce494", null ], + [ "async_condition_unlock", "a02346.html#a3bbcb7c4c024e99d5c4ba52b61dfbbf7", null ], + [ "async_condition_wait", "a02346.html#a1bfeaeb9b81855e640d7a67cc9d92b17", null ], + [ "async_meta_exit", "a02346.html#afe9571a12debd9d75a0f8fb93420e268", null ], + [ "async_meta_init_always", "a02346.html#adbaa29dfccfdfe6e3fe69a1d001c05b5", null ], + [ "async_meta_init_once", "a02346.html#ab2e422aab2fcfa562795beb2843e8019", null ], + [ "async_semaphore_dec", "a02346.html#a7ab7c7fe9cb93434dde72a4e464a7e69", null ], + [ "async_semaphore_inc", "a02346.html#a0fa370eee5160963e617d1daf1c07363", null ], + [ "async_semaphore_init", "a02346.html#a2a7d01fc7720e936a430efc09d094c6c", null ], + [ "async_semaphore_value", "a02346.html#a2ef839f9f321fe47ec15653d08cf4183", null ], + [ "async_thread", "a02346.html#ab2195e0b081f467f8e058d1406bd4fc7", null ], + [ "getVmID", "a02346.html#a49083e8ceb4bfe7793ca1a5a799834d0", null ], + [ "wakeupVm", "a02346.html#ab5d38a2680290bd159549efaa41b925b", null ], + [ "reg_fd", "a02346.html#aed5abcc580c02a977121dffa3405d3ec", null ] +]; \ No newline at end of file diff --git a/a02346_a0fa370eee5160963e617d1daf1c07363_icgraph.map b/a02346_a0fa370eee5160963e617d1daf1c07363_icgraph.map new file mode 100644 index 00000000..f4b174cc --- /dev/null +++ b/a02346_a0fa370eee5160963e617d1daf1c07363_icgraph.map @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02346_a0fa370eee5160963e617d1daf1c07363_icgraph.md5 b/a02346_a0fa370eee5160963e617d1daf1c07363_icgraph.md5 new file mode 100644 index 00000000..db90299e --- /dev/null +++ b/a02346_a0fa370eee5160963e617d1daf1c07363_icgraph.md5 @@ -0,0 +1 @@ +70a1696316838b8c47a5695f3e767bd4 \ No newline at end of file diff --git a/a02346_a0fa370eee5160963e617d1daf1c07363_icgraph.svg b/a02346_a0fa370eee5160963e617d1daf1c07363_icgraph.svg new file mode 100644 index 00000000..55d83b92 --- /dev/null +++ b/a02346_a0fa370eee5160963e617d1daf1c07363_icgraph.svg @@ -0,0 +1,871 @@ + + + + + + +async_semaphore_inc + + +Node1 + + +async_semaphore_inc + + + + + +Node2 + + +async_condition_notify + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_add_task + + + + + +Node2->Node3 + + + + + + + + +Node13 + + +arax_accel_add_vaccel + + + + + +Node2->Node13 + + + + + + + + +Node19 + + +arax_accel_del_vaccel + + + + + +Node2->Node19 + + + + + + + + +Node21 + + +arax_controller_init_done + + + + + +Node2->Node21 + + + + + + + + +Node22 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node2->Node22 + + + + + + + + +Node23 + + +arax_pipe_orphan_stop + + + + + +Node2->Node23 + + + + + + + + +Node24 + + +arax_throttle_size_inc + + + + + +Node2->Node24 + + + + + + + + +Node4 + + +arax_vaccel_add_task + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_task_submit + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_task_issue + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_data_allocate +_remote + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_get + + + + + +Node6->Node8 + + + + + + + + +Node10 + + +arax_data_set + + + + + +Node6->Node10 + + + + + + + + +Node11 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node6->Node11 + + + + + + + + +Node12 + + +arax_task_issue_sync + + + + + +Node6->Node12 + + + + + + + + +Node9 + + +arax_data_memcpy + + + + + +Node8->Node9 + + + + + + + + +Node10->Node9 + + + + + + + + +Node14 + + +arax_accel_set_physical + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +arax_vaccel_init + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +arax_accel_acquire_phys + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +arax_accel_acquire_type + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +arax_accel_init + + + + + +Node15->Node18 + + + + + + + + +Node20 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node19->Node20 + + + + + + + + +Node22->Node15 + + + + + + + + +Node25 + + +arax_accel_size_inc + + + + + +Node24->Node25 + + + + + + + + +Node26 + + +arax_pipe_size_inc + + + + + +Node24->Node26 + + + + + + + + +Node27 + + +arax_object_ref_dec + + + + + +Node26->Node27 + + + + + + + + +Node41 + + +arax_object_ref_dec +_pre_locked + + + + + +Node26->Node41 + + + + + + + + +Node27->Node11 + + + + + + + + +Node28 + + +arax_accel_list_free + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +arax_accel_release + + + + + +Node27->Node29 + + + + + + + + +Node31 + + +arax_data_free + + + + + +Node27->Node31 + + + + + + + + +Node32 + + +arax_data_migrate_accel + + + + + +Node27->Node32 + + + + + + + + +Node37 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node27->Node37 + + + + + + + + +Node38 + + +arax_pipe_delete_accel + + + + + +Node27->Node38 + + + + + + + + +Node39 + + +arax_proc_put + + + + + +Node27->Node39 + + + + + + + + +Node40 + + +arax_task_free + + + + + +Node27->Node40 + + + + + + + + +Node30 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node29->Node30 + + + + + + + + +Node33 + + +arax_data_arg_init + + + + + +Node32->Node33 + + + + + + + + +Node34 + + +arax_data_input_init + + + + + +Node32->Node34 + + + + + + + + +Node36 + + +arax_data_output_init + + + + + +Node32->Node36 + + + + + + + + +Node35 + + +arax_task_alloc + + + + + +Node34->Node35 + + + + + + + + +Node35->Node6 + + + + + + + + +Node36->Node35 + + + + + + + + +Node39->Node8 + + + + + + + + +Node39->Node10 + + + + + + + + +Node40->Node7 + + + + + + + + +Node40->Node8 + + + + + + + + +Node40->Node12 + + + + + + + + +Node42 + + +arax_accel_list_free +_pre_locked + + + + + +Node41->Node42 + + + + + + + + +Node43 + + +arax_accel_list + + + + + +Node42->Node43 + + + + + + + + diff --git a/a02346_a2a7d01fc7720e936a430efc09d094c6c_icgraph.map b/a02346_a2a7d01fc7720e936a430efc09d094c6c_icgraph.map new file mode 100644 index 00000000..269d711f --- /dev/null +++ b/a02346_a2a7d01fc7720e936a430efc09d094c6c_icgraph.map @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02346_a2a7d01fc7720e936a430efc09d094c6c_icgraph.md5 b/a02346_a2a7d01fc7720e936a430efc09d094c6c_icgraph.md5 new file mode 100644 index 00000000..e324546a --- /dev/null +++ b/a02346_a2a7d01fc7720e936a430efc09d094c6c_icgraph.md5 @@ -0,0 +1 @@ +623647336779a9979e562c6fe4d6ce06 \ No newline at end of file diff --git a/a02346_a2a7d01fc7720e936a430efc09d094c6c_icgraph.svg b/a02346_a2a7d01fc7720e936a430efc09d094c6c_icgraph.svg new file mode 100644 index 00000000..8cfab6b5 --- /dev/null +++ b/a02346_a2a7d01fc7720e936a430efc09d094c6c_icgraph.svg @@ -0,0 +1,275 @@ + + + + + + +async_semaphore_init + + +Node1 + + +async_semaphore_init + + + + + +Node2 + + +async_condition_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_pipe_init + + + + + +Node2->Node4 + + + + + + + + +Node13 + + +arax_throttle_init + + + + + +Node2->Node13 + + + + + + + + +Node5 + + +_arax_init + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_controller_init +_start + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_init + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +arax_plot_register +_metric + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_ptr_valid + + + + + +Node7->Node9 + + + + + + + + +Node9->Node8 + + + + + + + + +Node10 + + +_arax_assert_obj + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_ref + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +arax_data_ref_offset + + + + + +Node9->Node12 + + + + + + + + +Node11->Node12 + + + + + + + + +Node13->Node3 + + + + + + + + +Node13->Node4 + + + + + + + + diff --git a/a02346_a49083e8ceb4bfe7793ca1a5a799834d0_icgraph.map b/a02346_a49083e8ceb4bfe7793ca1a5a799834d0_icgraph.map new file mode 100644 index 00000000..e7913aa2 --- /dev/null +++ b/a02346_a49083e8ceb4bfe7793ca1a5a799834d0_icgraph.map @@ -0,0 +1,115 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02346_a49083e8ceb4bfe7793ca1a5a799834d0_icgraph.md5 b/a02346_a49083e8ceb4bfe7793ca1a5a799834d0_icgraph.md5 new file mode 100644 index 00000000..912fbd6a --- /dev/null +++ b/a02346_a49083e8ceb4bfe7793ca1a5a799834d0_icgraph.md5 @@ -0,0 +1 @@ +6f899899b172885af1cadafa6d00c5cd \ No newline at end of file diff --git a/a02346_a49083e8ceb4bfe7793ca1a5a799834d0_icgraph.svg b/a02346_a49083e8ceb4bfe7793ca1a5a799834d0_icgraph.svg new file mode 100644 index 00000000..7d236e39 --- /dev/null +++ b/a02346_a49083e8ceb4bfe7793ca1a5a799834d0_icgraph.svg @@ -0,0 +1,1037 @@ + + + + + + +getVmID + + +Node1 + + +getVmID + + + + + +Node2 + + +async_completion_wait + + + + + +Node1->Node2 + + + + + + + + +Node68 + + +async_semaphore_dec + + + + + +Node1->Node68 + + + + + + + + +Node69 + + +async_meta_exit + + + + + +Node1->Node69 + + + + + + + + +Node72 + + +async_thread + + + + + +Node1->Node72 + + + + + + + + +Node3 + + +arax_task_wait_done + + + + + +Node2->Node3 + + + + + + + + +Node9 + + +async_condition_lock + + + + + +Node2->Node9 + + + + + + + + +Node67 + + +async_condition_wait + + + + + +Node2->Node67 + + + + + + + + +Node2->Node68 + + + + + + + + +Node4 + + +arax_task_wait + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data_allocate +_remote + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_data_get + + + + + +Node4->Node6 + + + + + + + + +Node8 + + +arax_task_issue_sync + + + + + +Node4->Node8 + + + + + + + + +Node7 + + +arax_data_memcpy + + + + + +Node6->Node7 + + + + + + + + +Node10 + + +_arax_init + + + + + +Node9->Node10 + + + + + + + + +Node18 + + +arax_accel_add_task + + + + + +Node9->Node18 + + + + + + + + +Node24 + + +arax_accel_add_vaccel + + + + + +Node9->Node24 + + + + + + + + +Node30 + + +arax_accel_del_vaccel + + + + + +Node9->Node30 + + + + + + + + +Node32 + + +arax_accel_get_assigned +_vaccels + + + + + +Node9->Node32 + + + + + + + + +Node33 + + +arax_accel_wait_for_task + + + + + +Node9->Node33 + + + + + + + + +Node34 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node9->Node34 + + + + + + + + +Node35 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node9->Node35 + + + + + + + + +Node36 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node9->Node36 + + + + + + + + +Node37 + + +arax_pipe_orphan_stop + + + + + +Node9->Node37 + + + + + + + + +Node38 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node9->Node38 + + + + + + + + +Node39 + + +arax_throttle_size_dec + + + + + +Node9->Node39 + + + + + + + + +Node49 + + +arax_throttle_size_inc + + + + + +Node9->Node49 + + + + + + + + +Node11 + + +arax_controller_init +_start + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_init + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +arax_plot_register +_metric + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +arax_ptr_valid + + + + + +Node12->Node14 + + + + + + + + +Node14->Node13 + + + + + + + + +Node15 + + +_arax_assert_obj + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +arax_data_ref + + + + + +Node14->Node16 + + + + + + + + +Node19 + + +arax_vaccel_add_task + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +arax_task_submit + + + + + +Node19->Node20 + + + + + + + + +Node25 + + +arax_accel_set_physical + + + + + +Node24->Node25 + + + + + + + + +Node26 + + +arax_vaccel_init + + + + + +Node24->Node26 + + + + + + + + +Node27 + + +arax_accel_acquire_phys + + + + + +Node26->Node27 + + + + + + + + +Node28 + + +arax_accel_acquire_type + + + + + +Node26->Node28 + + + + + + + + +Node29 + + +arax_accel_init + + + + + +Node26->Node29 + + + + + + + + +Node31 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node30->Node31 + + + + + + + + +Node35->Node26 + + + + + + + + +Node38->Node24 + + + + + + + + +Node38->Node31 + + + + + + + + +Node40 + + +arax_accel_size_dec + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +arax_pipe_size_dec + + + + + +Node39->Node41 + + + + + + + + +Node40->Node5 + + + + + + + + +Node42 + + +arax_object_register + + + + + +Node41->Node42 + + + + + + + + +Node42->Node26 + + + + + + + + +Node42->Node29 + + + + + + + + +Node50 + + +arax_accel_size_inc + + + + + +Node49->Node50 + + + + + + + + +Node51 + + +arax_pipe_size_inc + + + + + +Node49->Node51 + + + + + + + + +Node52 + + +arax_object_ref_dec + + + + + +Node51->Node52 + + + + + + + + +Node64 + + +arax_object_ref_dec +_pre_locked + + + + + +Node51->Node64 + + + + + + + + +Node67->Node10 + + + + + + + + +Node67->Node33 + + + + + + + + +Node67->Node36 + + + + + + + + +Node67->Node39 + + + + + + + + +Node68->Node67 + + + + + + + + +Node70 + + +arax_pipe_exit + + + + + +Node69->Node70 + + + + + + + + +Node71 + + +arax_exit + + + + + +Node70->Node71 + + + + + + + + +Node73 + + +async_meta_init_always + + + + + +Node72->Node73 + + + + + + + + +Node73->Node10 + + + + + + + + diff --git a/a02346_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.map b/a02346_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.map new file mode 100644 index 00000000..25bd00f3 --- /dev/null +++ b/a02346_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.map @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02346_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.md5 b/a02346_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.md5 new file mode 100644 index 00000000..e3eacb16 --- /dev/null +++ b/a02346_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.md5 @@ -0,0 +1 @@ +1fe55d526546830510852ba8742420a5 \ No newline at end of file diff --git a/a02346_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.svg b/a02346_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.svg new file mode 100644 index 00000000..9d7cbf52 --- /dev/null +++ b/a02346_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.svg @@ -0,0 +1,646 @@ + + + + + + +async_semaphore_dec + + +Node1 + + +async_semaphore_dec + + + + + +Node2 + + +async_condition_wait + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +arax_accel_wait_for_task + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node2->Node12 + + + + + + + + +Node13 + + +arax_throttle_size_dec + + + + + +Node2->Node13 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + +Node14 + + +arax_accel_size_dec + + + + + +Node13->Node14 + + + + + + + + +Node16 + + +arax_pipe_size_dec + + + + + +Node13->Node16 + + + + + + + + +Node15 + + +arax_data_allocate +_remote + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +arax_object_register + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +arax_accel_init + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +arax_data_init_aligned + + + + + +Node17->Node19 + + + + + + + + +Node22 + + +arax_proc_init + + + + + +Node17->Node22 + + + + + + + + +Node24 + + +arax_task_alloc + + + + + +Node17->Node24 + + + + + + + + +Node31 + + +arax_vaccel_init + + + + + +Node17->Node31 + + + + + + + + +Node20 + + +arax_data_init + + + + + +Node19->Node20 + + + + + + + + +Node21 + + +ARAX_BUFFER + + + + + +Node20->Node21 + + + + + + + + +Node23 + + +arax_proc_register + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +arax_task_issue + + + + + +Node24->Node25 + + + + + + + + +Node25->Node15 + + + + + + + + +Node26 + + +arax_data_get + + + + + +Node25->Node26 + + + + + + + + +Node28 + + +arax_data_set + + + + + +Node25->Node28 + + + + + + + + +Node29 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node25->Node29 + + + + + + + + +Node30 + + +arax_task_issue_sync + + + + + +Node25->Node30 + + + + + + + + +Node27 + + +arax_data_memcpy + + + + + +Node26->Node27 + + + + + + + + +Node28->Node27 + + + + + + + + +Node31->Node18 + + + + + + + + +Node32 + + +arax_accel_acquire_phys + + + + + +Node31->Node32 + + + + + + + + +Node33 + + +arax_accel_acquire_type + + + + + +Node31->Node33 + + + + + + + + diff --git a/a02346_aa459f71b73bbc23f0b4bb342d093dde3_cgraph.map b/a02346_aa459f71b73bbc23f0b4bb342d093dde3_cgraph.map new file mode 100644 index 00000000..0228e76d --- /dev/null +++ b/a02346_aa459f71b73bbc23f0b4bb342d093dde3_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a02346_aa459f71b73bbc23f0b4bb342d093dde3_cgraph.md5 b/a02346_aa459f71b73bbc23f0b4bb342d093dde3_cgraph.md5 new file mode 100644 index 00000000..d3e498a3 --- /dev/null +++ b/a02346_aa459f71b73bbc23f0b4bb342d093dde3_cgraph.md5 @@ -0,0 +1 @@ +f73e7b875aaae7d21d33ffef313fb28d \ No newline at end of file diff --git a/a02346_aa459f71b73bbc23f0b4bb342d093dde3_cgraph.svg b/a02346_aa459f71b73bbc23f0b4bb342d093dde3_cgraph.svg new file mode 100644 index 00000000..28a7d037 --- /dev/null +++ b/a02346_aa459f71b73bbc23f0b4bb342d093dde3_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +_add_completion + + +Node1 + + +_add_completion + + + + + +Node2 + + +utils_list_add + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +utils_list_node_add + + + + + +Node2->Node3 + + + + + + + + diff --git a/a02346_aa459f71b73bbc23f0b4bb342d093dde3_icgraph.map b/a02346_aa459f71b73bbc23f0b4bb342d093dde3_icgraph.map new file mode 100644 index 00000000..11d77854 --- /dev/null +++ b/a02346_aa459f71b73bbc23f0b4bb342d093dde3_icgraph.map @@ -0,0 +1,123 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02346_aa459f71b73bbc23f0b4bb342d093dde3_icgraph.md5 b/a02346_aa459f71b73bbc23f0b4bb342d093dde3_icgraph.md5 new file mode 100644 index 00000000..5f3f9ce4 --- /dev/null +++ b/a02346_aa459f71b73bbc23f0b4bb342d093dde3_icgraph.md5 @@ -0,0 +1 @@ +71d25269af6cecf4e2e6cdbe47d020bf \ No newline at end of file diff --git a/a02346_aa459f71b73bbc23f0b4bb342d093dde3_icgraph.svg b/a02346_aa459f71b73bbc23f0b4bb342d093dde3_icgraph.svg new file mode 100644 index 00000000..d86ff45c --- /dev/null +++ b/a02346_aa459f71b73bbc23f0b4bb342d093dde3_icgraph.svg @@ -0,0 +1,1109 @@ + + + + + + +_add_completion + + +Node1 + + +_add_completion + + + + + +Node2 + + +async_completion_wait + + + + + +Node1->Node2 + + + + + + + + +Node69 + + +async_semaphore_inc + + + + + +Node1->Node69 + + + + + + + + +Node3 + + +arax_task_wait_done + + + + + +Node2->Node3 + + + + + + + + +Node9 + + +async_condition_lock + + + + + +Node2->Node9 + + + + + + + + +Node67 + + +async_condition_wait + + + + + +Node2->Node67 + + + + + + + + +Node68 + + +async_semaphore_dec + + + + + +Node2->Node68 + + + + + + + + +Node4 + + +arax_task_wait + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data_allocate +_remote + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_data_get + + + + + +Node4->Node6 + + + + + + + + +Node8 + + +arax_task_issue_sync + + + + + +Node4->Node8 + + + + + + + + +Node7 + + +arax_data_memcpy + + + + + +Node6->Node7 + + + + + + + + +Node10 + + +_arax_init + + + + + +Node9->Node10 + + + + + + + + +Node18 + + +arax_accel_add_task + + + + + +Node9->Node18 + + + + + + + + +Node24 + + +arax_accel_add_vaccel + + + + + +Node9->Node24 + + + + + + + + +Node30 + + +arax_accel_del_vaccel + + + + + +Node9->Node30 + + + + + + + + +Node32 + + +arax_accel_get_assigned +_vaccels + + + + + +Node9->Node32 + + + + + + + + +Node33 + + +arax_accel_wait_for_task + + + + + +Node9->Node33 + + + + + + + + +Node34 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node9->Node34 + + + + + + + + +Node35 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node9->Node35 + + + + + + + + +Node36 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node9->Node36 + + + + + + + + +Node37 + + +arax_pipe_orphan_stop + + + + + +Node9->Node37 + + + + + + + + +Node38 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node9->Node38 + + + + + + + + +Node39 + + +arax_throttle_size_dec + + + + + +Node9->Node39 + + + + + + + + +Node49 + + +arax_throttle_size_inc + + + + + +Node9->Node49 + + + + + + + + +Node11 + + +arax_controller_init +_start + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_init + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +arax_plot_register +_metric + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +arax_ptr_valid + + + + + +Node12->Node14 + + + + + + + + +Node14->Node13 + + + + + + + + +Node15 + + +_arax_assert_obj + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +arax_data_ref + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +arax_data_ref_offset + + + + + +Node14->Node17 + + + + + + + + +Node16->Node17 + + + + + + + + +Node19 + + +arax_vaccel_add_task + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +arax_task_submit + + + + + +Node19->Node20 + + + + + + + + +Node21 + + +arax_task_issue + + + + + +Node20->Node21 + + + + + + + + +Node21->Node5 + + + + + + + + +Node21->Node6 + + + + + + + + +Node21->Node8 + + + + + + + + +Node25 + + +arax_accel_set_physical + + + + + +Node24->Node25 + + + + + + + + +Node26 + + +arax_vaccel_init + + + + + +Node24->Node26 + + + + + + + + +Node27 + + +arax_accel_acquire_phys + + + + + +Node26->Node27 + + + + + + + + +Node28 + + +arax_accel_acquire_type + + + + + +Node26->Node28 + + + + + + + + +Node29 + + +arax_accel_init + + + + + +Node26->Node29 + + + + + + + + +Node31 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node30->Node31 + + + + + + + + +Node35->Node26 + + + + + + + + +Node38->Node24 + + + + + + + + +Node38->Node31 + + + + + + + + +Node40 + + +arax_accel_size_dec + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +arax_pipe_size_dec + + + + + +Node39->Node41 + + + + + + + + +Node40->Node5 + + + + + + + + +Node42 + + +arax_object_register + + + + + +Node41->Node42 + + + + + + + + +Node42->Node26 + + + + + + + + +Node42->Node29 + + + + + + + + +Node50 + + +arax_accel_size_inc + + + + + +Node49->Node50 + + + + + + + + +Node51 + + +arax_pipe_size_inc + + + + + +Node49->Node51 + + + + + + + + +Node52 + + +arax_object_ref_dec + + + + + +Node51->Node52 + + + + + + + + +Node64 + + +arax_object_ref_dec +_pre_locked + + + + + +Node51->Node64 + + + + + + + + +Node67->Node10 + + + + + + + + +Node67->Node33 + + + + + + + + +Node67->Node36 + + + + + + + + +Node67->Node39 + + + + + + + + +Node68->Node67 + + + + + + + + +Node70 + + +async_condition_notify + + + + + +Node69->Node70 + + + + + + + + +Node70->Node18 + + + + + + + + +Node70->Node24 + + + + + + + + +Node70->Node30 + + + + + + + + +Node70->Node35 + + + + + + + + +Node70->Node37 + + + + + + + + +Node70->Node49 + + + + + + + + +Node71 + + +arax_controller_init_done + + + + + +Node70->Node71 + + + + + + + + diff --git a/a02346_ab2195e0b081f467f8e058d1406bd4fc7_cgraph.map b/a02346_ab2195e0b081f467f8e058d1406bd4fc7_cgraph.map new file mode 100644 index 00000000..9d7016fe --- /dev/null +++ b/a02346_ab2195e0b081f467f8e058d1406bd4fc7_cgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a02346_ab2195e0b081f467f8e058d1406bd4fc7_cgraph.md5 b/a02346_ab2195e0b081f467f8e058d1406bd4fc7_cgraph.md5 new file mode 100644 index 00000000..48be8398 --- /dev/null +++ b/a02346_ab2195e0b081f467f8e058d1406bd4fc7_cgraph.md5 @@ -0,0 +1 @@ +2dca2b17bea96635c09be01db4d46dc0 \ No newline at end of file diff --git a/a02346_ab2195e0b081f467f8e058d1406bd4fc7_cgraph.svg b/a02346_ab2195e0b081f467f8e058d1406bd4fc7_cgraph.svg new file mode 100644 index 00000000..675daca2 --- /dev/null +++ b/a02346_ab2195e0b081f467f8e058d1406bd4fc7_cgraph.svg @@ -0,0 +1,75 @@ + + + + + + +async_thread + + +Node1 + + +async_thread + + + + + +Node2 + + +async_completion_check + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +getVmID + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +utils_list_del + + + + + +Node1->Node4 + + + + + + + + diff --git a/a02346_ab2195e0b081f467f8e058d1406bd4fc7_icgraph.map b/a02346_ab2195e0b081f467f8e058d1406bd4fc7_icgraph.map new file mode 100644 index 00000000..a10ad788 --- /dev/null +++ b/a02346_ab2195e0b081f467f8e058d1406bd4fc7_icgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02346_ab2195e0b081f467f8e058d1406bd4fc7_icgraph.md5 b/a02346_ab2195e0b081f467f8e058d1406bd4fc7_icgraph.md5 new file mode 100644 index 00000000..88ba13eb --- /dev/null +++ b/a02346_ab2195e0b081f467f8e058d1406bd4fc7_icgraph.md5 @@ -0,0 +1 @@ +9b35ff42063b821e4d627926b70a5afc \ No newline at end of file diff --git a/a02346_ab2195e0b081f467f8e058d1406bd4fc7_icgraph.svg b/a02346_ab2195e0b081f467f8e058d1406bd4fc7_icgraph.svg new file mode 100644 index 00000000..23a16f7d --- /dev/null +++ b/a02346_ab2195e0b081f467f8e058d1406bd4fc7_icgraph.svg @@ -0,0 +1,203 @@ + + + + + + +async_thread + + +Node1 + + +async_thread + + + + + +Node2 + + +async_meta_init_always + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + diff --git a/a02346_ab5d38a2680290bd159549efaa41b925b_icgraph.map b/a02346_ab5d38a2680290bd159549efaa41b925b_icgraph.map new file mode 100644 index 00000000..bf4e7a16 --- /dev/null +++ b/a02346_ab5d38a2680290bd159549efaa41b925b_icgraph.map @@ -0,0 +1,122 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02346_ab5d38a2680290bd159549efaa41b925b_icgraph.md5 b/a02346_ab5d38a2680290bd159549efaa41b925b_icgraph.md5 new file mode 100644 index 00000000..62b8d2a1 --- /dev/null +++ b/a02346_ab5d38a2680290bd159549efaa41b925b_icgraph.md5 @@ -0,0 +1 @@ +b4551c93e996e23b180ce3f25bdd78ce \ No newline at end of file diff --git a/a02346_ab5d38a2680290bd159549efaa41b925b_icgraph.svg b/a02346_ab5d38a2680290bd159549efaa41b925b_icgraph.svg new file mode 100644 index 00000000..e4920aa3 --- /dev/null +++ b/a02346_ab5d38a2680290bd159549efaa41b925b_icgraph.svg @@ -0,0 +1,1100 @@ + + + + + + +wakeupVm + + +Node1 + + +wakeupVm + + + + + +Node2 + + +async_completion_complete + + + + + +Node1->Node2 + + + + + + + + +Node74 + + +async_meta_exit + + + + + +Node1->Node74 + + + + + + + + +Node77 + + +async_semaphore_dec + + + + + +Node1->Node77 + + + + + + + + +Node3 + + +arax_task_mark_done + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +async_condition_init + + + + + +Node2->Node4 + + + + + + + + +Node16 + + +async_condition_unlock + + + + + +Node2->Node16 + + + + + + + + +Node70 + + +async_condition_wait + + + + + +Node2->Node70 + + + + + + + + +Node71 + + +async_semaphore_inc + + + + + +Node2->Node71 + + + + + + + + +Node5 + + +arax_accel_init + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_pipe_init + + + + + +Node4->Node6 + + + + + + + + +Node15 + + +arax_throttle_init + + + + + +Node4->Node15 + + + + + + + + +Node7 + + +_arax_init + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_controller_init +_start + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_init + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_plot_register +_metric + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_ptr_valid + + + + + +Node9->Node11 + + + + + + + + +Node11->Node10 + + + + + + + + +Node12 + + +_arax_assert_obj + + + + + +Node11->Node12 + + + + + + + + +Node15->Node5 + + + + + + + + +Node15->Node6 + + + + + + + + +Node16->Node7 + + + + + + + + +Node17 + + +arax_accel_add_task + + + + + +Node16->Node17 + + + + + + + + +Node27 + + +arax_accel_add_vaccel + + + + + +Node16->Node27 + + + + + + + + +Node32 + + +arax_accel_del_vaccel + + + + + +Node16->Node32 + + + + + + + + +Node34 + + +arax_accel_get_assigned +_vaccels + + + + + +Node16->Node34 + + + + + + + + +Node35 + + +arax_accel_wait_for_task + + + + + +Node16->Node35 + + + + + + + + +Node36 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node16->Node36 + + + + + + + + +Node37 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node16->Node37 + + + + + + + + +Node38 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node16->Node38 + + + + + + + + +Node39 + + +arax_pipe_orphan_stop + + + + + +Node16->Node39 + + + + + + + + +Node40 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node16->Node40 + + + + + + + + +Node41 + + +arax_throttle_size_dec + + + + + +Node16->Node41 + + + + + + + + +Node51 + + +arax_throttle_size_inc + + + + + +Node16->Node51 + + + + + + + + +Node69 + + +async_condition_init + + + + + +Node16->Node69 + + + + + + + + +Node18 + + +arax_vaccel_add_task + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +arax_task_submit + + + + + +Node18->Node19 + + + + + + + + +Node28 + + +arax_accel_set_physical + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +arax_vaccel_init + + + + + +Node27->Node29 + + + + + + + + +Node29->Node5 + + + + + + + + +Node30 + + +arax_accel_acquire_phys + + + + + +Node29->Node30 + + + + + + + + +Node31 + + +arax_accel_acquire_type + + + + + +Node29->Node31 + + + + + + + + +Node33 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node32->Node33 + + + + + + + + +Node37->Node29 + + + + + + + + +Node40->Node27 + + + + + + + + +Node40->Node33 + + + + + + + + +Node42 + + +arax_accel_size_dec + + + + + +Node41->Node42 + + + + + + + + +Node43 + + +arax_pipe_size_dec + + + + + +Node41->Node43 + + + + + + + + +Node21 + + +arax_data_allocate +_remote + + + + + +Node42->Node21 + + + + + + + + +Node44 + + +arax_object_register + + + + + +Node43->Node44 + + + + + + + + +Node44->Node5 + + + + + + + + +Node44->Node29 + + + + + + + + +Node52 + + +arax_accel_size_inc + + + + + +Node51->Node52 + + + + + + + + +Node53 + + +arax_pipe_size_inc + + + + + +Node51->Node53 + + + + + + + + +Node54 + + +arax_object_ref_dec + + + + + +Node53->Node54 + + + + + + + + +Node66 + + +arax_object_ref_dec +_pre_locked + + + + + +Node53->Node66 + + + + + + + + +Node70->Node7 + + + + + + + + +Node70->Node35 + + + + + + + + +Node70->Node38 + + + + + + + + +Node70->Node41 + + + + + + + + +Node72 + + +async_condition_notify + + + + + +Node71->Node72 + + + + + + + + +Node72->Node17 + + + + + + + + +Node72->Node27 + + + + + + + + +Node72->Node32 + + + + + + + + +Node72->Node37 + + + + + + + + +Node72->Node39 + + + + + + + + +Node72->Node51 + + + + + + + + +Node73 + + +arax_controller_init_done + + + + + +Node72->Node73 + + + + + + + + +Node75 + + +arax_pipe_exit + + + + + +Node74->Node75 + + + + + + + + +Node76 + + +arax_exit + + + + + +Node75->Node76 + + + + + + + + +Node77->Node70 + + + + + + + + diff --git a/a02346_ac728117d73179c279de49e01ae905dda_icgraph.map b/a02346_ac728117d73179c279de49e01ae905dda_icgraph.map new file mode 100644 index 00000000..770b994d --- /dev/null +++ b/a02346_ac728117d73179c279de49e01ae905dda_icgraph.map @@ -0,0 +1,84 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02346_ac728117d73179c279de49e01ae905dda_icgraph.md5 b/a02346_ac728117d73179c279de49e01ae905dda_icgraph.md5 new file mode 100644 index 00000000..4e630ebc --- /dev/null +++ b/a02346_ac728117d73179c279de49e01ae905dda_icgraph.md5 @@ -0,0 +1 @@ +d2637019a442b4ae850e5cd9204531b0 \ No newline at end of file diff --git a/a02346_ac728117d73179c279de49e01ae905dda_icgraph.svg b/a02346_ac728117d73179c279de49e01ae905dda_icgraph.svg new file mode 100644 index 00000000..98dc1e20 --- /dev/null +++ b/a02346_ac728117d73179c279de49e01ae905dda_icgraph.svg @@ -0,0 +1,754 @@ + + + + + + +async_completion_init + + +Node1 + + +async_completion_init + + + + + +Node2 + + +async_condition_init + + + + + +Node1->Node2 + + + + + + + + +Node14 + + +async_semaphore_dec + + + + + +Node1->Node14 + + + + + + + + +Node3 + + +arax_accel_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_pipe_init + + + + + +Node2->Node4 + + + + + + + + +Node13 + + +arax_throttle_init + + + + + +Node2->Node13 + + + + + + + + +Node5 + + +_arax_init + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_controller_init +_start + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_init + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +arax_plot_register +_metric + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_ptr_valid + + + + + +Node7->Node9 + + + + + + + + +Node9->Node8 + + + + + + + + +Node10 + + +_arax_assert_obj + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_ref + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +arax_data_ref_offset + + + + + +Node9->Node12 + + + + + + + + +Node11->Node12 + + + + + + + + +Node13->Node3 + + + + + + + + +Node13->Node4 + + + + + + + + +Node15 + + +async_condition_wait + + + + + +Node14->Node15 + + + + + + + + +Node15->Node5 + + + + + + + + +Node16 + + +arax_accel_wait_for_task + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +arax_throttle_size_dec + + + + + +Node15->Node18 + + + + + + + + +Node19 + + +arax_accel_size_dec + + + + + +Node18->Node19 + + + + + + + + +Node21 + + +arax_pipe_size_dec + + + + + +Node18->Node21 + + + + + + + + +Node20 + + +arax_data_allocate +_remote + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +arax_object_register + + + + + +Node21->Node22 + + + + + + + + +Node22->Node3 + + + + + + + + +Node23 + + +arax_data_init_aligned + + + + + +Node22->Node23 + + + + + + + + +Node26 + + +arax_proc_init + + + + + +Node22->Node26 + + + + + + + + +Node28 + + +arax_task_alloc + + + + + +Node22->Node28 + + + + + + + + +Node35 + + +arax_vaccel_init + + + + + +Node22->Node35 + + + + + + + + +Node24 + + +arax_data_init + + + + + +Node23->Node24 + + + + + + + + +Node25 + + +ARAX_BUFFER + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +arax_proc_register + + + + + +Node26->Node27 + + + + + + + + +Node29 + + +arax_task_issue + + + + + +Node28->Node29 + + + + + + + + +Node29->Node20 + + + + + + + + +Node30 + + +arax_data_get + + + + + +Node29->Node30 + + + + + + + + +Node32 + + +arax_data_set + + + + + +Node29->Node32 + + + + + + + + +Node33 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node29->Node33 + + + + + + + + +Node34 + + +arax_task_issue_sync + + + + + +Node29->Node34 + + + + + + + + +Node31 + + +arax_data_memcpy + + + + + +Node30->Node31 + + + + + + + + +Node32->Node31 + + + + + + + + +Node35->Node3 + + + + + + + + +Node36 + + +arax_accel_acquire_phys + + + + + +Node35->Node36 + + + + + + + + +Node37 + + +arax_accel_acquire_type + + + + + +Node35->Node37 + + + + + + + + diff --git a/a02346_ad1d30ecbf6bff6457b680aa940281072_icgraph.map b/a02346_ad1d30ecbf6bff6457b680aa940281072_icgraph.map new file mode 100644 index 00000000..b3bebf49 --- /dev/null +++ b/a02346_ad1d30ecbf6bff6457b680aa940281072_icgraph.map @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02346_ad1d30ecbf6bff6457b680aa940281072_icgraph.md5 b/a02346_ad1d30ecbf6bff6457b680aa940281072_icgraph.md5 new file mode 100644 index 00000000..2870da83 --- /dev/null +++ b/a02346_ad1d30ecbf6bff6457b680aa940281072_icgraph.md5 @@ -0,0 +1 @@ +b92b771d5678ba39d5d8d070b83d74e1 \ No newline at end of file diff --git a/a02346_ad1d30ecbf6bff6457b680aa940281072_icgraph.svg b/a02346_ad1d30ecbf6bff6457b680aa940281072_icgraph.svg new file mode 100644 index 00000000..941090be --- /dev/null +++ b/a02346_ad1d30ecbf6bff6457b680aa940281072_icgraph.svg @@ -0,0 +1,1118 @@ + + + + + + +async_completion_complete + + +Node1 + + +async_completion_complete + + + + + +Node2 + + +async_condition_init + + + + + +Node1->Node2 + + + + + + + + +Node14 + + +async_condition_unlock + + + + + +Node1->Node14 + + + + + + + + +Node68 + + +async_condition_wait + + + + + +Node1->Node68 + + + + + + + + +Node69 + + +async_semaphore_inc + + + + + +Node1->Node69 + + + + + + + + +Node3 + + +arax_accel_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_pipe_init + + + + + +Node2->Node4 + + + + + + + + +Node13 + + +arax_throttle_init + + + + + +Node2->Node13 + + + + + + + + +Node5 + + +_arax_init + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_controller_init +_start + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_init + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +arax_plot_register +_metric + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_ptr_valid + + + + + +Node7->Node9 + + + + + + + + +Node9->Node8 + + + + + + + + +Node10 + + +_arax_assert_obj + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_ref + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +arax_data_ref_offset + + + + + +Node9->Node12 + + + + + + + + +Node11->Node12 + + + + + + + + +Node13->Node3 + + + + + + + + +Node13->Node4 + + + + + + + + +Node14->Node5 + + + + + + + + +Node15 + + +arax_accel_add_task + + + + + +Node14->Node15 + + + + + + + + +Node25 + + +arax_accel_add_vaccel + + + + + +Node14->Node25 + + + + + + + + +Node30 + + +arax_accel_del_vaccel + + + + + +Node14->Node30 + + + + + + + + +Node32 + + +arax_accel_get_assigned +_vaccels + + + + + +Node14->Node32 + + + + + + + + +Node33 + + +arax_accel_wait_for_task + + + + + +Node14->Node33 + + + + + + + + +Node34 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node14->Node34 + + + + + + + + +Node35 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node14->Node35 + + + + + + + + +Node36 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node14->Node36 + + + + + + + + +Node37 + + +arax_pipe_orphan_stop + + + + + +Node14->Node37 + + + + + + + + +Node38 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node14->Node38 + + + + + + + + +Node39 + + +arax_throttle_size_dec + + + + + +Node14->Node39 + + + + + + + + +Node49 + + +arax_throttle_size_inc + + + + + +Node14->Node49 + + + + + + + + +Node67 + + +async_condition_init + + + + + +Node14->Node67 + + + + + + + + +Node16 + + +arax_vaccel_add_task + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +arax_task_submit + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +arax_task_issue + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +arax_data_allocate +_remote + + + + + +Node18->Node19 + + + + + + + + +Node26 + + +arax_accel_set_physical + + + + + +Node25->Node26 + + + + + + + + +Node27 + + +arax_vaccel_init + + + + + +Node25->Node27 + + + + + + + + +Node27->Node3 + + + + + + + + +Node28 + + +arax_accel_acquire_phys + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +arax_accel_acquire_type + + + + + +Node27->Node29 + + + + + + + + +Node31 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node30->Node31 + + + + + + + + +Node35->Node27 + + + + + + + + +Node38->Node25 + + + + + + + + +Node38->Node31 + + + + + + + + +Node40 + + +arax_accel_size_dec + + + + + +Node39->Node40 + + + + + + + + +Node41 + + +arax_pipe_size_dec + + + + + +Node39->Node41 + + + + + + + + +Node40->Node19 + + + + + + + + +Node42 + + +arax_object_register + + + + + +Node41->Node42 + + + + + + + + +Node42->Node3 + + + + + + + + +Node42->Node27 + + + + + + + + +Node43 + + +arax_data_init_aligned + + + + + +Node42->Node43 + + + + + + + + +Node46 + + +arax_proc_init + + + + + +Node42->Node46 + + + + + + + + +Node48 + + +arax_task_alloc + + + + + +Node42->Node48 + + + + + + + + +Node48->Node18 + + + + + + + + +Node50 + + +arax_accel_size_inc + + + + + +Node49->Node50 + + + + + + + + +Node51 + + +arax_pipe_size_inc + + + + + +Node49->Node51 + + + + + + + + +Node52 + + +arax_object_ref_dec + + + + + +Node51->Node52 + + + + + + + + +Node64 + + +arax_object_ref_dec +_pre_locked + + + + + +Node51->Node64 + + + + + + + + +Node68->Node5 + + + + + + + + +Node68->Node33 + + + + + + + + +Node68->Node36 + + + + + + + + +Node68->Node39 + + + + + + + + +Node70 + + +async_condition_notify + + + + + +Node69->Node70 + + + + + + + + +Node70->Node15 + + + + + + + + +Node70->Node25 + + + + + + + + +Node70->Node30 + + + + + + + + +Node70->Node35 + + + + + + + + +Node70->Node37 + + + + + + + + +Node70->Node49 + + + + + + + + +Node71 + + +arax_controller_init_done + + + + + +Node70->Node71 + + + + + + + + diff --git a/a02346_ae66ae81847153386c57918f4d91be8a7_icgraph.map b/a02346_ae66ae81847153386c57918f4d91be8a7_icgraph.map new file mode 100644 index 00000000..eea90558 --- /dev/null +++ b/a02346_ae66ae81847153386c57918f4d91be8a7_icgraph.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02346_ae66ae81847153386c57918f4d91be8a7_icgraph.md5 b/a02346_ae66ae81847153386c57918f4d91be8a7_icgraph.md5 new file mode 100644 index 00000000..cf037a62 --- /dev/null +++ b/a02346_ae66ae81847153386c57918f4d91be8a7_icgraph.md5 @@ -0,0 +1 @@ +0d456f0c4efe70ddbd617e5b3a435753 \ No newline at end of file diff --git a/a02346_ae66ae81847153386c57918f4d91be8a7_icgraph.svg b/a02346_ae66ae81847153386c57918f4d91be8a7_icgraph.svg new file mode 100644 index 00000000..27dc0b7b --- /dev/null +++ b/a02346_ae66ae81847153386c57918f4d91be8a7_icgraph.svg @@ -0,0 +1,221 @@ + + + + + + +async_completion_check + + +Node1 + + +async_completion_check + + + + + +Node2 + + +async_thread + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_meta_init_always + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +_arax_init + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_controller_init +_start + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_init + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_plot_register +_metric + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_ptr_valid + + + + + +Node6->Node8 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +_arax_assert_obj + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_data_ref + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +arax_data_ref_offset + + + + + +Node8->Node11 + + + + + + + + +Node10->Node11 + + + + + + + + diff --git a/a02346_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.map b/a02346_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.map new file mode 100644 index 00000000..d9fe8046 --- /dev/null +++ b/a02346_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.map @@ -0,0 +1,117 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02346_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.md5 b/a02346_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.md5 new file mode 100644 index 00000000..a27ecf50 --- /dev/null +++ b/a02346_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.md5 @@ -0,0 +1 @@ +6bd6895652061d305af3907d9f0a3908 \ No newline at end of file diff --git a/a02346_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.svg b/a02346_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.svg new file mode 100644 index 00000000..37b78145 --- /dev/null +++ b/a02346_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.svg @@ -0,0 +1,1055 @@ + + + + + + +async_completion_wait + + +Node1 + + +async_completion_wait + + + + + +Node2 + + +async_condition_lock + + + + + +Node1->Node2 + + + + + + + + +Node64 + + +async_condition_wait + + + + + +Node1->Node64 + + + + + + + + +Node65 + + +async_semaphore_dec + + + + + +Node1->Node65 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +arax_accel_add_task + + + + + +Node2->Node11 + + + + + + + + +Node21 + + +arax_accel_add_vaccel + + + + + +Node2->Node21 + + + + + + + + +Node27 + + +arax_accel_del_vaccel + + + + + +Node2->Node27 + + + + + + + + +Node29 + + +arax_accel_get_assigned +_vaccels + + + + + +Node2->Node29 + + + + + + + + +Node30 + + +arax_accel_wait_for_task + + + + + +Node2->Node30 + + + + + + + + +Node31 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node2->Node31 + + + + + + + + +Node32 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node2->Node32 + + + + + + + + +Node33 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node2->Node33 + + + + + + + + +Node34 + + +arax_pipe_orphan_stop + + + + + +Node2->Node34 + + + + + + + + +Node35 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node2->Node35 + + + + + + + + +Node36 + + +arax_throttle_size_dec + + + + + +Node2->Node36 + + + + + + + + +Node46 + + +arax_throttle_size_inc + + + + + +Node2->Node46 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + +Node12 + + +arax_vaccel_add_task + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +arax_task_submit + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +arax_task_issue + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +arax_data_allocate +_remote + + + + + +Node14->Node15 + + + + + + + + +Node19 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node14->Node19 + + + + + + + + +Node22 + + +arax_accel_set_physical + + + + + +Node21->Node22 + + + + + + + + +Node23 + + +arax_vaccel_init + + + + + +Node21->Node23 + + + + + + + + +Node24 + + +arax_accel_acquire_phys + + + + + +Node23->Node24 + + + + + + + + +Node25 + + +arax_accel_acquire_type + + + + + +Node23->Node25 + + + + + + + + +Node26 + + +arax_accel_init + + + + + +Node23->Node26 + + + + + + + + +Node28 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node27->Node28 + + + + + + + + +Node32->Node23 + + + + + + + + +Node35->Node21 + + + + + + + + +Node35->Node28 + + + + + + + + +Node37 + + +arax_accel_size_dec + + + + + +Node36->Node37 + + + + + + + + +Node38 + + +arax_pipe_size_dec + + + + + +Node36->Node38 + + + + + + + + +Node37->Node15 + + + + + + + + +Node39 + + +arax_object_register + + + + + +Node38->Node39 + + + + + + + + +Node39->Node23 + + + + + + + + +Node39->Node26 + + + + + + + + +Node40 + + +arax_data_init_aligned + + + + + +Node39->Node40 + + + + + + + + +Node43 + + +arax_proc_init + + + + + +Node39->Node43 + + + + + + + + +Node45 + + +arax_task_alloc + + + + + +Node39->Node45 + + + + + + + + +Node45->Node14 + + + + + + + + +Node47 + + +arax_accel_size_inc + + + + + +Node46->Node47 + + + + + + + + +Node48 + + +arax_pipe_size_inc + + + + + +Node46->Node48 + + + + + + + + +Node49 + + +arax_object_ref_dec + + + + + +Node48->Node49 + + + + + + + + +Node61 + + +arax_object_ref_dec +_pre_locked + + + + + +Node48->Node61 + + + + + + + + +Node49->Node19 + + + + + + + + +Node50 + + +arax_accel_list_free + + + + + +Node49->Node50 + + + + + + + + +Node51 + + +arax_accel_release + + + + + +Node49->Node51 + + + + + + + + +Node52 + + +arax_data_free + + + + + +Node49->Node52 + + + + + + + + +Node53 + + +arax_data_migrate_accel + + + + + +Node49->Node53 + + + + + + + + +Node57 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node49->Node57 + + + + + + + + +Node51->Node31 + + + + + + + + +Node64->Node3 + + + + + + + + +Node64->Node30 + + + + + + + + +Node64->Node33 + + + + + + + + +Node64->Node36 + + + + + + + + +Node65->Node64 + + + + + + + + diff --git a/a02346_source.html b/a02346_source.html new file mode 100644 index 00000000..d2917173 --- /dev/null +++ b/a02346_source.html @@ -0,0 +1,428 @@ + + + + + + + +Arax: async.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ivshmem/async.c
+
+
+Go to the documentation of this file.
1#include "conf.h"
+
2#include "async.h"
+
3#include "utils/config.h"
+
4#include <stdlib.h>
+
5#include <stdio.h>
+
6#include <unistd.h>
+
7#include <fcntl.h>
+
8#include <sys/mman.h>
+
9
+
10// Taken from ivshmem manual/thesis:
+
11// See Shared-Memory Optimizations for Virtual Machines by A. Cameron Macdonell
+
12// Sections 4.6 (4.6.5 and 4.6.6 in particular)
+ +
14{
+
15 ISR_REG = 0, // < Not used(yet)
+
16 IMR_REG = 1, // < Not used(yet)
+
17 VM_ID_REG = 2, // < My VMs ID
+
18 BELL_REG = 3 // < [DEST_VM_ID,FD_NUMBER]
+
19};
+
20
+
21struct ivshmem
+
22{
+
23 volatile unsigned int regs[64];
+
24};
+
25
+
26void wakeupVm(async_meta_s *meta, unsigned int vm_id)
+
27{
+
28 meta->regs->regs[BELL_REG] = (vm_id << 16) | 0; // Wakeup
+
29}
+
30
+
31unsigned int getVmID(async_meta_s *meta)
+
32{
+
33 return meta->regs->regs[VM_ID_REG];
+
34}
+
35
+
36static int reg_fd = 0;
+
37void* async_thread(void *data)
+
38{
+
39 async_meta_s *meta = data;
+ + +
42 async_completion_s *compl;
+
43 int buff;
+
44
+
45 printf("async_thread started (VM:%d)!\n", getVmID(meta));
+
46 while (reg_fd) {
+
47 // Waiting for 'interrupt'
+
48 read(reg_fd, &buff, sizeof(buff));
+
49 // something happened
+ +
51 {
+
52 compl = itr->owner;
+
53 // Should check completion is mine?
+
54 if (async_completion_check(compl) ) {
+
55 utils_list_del(&(meta->outstanding), itr);
+
56 pthread_mutex_unlock(&(compl->mutex));
+
57 }
+
58 }
+
59 }
+
60 printf("async_thread stoped (VM:%d)!\n", getVmID(meta));
+
61 return 0;
+
62}
+
63
+ +
65{
+
66 utils_spinlock_lock(&(meta->lock));
+
67 utils_list_add(&(meta->outstanding), &(completion->outstanding));
+ +
69}
+
70
+ +
72{
+
73 int shm_ivshmem = 0;
+
74 char *config = utils_config_alloc_path(ARAX_CONFIG_FILE);
+
75
+
76 utils_config_get_bool(config, "shm_ivshmem", &shm_ivshmem, 0);
+ +
78 if (!shm_ivshmem) {
+
79 fprintf(stderr, "Attempted to use ivshmem synchronization on non-"
+
80 "ivshmem setup!\n");
+
81 abort();
+
82 }
+
83
+
84 utils_spinlock_init(&(meta->lock));
+ +
86 meta->alloc = alloc;
+
87}
+
88
+ +
90{
+
91 char shm_file[1024];
+
92 char *config = utils_config_alloc_path(ARAX_CONFIG_FILE);
+
93
+
94 if (!utils_config_get_str(config, "shm_file", shm_file, 1024, 0) ) {
+ +
96 abort();
+
97 }
+ +
99
+
100 reg_fd = open(shm_file, O_CREAT | O_RDWR, 0644);
+
101
+
102 if (reg_fd <= 0) {
+
103 fprintf(stderr, "Failed to open shm_file: %s\n", shm_file);
+
104 abort();
+
105 }
+
106
+
107 meta->regs = mmap(meta->regs, 256, PROT_READ | PROT_WRITE,
+
108 MAP_SHARED, reg_fd, 0);
+
109
+
110 fprintf(stderr, "Ivshmem regs mapped at %p\n", meta->regs);
+
111
+
112 if (pthread_create(&(meta->thread), 0, async_thread, meta)) {
+
113 fprintf(stderr, "Failed to spawn async_thread\n");
+
114 abort();
+
115 }
+
116}
+
117
+ +
119{
+
120 completion->meta = meta;
+
121 utils_list_node_init(&(completion->outstanding), completion);
+
122 pthread_mutexattr_init(&(completion->attr));
+
123 pthread_mutexattr_setpshared(&(completion->attr), PTHREAD_PROCESS_SHARED);
+
124 pthread_mutex_init(&(completion->mutex), &(completion->attr));
+
125 completion->completed = 0; // Completion not completed
+
126 pthread_mutex_lock(&(completion->mutex)); // wait should block
+
127}
+
128
+ +
130{
+
131 completion->completed = 1; // Mark as completed
+
132 wakeupVm(completion->meta, completion->vm_id);
+
133}
+
134
+ +
136{
+
137 if (pthread_mutex_trylock(&(completion->mutex))) { // Failed, so add me to the outstanding list
+
138 _add_completion(completion->meta, completion);
+
139 }
+
140 completion->vm_id = getVmID(completion->meta);
+
141 pthread_mutex_lock(&(completion->mutex)); // Will sleep until mutex unlocked.
+
142}
+
143
+ +
145{
+
146 return completion->completed;
+
147}
+
148
+ +
150{
+ + +
153 sem->value = 0;
+
154}
+
155
+ +
157{
+
158 return sem->value;
+
159}
+
160
+ +
162{
+
163 int val = __sync_fetch_and_add(&(sem->value), 1);
+
164 utils_list_node_s *node, *next;
+
165
+
166 // val contains the min number of penders that must wake up.
+
167 if (sem->pending_list.length) { // Seem to have penders
+ +
169 do{ // Lets wake em
+
170 node = sem->pending_list.head.next;
+
171 next = node->next;
+
172 utils_list_del(&(sem->pending_list), node);
+
173 _add_completion(sem->meta, node->owner);
+
174 async_completion_complete(node->owner); // Notify vm
+
175 node = next;
+
176 }while ( (val = __sync_fetch_and_add(&(sem->value), -1)) );
+ +
178 }
+
179}
+
180
+ +
182{
+
183 int val = sem->value;
+
184
+
185 while (val) { // Seems Positive
+
186 if (__sync_bool_compare_and_swap(&(sem->value), val - 1, val)) { // Was positive and i got it
+
187 return;
+
188 } else {
+
189 val = sem->value;
+
190 }
+
191 }
+
192 // Have to wait
+
193 async_completion_s *compl;
+
194
+
195 compl = arch_alloc_allocate(sem->meta->alloc, sizeof(*compl));
+
196 async_completion_init(sem->meta, compl);
+ +
198 // Add is LIFO, this might be bad for tail latency(starvation).
+
199 utils_list_add(&(sem->pending_list), &(compl->outstanding));
+ +
201 wakeupVm(sem->meta, getVmID(sem->meta)); // Might missed an inc
+ +
203 arch_alloc_free(sem->meta->alloc, compl);
+
204}
+
205
+ +
207{
+
208 async_completion_init(meta, &(cond->mutex));
+ +
210 async_semaphore_init(meta, &(cond->semaphore));
+
211}
+
212
+ +
214{
+ +
216}
+
217
+ +
219{
+ + + +
223}
+
224
+ +
226{
+ +
228}
+
229
+ +
231{
+ +
233}
+
234
+ +
236{
+
237 int fd = meta->fd;
+
238
+
239 meta->fd = 0;
+
240 wakeupVm(meta, getVmID(meta)); // Wakeup Myself to terminate async_thread
+
241 printf("Waiting for async_thread to exit!\n");
+
242 pthread_join(meta->thread, 0);
+
243 munmap(meta->regs, 256);
+
244 close(fd);
+
245}
+
#define arch_alloc_free(ALLOC, MEM)
Definition alloc.h:70
+
void * arch_alloc_allocate(arch_alloc_s *alloc, size_t size)
+ +
#define utils_list_for_each_safe(list, itr, tmp)
Definition list.h:106
+ +
char shm_file[1024]
Definition impl.c:18
+
int fd
Definition impl.c:25
+
int utils_config_get_str(char *path, const char *key, char *value, size_t value_size, const char *def_val)
Definition config.c:164
+
void utils_config_free_path(char *path)
Definition config.c:128
+
int utils_config_get_bool(char *path, const char *key, int *value, int def_val)
Definition config.c:178
+
char * utils_config_alloc_path(const char *path)
Definition config.c:94
+
utils_list_node_s * utils_list_del(utils_list_s *list, utils_list_node_s *node)
Definition list.c:26
+
void utils_list_node_init(utils_list_node_s *node, void *owner)
Definition list.c:74
+
utils_list_s * utils_list_init(void *mem)
Definition list.c:3
+
void utils_list_add(utils_list_s *list, utils_list_node_s *node)
Definition list.c:20
+
#define utils_spinlock_lock(V)
Definition queue.c:35
+
#define utils_spinlock_init(V)
Definition queue.c:34
+
#define utils_spinlock_unlock(V)
Definition queue.c:36
+ + +
volatile unsigned int regs[64]
+ +
pthread_t thread
+
utils_spinlock lock
+
utils_list_s outstanding
+
volatile int fd
+
arch_alloc_s * alloc
+
ivshmem_s * regs
+ +
async_meta_s * meta
+ +
pthread_mutex_t mutex
+
volatile size_t completed
+
pthread_mutexattr_t attr
+
utils_list_node_s outstanding
+ +
async_meta_s * meta
+
utils_spinlock pending_lock
+
utils_list_s pending_list
+
volatile size_t value
+ +
async_semaphore_s semaphore
+
async_completion_s mutex
+ +
struct utils_list_node * next
Definition list.h:12
+
void * owner
Definition list.h:14
+
utils_list_node_s head
Definition list.h:18
+
size_t length
Definition list.h:19
+
void async_semaphore_inc(async_semaphore_s *sem)
+
void async_condition_wait(async_condition_s *cond)
+
void async_semaphore_init(async_meta_s *meta, async_semaphore_s *sem)
+
int async_semaphore_value(async_semaphore_s *sem)
+
void async_condition_unlock(async_condition_s *cond)
+
void async_condition_notify(async_condition_s *cond)
+
unsigned int getVmID(async_meta_s *meta)
+
RegisterOffsets
+
@ ISR_REG
+
@ IMR_REG
+
@ BELL_REG
+
@ VM_ID_REG
+
void async_semaphore_dec(async_semaphore_s *sem)
+
void _add_completion(async_meta_s *meta, async_completion_s *completion)
+
void * async_thread(void *data)
+
void async_meta_init_once(async_meta_s *meta, arch_alloc_s *alloc)
+
void wakeupVm(async_meta_s *meta, unsigned int vm_id)
+
void async_completion_init(async_meta_s *meta, async_completion_s *completion)
+
void async_condition_init(async_meta_s *meta, async_condition_s *cond)
+
void async_completion_complete(async_completion_s *completion)
+
void async_meta_init_always(async_meta_s *meta)
+
int async_completion_check(async_completion_s *completion)
+
void async_completion_wait(async_completion_s *completion)
+
static int reg_fd
+
void async_condition_lock(async_condition_s *cond)
+
void async_meta_exit(async_meta_s *meta)
+ +
+
+ + + + diff --git a/a02347.map b/a02347.map new file mode 100644 index 00000000..943eb875 --- /dev/null +++ b/a02347.map @@ -0,0 +1,44 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02347.md5 b/a02347.md5 new file mode 100644 index 00000000..4fb14e9f --- /dev/null +++ b/a02347.md5 @@ -0,0 +1 @@ +2614369564869c254662ae55271cea08 \ No newline at end of file diff --git a/a02347.svg b/a02347.svg new file mode 100644 index 00000000..d7965def --- /dev/null +++ b/a02347.svg @@ -0,0 +1,390 @@ + + + + + + +async.c + + +Node1 + + +async.c + + + + + +Node2 + + +conf.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async.h + + + + + +Node1->Node3 + + + + + + + + +Node14 + + +utils/config.h + + + + + +Node1->Node14 + + + + + + + + +Node15 + + +stdlib.h + + + + + +Node1->Node15 + + + + + + + + +Node16 + + +stdio.h + + + + + +Node1->Node16 + + + + + + + + +Node17 + + +unistd.h + + + + + +Node1->Node17 + + + + + + + + +Node18 + + +fcntl.h + + + + + +Node1->Node18 + + + + + + + + +Node19 + + +sys/mman.h + + + + + +Node1->Node19 + + + + + + + + +Node4 + + +core/arax_object.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +utils/list.h + + + + + +Node3->Node5 + + + + + + + + +Node11 + + +arch/alloc.h + + + + + +Node3->Node11 + + + + + + + + +Node12 + + +pthread.h + + + + + +Node3->Node12 + + + + + + + + +Node13 + + +async_api.h + + + + + +Node3->Node13 + + + + + + + + +Node4->Node5 + + + + + + + + +Node8 + + +utils/spinlock.h + + + + + +Node4->Node8 + + + + + + + + +Node4->Node11 + + + + + + + + +Node6 + + +stddef.h + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +stdint.h + + + + + +Node5->Node7 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +utils/arax_assert.h + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +compat.h + + + + + +Node9->Node10 + + + + + + + + +Node13->Node11 + + + + + + + + +Node14->Node6 + + + + + + + + diff --git a/a02349.html b/a02349.html new file mode 100644 index 00000000..ce5edcea --- /dev/null +++ b/a02349.html @@ -0,0 +1,724 @@ + + + + + + + +Arax: async.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
mutex/async.c File Reference
+
+
+
#include "async.h"
+
+ + Include dependency graph for mutex/async.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

void async_meta_init_once (async_meta_s *meta, arch_alloc_s *alloc)
 
void async_meta_init_always (async_meta_s *meta)
 
void async_completion_init (async_meta_s *meta, async_completion_s *completion)
 
void async_completion_complete (async_completion_s *completion)
 
void async_completion_wait (async_completion_s *completion)
 
int async_completion_check (async_completion_s *completion)
 
void async_semaphore_init (async_meta_s *meta, async_semaphore_s *sem)
 
int async_semaphore_value (async_semaphore_s *sem)
 
void async_semaphore_inc (async_semaphore_s *sem)
 
void async_semaphore_dec (async_semaphore_s *sem)
 
void async_condition_init (async_meta_s *meta, async_condition_s *cond)
 
void async_condition_lock (async_condition_s *cond)
 
void async_condition_wait (async_condition_s *cond)
 
void async_condition_notify (async_condition_s *cond)
 
void async_condition_unlock (async_condition_s *cond)
 
void async_meta_exit (async_meta_s *meta)
 
+

Function Documentation

+ +

◆ async_completion_check()

+ +
+
+ + + + + + + + +
int async_completion_check (async_completion_scompletion)
+
+

Check if completion has been marked as completed.

+
Parameters
+ + +
completionCompletion to be checked.
+
+
+
Returns
0 if not completed, !0 if completed.
+ +

Definition at line 28 of file mutex/async.c.

+ +

References async_completion_s::mutex.

+ +
+
+ +

◆ async_completion_complete()

+ +
+
+ + + + + + + + +
void async_completion_complete (async_completion_scompletion)
+
+

Mark compl as completed and notify pending async_completion_wait() callers.

+
Parameters
+ + +
completionCompletion to be marked as completed.
+
+
+ +

Definition at line 17 of file mutex/async.c.

+ +

References async_completion_s::mutex.

+ +

Referenced by async_condition_unlock().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_completion_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void async_completion_init (async_meta_smeta,
async_completion_scompletion 
)
+
+

Create and register async_completion_s objects created in buff.

+
Parameters
+ + + +
metaPointer to async_meta_s that will 'own' this completion.
completionCompletion to be initialized
+
+
+
Returns
Number of objects created, should be buff_size/async_completion_size().
+ +

Definition at line 9 of file mutex/async.c.

+ +

References async_completion_s::attr, and async_completion_s::mutex.

+ +

Referenced by async_condition_init().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_completion_wait()

+ +
+
+ + + + + + + + +
void async_completion_wait (async_completion_scompletion)
+
+

Wait for compl to be completed with async_completion_complete().

+
Parameters
+ + +
completionSleep untill it has been completed with async_completion_complete.
+
+
+ +

Definition at line 23 of file mutex/async.c.

+ +

References async_completion_s::mutex.

+ +

Referenced by async_condition_lock().

+
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_condition_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void async_condition_init (async_meta_smeta,
async_condition_scond 
)
+
+

Initialize semaphore.

+
Parameters
+ + + +
metaPointer to async_meta_s that will 'own' this semaphore.
condCondition to be initialized
+
+
+ +

Definition at line 60 of file mutex/async.c.

+ +

References async_completion_init(), async_condition_unlock(), async_condition_s::c_attr, async_condition_s::condition, and async_condition_s::mutex.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ async_condition_lock()

+ +
+
+ + + + + + + + +
void async_condition_lock (async_condition_scond)
+
+

Lock on condition cond.

+
Parameters
+ + +
condCondition to be read.
+
+
+ +

Definition at line 69 of file mutex/async.c.

+ +

References async_completion_wait(), and async_condition_s::mutex.

+
+ + Here is the call graph for this function:
+
+
+ + +
+
+ +

◆ async_condition_notify()

+ +
+
+ + + + + + + + +
void async_condition_notify (async_condition_scond)
+
+

Notify cond.

+
Note
Prior to this call cond must be locked using async_condition_lock().
+
Parameters
+ + +
condCondition to be notified.
+
+
+ +

Definition at line 79 of file mutex/async.c.

+ +

References async_condition_s::condition.

+ +
+
+ +

◆ async_condition_unlock()

+ +
+
+ + + + + + + + +
void async_condition_unlock (async_condition_scond)
+
+

Lock on condition cond.

+
Note
Prior to this call cond must be locked using async_condition_lock().
+
Parameters
+ + +
condCondition to be read.
+
+
+ +

Definition at line 84 of file mutex/async.c.

+ +

References async_completion_complete(), and async_condition_s::mutex.

+ +

Referenced by async_condition_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_condition_wait()

+ +
+
+ + + + + + + + +
void async_condition_wait (async_condition_scond)
+
+

Wait on cond.

+
Note
Prior to this call cond must be locked using async_condition_lock().
+
Parameters
+ + +
condCondition to be read.
+
+
+ +

Definition at line 74 of file mutex/async.c.

+ +

References async_condition_s::condition, async_completion_s::mutex, and async_condition_s::mutex.

+ +
+
+ +

◆ async_meta_exit()

+ +
+
+ + + + + + + + +
void async_meta_exit (async_meta_smeta)
+
+

De initialize an async_meta_s object.

+
Parameters
+ + +
metaThe async_meta_s object to be uninitialized.
+
+
+ +

Definition at line 89 of file mutex/async.c.

+ +
+
+ +

◆ async_meta_init_always()

+ +
+
+ + + + + + + + +
void async_meta_init_always (async_meta_smeta)
+
+

Initialize a async_meta_s object on every node.

+

This will be called multiple times, once for every node.

+
Parameters
+ + +
metaAn uninitialized async_meta_s object.
+
+
+ +

Definition at line 6 of file mutex/async.c.

+ +
+
+ +

◆ async_meta_init_once()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void async_meta_init_once (async_meta_smeta,
arch_alloc_salloc 
)
+
+

Initialize a async_meta_s object once.

+

This will be called only once, on the first node.

+
Parameters
+ + + +
metaAn uninitialized async_meta_s object.
allocAllocator instance to be used for internall allocations.
+
+
+ +

Definition at line 3 of file mutex/async.c.

+ +
+
+ +

◆ async_semaphore_dec()

+ +
+
+ + + + + + + + +
void async_semaphore_dec (async_semaphore_ssem)
+
+

Decrease semaphore.

+

Decrease(ie consume) sem by one. This function will block if async_semaphore_value() == 0.

+
Parameters
+ + +
semSemaphore to be increased.
+
+
+ +

Definition at line 55 of file mutex/async.c.

+ +

References async_semaphore_s::sem.

+ +
+
+ +

◆ async_semaphore_inc()

+ +
+
+ + + + + + + + +
void async_semaphore_inc (async_semaphore_ssem)
+
+

Increase semaphore.

+

Increase(ie produce) sem by one. This function will never block.

+
Parameters
+ + +
semSemaphore to be increased.
+
+
+ +

Definition at line 50 of file mutex/async.c.

+ +

References async_semaphore_s::sem.

+ +
+
+ +

◆ async_semaphore_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void async_semaphore_init (async_meta_smeta,
async_semaphore_ssem 
)
+
+

Initialize semaphore.

+
Parameters
+ + + +
metaPointer to async_meta_s that will 'own' this semaphore.
semSemaphore to be initialized
+
+
+ +

Definition at line 37 of file mutex/async.c.

+ +

References async_semaphore_s::sem.

+ +
+
+ +

◆ async_semaphore_value()

+ +
+
+ + + + + + + + +
int async_semaphore_value (async_semaphore_ssem)
+
+

Return value of sem.

Parameters
+ + +
semSemaphore to be initialized
+
+
+ +

Definition at line 42 of file mutex/async.c.

+ +

References async_semaphore_s::sem.

+ +
+
+
+
+ + + + diff --git a/a02349.js b/a02349.js new file mode 100644 index 00000000..d0ddbe33 --- /dev/null +++ b/a02349.js @@ -0,0 +1,19 @@ +var a02349 = +[ + [ "async_completion_check", "a02349.html#ae66ae81847153386c57918f4d91be8a7", null ], + [ "async_completion_complete", "a02349.html#ad1d30ecbf6bff6457b680aa940281072", null ], + [ "async_completion_init", "a02349.html#ac728117d73179c279de49e01ae905dda", null ], + [ "async_completion_wait", "a02349.html#aebf9e72bb6cbd8b9e33489d46c25075d", null ], + [ "async_condition_init", "a02349.html#ac7fbf1f43289d3e0e862b315f00e35e2", null ], + [ "async_condition_lock", "a02349.html#aed6af4d83e934e3e654ead541b15f2d9", null ], + [ "async_condition_notify", "a02349.html#a45a896fb606c2aa66a5a4c2af59ce494", null ], + [ "async_condition_unlock", "a02349.html#a3bbcb7c4c024e99d5c4ba52b61dfbbf7", null ], + [ "async_condition_wait", "a02349.html#a1bfeaeb9b81855e640d7a67cc9d92b17", null ], + [ "async_meta_exit", "a02349.html#afe9571a12debd9d75a0f8fb93420e268", null ], + [ "async_meta_init_always", "a02349.html#adbaa29dfccfdfe6e3fe69a1d001c05b5", null ], + [ "async_meta_init_once", "a02349.html#ab2e422aab2fcfa562795beb2843e8019", null ], + [ "async_semaphore_dec", "a02349.html#a7ab7c7fe9cb93434dde72a4e464a7e69", null ], + [ "async_semaphore_inc", "a02349.html#a0fa370eee5160963e617d1daf1c07363", null ], + [ "async_semaphore_init", "a02349.html#a2a7d01fc7720e936a430efc09d094c6c", null ], + [ "async_semaphore_value", "a02349.html#a2ef839f9f321fe47ec15653d08cf4183", null ] +]; \ No newline at end of file diff --git a/a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.map b/a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.map new file mode 100644 index 00000000..c6241c0f --- /dev/null +++ b/a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.md5 b/a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.md5 new file mode 100644 index 00000000..166a56d5 --- /dev/null +++ b/a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.md5 @@ -0,0 +1 @@ +2958cfc60a53d1aed5452518d2af09c2 \ No newline at end of file diff --git a/a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.svg b/a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.svg new file mode 100644 index 00000000..2866a6c5 --- /dev/null +++ b/a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +async_condition_unlock + + +Node1 + + +async_condition_unlock + + + + + +Node2 + + +async_completion_complete + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.map b/a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.map new file mode 100644 index 00000000..9e2bda74 --- /dev/null +++ b/a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.md5 b/a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.md5 new file mode 100644 index 00000000..9b4c6ee5 --- /dev/null +++ b/a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.md5 @@ -0,0 +1 @@ +91ee726efb48e50535d4478eef55522d \ No newline at end of file diff --git a/a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.svg b/a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.svg new file mode 100644 index 00000000..d1fb3c24 --- /dev/null +++ b/a02349_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +async_condition_unlock + + +Node1 + + +async_condition_unlock + + + + + +Node2 + + +async_condition_init + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02349_ac728117d73179c279de49e01ae905dda_icgraph.map b/a02349_ac728117d73179c279de49e01ae905dda_icgraph.map new file mode 100644 index 00000000..a71aa2d7 --- /dev/null +++ b/a02349_ac728117d73179c279de49e01ae905dda_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02349_ac728117d73179c279de49e01ae905dda_icgraph.md5 b/a02349_ac728117d73179c279de49e01ae905dda_icgraph.md5 new file mode 100644 index 00000000..2ea28cdb --- /dev/null +++ b/a02349_ac728117d73179c279de49e01ae905dda_icgraph.md5 @@ -0,0 +1 @@ +0cbb3abcd8ac508ef215dfcb95d50c36 \ No newline at end of file diff --git a/a02349_ac728117d73179c279de49e01ae905dda_icgraph.svg b/a02349_ac728117d73179c279de49e01ae905dda_icgraph.svg new file mode 100644 index 00000000..574c1dd8 --- /dev/null +++ b/a02349_ac728117d73179c279de49e01ae905dda_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +async_completion_init + + +Node1 + + +async_completion_init + + + + + +Node2 + + +async_condition_init + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02349_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.map b/a02349_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.map new file mode 100644 index 00000000..3766377f --- /dev/null +++ b/a02349_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a02349_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.md5 b/a02349_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.md5 new file mode 100644 index 00000000..815f489a --- /dev/null +++ b/a02349_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.md5 @@ -0,0 +1 @@ +9de7ffa4f7ea2abe348afe73438b769e \ No newline at end of file diff --git a/a02349_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.svg b/a02349_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.svg new file mode 100644 index 00000000..bec8985b --- /dev/null +++ b/a02349_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.svg @@ -0,0 +1,75 @@ + + + + + + +async_condition_init + + +Node1 + + +async_condition_init + + + + + +Node2 + + +async_completion_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_condition_unlock + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +async_completion_complete + + + + + +Node3->Node4 + + + + + + + + diff --git a/a02349_ad1d30ecbf6bff6457b680aa940281072_icgraph.map b/a02349_ad1d30ecbf6bff6457b680aa940281072_icgraph.map new file mode 100644 index 00000000..3a49baf5 --- /dev/null +++ b/a02349_ad1d30ecbf6bff6457b680aa940281072_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a02349_ad1d30ecbf6bff6457b680aa940281072_icgraph.md5 b/a02349_ad1d30ecbf6bff6457b680aa940281072_icgraph.md5 new file mode 100644 index 00000000..a5d8ba7e --- /dev/null +++ b/a02349_ad1d30ecbf6bff6457b680aa940281072_icgraph.md5 @@ -0,0 +1 @@ +b7877cf0581ee5068c9848eaa73e44ed \ No newline at end of file diff --git a/a02349_ad1d30ecbf6bff6457b680aa940281072_icgraph.svg b/a02349_ad1d30ecbf6bff6457b680aa940281072_icgraph.svg new file mode 100644 index 00000000..eb14db5b --- /dev/null +++ b/a02349_ad1d30ecbf6bff6457b680aa940281072_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +async_completion_complete + + +Node1 + + +async_completion_complete + + + + + +Node2 + + +async_condition_unlock + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_condition_init + + + + + +Node2->Node3 + + + + + + + + diff --git a/a02349_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.map b/a02349_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.map new file mode 100644 index 00000000..c14f8993 --- /dev/null +++ b/a02349_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02349_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.md5 b/a02349_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.md5 new file mode 100644 index 00000000..c0d5b7a3 --- /dev/null +++ b/a02349_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.md5 @@ -0,0 +1 @@ +58b62558710cecbd6eb44f8b3e912dd7 \ No newline at end of file diff --git a/a02349_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.svg b/a02349_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.svg new file mode 100644 index 00000000..2fc8a234 --- /dev/null +++ b/a02349_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.svg @@ -0,0 +1,39 @@ + + + + + + +async_completion_wait + + +Node1 + + +async_completion_wait + + + + + +Node2 + + +async_condition_lock + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02349_aed6af4d83e934e3e654ead541b15f2d9_cgraph.map b/a02349_aed6af4d83e934e3e654ead541b15f2d9_cgraph.map new file mode 100644 index 00000000..7653cb9e --- /dev/null +++ b/a02349_aed6af4d83e934e3e654ead541b15f2d9_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02349_aed6af4d83e934e3e654ead541b15f2d9_cgraph.md5 b/a02349_aed6af4d83e934e3e654ead541b15f2d9_cgraph.md5 new file mode 100644 index 00000000..5c4a60fa --- /dev/null +++ b/a02349_aed6af4d83e934e3e654ead541b15f2d9_cgraph.md5 @@ -0,0 +1 @@ +e6c5ec72914993f03d92d92a4a79b3f0 \ No newline at end of file diff --git a/a02349_aed6af4d83e934e3e654ead541b15f2d9_cgraph.svg b/a02349_aed6af4d83e934e3e654ead541b15f2d9_cgraph.svg new file mode 100644 index 00000000..6d656092 --- /dev/null +++ b/a02349_aed6af4d83e934e3e654ead541b15f2d9_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +async_condition_lock + + +Node1 + + +async_condition_lock + + + + + +Node2 + + +async_completion_wait + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02349_source.html b/a02349_source.html new file mode 100644 index 00000000..0a2c908a --- /dev/null +++ b/a02349_source.html @@ -0,0 +1,226 @@ + + + + + + + +Arax: async.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
mutex/async.c
+
+
+Go to the documentation of this file.
1#include "async.h"
+
2
+ +
4{ }
+
5
+ +
7{ }
+
8
+ +
10{
+
11 pthread_mutexattr_init(&(completion->attr));
+
12 pthread_mutexattr_setpshared(&(completion->attr), PTHREAD_PROCESS_SHARED);
+
13 pthread_mutex_init(&(completion->mutex), &(completion->attr));
+
14 pthread_mutex_lock(&(completion->mutex));
+
15}
+
16
+ +
18{
+
19 pthread_mutex_trylock(&(completion->mutex)); // Hack to avoid double unlocking
+
20 pthread_mutex_unlock(&(completion->mutex));
+
21}
+
22
+ +
24{
+
25 pthread_mutex_lock(&(completion->mutex));
+
26}
+
27
+ +
29{
+
30 int ret_val;
+
31
+
32 if (!(ret_val = pthread_mutex_trylock(&(completion->mutex))) )
+
33 pthread_mutex_unlock(&(completion->mutex));
+
34 return !ret_val;
+
35}
+
36
+ +
38{
+
39 sem_init(&(sem->sem), 1, 0);
+
40}
+
41
+ +
43{
+
44 int ret;
+
45
+
46 sem_getvalue(&(sem->sem), &ret);
+
47 return ret;
+
48}
+
49
+ +
51{
+
52 sem_post(&(sem->sem));
+
53}
+
54
+ +
56{
+
57 sem_wait(&(sem->sem));
+
58}
+
59
+ +
61{
+
62 async_completion_init(0, &(cond->mutex));
+ +
64 pthread_condattr_init(&(cond->c_attr));
+
65 pthread_condattr_setpshared(&(cond->c_attr), PTHREAD_PROCESS_SHARED);
+
66 pthread_cond_init(&(cond->condition), &(cond->c_attr));
+
67}
+
68
+ +
70{
+ +
72}
+
73
+ +
75{
+
76 pthread_cond_wait(&(cond->condition), &(cond->mutex.mutex));
+
77}
+
78
+ +
80{
+
81 pthread_cond_broadcast(&(cond->condition));
+
82}
+
83
+ +
85{
+ +
87}
+
88
+ +
90{ }
+ + + +
pthread_mutex_t mutex
+
pthread_mutexattr_t attr
+ + + +
pthread_cond_t condition
Definition mutex/async.h:30
+
async_completion_s mutex
+
pthread_condattr_t c_attr
Definition mutex/async.h:31
+
void async_semaphore_inc(async_semaphore_s *sem)
Definition mutex/async.c:50
+
void async_condition_wait(async_condition_s *cond)
Definition mutex/async.c:74
+
void async_semaphore_init(async_meta_s *meta, async_semaphore_s *sem)
Definition mutex/async.c:37
+
int async_semaphore_value(async_semaphore_s *sem)
Definition mutex/async.c:42
+
void async_condition_unlock(async_condition_s *cond)
Definition mutex/async.c:84
+
void async_condition_notify(async_condition_s *cond)
Definition mutex/async.c:79
+
void async_semaphore_dec(async_semaphore_s *sem)
Definition mutex/async.c:55
+
void async_meta_init_once(async_meta_s *meta, arch_alloc_s *alloc)
Definition mutex/async.c:3
+
void async_completion_init(async_meta_s *meta, async_completion_s *completion)
Definition mutex/async.c:9
+
void async_condition_init(async_meta_s *meta, async_condition_s *cond)
Definition mutex/async.c:60
+
void async_completion_complete(async_completion_s *completion)
Definition mutex/async.c:17
+
void async_meta_init_always(async_meta_s *meta)
Definition mutex/async.c:6
+
int async_completion_check(async_completion_s *completion)
Definition mutex/async.c:28
+
void async_completion_wait(async_completion_s *completion)
Definition mutex/async.c:23
+
void async_condition_lock(async_condition_s *cond)
Definition mutex/async.c:69
+
void async_meta_exit(async_meta_s *meta)
Definition mutex/async.c:89
+ +
+
+ + + + diff --git a/a02350.map b/a02350.map new file mode 100644 index 00000000..a325573a --- /dev/null +++ b/a02350.map @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02350.md5 b/a02350.md5 new file mode 100644 index 00000000..6d91418f --- /dev/null +++ b/a02350.md5 @@ -0,0 +1 @@ +59a47dbe5124a9d282a0d2d8e1d5e5f4 \ No newline at end of file diff --git a/a02350.svg b/a02350.svg new file mode 100644 index 00000000..9b73cc20 --- /dev/null +++ b/a02350.svg @@ -0,0 +1,255 @@ + + + + + + +async.c + + +Node1 + + +async.c + + + + + +Node2 + + +async.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +core/arax_object.h + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +pthread.h + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +semaphore.h + + + + + +Node2->Node12 + + + + + + + + +Node13 + + +async_api.h + + + + + +Node2->Node13 + + + + + + + + +Node4 + + +utils/list.h + + + + + +Node3->Node4 + + + + + + + + +Node7 + + +utils/spinlock.h + + + + + +Node3->Node7 + + + + + + + + +Node10 + + +arch/alloc.h + + + + + +Node3->Node10 + + + + + + + + +Node5 + + +stddef.h + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node4->Node6 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +utils/arax_assert.h + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +compat.h + + + + + +Node8->Node9 + + + + + + + + +Node13->Node10 + + + + + + + + diff --git a/a02352.html b/a02352.html new file mode 100644 index 00000000..6ca90ae5 --- /dev/null +++ b/a02352.html @@ -0,0 +1,897 @@ + + + + + + + +Arax: async.c File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
spin/async.c File Reference
+
+
+
#include "async.h"
+
+ + Include dependency graph for spin/async.c:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Functions

void async_meta_init_always (async_meta_s *meta)
 
void async_meta_init_once (async_meta_s *meta, arch_alloc_s *alloc)
 
void async_completion_init (async_meta_s *meta, async_completion_s *completion)
 
void async_completion_complete (async_completion_s *completion)
 
void async_completion_wait (async_completion_s *completion)
 
int async_completion_check (async_completion_s *completion)
 
void async_semaphore_init (async_meta_s *meta, async_semaphore_s *sem)
 
int async_semaphore_value (async_semaphore_s *sem)
 
void async_semaphore_inc (async_semaphore_s *sem)
 
void async_semaphore_dec (async_semaphore_s *sem)
 
void async_condition_init (async_meta_s *meta, async_condition_s *cond)
 
void async_condition_lock (async_condition_s *cond)
 
void async_condition_wait (async_condition_s *cond)
 
void async_condition_notify (async_condition_s *cond)
 
void async_condition_unlock (async_condition_s *cond)
 
void async_meta_exit (async_meta_s *meta)
 
+

Function Documentation

+ +

◆ async_completion_check()

+ +
+
+ + + + + + + + +
int async_completion_check (async_completion_scompletion)
+
+

Check if completion has been marked as completed.

+
Parameters
+ + +
completionCompletion to be checked.
+
+
+
Returns
0 if not completed, !0 if completed.
+ +

Definition at line 24 of file spin/async.c.

+ +

References async_completion_s::completed.

+ +
+
+ +

◆ async_completion_complete()

+ +
+
+ + + + + + + + +
void async_completion_complete (async_completion_scompletion)
+
+

Mark compl as completed and notify pending async_completion_wait() callers.

+
Parameters
+ + +
completionCompletion to be marked as completed.
+
+
+ +

Definition at line 14 of file spin/async.c.

+ +

References async_completion_s::completed, async_completion_s::meta, async_completion_s::vm_id, and wakeupVm().

+ +

Referenced by arax_task_mark_done(), async_condition_init(), async_condition_unlock(), and async_condition_wait().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_completion_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void async_completion_init (async_meta_smeta,
async_completion_scompletion 
)
+
+

Create and register async_completion_s objects created in buff.

+
Parameters
+ + + +
metaPointer to async_meta_s that will 'own' this completion.
completionCompletion to be initialized
+
+
+
Returns
Number of objects created, should be buff_size/async_completion_size().
+ +

Definition at line 9 of file spin/async.c.

+ +

References async_completion_s::attr, async_completion_s::completed, async_completion_s::meta, async_completion_s::mutex, async_completion_s::outstanding, and utils_list_node_init().

+ +

Referenced by arax_task_alloc(), and async_condition_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_completion_wait()

+ +
+
+ + + + + + + + +
void async_completion_wait (async_completion_scompletion)
+
+

Wait for compl to be completed with async_completion_complete().

+
Parameters
+ + +
completionSleep untill it has been completed with async_completion_complete.
+
+
+ +

Definition at line 19 of file spin/async.c.

+ +

References _add_completion(), async_completion_s::completed, getVmID(), async_completion_s::meta, async_completion_s::mutex, and async_completion_s::vm_id.

+ +

Referenced by arax_task_wait_done(), async_condition_lock(), and async_condition_wait().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_condition_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void async_condition_init (async_meta_smeta,
async_condition_scond 
)
+
+

Initialize semaphore.

+
Parameters
+ + + +
metaPointer to async_meta_s that will 'own' this semaphore.
condCondition to be initialized
+
+
+ +

Definition at line 57 of file spin/async.c.

+ +

References async_completion_complete(), async_completion_init(), async_semaphore_init(), async_condition_s::mutex, and async_condition_s::semaphore.

+ +

Referenced by arax_accel_init(), arax_pipe_init(), and arax_throttle_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_condition_lock()

+ +
+
+ + + + + + + + +
void async_condition_lock (async_condition_scond)
+
+

Lock on condition cond.

+
Parameters
+ + +
condCondition to be read.
+
+
+ +

Definition at line 64 of file spin/async.c.

+ +

References async_completion_wait(), and async_condition_s::mutex.

+ +

Referenced by _arax_init(), arax_accel_add_task(), arax_accel_add_vaccel(), arax_accel_del_vaccel(), arax_accel_get_assigned_vaccels(), arax_accel_wait_for_task(), ARAX_OBJ_DTOR_DECL(), arax_pipe_add_orphan_vaccel(), arax_pipe_get_orphan_vaccel(), arax_pipe_orphan_stop(), arax_pipe_remove_orphan_vaccel(), arax_throttle_size_dec(), and arax_throttle_size_inc().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_condition_notify()

+ +
+
+ + + + + + + + +
void async_condition_notify (async_condition_scond)
+
+

Notify cond.

+
Note
Prior to this call cond must be locked using async_condition_lock().
+
Parameters
+ + +
condCondition to be notified.
+
+
+ +

Definition at line 76 of file spin/async.c.

+ +

References async_semaphore_inc(), and async_condition_s::semaphore.

+ +

Referenced by arax_accel_add_task(), arax_accel_add_vaccel(), arax_accel_del_vaccel(), arax_controller_init_done(), arax_pipe_add_orphan_vaccel(), arax_pipe_orphan_stop(), and arax_throttle_size_inc().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_condition_unlock()

+ +
+
+ + + + + + + + +
void async_condition_unlock (async_condition_scond)
+
+

Lock on condition cond.

+
Note
Prior to this call cond must be locked using async_condition_lock().
+
Parameters
+ + +
condCondition to be read.
+
+
+ +

Definition at line 81 of file spin/async.c.

+ +

References async_completion_complete(), and async_condition_s::mutex.

+ +

Referenced by _arax_init(), arax_accel_add_task(), arax_accel_add_vaccel(), arax_accel_del_vaccel(), arax_accel_get_assigned_vaccels(), arax_accel_wait_for_task(), ARAX_OBJ_DTOR_DECL(), arax_pipe_add_orphan_vaccel(), arax_pipe_get_orphan_vaccel(), arax_pipe_orphan_stop(), arax_pipe_remove_orphan_vaccel(), arax_throttle_size_dec(), and arax_throttle_size_inc().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_condition_wait()

+ +
+
+ + + + + + + + +
void async_condition_wait (async_condition_scond)
+
+

Wait on cond.

+
Note
Prior to this call cond must be locked using async_condition_lock().
+
Parameters
+ + +
condCondition to be read.
+
+
+ +

Definition at line 69 of file spin/async.c.

+ +

References async_completion_complete(), async_completion_wait(), async_semaphore_dec(), async_condition_s::mutex, and async_condition_s::semaphore.

+ +

Referenced by _arax_init(), arax_accel_wait_for_task(), arax_pipe_get_orphan_vaccel(), and arax_throttle_size_dec().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_meta_exit()

+ +
+
+ + + + + + + + +
void async_meta_exit (async_meta_smeta)
+
+

De initialize an async_meta_s object.

+
Parameters
+ + +
metaThe async_meta_s object to be uninitialized.
+
+
+ +

Definition at line 86 of file spin/async.c.

+ +

References fd, async_meta_s::fd, getVmID(), async_meta_s::regs, async_meta_s::thread, and wakeupVm().

+ +

Referenced by arax_pipe_exit().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_meta_init_always()

+ +
+
+ + + + + + + + +
void async_meta_init_always (async_meta_smeta)
+
+

Initialize a async_meta_s object on every node.

+

This will be called multiple times, once for every node.

+
Parameters
+ + +
metaAn uninitialized async_meta_s object.
+
+
+ +

Definition at line 3 of file spin/async.c.

+ +

References async_thread(), reg_fd, async_meta_s::regs, shm_file, async_meta_s::thread, utils_config_alloc_path(), utils_config_free_path(), and utils_config_get_str().

+ +

Referenced by _arax_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_meta_init_once()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void async_meta_init_once (async_meta_smeta,
arch_alloc_salloc 
)
+
+

Initialize a async_meta_s object once.

+

This will be called only once, on the first node.

+
Parameters
+ + + +
metaAn uninitialized async_meta_s object.
allocAllocator instance to be used for internall allocations.
+
+
+ +

Definition at line 6 of file spin/async.c.

+ +

References async_meta_s::alloc, async_meta_s::lock, async_meta_s::outstanding, utils_config_alloc_path(), utils_config_free_path(), utils_config_get_bool(), utils_list_init(), and utils_spinlock_init.

+ +

Referenced by arax_pipe_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_semaphore_dec()

+ +
+
+ + + + + + + + +
void async_semaphore_dec (async_semaphore_ssem)
+
+

Decrease semaphore.

+

Decrease(ie consume) sem by one. This function will block if async_semaphore_value() == 0.

+
Parameters
+ + +
semSemaphore to be increased.
+
+
+ +

Definition at line 44 of file spin/async.c.

+ +

References async_meta_s::alloc, arch_alloc_allocate(), arch_alloc_free, async_completion_init(), async_completion_wait(), getVmID(), async_semaphore_s::meta, async_completion_s::outstanding, async_semaphore_s::pending_list, async_semaphore_s::pending_lock, utils_list_add(), utils_spinlock_lock, utils_spinlock_unlock, async_semaphore_s::value, and wakeupVm().

+ +

Referenced by async_condition_wait().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_semaphore_inc()

+ +
+
+ + + + + + + + +
void async_semaphore_inc (async_semaphore_ssem)
+
+

Increase semaphore.

+

Increase(ie produce) sem by one. This function will never block.

+
Parameters
+ + +
semSemaphore to be increased.
+
+
+ +

Definition at line 39 of file spin/async.c.

+ +

References _add_completion(), async_completion_complete(), utils_list_s::head, utils_list_s::length, async_semaphore_s::meta, utils_list_node::next, utils_list_node::owner, async_semaphore_s::pending_list, async_semaphore_s::pending_lock, utils_list_del(), utils_spinlock_lock, utils_spinlock_unlock, and async_semaphore_s::value.

+ +

Referenced by async_condition_notify().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_semaphore_init()

+ +
+
+ + + + + + + + + + + + + + + + + + +
void async_semaphore_init (async_meta_smeta,
async_semaphore_ssem 
)
+
+

Initialize semaphore.

+
Parameters
+ + + +
metaPointer to async_meta_s that will 'own' this semaphore.
semSemaphore to be initialized
+
+
+ +

Definition at line 29 of file spin/async.c.

+ +

References async_semaphore_s::pending_list, async_semaphore_s::pending_lock, utils_list_init(), utils_spinlock_init, and async_semaphore_s::value.

+ +

Referenced by async_condition_init().

+
+ + Here is the call graph for this function:
+
+
+ +
+ + Here is the caller graph for this function:
+
+
+ + +
+
+ +

◆ async_semaphore_value()

+ +
+
+ + + + + + + + +
int async_semaphore_value (async_semaphore_ssem)
+
+

Return value of sem.

Parameters
+ + +
semSemaphore to be initialized
+
+
+ +

Definition at line 34 of file spin/async.c.

+ +

References async_semaphore_s::value.

+ +
+
+
+
+ + + + diff --git a/a02352.js b/a02352.js new file mode 100644 index 00000000..ba6a7fb0 --- /dev/null +++ b/a02352.js @@ -0,0 +1,19 @@ +var a02352 = +[ + [ "async_completion_check", "a02352.html#ae66ae81847153386c57918f4d91be8a7", null ], + [ "async_completion_complete", "a02352.html#ad1d30ecbf6bff6457b680aa940281072", null ], + [ "async_completion_init", "a02352.html#ac728117d73179c279de49e01ae905dda", null ], + [ "async_completion_wait", "a02352.html#aebf9e72bb6cbd8b9e33489d46c25075d", null ], + [ "async_condition_init", "a02352.html#ac7fbf1f43289d3e0e862b315f00e35e2", null ], + [ "async_condition_lock", "a02352.html#aed6af4d83e934e3e654ead541b15f2d9", null ], + [ "async_condition_notify", "a02352.html#a45a896fb606c2aa66a5a4c2af59ce494", null ], + [ "async_condition_unlock", "a02352.html#a3bbcb7c4c024e99d5c4ba52b61dfbbf7", null ], + [ "async_condition_wait", "a02352.html#a1bfeaeb9b81855e640d7a67cc9d92b17", null ], + [ "async_meta_exit", "a02352.html#afe9571a12debd9d75a0f8fb93420e268", null ], + [ "async_meta_init_always", "a02352.html#adbaa29dfccfdfe6e3fe69a1d001c05b5", null ], + [ "async_meta_init_once", "a02352.html#ab2e422aab2fcfa562795beb2843e8019", null ], + [ "async_semaphore_dec", "a02352.html#a7ab7c7fe9cb93434dde72a4e464a7e69", null ], + [ "async_semaphore_inc", "a02352.html#a0fa370eee5160963e617d1daf1c07363", null ], + [ "async_semaphore_init", "a02352.html#a2a7d01fc7720e936a430efc09d094c6c", null ], + [ "async_semaphore_value", "a02352.html#a2ef839f9f321fe47ec15653d08cf4183", null ] +]; \ No newline at end of file diff --git a/a02352_a0fa370eee5160963e617d1daf1c07363_cgraph.map b/a02352_a0fa370eee5160963e617d1daf1c07363_cgraph.map new file mode 100644 index 00000000..dac89be4 --- /dev/null +++ b/a02352_a0fa370eee5160963e617d1daf1c07363_cgraph.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/a02352_a0fa370eee5160963e617d1daf1c07363_cgraph.md5 b/a02352_a0fa370eee5160963e617d1daf1c07363_cgraph.md5 new file mode 100644 index 00000000..bc53e746 --- /dev/null +++ b/a02352_a0fa370eee5160963e617d1daf1c07363_cgraph.md5 @@ -0,0 +1 @@ +9ac23daae40e2508cca94c442aad3dcc \ No newline at end of file diff --git a/a02352_a0fa370eee5160963e617d1daf1c07363_cgraph.svg b/a02352_a0fa370eee5160963e617d1daf1c07363_cgraph.svg new file mode 100644 index 00000000..86a34dde --- /dev/null +++ b/a02352_a0fa370eee5160963e617d1daf1c07363_cgraph.svg @@ -0,0 +1,111 @@ + + + + + + +async_semaphore_inc + + +Node1 + + +async_semaphore_inc + + + + + +Node2 + + +_add_completion + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +async_completion_complete + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +utils_list_del + + + + + +Node1->Node6 + + + + + + + + +Node3 + + +utils_list_add + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +utils_list_node_add + + + + + +Node3->Node4 + + + + + + + + diff --git a/a02352_a0fa370eee5160963e617d1daf1c07363_icgraph.map b/a02352_a0fa370eee5160963e617d1daf1c07363_icgraph.map new file mode 100644 index 00000000..f4b174cc --- /dev/null +++ b/a02352_a0fa370eee5160963e617d1daf1c07363_icgraph.map @@ -0,0 +1,97 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02352_a0fa370eee5160963e617d1daf1c07363_icgraph.md5 b/a02352_a0fa370eee5160963e617d1daf1c07363_icgraph.md5 new file mode 100644 index 00000000..db90299e --- /dev/null +++ b/a02352_a0fa370eee5160963e617d1daf1c07363_icgraph.md5 @@ -0,0 +1 @@ +70a1696316838b8c47a5695f3e767bd4 \ No newline at end of file diff --git a/a02352_a0fa370eee5160963e617d1daf1c07363_icgraph.svg b/a02352_a0fa370eee5160963e617d1daf1c07363_icgraph.svg new file mode 100644 index 00000000..55d83b92 --- /dev/null +++ b/a02352_a0fa370eee5160963e617d1daf1c07363_icgraph.svg @@ -0,0 +1,871 @@ + + + + + + +async_semaphore_inc + + +Node1 + + +async_semaphore_inc + + + + + +Node2 + + +async_condition_notify + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_add_task + + + + + +Node2->Node3 + + + + + + + + +Node13 + + +arax_accel_add_vaccel + + + + + +Node2->Node13 + + + + + + + + +Node19 + + +arax_accel_del_vaccel + + + + + +Node2->Node19 + + + + + + + + +Node21 + + +arax_controller_init_done + + + + + +Node2->Node21 + + + + + + + + +Node22 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node2->Node22 + + + + + + + + +Node23 + + +arax_pipe_orphan_stop + + + + + +Node2->Node23 + + + + + + + + +Node24 + + +arax_throttle_size_inc + + + + + +Node2->Node24 + + + + + + + + +Node4 + + +arax_vaccel_add_task + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_task_submit + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_task_issue + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_data_allocate +_remote + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_get + + + + + +Node6->Node8 + + + + + + + + +Node10 + + +arax_data_set + + + + + +Node6->Node10 + + + + + + + + +Node11 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node6->Node11 + + + + + + + + +Node12 + + +arax_task_issue_sync + + + + + +Node6->Node12 + + + + + + + + +Node9 + + +arax_data_memcpy + + + + + +Node8->Node9 + + + + + + + + +Node10->Node9 + + + + + + + + +Node14 + + +arax_accel_set_physical + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +arax_vaccel_init + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +arax_accel_acquire_phys + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +arax_accel_acquire_type + + + + + +Node15->Node17 + + + + + + + + +Node18 + + +arax_accel_init + + + + + +Node15->Node18 + + + + + + + + +Node20 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node19->Node20 + + + + + + + + +Node22->Node15 + + + + + + + + +Node25 + + +arax_accel_size_inc + + + + + +Node24->Node25 + + + + + + + + +Node26 + + +arax_pipe_size_inc + + + + + +Node24->Node26 + + + + + + + + +Node27 + + +arax_object_ref_dec + + + + + +Node26->Node27 + + + + + + + + +Node41 + + +arax_object_ref_dec +_pre_locked + + + + + +Node26->Node41 + + + + + + + + +Node27->Node11 + + + + + + + + +Node28 + + +arax_accel_list_free + + + + + +Node27->Node28 + + + + + + + + +Node29 + + +arax_accel_release + + + + + +Node27->Node29 + + + + + + + + +Node31 + + +arax_data_free + + + + + +Node27->Node31 + + + + + + + + +Node32 + + +arax_data_migrate_accel + + + + + +Node27->Node32 + + + + + + + + +Node37 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node27->Node37 + + + + + + + + +Node38 + + +arax_pipe_delete_accel + + + + + +Node27->Node38 + + + + + + + + +Node39 + + +arax_proc_put + + + + + +Node27->Node39 + + + + + + + + +Node40 + + +arax_task_free + + + + + +Node27->Node40 + + + + + + + + +Node30 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node29->Node30 + + + + + + + + +Node33 + + +arax_data_arg_init + + + + + +Node32->Node33 + + + + + + + + +Node34 + + +arax_data_input_init + + + + + +Node32->Node34 + + + + + + + + +Node36 + + +arax_data_output_init + + + + + +Node32->Node36 + + + + + + + + +Node35 + + +arax_task_alloc + + + + + +Node34->Node35 + + + + + + + + +Node35->Node6 + + + + + + + + +Node36->Node35 + + + + + + + + +Node39->Node8 + + + + + + + + +Node39->Node10 + + + + + + + + +Node40->Node7 + + + + + + + + +Node40->Node8 + + + + + + + + +Node40->Node12 + + + + + + + + +Node42 + + +arax_accel_list_free +_pre_locked + + + + + +Node41->Node42 + + + + + + + + +Node43 + + +arax_accel_list + + + + + +Node42->Node43 + + + + + + + + diff --git a/a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.map b/a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.map new file mode 100644 index 00000000..2ac296ed --- /dev/null +++ b/a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.md5 b/a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.md5 new file mode 100644 index 00000000..f3da7345 --- /dev/null +++ b/a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.md5 @@ -0,0 +1 @@ +2d9df4922439ddd83de21b18c4bbcdc7 \ No newline at end of file diff --git a/a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.svg b/a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.svg new file mode 100644 index 00000000..8aea4289 --- /dev/null +++ b/a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_cgraph.svg @@ -0,0 +1,75 @@ + + + + + + +async_condition_wait + + +Node1 + + +async_condition_wait + + + + + +Node2 + + +async_completion_complete + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_completion_wait + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +async_semaphore_dec + + + + + +Node1->Node4 + + + + + + + + diff --git a/a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.map b/a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.map new file mode 100644 index 00000000..b24a4de2 --- /dev/null +++ b/a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.map @@ -0,0 +1,70 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.md5 b/a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.md5 new file mode 100644 index 00000000..ff19f369 --- /dev/null +++ b/a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.md5 @@ -0,0 +1 @@ +dd139090e5ea0012c9875598ca3bc820 \ No newline at end of file diff --git a/a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.svg b/a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.svg new file mode 100644 index 00000000..0d61db6f --- /dev/null +++ b/a02352_a1bfeaeb9b81855e640d7a67cc9d92b17_icgraph.svg @@ -0,0 +1,628 @@ + + + + + + +async_condition_wait + + +Node1 + + +async_condition_wait + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +arax_accel_wait_for_task + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +arax_throttle_size_dec + + + + + +Node1->Node12 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + +Node13 + + +arax_accel_size_dec + + + + + +Node12->Node13 + + + + + + + + +Node15 + + +arax_pipe_size_dec + + + + + +Node12->Node15 + + + + + + + + +Node14 + + +arax_data_allocate +_remote + + + + + +Node13->Node14 + + + + + + + + +Node16 + + +arax_object_register + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +arax_accel_init + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +arax_data_init_aligned + + + + + +Node16->Node18 + + + + + + + + +Node21 + + +arax_proc_init + + + + + +Node16->Node21 + + + + + + + + +Node23 + + +arax_task_alloc + + + + + +Node16->Node23 + + + + + + + + +Node30 + + +arax_vaccel_init + + + + + +Node16->Node30 + + + + + + + + +Node19 + + +arax_data_init + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +ARAX_BUFFER + + + + + +Node19->Node20 + + + + + + + + +Node22 + + +arax_proc_register + + + + + +Node21->Node22 + + + + + + + + +Node24 + + +arax_task_issue + + + + + +Node23->Node24 + + + + + + + + +Node24->Node14 + + + + + + + + +Node25 + + +arax_data_get + + + + + +Node24->Node25 + + + + + + + + +Node27 + + +arax_data_set + + + + + +Node24->Node27 + + + + + + + + +Node28 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node24->Node28 + + + + + + + + +Node29 + + +arax_task_issue_sync + + + + + +Node24->Node29 + + + + + + + + +Node26 + + +arax_data_memcpy + + + + + +Node25->Node26 + + + + + + + + +Node27->Node26 + + + + + + + + +Node30->Node17 + + + + + + + + +Node31 + + +arax_accel_acquire_phys + + + + + +Node30->Node31 + + + + + + + + +Node32 + + +arax_accel_acquire_type + + + + + +Node30->Node32 + + + + + + + + diff --git a/a02352_a2a7d01fc7720e936a430efc09d094c6c_cgraph.map b/a02352_a2a7d01fc7720e936a430efc09d094c6c_cgraph.map new file mode 100644 index 00000000..aefd803d --- /dev/null +++ b/a02352_a2a7d01fc7720e936a430efc09d094c6c_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a02352_a2a7d01fc7720e936a430efc09d094c6c_cgraph.md5 b/a02352_a2a7d01fc7720e936a430efc09d094c6c_cgraph.md5 new file mode 100644 index 00000000..f9432bf7 --- /dev/null +++ b/a02352_a2a7d01fc7720e936a430efc09d094c6c_cgraph.md5 @@ -0,0 +1 @@ +95a8fafaac00793d7b99b2b84b37060d \ No newline at end of file diff --git a/a02352_a2a7d01fc7720e936a430efc09d094c6c_cgraph.svg b/a02352_a2a7d01fc7720e936a430efc09d094c6c_cgraph.svg new file mode 100644 index 00000000..5393c30a --- /dev/null +++ b/a02352_a2a7d01fc7720e936a430efc09d094c6c_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +async_semaphore_init + + +Node1 + + +async_semaphore_init + + + + + +Node2 + + +utils_list_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +utils_list_node_init + + + + + +Node2->Node3 + + + + + + + + diff --git a/a02352_a2a7d01fc7720e936a430efc09d094c6c_icgraph.map b/a02352_a2a7d01fc7720e936a430efc09d094c6c_icgraph.map new file mode 100644 index 00000000..269d711f --- /dev/null +++ b/a02352_a2a7d01fc7720e936a430efc09d094c6c_icgraph.map @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02352_a2a7d01fc7720e936a430efc09d094c6c_icgraph.md5 b/a02352_a2a7d01fc7720e936a430efc09d094c6c_icgraph.md5 new file mode 100644 index 00000000..e324546a --- /dev/null +++ b/a02352_a2a7d01fc7720e936a430efc09d094c6c_icgraph.md5 @@ -0,0 +1 @@ +623647336779a9979e562c6fe4d6ce06 \ No newline at end of file diff --git a/a02352_a2a7d01fc7720e936a430efc09d094c6c_icgraph.svg b/a02352_a2a7d01fc7720e936a430efc09d094c6c_icgraph.svg new file mode 100644 index 00000000..8cfab6b5 --- /dev/null +++ b/a02352_a2a7d01fc7720e936a430efc09d094c6c_icgraph.svg @@ -0,0 +1,275 @@ + + + + + + +async_semaphore_init + + +Node1 + + +async_semaphore_init + + + + + +Node2 + + +async_condition_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_accel_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_pipe_init + + + + + +Node2->Node4 + + + + + + + + +Node13 + + +arax_throttle_init + + + + + +Node2->Node13 + + + + + + + + +Node5 + + +_arax_init + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_controller_init +_start + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_init + + + + + +Node5->Node7 + + + + + + + + +Node8 + + +arax_plot_register +_metric + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_ptr_valid + + + + + +Node7->Node9 + + + + + + + + +Node9->Node8 + + + + + + + + +Node10 + + +_arax_assert_obj + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_data_ref + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +arax_data_ref_offset + + + + + +Node9->Node12 + + + + + + + + +Node11->Node12 + + + + + + + + +Node13->Node3 + + + + + + + + +Node13->Node4 + + + + + + + + diff --git a/a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.map b/a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.map new file mode 100644 index 00000000..13e28921 --- /dev/null +++ b/a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.md5 b/a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.md5 new file mode 100644 index 00000000..4c1487a6 --- /dev/null +++ b/a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.md5 @@ -0,0 +1 @@ +dee28efa988c4fdd6be2c608cd597e68 \ No newline at end of file diff --git a/a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.svg b/a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.svg new file mode 100644 index 00000000..5446e69e --- /dev/null +++ b/a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +async_condition_unlock + + +Node1 + + +async_condition_unlock + + + + + +Node2 + + +async_completion_complete + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.map b/a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.map new file mode 100644 index 00000000..f6929189 --- /dev/null +++ b/a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.map @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.md5 b/a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.md5 new file mode 100644 index 00000000..f39e00ac --- /dev/null +++ b/a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.md5 @@ -0,0 +1 @@ +2ca2e033b8dd44761813fddb6e2104af \ No newline at end of file diff --git a/a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.svg b/a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.svg new file mode 100644 index 00000000..518e690f --- /dev/null +++ b/a02352_a3bbcb7c4c024e99d5c4ba52b61dfbbf7_icgraph.svg @@ -0,0 +1,1019 @@ + + + + + + +async_condition_unlock + + +Node1 + + +async_condition_unlock + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +arax_accel_add_task + + + + + +Node1->Node10 + + + + + + + + +Node20 + + +arax_accel_add_vaccel + + + + + +Node1->Node20 + + + + + + + + +Node26 + + +arax_accel_del_vaccel + + + + + +Node1->Node26 + + + + + + + + +Node28 + + +arax_accel_get_assigned +_vaccels + + + + + +Node1->Node28 + + + + + + + + +Node29 + + +arax_accel_wait_for_task + + + + + +Node1->Node29 + + + + + + + + +Node30 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node1->Node30 + + + + + + + + +Node31 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node1->Node31 + + + + + + + + +Node32 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node1->Node32 + + + + + + + + +Node33 + + +arax_pipe_orphan_stop + + + + + +Node1->Node33 + + + + + + + + +Node34 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node1->Node34 + + + + + + + + +Node35 + + +arax_throttle_size_dec + + + + + +Node1->Node35 + + + + + + + + +Node45 + + +arax_throttle_size_inc + + + + + +Node1->Node45 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +arax_vaccel_add_task + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_task_submit + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +arax_task_issue + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +arax_data_allocate +_remote + + + + + +Node13->Node14 + + + + + + + + +Node18 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node13->Node18 + + + + + + + + +Node21 + + +arax_accel_set_physical + + + + + +Node20->Node21 + + + + + + + + +Node22 + + +arax_vaccel_init + + + + + +Node20->Node22 + + + + + + + + +Node23 + + +arax_accel_acquire_phys + + + + + +Node22->Node23 + + + + + + + + +Node24 + + +arax_accel_acquire_type + + + + + +Node22->Node24 + + + + + + + + +Node25 + + +arax_accel_init + + + + + +Node22->Node25 + + + + + + + + +Node27 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node26->Node27 + + + + + + + + +Node31->Node22 + + + + + + + + +Node34->Node20 + + + + + + + + +Node34->Node27 + + + + + + + + +Node36 + + +arax_accel_size_dec + + + + + +Node35->Node36 + + + + + + + + +Node37 + + +arax_pipe_size_dec + + + + + +Node35->Node37 + + + + + + + + +Node36->Node14 + + + + + + + + +Node38 + + +arax_object_register + + + + + +Node37->Node38 + + + + + + + + +Node38->Node22 + + + + + + + + +Node38->Node25 + + + + + + + + +Node39 + + +arax_data_init_aligned + + + + + +Node38->Node39 + + + + + + + + +Node42 + + +arax_proc_init + + + + + +Node38->Node42 + + + + + + + + +Node44 + + +arax_task_alloc + + + + + +Node38->Node44 + + + + + + + + +Node44->Node13 + + + + + + + + +Node46 + + +arax_accel_size_inc + + + + + +Node45->Node46 + + + + + + + + +Node47 + + +arax_pipe_size_inc + + + + + +Node45->Node47 + + + + + + + + +Node48 + + +arax_object_ref_dec + + + + + +Node47->Node48 + + + + + + + + +Node60 + + +arax_object_ref_dec +_pre_locked + + + + + +Node47->Node60 + + + + + + + + +Node48->Node18 + + + + + + + + +Node49 + + +arax_accel_list_free + + + + + +Node48->Node49 + + + + + + + + +Node50 + + +arax_accel_release + + + + + +Node48->Node50 + + + + + + + + +Node51 + + +arax_data_free + + + + + +Node48->Node51 + + + + + + + + +Node52 + + +arax_data_migrate_accel + + + + + +Node48->Node52 + + + + + + + + +Node56 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node48->Node56 + + + + + + + + +Node57 + + +arax_pipe_delete_accel + + + + + +Node48->Node57 + + + + + + + + +Node58 + + +arax_proc_put + + + + + +Node48->Node58 + + + + + + + + +Node59 + + +arax_task_free + + + + + +Node48->Node59 + + + + + + + + +Node50->Node30 + + + + + + + + +Node59->Node14 + + + + + + + + diff --git a/a02352_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.map b/a02352_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.map new file mode 100644 index 00000000..ae6510e5 --- /dev/null +++ b/a02352_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02352_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.md5 b/a02352_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.md5 new file mode 100644 index 00000000..683e2960 --- /dev/null +++ b/a02352_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.md5 @@ -0,0 +1 @@ +d6c048abf93899c77f9a5c1354dd2f46 \ No newline at end of file diff --git a/a02352_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.svg b/a02352_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.svg new file mode 100644 index 00000000..19b8432a --- /dev/null +++ b/a02352_a45a896fb606c2aa66a5a4c2af59ce494_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +async_condition_notify + + +Node1 + + +async_condition_notify + + + + + +Node2 + + +async_semaphore_inc + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02352_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.map b/a02352_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.map new file mode 100644 index 00000000..f8177da4 --- /dev/null +++ b/a02352_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.map @@ -0,0 +1,95 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02352_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.md5 b/a02352_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.md5 new file mode 100644 index 00000000..8d55cd44 --- /dev/null +++ b/a02352_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.md5 @@ -0,0 +1 @@ +4296360af1f59c6f8ff08cede001fc69 \ No newline at end of file diff --git a/a02352_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.svg b/a02352_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.svg new file mode 100644 index 00000000..560134a5 --- /dev/null +++ b/a02352_a45a896fb606c2aa66a5a4c2af59ce494_icgraph.svg @@ -0,0 +1,853 @@ + + + + + + +async_condition_notify + + +Node1 + + +async_condition_notify + + + + + +Node2 + + +arax_accel_add_task + + + + + +Node1->Node2 + + + + + + + + +Node12 + + +arax_accel_add_vaccel + + + + + +Node1->Node12 + + + + + + + + +Node18 + + +arax_accel_del_vaccel + + + + + +Node1->Node18 + + + + + + + + +Node20 + + +arax_controller_init_done + + + + + +Node1->Node20 + + + + + + + + +Node21 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node1->Node21 + + + + + + + + +Node22 + + +arax_pipe_orphan_stop + + + + + +Node1->Node22 + + + + + + + + +Node23 + + +arax_throttle_size_inc + + + + + +Node1->Node23 + + + + + + + + +Node3 + + +arax_vaccel_add_task + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_task_submit + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_task_issue + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_data_allocate +_remote + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_data_get + + + + + +Node5->Node7 + + + + + + + + +Node9 + + +arax_data_set + + + + + +Node5->Node9 + + + + + + + + +Node10 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node5->Node10 + + + + + + + + +Node11 + + +arax_task_issue_sync + + + + + +Node5->Node11 + + + + + + + + +Node8 + + +arax_data_memcpy + + + + + +Node7->Node8 + + + + + + + + +Node9->Node8 + + + + + + + + +Node13 + + +arax_accel_set_physical + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +arax_vaccel_init + + + + + +Node12->Node14 + + + + + + + + +Node15 + + +arax_accel_acquire_phys + + + + + +Node14->Node15 + + + + + + + + +Node16 + + +arax_accel_acquire_type + + + + + +Node14->Node16 + + + + + + + + +Node17 + + +arax_accel_init + + + + + +Node14->Node17 + + + + + + + + +Node19 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node18->Node19 + + + + + + + + +Node21->Node14 + + + + + + + + +Node24 + + +arax_accel_size_inc + + + + + +Node23->Node24 + + + + + + + + +Node25 + + +arax_pipe_size_inc + + + + + +Node23->Node25 + + + + + + + + +Node26 + + +arax_object_ref_dec + + + + + +Node25->Node26 + + + + + + + + +Node40 + + +arax_object_ref_dec +_pre_locked + + + + + +Node25->Node40 + + + + + + + + +Node26->Node10 + + + + + + + + +Node27 + + +arax_accel_list_free + + + + + +Node26->Node27 + + + + + + + + +Node28 + + +arax_accel_release + + + + + +Node26->Node28 + + + + + + + + +Node30 + + +arax_data_free + + + + + +Node26->Node30 + + + + + + + + +Node31 + + +arax_data_migrate_accel + + + + + +Node26->Node31 + + + + + + + + +Node36 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node26->Node36 + + + + + + + + +Node37 + + +arax_pipe_delete_accel + + + + + +Node26->Node37 + + + + + + + + +Node38 + + +arax_proc_put + + + + + +Node26->Node38 + + + + + + + + +Node39 + + +arax_task_free + + + + + +Node26->Node39 + + + + + + + + +Node29 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node28->Node29 + + + + + + + + +Node32 + + +arax_data_arg_init + + + + + +Node31->Node32 + + + + + + + + +Node33 + + +arax_data_input_init + + + + + +Node31->Node33 + + + + + + + + +Node35 + + +arax_data_output_init + + + + + +Node31->Node35 + + + + + + + + +Node34 + + +arax_task_alloc + + + + + +Node33->Node34 + + + + + + + + +Node34->Node5 + + + + + + + + +Node35->Node34 + + + + + + + + +Node38->Node7 + + + + + + + + +Node38->Node9 + + + + + + + + +Node39->Node6 + + + + + + + + +Node39->Node7 + + + + + + + + +Node39->Node11 + + + + + + + + +Node41 + + +arax_accel_list_free +_pre_locked + + + + + +Node40->Node41 + + + + + + + + +Node42 + + +arax_accel_list + + + + + +Node41->Node42 + + + + + + + + diff --git a/a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.map b/a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.map new file mode 100644 index 00000000..5e667114 --- /dev/null +++ b/a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.map @@ -0,0 +1,17 @@ + + + + + + + + + + + + + + + + + diff --git a/a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.md5 b/a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.md5 new file mode 100644 index 00000000..f0d58c08 --- /dev/null +++ b/a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.md5 @@ -0,0 +1 @@ +642c0e42f3f8687a24bc8d874174e389 \ No newline at end of file diff --git a/a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.svg b/a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.svg new file mode 100644 index 00000000..0d2caabe --- /dev/null +++ b/a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_cgraph.svg @@ -0,0 +1,147 @@ + + + + + + +async_semaphore_dec + + +Node1 + + +async_semaphore_dec + + + + + +Node2 + + +arch_alloc_allocate + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_completion_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +async_completion_wait + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +getVmID + + + + + +Node1->Node5 + + + + + + + + +Node6 + + +utils_list_add + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +wakeupVm + + + + + +Node1->Node8 + + + + + + + + +Node7 + + +utils_list_node_add + + + + + +Node6->Node7 + + + + + + + + diff --git a/a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.map b/a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.map new file mode 100644 index 00000000..25bd00f3 --- /dev/null +++ b/a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.map @@ -0,0 +1,72 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.md5 b/a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.md5 new file mode 100644 index 00000000..e3eacb16 --- /dev/null +++ b/a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.md5 @@ -0,0 +1 @@ +1fe55d526546830510852ba8742420a5 \ No newline at end of file diff --git a/a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.svg b/a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.svg new file mode 100644 index 00000000..9d7cbf52 --- /dev/null +++ b/a02352_a7ab7c7fe9cb93434dde72a4e464a7e69_icgraph.svg @@ -0,0 +1,646 @@ + + + + + + +async_semaphore_dec + + +Node1 + + +async_semaphore_dec + + + + + +Node2 + + +async_condition_wait + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +arax_accel_wait_for_task + + + + + +Node2->Node11 + + + + + + + + +Node12 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node2->Node12 + + + + + + + + +Node13 + + +arax_throttle_size_dec + + + + + +Node2->Node13 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + +Node14 + + +arax_accel_size_dec + + + + + +Node13->Node14 + + + + + + + + +Node16 + + +arax_pipe_size_dec + + + + + +Node13->Node16 + + + + + + + + +Node15 + + +arax_data_allocate +_remote + + + + + +Node14->Node15 + + + + + + + + +Node17 + + +arax_object_register + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +arax_accel_init + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +arax_data_init_aligned + + + + + +Node17->Node19 + + + + + + + + +Node22 + + +arax_proc_init + + + + + +Node17->Node22 + + + + + + + + +Node24 + + +arax_task_alloc + + + + + +Node17->Node24 + + + + + + + + +Node31 + + +arax_vaccel_init + + + + + +Node17->Node31 + + + + + + + + +Node20 + + +arax_data_init + + + + + +Node19->Node20 + + + + + + + + +Node21 + + +ARAX_BUFFER + + + + + +Node20->Node21 + + + + + + + + +Node23 + + +arax_proc_register + + + + + +Node22->Node23 + + + + + + + + +Node25 + + +arax_task_issue + + + + + +Node24->Node25 + + + + + + + + +Node25->Node15 + + + + + + + + +Node26 + + +arax_data_get + + + + + +Node25->Node26 + + + + + + + + +Node28 + + +arax_data_set + + + + + +Node25->Node28 + + + + + + + + +Node29 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node25->Node29 + + + + + + + + +Node30 + + +arax_task_issue_sync + + + + + +Node25->Node30 + + + + + + + + +Node27 + + +arax_data_memcpy + + + + + +Node26->Node27 + + + + + + + + +Node28->Node27 + + + + + + + + +Node31->Node18 + + + + + + + + +Node32 + + +arax_accel_acquire_phys + + + + + +Node31->Node32 + + + + + + + + +Node33 + + +arax_accel_acquire_type + + + + + +Node31->Node33 + + + + + + + + diff --git a/a02352_ab2e422aab2fcfa562795beb2843e8019_cgraph.map b/a02352_ab2e422aab2fcfa562795beb2843e8019_cgraph.map new file mode 100644 index 00000000..234c6496 --- /dev/null +++ b/a02352_ab2e422aab2fcfa562795beb2843e8019_cgraph.map @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02352_ab2e422aab2fcfa562795beb2843e8019_cgraph.md5 b/a02352_ab2e422aab2fcfa562795beb2843e8019_cgraph.md5 new file mode 100644 index 00000000..601b12c4 --- /dev/null +++ b/a02352_ab2e422aab2fcfa562795beb2843e8019_cgraph.md5 @@ -0,0 +1 @@ +f01f57a4c0ebce65cb3bb06a1a47b752 \ No newline at end of file diff --git a/a02352_ab2e422aab2fcfa562795beb2843e8019_cgraph.svg b/a02352_ab2e422aab2fcfa562795beb2843e8019_cgraph.svg new file mode 100644 index 00000000..46b7ac96 --- /dev/null +++ b/a02352_ab2e422aab2fcfa562795beb2843e8019_cgraph.svg @@ -0,0 +1,336 @@ + + + + + + +async_meta_init_once + + +Node1 + + +async_meta_init_once + + + + + +Node2 + + +utils_config_alloc_path + + + + + +Node1->Node2 + + + + + + + + +Node4 + + +utils_config_free_path + + + + + +Node1->Node4 + + + + + + + + +Node5 + + +utils_config_get_bool + + + + + +Node1->Node5 + + + + + + + + +Node16 + + +utils_list_init + + + + + +Node1->Node16 + + + + + + + + +Node3 + + +system_home_path + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +utils_config_get_int + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +utils_config_get_long + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +_utils_config_get_str + + + + + +Node7->Node8 + + + + + + + + +Node13 + + +utils_config_write_long + + + + + +Node7->Node13 + + + + + + + + +Node9 + + +conf_get + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +system_env_var + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +system_file_size + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +utils_config_get_source + + + + + +Node9->Node12 + + + + + + + + +Node12->Node10 + + + + + + + + +Node14 + + +utils_config_write_str + + + + + +Node13->Node14 + + + + + + + + +Node14->Node9 + + + + + + + + +Node15 + + +conf_set + + + + + +Node14->Node15 + + + + + + + + +Node15->Node12 + + + + + + + + +Node17 + + +utils_list_node_init + + + + + +Node16->Node17 + + + + + + + + diff --git a/a02352_ab2e422aab2fcfa562795beb2843e8019_icgraph.map b/a02352_ab2e422aab2fcfa562795beb2843e8019_icgraph.map new file mode 100644 index 00000000..78a1739a --- /dev/null +++ b/a02352_ab2e422aab2fcfa562795beb2843e8019_icgraph.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02352_ab2e422aab2fcfa562795beb2843e8019_icgraph.md5 b/a02352_ab2e422aab2fcfa562795beb2843e8019_icgraph.md5 new file mode 100644 index 00000000..23be2929 --- /dev/null +++ b/a02352_ab2e422aab2fcfa562795beb2843e8019_icgraph.md5 @@ -0,0 +1 @@ +dd230b68cd6cf290bbae81e7854fd64c \ No newline at end of file diff --git a/a02352_ab2e422aab2fcfa562795beb2843e8019_icgraph.svg b/a02352_ab2e422aab2fcfa562795beb2843e8019_icgraph.svg new file mode 100644 index 00000000..202b84f3 --- /dev/null +++ b/a02352_ab2e422aab2fcfa562795beb2843e8019_icgraph.svg @@ -0,0 +1,203 @@ + + + + + + +async_meta_init_once + + +Node1 + + +async_meta_init_once + + + + + +Node2 + + +arax_pipe_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +_arax_init + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_controller_init +_start + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_init + + + + + +Node3->Node5 + + + + + + + + +Node6 + + +arax_plot_register +_metric + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_ptr_valid + + + + + +Node5->Node7 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +_arax_assert_obj + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +arax_data_ref + + + + + +Node7->Node9 + + + + + + + + +Node10 + + +arax_data_ref_offset + + + + + +Node7->Node10 + + + + + + + + +Node9->Node10 + + + + + + + + diff --git a/a02352_ac728117d73179c279de49e01ae905dda_cgraph.map b/a02352_ac728117d73179c279de49e01ae905dda_cgraph.map new file mode 100644 index 00000000..82e22649 --- /dev/null +++ b/a02352_ac728117d73179c279de49e01ae905dda_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02352_ac728117d73179c279de49e01ae905dda_cgraph.md5 b/a02352_ac728117d73179c279de49e01ae905dda_cgraph.md5 new file mode 100644 index 00000000..c9486237 --- /dev/null +++ b/a02352_ac728117d73179c279de49e01ae905dda_cgraph.md5 @@ -0,0 +1 @@ +d954951136e620923e272690179e8f4e \ No newline at end of file diff --git a/a02352_ac728117d73179c279de49e01ae905dda_cgraph.svg b/a02352_ac728117d73179c279de49e01ae905dda_cgraph.svg new file mode 100644 index 00000000..d0a03395 --- /dev/null +++ b/a02352_ac728117d73179c279de49e01ae905dda_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +async_completion_init + + +Node1 + + +async_completion_init + + + + + +Node2 + + +utils_list_node_init + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02352_ac728117d73179c279de49e01ae905dda_icgraph.map b/a02352_ac728117d73179c279de49e01ae905dda_icgraph.map new file mode 100644 index 00000000..2947ce9d --- /dev/null +++ b/a02352_ac728117d73179c279de49e01ae905dda_icgraph.map @@ -0,0 +1,48 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02352_ac728117d73179c279de49e01ae905dda_icgraph.md5 b/a02352_ac728117d73179c279de49e01ae905dda_icgraph.md5 new file mode 100644 index 00000000..8c520d5d --- /dev/null +++ b/a02352_ac728117d73179c279de49e01ae905dda_icgraph.md5 @@ -0,0 +1 @@ +b1140377db57b6595a840b4c55aa2e76 \ No newline at end of file diff --git a/a02352_ac728117d73179c279de49e01ae905dda_icgraph.svg b/a02352_ac728117d73179c279de49e01ae905dda_icgraph.svg new file mode 100644 index 00000000..633138aa --- /dev/null +++ b/a02352_ac728117d73179c279de49e01ae905dda_icgraph.svg @@ -0,0 +1,429 @@ + + + + + + +async_completion_init + + +Node1 + + +async_completion_init + + + + + +Node2 + + +arax_task_alloc + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +async_condition_init + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +arax_task_issue + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_allocate +_remote + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data_get + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +arax_data_set + + + + + +Node3->Node7 + + + + + + + + +Node8 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node3->Node8 + + + + + + + + +Node9 + + +arax_task_issue_sync + + + + + +Node3->Node9 + + + + + + + + +Node6 + + +arax_data_memcpy + + + + + +Node5->Node6 + + + + + + + + +Node7->Node6 + + + + + + + + +Node11 + + +arax_accel_init + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_pipe_init + + + + + +Node10->Node12 + + + + + + + + +Node21 + + +arax_throttle_init + + + + + +Node10->Node21 + + + + + + + + +Node13 + + +_arax_init + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +arax_controller_init +_start + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +arax_init + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +arax_plot_register +_metric + + + + + +Node15->Node16 + + + + + + + + +Node17 + + +arax_ptr_valid + + + + + +Node15->Node17 + + + + + + + + +Node17->Node16 + + + + + + + + +Node18 + + +_arax_assert_obj + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +arax_data_ref + + + + + +Node17->Node19 + + + + + + + + +Node20 + + +arax_data_ref_offset + + + + + +Node17->Node20 + + + + + + + + +Node19->Node20 + + + + + + + + +Node21->Node11 + + + + + + + + +Node21->Node12 + + + + + + + + diff --git a/a02352_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.map b/a02352_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.map new file mode 100644 index 00000000..f9f789bb --- /dev/null +++ b/a02352_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/a02352_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.md5 b/a02352_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.md5 new file mode 100644 index 00000000..4714a6d7 --- /dev/null +++ b/a02352_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.md5 @@ -0,0 +1 @@ +ff2f2c0d2a2311aeb1727f8167a8e500 \ No newline at end of file diff --git a/a02352_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.svg b/a02352_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.svg new file mode 100644 index 00000000..98cee772 --- /dev/null +++ b/a02352_ac7fbf1f43289d3e0e862b315f00e35e2_cgraph.svg @@ -0,0 +1,75 @@ + + + + + + +async_condition_init + + +Node1 + + +async_condition_init + + + + + +Node2 + + +async_completion_complete + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_completion_init + + + + + +Node1->Node3 + + + + + + + + +Node4 + + +async_semaphore_init + + + + + +Node1->Node4 + + + + + + + + diff --git a/a02352_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.map b/a02352_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.map new file mode 100644 index 00000000..dc2ab55d --- /dev/null +++ b/a02352_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.map @@ -0,0 +1,29 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02352_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.md5 b/a02352_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.md5 new file mode 100644 index 00000000..43849fb6 --- /dev/null +++ b/a02352_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.md5 @@ -0,0 +1 @@ +46e3ac1ffbeca54c31a7c1ce69f87b02 \ No newline at end of file diff --git a/a02352_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.svg b/a02352_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.svg new file mode 100644 index 00000000..a03f715c --- /dev/null +++ b/a02352_ac7fbf1f43289d3e0e862b315f00e35e2_icgraph.svg @@ -0,0 +1,257 @@ + + + + + + +async_condition_init + + +Node1 + + +async_condition_init + + + + + +Node2 + + +arax_accel_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_pipe_init + + + + + +Node1->Node3 + + + + + + + + +Node12 + + +arax_throttle_init + + + + + +Node1->Node12 + + + + + + + + +Node4 + + +_arax_init + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_controller_init +_start + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_init + + + + + +Node4->Node6 + + + + + + + + +Node7 + + +arax_plot_register +_metric + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_ptr_valid + + + + + +Node6->Node8 + + + + + + + + +Node8->Node7 + + + + + + + + +Node9 + + +_arax_assert_obj + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_data_ref + + + + + +Node8->Node10 + + + + + + + + +Node11 + + +arax_data_ref_offset + + + + + +Node8->Node11 + + + + + + + + +Node10->Node11 + + + + + + + + +Node12->Node2 + + + + + + + + +Node12->Node3 + + + + + + + + diff --git a/a02352_ad1d30ecbf6bff6457b680aa940281072_cgraph.map b/a02352_ad1d30ecbf6bff6457b680aa940281072_cgraph.map new file mode 100644 index 00000000..882a1400 --- /dev/null +++ b/a02352_ad1d30ecbf6bff6457b680aa940281072_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02352_ad1d30ecbf6bff6457b680aa940281072_cgraph.md5 b/a02352_ad1d30ecbf6bff6457b680aa940281072_cgraph.md5 new file mode 100644 index 00000000..99a393cf --- /dev/null +++ b/a02352_ad1d30ecbf6bff6457b680aa940281072_cgraph.md5 @@ -0,0 +1 @@ +3122994f9dbd28ccd02ec5ee16501445 \ No newline at end of file diff --git a/a02352_ad1d30ecbf6bff6457b680aa940281072_cgraph.svg b/a02352_ad1d30ecbf6bff6457b680aa940281072_cgraph.svg new file mode 100644 index 00000000..ef24a35a --- /dev/null +++ b/a02352_ad1d30ecbf6bff6457b680aa940281072_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +async_completion_complete + + +Node1 + + +async_completion_complete + + + + + +Node2 + + +wakeupVm + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02352_ad1d30ecbf6bff6457b680aa940281072_icgraph.map b/a02352_ad1d30ecbf6bff6457b680aa940281072_icgraph.map new file mode 100644 index 00000000..8fc147e7 --- /dev/null +++ b/a02352_ad1d30ecbf6bff6457b680aa940281072_icgraph.map @@ -0,0 +1,119 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02352_ad1d30ecbf6bff6457b680aa940281072_icgraph.md5 b/a02352_ad1d30ecbf6bff6457b680aa940281072_icgraph.md5 new file mode 100644 index 00000000..4198c4da --- /dev/null +++ b/a02352_ad1d30ecbf6bff6457b680aa940281072_icgraph.md5 @@ -0,0 +1 @@ +a65969f004ad2cbd8b136513698cd349 \ No newline at end of file diff --git a/a02352_ad1d30ecbf6bff6457b680aa940281072_icgraph.svg b/a02352_ad1d30ecbf6bff6457b680aa940281072_icgraph.svg new file mode 100644 index 00000000..0fe400ab --- /dev/null +++ b/a02352_ad1d30ecbf6bff6457b680aa940281072_icgraph.svg @@ -0,0 +1,1073 @@ + + + + + + +async_completion_complete + + +Node1 + + +async_completion_complete + + + + + +Node2 + + +arax_task_mark_done + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +async_condition_init + + + + + +Node1->Node3 + + + + + + + + +Node15 + + +async_condition_unlock + + + + + +Node1->Node15 + + + + + + + + +Node68 + + +async_condition_wait + + + + + +Node1->Node68 + + + + + + + + +Node4 + + +arax_accel_init + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_pipe_init + + + + + +Node3->Node5 + + + + + + + + +Node14 + + +arax_throttle_init + + + + + +Node3->Node14 + + + + + + + + +Node6 + + +_arax_init + + + + + +Node5->Node6 + + + + + + + + +Node7 + + +arax_controller_init +_start + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_init + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_plot_register +_metric + + + + + +Node8->Node9 + + + + + + + + +Node10 + + +arax_ptr_valid + + + + + +Node8->Node10 + + + + + + + + +Node10->Node9 + + + + + + + + +Node11 + + +_arax_assert_obj + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_data_ref + + + + + +Node10->Node12 + + + + + + + + +Node13 + + +arax_data_ref_offset + + + + + +Node10->Node13 + + + + + + + + +Node12->Node13 + + + + + + + + +Node14->Node4 + + + + + + + + +Node14->Node5 + + + + + + + + +Node15->Node6 + + + + + + + + +Node16 + + +arax_accel_add_task + + + + + +Node15->Node16 + + + + + + + + +Node26 + + +arax_accel_add_vaccel + + + + + +Node15->Node26 + + + + + + + + +Node31 + + +arax_accel_del_vaccel + + + + + +Node15->Node31 + + + + + + + + +Node33 + + +arax_accel_get_assigned +_vaccels + + + + + +Node15->Node33 + + + + + + + + +Node34 + + +arax_accel_wait_for_task + + + + + +Node15->Node34 + + + + + + + + +Node35 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node15->Node35 + + + + + + + + +Node36 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node15->Node36 + + + + + + + + +Node37 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node15->Node37 + + + + + + + + +Node38 + + +arax_pipe_orphan_stop + + + + + +Node15->Node38 + + + + + + + + +Node39 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node15->Node39 + + + + + + + + +Node40 + + +arax_throttle_size_dec + + + + + +Node15->Node40 + + + + + + + + +Node50 + + +arax_throttle_size_inc + + + + + +Node15->Node50 + + + + + + + + +Node17 + + +arax_vaccel_add_task + + + + + +Node16->Node17 + + + + + + + + +Node18 + + +arax_task_submit + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +arax_task_issue + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +arax_data_allocate +_remote + + + + + +Node19->Node20 + + + + + + + + +Node27 + + +arax_accel_set_physical + + + + + +Node26->Node27 + + + + + + + + +Node28 + + +arax_vaccel_init + + + + + +Node26->Node28 + + + + + + + + +Node28->Node4 + + + + + + + + +Node29 + + +arax_accel_acquire_phys + + + + + +Node28->Node29 + + + + + + + + +Node30 + + +arax_accel_acquire_type + + + + + +Node28->Node30 + + + + + + + + +Node32 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node31->Node32 + + + + + + + + +Node36->Node28 + + + + + + + + +Node39->Node26 + + + + + + + + +Node39->Node32 + + + + + + + + +Node41 + + +arax_accel_size_dec + + + + + +Node40->Node41 + + + + + + + + +Node42 + + +arax_pipe_size_dec + + + + + +Node40->Node42 + + + + + + + + +Node41->Node20 + + + + + + + + +Node43 + + +arax_object_register + + + + + +Node42->Node43 + + + + + + + + +Node43->Node4 + + + + + + + + +Node43->Node28 + + + + + + + + +Node44 + + +arax_data_init_aligned + + + + + +Node43->Node44 + + + + + + + + +Node47 + + +arax_proc_init + + + + + +Node43->Node47 + + + + + + + + +Node49 + + +arax_task_alloc + + + + + +Node43->Node49 + + + + + + + + +Node49->Node19 + + + + + + + + +Node51 + + +arax_accel_size_inc + + + + + +Node50->Node51 + + + + + + + + +Node52 + + +arax_pipe_size_inc + + + + + +Node50->Node52 + + + + + + + + +Node53 + + +arax_object_ref_dec + + + + + +Node52->Node53 + + + + + + + + +Node65 + + +arax_object_ref_dec +_pre_locked + + + + + +Node52->Node65 + + + + + + + + +Node54 + + +arax_accel_list_free + + + + + +Node53->Node54 + + + + + + + + +Node55 + + +arax_accel_release + + + + + +Node53->Node55 + + + + + + + + +Node56 + + +arax_data_free + + + + + +Node53->Node56 + + + + + + + + +Node55->Node35 + + + + + + + + +Node68->Node6 + + + + + + + + +Node68->Node34 + + + + + + + + +Node68->Node37 + + + + + + + + +Node68->Node40 + + + + + + + + diff --git a/a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.map b/a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.map new file mode 100644 index 00000000..db61086d --- /dev/null +++ b/a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.map @@ -0,0 +1,36 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.md5 b/a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.md5 new file mode 100644 index 00000000..ace41281 --- /dev/null +++ b/a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.md5 @@ -0,0 +1 @@ +5e95a935b1c6ebf3d35646695bc5dad9 \ No newline at end of file diff --git a/a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.svg b/a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.svg new file mode 100644 index 00000000..d51d4754 --- /dev/null +++ b/a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_cgraph.svg @@ -0,0 +1,318 @@ + + + + + + +async_meta_init_always + + +Node1 + + +async_meta_init_always + + + + + +Node2 + + +async_thread + + + + + +Node1->Node2 + + + + + + + + +Node6 + + +utils_config_alloc_path + + + + + +Node1->Node6 + + + + + + + + +Node8 + + +utils_config_free_path + + + + + +Node1->Node8 + + + + + + + + +Node9 + + +utils_config_get_str + + + + + +Node1->Node9 + + + + + + + + +Node3 + + +async_completion_check + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +getVmID + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +utils_list_del + + + + + +Node2->Node5 + + + + + + + + +Node7 + + +system_home_path + + + + + +Node6->Node7 + + + + + + + + +Node10 + + +_utils_config_get_str + + + + + +Node9->Node10 + + + + + + + + +Node15 + + +utils_config_write_str + + + + + +Node9->Node15 + + + + + + + + +Node11 + + +conf_get + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +system_env_var + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +system_file_size + + + + + +Node11->Node13 + + + + + + + + +Node14 + + +utils_config_get_source + + + + + +Node11->Node14 + + + + + + + + +Node14->Node12 + + + + + + + + +Node15->Node11 + + + + + + + + +Node16 + + +conf_set + + + + + +Node15->Node16 + + + + + + + + +Node16->Node14 + + + + + + + + diff --git a/a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.map b/a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.map new file mode 100644 index 00000000..f71b7fa8 --- /dev/null +++ b/a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.map @@ -0,0 +1,21 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.md5 b/a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.md5 new file mode 100644 index 00000000..d46ec83b --- /dev/null +++ b/a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.md5 @@ -0,0 +1 @@ +6d9e7c45ab6f7274045238ef62fc3ba4 \ No newline at end of file diff --git a/a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.svg b/a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.svg new file mode 100644 index 00000000..dc36547c --- /dev/null +++ b/a02352_adbaa29dfccfdfe6e3fe69a1d001c05b5_icgraph.svg @@ -0,0 +1,185 @@ + + + + + + +async_meta_init_always + + +Node1 + + +async_meta_init_always + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + diff --git a/a02352_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.map b/a02352_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.map new file mode 100644 index 00000000..e56e6ea9 --- /dev/null +++ b/a02352_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/a02352_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.md5 b/a02352_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.md5 new file mode 100644 index 00000000..32034c4b --- /dev/null +++ b/a02352_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.md5 @@ -0,0 +1 @@ +d4a7a83219ecc86324f41867b7069269 \ No newline at end of file diff --git a/a02352_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.svg b/a02352_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.svg new file mode 100644 index 00000000..950fc86f --- /dev/null +++ b/a02352_aebf9e72bb6cbd8b9e33489d46c25075d_cgraph.svg @@ -0,0 +1,93 @@ + + + + + + +async_completion_wait + + +Node1 + + +async_completion_wait + + + + + +Node2 + + +_add_completion + + + + + +Node1->Node2 + + + + + + + + +Node5 + + +getVmID + + + + + +Node1->Node5 + + + + + + + + +Node3 + + +utils_list_add + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +utils_list_node_add + + + + + +Node3->Node4 + + + + + + + + diff --git a/a02352_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.map b/a02352_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.map new file mode 100644 index 00000000..5c4d5784 --- /dev/null +++ b/a02352_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.map @@ -0,0 +1,118 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02352_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.md5 b/a02352_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.md5 new file mode 100644 index 00000000..209741de --- /dev/null +++ b/a02352_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.md5 @@ -0,0 +1 @@ +39f68c590e7f38822e8407d9780a0a4f \ No newline at end of file diff --git a/a02352_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.svg b/a02352_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.svg new file mode 100644 index 00000000..53884c89 --- /dev/null +++ b/a02352_aebf9e72bb6cbd8b9e33489d46c25075d_icgraph.svg @@ -0,0 +1,1064 @@ + + + + + + +async_completion_wait + + +Node1 + + +async_completion_wait + + + + + +Node2 + + +arax_task_wait_done + + + + + +Node1->Node2 + + + + + + + + +Node8 + + +async_condition_lock + + + + + +Node1->Node8 + + + + + + + + +Node66 + + +async_condition_wait + + + + + +Node1->Node66 + + + + + + + + +Node3 + + +arax_task_wait + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_data_allocate +_remote + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +arax_data_get + + + + + +Node3->Node5 + + + + + + + + +Node7 + + +arax_task_issue_sync + + + + + +Node3->Node7 + + + + + + + + +Node6 + + +arax_data_memcpy + + + + + +Node5->Node6 + + + + + + + + +Node9 + + +_arax_init + + + + + +Node8->Node9 + + + + + + + + +Node17 + + +arax_accel_add_task + + + + + +Node8->Node17 + + + + + + + + +Node23 + + +arax_accel_add_vaccel + + + + + +Node8->Node23 + + + + + + + + +Node29 + + +arax_accel_del_vaccel + + + + + +Node8->Node29 + + + + + + + + +Node31 + + +arax_accel_get_assigned +_vaccels + + + + + +Node8->Node31 + + + + + + + + +Node32 + + +arax_accel_wait_for_task + + + + + +Node8->Node32 + + + + + + + + +Node33 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node8->Node33 + + + + + + + + +Node34 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node8->Node34 + + + + + + + + +Node35 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node8->Node35 + + + + + + + + +Node36 + + +arax_pipe_orphan_stop + + + + + +Node8->Node36 + + + + + + + + +Node37 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node8->Node37 + + + + + + + + +Node38 + + +arax_throttle_size_dec + + + + + +Node8->Node38 + + + + + + + + +Node48 + + +arax_throttle_size_inc + + + + + +Node8->Node48 + + + + + + + + +Node10 + + +arax_controller_init +_start + + + + + +Node9->Node10 + + + + + + + + +Node11 + + +arax_init + + + + + +Node9->Node11 + + + + + + + + +Node12 + + +arax_plot_register +_metric + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +arax_ptr_valid + + + + + +Node11->Node13 + + + + + + + + +Node13->Node12 + + + + + + + + +Node14 + + +_arax_assert_obj + + + + + +Node13->Node14 + + + + + + + + +Node15 + + +arax_data_ref + + + + + +Node13->Node15 + + + + + + + + +Node16 + + +arax_data_ref_offset + + + + + +Node13->Node16 + + + + + + + + +Node15->Node16 + + + + + + + + +Node18 + + +arax_vaccel_add_task + + + + + +Node17->Node18 + + + + + + + + +Node19 + + +arax_task_submit + + + + + +Node18->Node19 + + + + + + + + +Node20 + + +arax_task_issue + + + + + +Node19->Node20 + + + + + + + + +Node20->Node4 + + + + + + + + +Node20->Node5 + + + + + + + + +Node20->Node7 + + + + + + + + +Node24 + + +arax_accel_set_physical + + + + + +Node23->Node24 + + + + + + + + +Node25 + + +arax_vaccel_init + + + + + +Node23->Node25 + + + + + + + + +Node26 + + +arax_accel_acquire_phys + + + + + +Node25->Node26 + + + + + + + + +Node27 + + +arax_accel_acquire_type + + + + + +Node25->Node27 + + + + + + + + +Node28 + + +arax_accel_init + + + + + +Node25->Node28 + + + + + + + + +Node30 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node29->Node30 + + + + + + + + +Node34->Node25 + + + + + + + + +Node37->Node23 + + + + + + + + +Node37->Node30 + + + + + + + + +Node39 + + +arax_accel_size_dec + + + + + +Node38->Node39 + + + + + + + + +Node40 + + +arax_pipe_size_dec + + + + + +Node38->Node40 + + + + + + + + +Node39->Node4 + + + + + + + + +Node41 + + +arax_object_register + + + + + +Node40->Node41 + + + + + + + + +Node41->Node25 + + + + + + + + +Node41->Node28 + + + + + + + + +Node42 + + +arax_data_init_aligned + + + + + +Node41->Node42 + + + + + + + + +Node45 + + +arax_proc_init + + + + + +Node41->Node45 + + + + + + + + +Node47 + + +arax_task_alloc + + + + + +Node41->Node47 + + + + + + + + +Node47->Node20 + + + + + + + + +Node49 + + +arax_accel_size_inc + + + + + +Node48->Node49 + + + + + + + + +Node50 + + +arax_pipe_size_inc + + + + + +Node48->Node50 + + + + + + + + +Node51 + + +arax_object_ref_dec + + + + + +Node50->Node51 + + + + + + + + +Node63 + + +arax_object_ref_dec +_pre_locked + + + + + +Node50->Node63 + + + + + + + + +Node52 + + +arax_accel_list_free + + + + + +Node51->Node52 + + + + + + + + +Node53 + + +arax_accel_release + + + + + +Node51->Node53 + + + + + + + + +Node53->Node33 + + + + + + + + +Node66->Node9 + + + + + + + + +Node66->Node32 + + + + + + + + +Node66->Node35 + + + + + + + + +Node66->Node38 + + + + + + + + diff --git a/a02352_aed6af4d83e934e3e654ead541b15f2d9_cgraph.map b/a02352_aed6af4d83e934e3e654ead541b15f2d9_cgraph.map new file mode 100644 index 00000000..7ad4fe1c --- /dev/null +++ b/a02352_aed6af4d83e934e3e654ead541b15f2d9_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02352_aed6af4d83e934e3e654ead541b15f2d9_cgraph.md5 b/a02352_aed6af4d83e934e3e654ead541b15f2d9_cgraph.md5 new file mode 100644 index 00000000..83224a29 --- /dev/null +++ b/a02352_aed6af4d83e934e3e654ead541b15f2d9_cgraph.md5 @@ -0,0 +1 @@ +bb1b9dc19a671fccfc3695a19e853b6c \ No newline at end of file diff --git a/a02352_aed6af4d83e934e3e654ead541b15f2d9_cgraph.svg b/a02352_aed6af4d83e934e3e654ead541b15f2d9_cgraph.svg new file mode 100644 index 00000000..85b62c42 --- /dev/null +++ b/a02352_aed6af4d83e934e3e654ead541b15f2d9_cgraph.svg @@ -0,0 +1,39 @@ + + + + + + +async_condition_lock + + +Node1 + + +async_condition_lock + + + + + +Node2 + + +async_completion_wait + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02352_aed6af4d83e934e3e654ead541b15f2d9_icgraph.map b/a02352_aed6af4d83e934e3e654ead541b15f2d9_icgraph.map new file mode 100644 index 00000000..12bbc34f --- /dev/null +++ b/a02352_aed6af4d83e934e3e654ead541b15f2d9_icgraph.map @@ -0,0 +1,113 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02352_aed6af4d83e934e3e654ead541b15f2d9_icgraph.md5 b/a02352_aed6af4d83e934e3e654ead541b15f2d9_icgraph.md5 new file mode 100644 index 00000000..2a9b4819 --- /dev/null +++ b/a02352_aed6af4d83e934e3e654ead541b15f2d9_icgraph.md5 @@ -0,0 +1 @@ +de90128b1acea38fcd3c824ea5674ca1 \ No newline at end of file diff --git a/a02352_aed6af4d83e934e3e654ead541b15f2d9_icgraph.svg b/a02352_aed6af4d83e934e3e654ead541b15f2d9_icgraph.svg new file mode 100644 index 00000000..81b4a512 --- /dev/null +++ b/a02352_aed6af4d83e934e3e654ead541b15f2d9_icgraph.svg @@ -0,0 +1,1019 @@ + + + + + + +async_condition_lock + + +Node1 + + +async_condition_lock + + + + + +Node2 + + +_arax_init + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +arax_accel_add_task + + + + + +Node1->Node10 + + + + + + + + +Node20 + + +arax_accel_add_vaccel + + + + + +Node1->Node20 + + + + + + + + +Node26 + + +arax_accel_del_vaccel + + + + + +Node1->Node26 + + + + + + + + +Node28 + + +arax_accel_get_assigned +_vaccels + + + + + +Node1->Node28 + + + + + + + + +Node29 + + +arax_accel_wait_for_task + + + + + +Node1->Node29 + + + + + + + + +Node30 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node1->Node30 + + + + + + + + +Node31 + + +arax_pipe_add_orphan +_vaccel + + + + + +Node1->Node31 + + + + + + + + +Node32 + + +arax_pipe_get_orphan +_vaccel + + + + + +Node1->Node32 + + + + + + + + +Node33 + + +arax_pipe_orphan_stop + + + + + +Node1->Node33 + + + + + + + + +Node34 + + +arax_pipe_remove_orphan +_vaccel + + + + + +Node1->Node34 + + + + + + + + +Node35 + + +arax_throttle_size_dec + + + + + +Node1->Node35 + + + + + + + + +Node45 + + +arax_throttle_size_inc + + + + + +Node1->Node45 + + + + + + + + +Node3 + + +arax_controller_init +_start + + + + + +Node2->Node3 + + + + + + + + +Node4 + + +arax_init + + + + + +Node2->Node4 + + + + + + + + +Node5 + + +arax_plot_register +_metric + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +arax_ptr_valid + + + + + +Node4->Node6 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +_arax_assert_obj + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +arax_data_ref + + + + + +Node6->Node8 + + + + + + + + +Node9 + + +arax_data_ref_offset + + + + + +Node6->Node9 + + + + + + + + +Node8->Node9 + + + + + + + + +Node11 + + +arax_vaccel_add_task + + + + + +Node10->Node11 + + + + + + + + +Node12 + + +arax_task_submit + + + + + +Node11->Node12 + + + + + + + + +Node13 + + +arax_task_issue + + + + + +Node12->Node13 + + + + + + + + +Node14 + + +arax_data_allocate +_remote + + + + + +Node13->Node14 + + + + + + + + +Node18 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node13->Node18 + + + + + + + + +Node21 + + +arax_accel_set_physical + + + + + +Node20->Node21 + + + + + + + + +Node22 + + +arax_vaccel_init + + + + + +Node20->Node22 + + + + + + + + +Node23 + + +arax_accel_acquire_phys + + + + + +Node22->Node23 + + + + + + + + +Node24 + + +arax_accel_acquire_type + + + + + +Node22->Node24 + + + + + + + + +Node25 + + +arax_accel_init + + + + + +Node22->Node25 + + + + + + + + +Node27 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node26->Node27 + + + + + + + + +Node31->Node22 + + + + + + + + +Node34->Node20 + + + + + + + + +Node34->Node27 + + + + + + + + +Node36 + + +arax_accel_size_dec + + + + + +Node35->Node36 + + + + + + + + +Node37 + + +arax_pipe_size_dec + + + + + +Node35->Node37 + + + + + + + + +Node36->Node14 + + + + + + + + +Node38 + + +arax_object_register + + + + + +Node37->Node38 + + + + + + + + +Node38->Node22 + + + + + + + + +Node38->Node25 + + + + + + + + +Node39 + + +arax_data_init_aligned + + + + + +Node38->Node39 + + + + + + + + +Node42 + + +arax_proc_init + + + + + +Node38->Node42 + + + + + + + + +Node44 + + +arax_task_alloc + + + + + +Node38->Node44 + + + + + + + + +Node44->Node13 + + + + + + + + +Node46 + + +arax_accel_size_inc + + + + + +Node45->Node46 + + + + + + + + +Node47 + + +arax_pipe_size_inc + + + + + +Node45->Node47 + + + + + + + + +Node48 + + +arax_object_ref_dec + + + + + +Node47->Node48 + + + + + + + + +Node60 + + +arax_object_ref_dec +_pre_locked + + + + + +Node47->Node60 + + + + + + + + +Node48->Node18 + + + + + + + + +Node49 + + +arax_accel_list_free + + + + + +Node48->Node49 + + + + + + + + +Node50 + + +arax_accel_release + + + + + +Node48->Node50 + + + + + + + + +Node51 + + +arax_data_free + + + + + +Node48->Node51 + + + + + + + + +Node52 + + +arax_data_migrate_accel + + + + + +Node48->Node52 + + + + + + + + +Node56 + + +ARAX_OBJ_DTOR_DECL + + + + + +Node48->Node56 + + + + + + + + +Node57 + + +arax_pipe_delete_accel + + + + + +Node48->Node57 + + + + + + + + +Node58 + + +arax_proc_put + + + + + +Node48->Node58 + + + + + + + + +Node59 + + +arax_task_free + + + + + +Node48->Node59 + + + + + + + + +Node50->Node30 + + + + + + + + +Node59->Node14 + + + + + + + + diff --git a/a02352_afe9571a12debd9d75a0f8fb93420e268_cgraph.map b/a02352_afe9571a12debd9d75a0f8fb93420e268_cgraph.map new file mode 100644 index 00000000..13b5e5a0 --- /dev/null +++ b/a02352_afe9571a12debd9d75a0f8fb93420e268_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a02352_afe9571a12debd9d75a0f8fb93420e268_cgraph.md5 b/a02352_afe9571a12debd9d75a0f8fb93420e268_cgraph.md5 new file mode 100644 index 00000000..7c6d79dd --- /dev/null +++ b/a02352_afe9571a12debd9d75a0f8fb93420e268_cgraph.md5 @@ -0,0 +1 @@ +44ec17098a6e9c7f63de7ff6b9d5c622 \ No newline at end of file diff --git a/a02352_afe9571a12debd9d75a0f8fb93420e268_cgraph.svg b/a02352_afe9571a12debd9d75a0f8fb93420e268_cgraph.svg new file mode 100644 index 00000000..d68698ad --- /dev/null +++ b/a02352_afe9571a12debd9d75a0f8fb93420e268_cgraph.svg @@ -0,0 +1,57 @@ + + + + + + +async_meta_exit + + +Node1 + + +async_meta_exit + + + + + +Node2 + + +getVmID + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +wakeupVm + + + + + +Node1->Node3 + + + + + + + + diff --git a/a02352_afe9571a12debd9d75a0f8fb93420e268_icgraph.map b/a02352_afe9571a12debd9d75a0f8fb93420e268_icgraph.map new file mode 100644 index 00000000..76a528f8 --- /dev/null +++ b/a02352_afe9571a12debd9d75a0f8fb93420e268_icgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/a02352_afe9571a12debd9d75a0f8fb93420e268_icgraph.md5 b/a02352_afe9571a12debd9d75a0f8fb93420e268_icgraph.md5 new file mode 100644 index 00000000..ae86c1eb --- /dev/null +++ b/a02352_afe9571a12debd9d75a0f8fb93420e268_icgraph.md5 @@ -0,0 +1 @@ +e2044de53f017628f8408e2f2c124d6f \ No newline at end of file diff --git a/a02352_afe9571a12debd9d75a0f8fb93420e268_icgraph.svg b/a02352_afe9571a12debd9d75a0f8fb93420e268_icgraph.svg new file mode 100644 index 00000000..dabe985d --- /dev/null +++ b/a02352_afe9571a12debd9d75a0f8fb93420e268_icgraph.svg @@ -0,0 +1,57 @@ + + + + + + +async_meta_exit + + +Node1 + + +async_meta_exit + + + + + +Node2 + + +arax_pipe_exit + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +arax_exit + + + + + +Node2->Node3 + + + + + + + + diff --git a/a02352_source.html b/a02352_source.html new file mode 100644 index 00000000..91cb6d7a --- /dev/null +++ b/a02352_source.html @@ -0,0 +1,221 @@ + + + + + + + +Arax: async.c Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
spin/async.c
+
+
+Go to the documentation of this file.
1#include "async.h"
+
2
+ +
4{ }
+
5
+ +
7{ }
+
8
+ +
10{
+
11 completion->completed = 0;
+
12}
+
13
+ +
15{
+
16 __sync_bool_compare_and_swap(&(completion->completed), 0, 1);
+
17}
+
18
+ +
20{
+
21 while (!__sync_bool_compare_and_swap(&(completion->completed), 1, 0));
+
22}
+
23
+ +
25{
+
26 return completion->completed;
+
27}
+
28
+ +
30{
+
31 sem->value = 0;
+
32}
+
33
+ +
35{
+
36 return sem->value;
+
37}
+
38
+ +
40{
+
41 __sync_fetch_and_add(&(sem->value), 1);
+
42}
+
43
+ +
45{
+
46 int value;
+
47
+
48 do{
+
49 value = sem->value;
+
50 if (value >= 1) {
+
51 if (__sync_bool_compare_and_swap(&(sem->value), value, value - 1))
+
52 break;
+
53 }
+
54 }while (1);
+
55}
+
56
+ +
58{
+
59 async_completion_init(meta, &(cond->mutex));
+ +
61 async_semaphore_init(meta, &(cond->semaphore));
+
62}
+
63
+ +
65{
+ +
67}
+
68
+ +
70{
+ + + +
74}
+
75
+ +
77{
+ +
79}
+
80
+ +
82{
+ +
84}
+
85
+ +
87{ }
+ + + +
volatile size_t completed
+ +
volatile size_t value
+ +
async_semaphore_s semaphore
+
async_completion_s mutex
+
void async_semaphore_inc(async_semaphore_s *sem)
Definition spin/async.c:39
+
void async_condition_wait(async_condition_s *cond)
Definition spin/async.c:69
+
void async_semaphore_init(async_meta_s *meta, async_semaphore_s *sem)
Definition spin/async.c:29
+
int async_semaphore_value(async_semaphore_s *sem)
Definition spin/async.c:34
+
void async_condition_unlock(async_condition_s *cond)
Definition spin/async.c:81
+
void async_condition_notify(async_condition_s *cond)
Definition spin/async.c:76
+
void async_semaphore_dec(async_semaphore_s *sem)
Definition spin/async.c:44
+
void async_meta_init_once(async_meta_s *meta, arch_alloc_s *alloc)
Definition spin/async.c:6
+
void async_completion_init(async_meta_s *meta, async_completion_s *completion)
Definition spin/async.c:9
+
void async_condition_init(async_meta_s *meta, async_condition_s *cond)
Definition spin/async.c:57
+
void async_completion_complete(async_completion_s *completion)
Definition spin/async.c:14
+
void async_meta_init_always(async_meta_s *meta)
Definition spin/async.c:3
+
int async_completion_check(async_completion_s *completion)
Definition spin/async.c:24
+
void async_completion_wait(async_completion_s *completion)
Definition spin/async.c:19
+
void async_condition_lock(async_condition_s *cond)
Definition spin/async.c:64
+
void async_meta_exit(async_meta_s *meta)
Definition spin/async.c:86
+ +
+
+ + + + diff --git a/a02353.map b/a02353.map new file mode 100644 index 00000000..24c6933f --- /dev/null +++ b/a02353.map @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02353.md5 b/a02353.md5 new file mode 100644 index 00000000..bc4b2dcf --- /dev/null +++ b/a02353.md5 @@ -0,0 +1 @@ +f2bbb2cf835b3f5f06d52607257695fa \ No newline at end of file diff --git a/a02353.svg b/a02353.svg new file mode 100644 index 00000000..797386ca --- /dev/null +++ b/a02353.svg @@ -0,0 +1,219 @@ + + + + + + +async.c + + +Node1 + + +async.c + + + + + +Node2 + + +async.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +core/arax_object.h + + + + + +Node2->Node3 + + + + + + + + +Node11 + + +async_api.h + + + + + +Node2->Node11 + + + + + + + + +Node4 + + +utils/list.h + + + + + +Node3->Node4 + + + + + + + + +Node7 + + +utils/spinlock.h + + + + + +Node3->Node7 + + + + + + + + +Node10 + + +arch/alloc.h + + + + + +Node3->Node10 + + + + + + + + +Node5 + + +stddef.h + + + + + +Node4->Node5 + + + + + + + + +Node6 + + +stdint.h + + + + + +Node4->Node6 + + + + + + + + +Node7->Node6 + + + + + + + + +Node8 + + +utils/arax_assert.h + + + + + +Node7->Node8 + + + + + + + + +Node9 + + +compat.h + + + + + +Node8->Node9 + + + + + + + + +Node11->Node10 + + + + + + + + diff --git a/a02355.html b/a02355.html new file mode 100644 index 00000000..bb67ccde --- /dev/null +++ b/a02355.html @@ -0,0 +1,198 @@ + + + + + + + +Arax: async.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
ivshmem/async.h File Reference
+
+
+
#include "core/arax_object.h"
+#include "utils/list.h"
+#include "pthread.h"
+#include "arch/alloc.h"
+#include "async_api.h"
+
+ + Include dependency graph for ivshmem/async.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + + + +

+Data Structures

struct  async_meta_s
 
struct  async_completion_s
 
struct  async_semaphore_s
 
struct  async_condition_s
 
+ + + + + + + +

+Typedefs

typedef struct ivshmem ivshmem_s
 
typedef struct async_meta_s async_meta_s
 
typedef struct async_completion_s async_completion_s
 
+

Typedef Documentation

+ +

◆ async_completion_s

+ +
+
+ + + + +
typedef struct async_completion_s async_completion_s
+
+ +
+
+ +

◆ async_meta_s

+ +
+
+ + + + +
typedef struct async_meta_s async_meta_s
+
+ +
+
+ +

◆ ivshmem_s

+ +
+
+ + + + +
typedef struct ivshmem ivshmem_s
+
+ +

Definition at line 8 of file ivshmem/async.h.

+ +
+
+
+
+ + + + diff --git a/a02355.js b/a02355.js new file mode 100644 index 00000000..73d63a8c --- /dev/null +++ b/a02355.js @@ -0,0 +1,10 @@ +var a02355 = +[ + [ "async_meta_s", "a02230.html", "a02230" ], + [ "async_completion_s", "a02234.html", "a02234" ], + [ "async_semaphore_s", "a02238.html", "a02238" ], + [ "async_condition_s", "a02242.html", "a02242" ], + [ "async_completion_s", "a02355.html#a7c7a1e8e0f346cd0dd0827d7f873672a", null ], + [ "async_meta_s", "a02355.html#ad3607c4fe8a2611f206fe3362ee9a19b", null ], + [ "ivshmem_s", "a02355.html#a7ac2ae76e6cbb7531021bacaf8c09b0b", null ] +]; \ No newline at end of file diff --git a/a02355_source.html b/a02355_source.html new file mode 100644 index 00000000..bfd06d33 --- /dev/null +++ b/a02355_source.html @@ -0,0 +1,188 @@ + + + + + + + +Arax: async.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ivshmem/async.h
+
+
+Go to the documentation of this file.
1#ifndef ASYNC_HEADER
+
2#define ASYNC_HEADER
+
3#include "core/arax_object.h"
+
4#include "utils/list.h"
+
5#include "pthread.h"
+
6#include "arch/alloc.h"
+
7
+
8typedef struct ivshmem ivshmem_s;
+
9
+
10typedef struct async_meta_s
+
11{
+ + + + +
16 pthread_t thread;
+
17 volatile int fd;
+ +
19
+
20typedef struct async_completion_s
+
21{
+ + +
24 size_t vm_id;
+
25 volatile size_t completed;
+
26 pthread_mutex_t mutex;
+
27 pthread_mutexattr_t attr;
+ +
29
+
30typedef struct
+
31{
+ + + +
35 volatile size_t value;
+
36}
+ +
38
+
39typedef struct
+
40{
+ + + + +
45
+
46#include "async_api.h"
+
47#endif // ifndef ASYNC_HEADER
+ +
volatile uint32_t utils_spinlock
Definition spinlock.h:10
+ + + + + +
pthread_t thread
+
utils_spinlock lock
+
utils_list_s outstanding
+
volatile int fd
+
arch_alloc_s * alloc
+
ivshmem_s * regs
+ +
async_meta_s * meta
+ +
pthread_mutex_t mutex
+
volatile size_t completed
+
pthread_mutexattr_t attr
+
utils_list_node_s outstanding
+ +
async_meta_s * meta
+
utils_spinlock pending_lock
+
utils_list_s pending_list
+
volatile size_t value
+ +
async_meta_s * meta
+
async_semaphore_s semaphore
+
async_completion_s mutex
+ + +
struct async_completion_s async_completion_s
+
struct async_meta_s async_meta_s
+
+
+ + + + diff --git a/a02356.map b/a02356.map new file mode 100644 index 00000000..d61dbfca --- /dev/null +++ b/a02356.map @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02356.md5 b/a02356.md5 new file mode 100644 index 00000000..6ca0193b --- /dev/null +++ b/a02356.md5 @@ -0,0 +1 @@ +c64e08b03f12a176620959bd291d3e67 \ No newline at end of file diff --git a/a02356.svg b/a02356.svg new file mode 100644 index 00000000..2ddae199 --- /dev/null +++ b/a02356.svg @@ -0,0 +1,237 @@ + + + + + + +async.h + + +Node1 + + +async.h + + + + + +Node2 + + +core/arax_object.h + + + + + +Node1->Node2 + + + + + + + + +Node3 + + +utils/list.h + + + + + +Node1->Node3 + + + + + + + + +Node9 + + +arch/alloc.h + + + + + +Node1->Node9 + + + + + + + + +Node10 + + +pthread.h + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +async_api.h + + + + + +Node1->Node11 + + + + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +utils/spinlock.h + + + + + +Node2->Node6 + + + + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +stddef.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +stdint.h + + + + + +Node3->Node5 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +utils/arax_assert.h + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +compat.h + + + + + +Node7->Node8 + + + + + + + + +Node11->Node9 + + + + + + + + diff --git a/a02357.map b/a02357.map new file mode 100644 index 00000000..0a68ee3c --- /dev/null +++ b/a02357.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02357.md5 b/a02357.md5 new file mode 100644 index 00000000..7cad69b3 --- /dev/null +++ b/a02357.md5 @@ -0,0 +1 @@ +11c3039f5b67f5f5eba87b3c779307c4 \ No newline at end of file diff --git a/a02357.svg b/a02357.svg new file mode 100644 index 00000000..2b347938 --- /dev/null +++ b/a02357.svg @@ -0,0 +1,39 @@ + + + + + + +async.h + + +Node1 + + +async.h + + + + + +Node2 + + +async.c + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02358.html b/a02358.html new file mode 100644 index 00000000..17c39c9d --- /dev/null +++ b/a02358.html @@ -0,0 +1,142 @@ + + + + + + + +Arax: async.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
mutex/async.h File Reference
+
+
+
#include "core/arax_object.h"
+#include "pthread.h"
+#include <semaphore.h>
+#include "async_api.h"
+
+ + Include dependency graph for mutex/async.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + + + +

+Data Structures

struct  async_meta_s
 
struct  async_completion_s
 
struct  async_semaphore_s
 
struct  async_condition_s
 
+
+
+ + + + diff --git a/a02358.js b/a02358.js new file mode 100644 index 00000000..1254be36 --- /dev/null +++ b/a02358.js @@ -0,0 +1,7 @@ +var a02358 = +[ + [ "async_meta_s", "a02230.html", "a02230" ], + [ "async_completion_s", "a02234.html", "a02234" ], + [ "async_semaphore_s", "a02238.html", "a02238" ], + [ "async_condition_s", "a02242.html", "a02242" ] +]; \ No newline at end of file diff --git a/a02358_source.html b/a02358_source.html new file mode 100644 index 00000000..393411ff --- /dev/null +++ b/a02358_source.html @@ -0,0 +1,153 @@ + + + + + + + +Arax: async.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
mutex/async.h
+
+
+Go to the documentation of this file.
1#ifndef ASYNC_HEADER
+
2#define ASYNC_HEADER
+
3#include "core/arax_object.h"
+
4#include "pthread.h"
+
5#include <semaphore.h>
+
6
+
7struct async_meta_s
+
8{
+
9 // This padp is necessary as empty struct have sizeof == 1 in C++, but 0 in C
+
10 #ifndef __cplusplus
+
11 char padd;
+
12 #endif
+
13};
+
14
+
15typedef struct
+
16{
+
17 pthread_mutex_t mutex;
+
18 pthread_mutexattr_t attr;
+
19}
+ +
21
+
22typedef struct
+
23{
+
24 sem_t sem;
+ +
26
+
27typedef struct
+
28{
+ +
30 pthread_cond_t condition;
+
31 pthread_condattr_t c_attr;
+ +
33
+
34#include "async_api.h"
+
35#endif // ifndef ASYNC_HEADER
+ + + + + + + + +
pthread_cond_t condition
Definition mutex/async.h:30
+
pthread_condattr_t c_attr
Definition mutex/async.h:31
+
+
+ + + + diff --git a/a02359.map b/a02359.map new file mode 100644 index 00000000..f67c106c --- /dev/null +++ b/a02359.map @@ -0,0 +1,27 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02359.md5 b/a02359.md5 new file mode 100644 index 00000000..0a905516 --- /dev/null +++ b/a02359.md5 @@ -0,0 +1 @@ +966fd76cbc1057cebbdb652c364a4af5 \ No newline at end of file diff --git a/a02359.svg b/a02359.svg new file mode 100644 index 00000000..33a5e82a --- /dev/null +++ b/a02359.svg @@ -0,0 +1,237 @@ + + + + + + +async.h + + +Node1 + + +async.h + + + + + +Node2 + + +core/arax_object.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +pthread.h + + + + + +Node1->Node10 + + + + + + + + +Node11 + + +semaphore.h + + + + + +Node1->Node11 + + + + + + + + +Node12 + + +async_api.h + + + + + +Node1->Node12 + + + + + + + + +Node3 + + +utils/list.h + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +utils/spinlock.h + + + + + +Node2->Node6 + + + + + + + + +Node9 + + +arch/alloc.h + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +stddef.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +stdint.h + + + + + +Node3->Node5 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +utils/arax_assert.h + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +compat.h + + + + + +Node7->Node8 + + + + + + + + +Node12->Node9 + + + + + + + + diff --git a/a02360.map b/a02360.map new file mode 100644 index 00000000..b2e9fd6f --- /dev/null +++ b/a02360.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02360.md5 b/a02360.md5 new file mode 100644 index 00000000..43da0e8d --- /dev/null +++ b/a02360.md5 @@ -0,0 +1 @@ +807680ab1c54c0b5046b100086a7591e \ No newline at end of file diff --git a/a02360.svg b/a02360.svg new file mode 100644 index 00000000..77b63282 --- /dev/null +++ b/a02360.svg @@ -0,0 +1,39 @@ + + + + + + +async.h + + +Node1 + + +async.h + + + + + +Node2 + + +async.c + + + + + +Node1->Node2 + + + + + + + + diff --git a/a02361.html b/a02361.html new file mode 100644 index 00000000..75583ca8 --- /dev/null +++ b/a02361.html @@ -0,0 +1,140 @@ + + + + + + + +Arax: async.h File Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+ +
spin/async.h File Reference
+
+
+
#include "core/arax_object.h"
+#include "async_api.h"
+
+ + Include dependency graph for spin/async.h:
+
+
+ +
+ + This graph shows which files directly or indirectly include this file:
+
+
+ +
+

Go to the source code of this file.

+ + + + + + + + + + +

+Data Structures

struct  async_meta_s
 
struct  async_completion_s
 
struct  async_semaphore_s
 
struct  async_condition_s
 
+
+
+ + + + diff --git a/a02361.js b/a02361.js new file mode 100644 index 00000000..f3c00919 --- /dev/null +++ b/a02361.js @@ -0,0 +1,7 @@ +var a02361 = +[ + [ "async_meta_s", "a02230.html", "a02230" ], + [ "async_completion_s", "a02234.html", "a02234" ], + [ "async_semaphore_s", "a02238.html", "a02238" ], + [ "async_condition_s", "a02242.html", "a02242" ] +]; \ No newline at end of file diff --git a/a02361_source.html b/a02361_source.html new file mode 100644 index 00000000..918d083f --- /dev/null +++ b/a02361_source.html @@ -0,0 +1,146 @@ + + + + + + + +Arax: async.h Source File + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
spin/async.h
+
+
+Go to the documentation of this file.
1#ifndef ASYNC_HEADER
+
2#define ASYNC_HEADER
+
3#include "core/arax_object.h"
+
4
+
5struct async_meta_s
+
6{
+
7 #ifndef __cplusplus
+
8 char padd;
+
9 #endif
+
10};
+
11
+
12typedef struct
+
13{
+
14 volatile size_t completed;
+
15}
+ +
17
+
18typedef struct
+
19{
+
20 volatile size_t value;
+
21}
+ +
23
+
24typedef struct
+
25{
+ +
27 async_semaphore_s semaphore;
+ +
29
+
30#include "async_api.h"
+
31#endif // ifndef ASYNC_HEADER
+ + + + + + + +
+
+ + + + diff --git a/a02362.map b/a02362.map new file mode 100644 index 00000000..61192f26 --- /dev/null +++ b/a02362.map @@ -0,0 +1,23 @@ + + + + + + + + + + + + + + + + + + + + + + + diff --git a/a02362.md5 b/a02362.md5 new file mode 100644 index 00000000..8eb95878 --- /dev/null +++ b/a02362.md5 @@ -0,0 +1 @@ +3411b083224915a5ab458cb98096622d \ No newline at end of file diff --git a/a02362.svg b/a02362.svg new file mode 100644 index 00000000..0d0c6953 --- /dev/null +++ b/a02362.svg @@ -0,0 +1,201 @@ + + + + + + +async.h + + +Node1 + + +async.h + + + + + +Node2 + + +core/arax_object.h + + + + + +Node1->Node2 + + + + + + + + +Node10 + + +async_api.h + + + + + +Node1->Node10 + + + + + + + + +Node3 + + +utils/list.h + + + + + +Node2->Node3 + + + + + + + + +Node6 + + +utils/spinlock.h + + + + + +Node2->Node6 + + + + + + + + +Node9 + + +arch/alloc.h + + + + + +Node2->Node9 + + + + + + + + +Node4 + + +stddef.h + + + + + +Node3->Node4 + + + + + + + + +Node5 + + +stdint.h + + + + + +Node3->Node5 + + + + + + + + +Node6->Node5 + + + + + + + + +Node7 + + +utils/arax_assert.h + + + + + +Node6->Node7 + + + + + + + + +Node8 + + +compat.h + + + + + +Node7->Node8 + + + + + + + + +Node10->Node9 + + + + + + + + diff --git a/a02363.map b/a02363.map new file mode 100644 index 00000000..bf25612b --- /dev/null +++ b/a02363.map @@ -0,0 +1,5 @@ + + + + + diff --git a/a02363.md5 b/a02363.md5 new file mode 100644 index 00000000..82e0ede0 --- /dev/null +++ b/a02363.md5 @@ -0,0 +1 @@ +fb21f4918a2eba2c34f68d6059c46706 \ No newline at end of file diff --git a/a02363.svg b/a02363.svg new file mode 100644 index 00000000..904391c1 --- /dev/null +++ b/a02363.svg @@ -0,0 +1,39 @@ + + + + + + +async.h + + +Node1 + + +async.h + + + + + +Node2 + + +async.c + + + + + +Node1->Node2 + + + + + + + + diff --git a/annotated.html b/annotated.html new file mode 100644 index 00000000..605fe1e1 --- /dev/null +++ b/annotated.html @@ -0,0 +1,149 @@ + + + + + + + +Arax: Data Structures + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Data Structures
+
+ +
+ + + + diff --git a/annotated_dup.js b/annotated_dup.js new file mode 100644 index 00000000..11f14b31 --- /dev/null +++ b/annotated_dup.js @@ -0,0 +1,40 @@ +var annotated_dup = +[ + [ "arax_accel_s", "a02246.html", "a02246" ], + [ "arax_accel_stats", "a02330.html", "a02330" ], + [ "arax_accel_type_map", "a02250.html", "a02250" ], + [ "arax_data_dtr", "a02258.html", "a02258" ], + [ "arax_data_s", "a02254.html", "a02254" ], + [ "arax_object_repo_s", "a02266.html", "a02266" ], + [ "arax_object_s", "a02274.html", "a02274" ], + [ "arax_object_union", "a02262.html", "a02262" ], + [ "arax_pipe", "a02326.html", "a02326" ], + [ "arax_proc_s", "a02278.html", "a02278" ], + [ "arax_process_tracker_s", "a02322.html", "a02322" ], + [ "arax_task_msg", "a02282.html", "a02282" ], + [ "arax_task_stats", "a02338.html", "a02338" ], + [ "arax_throttle_s", "a02286.html", "a02286" ], + [ "arax_vaccel_s", "a02290.html", "a02290" ], + [ "arch_alloc_inner_s", "a02190.html", "a02190" ], + [ "arch_alloc_s", "a02182.html", "a02182" ], + [ "arch_alloc_stats_s", "a02186.html", "a02186" ], + [ "async_completion_s", "a02234.html", "a02234" ], + [ "async_condition_s", "a02242.html", "a02242" ], + [ "async_meta_s", "a02230.html", "a02230" ], + [ "async_semaphore_s", "a02238.html", "a02238" ], + [ "inspect_walker_state", "a02218.html", "a02218" ], + [ "ivshmem", "a02226.html", "a02226" ], + [ "mallinfo", "a02194.html", "a02194" ], + [ "malloc_chunk", "a02198.html", "a02198" ], + [ "malloc_params", "a02214.html", "a02214" ], + [ "malloc_segment", "a02206.html", "a02206" ], + [ "malloc_state", "a02210.html", "a02210" ], + [ "malloc_tree_chunk", "a02202.html", "a02202" ], + [ "queue", "a02318.html", "a02318" ], + [ "utils_bitmap", "a02294.html", "a02294" ], + [ "utils_compat_empty_s", "a02298.html", "a02298" ], + [ "utils_kv_s", "a02302.html", "a02302" ], + [ "utils_list_node", "a02310.html", "a02310" ], + [ "utils_list_s", "a02314.html", "a02314" ], + [ "utils_timer_s", "a02334.html", "a02334" ] +]; \ No newline at end of file diff --git a/bc_s.png b/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..13c6ff5defcbe7511bbccef71c260a919d568faa GIT binary patch literal 683 zcmV;c0#yBpP)>?qk z=m>#>%6{@`_jY!oHvj-~<1bBAqy{g* RpW6Tc002ovPDHLkV1jXaLskF) literal 0 HcmV?d00001 diff --git a/bc_sd.png b/bc_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..af50793a8fc3f4042796d4d6b5a5493ac5dcff90 GIT binary patch literal 570 zcmV-A0>%A_P)amy)l_Q!{z=m-}yM)n{&>60Oa#$(Qe-vlgm{R2cB06 z>-E*J-M;O6UIlUZv$$I*1ie;keVf4Z7H2>(Uz|T(=A^oeXTdq*|8S9S#pZMP{^wE)d2ViDz2%$XS91i)tCoF3&!6ZLyJFgfj=`%hC`#gwFbo?2Vu+nwu5zB@g-9mT0A{wsy9aDJMx#L;x^BhUWV_#&N{#1H z3{5j<;Gh0bES~#Dy%xnZjcHan;v=5WmmU&{)<4wa3a(_$2ql6Hs=zU z;_G@UwC!R@&C!a;n*!M8@o&>{~!15i(5+=Rq=;Q#;t07*qo IM6N<$g6G@@{r~^~ literal 0 HcmV?d00001 diff --git a/ccmake_scr.png b/ccmake_scr.png new file mode 100644 index 0000000000000000000000000000000000000000..9143828ea3b479a64c614432d9dfbeec1f990f04 GIT binary patch literal 66973 zcmb5W1z6Nu+ci!oprmx8DBTTGN=gVycQ?{Vhl)sph;%m$E#2KEF?4r#=YP*R=Xt*8 zyw7>R>-%$EUJk>+%>4G=_geQ_>z;sja+2tei66tk!J$jN5mSJJLr{T(gLgnd0{7f7 zN+N^*9@)N8cYuS#XoLNOk7U3gfrEPrCnfe;$t7WD*40H(`Ksw~|7{%g=RIROE4ttM z*_kL0am5KuZS_gi6ZFNfUPrO#WB4ou_fVsK`Sdj90>}8t3|_*Mj4pba$yBEJ2@#%@ z-&|7hS#S6D!(OF)w^nQae10t8nzS#XNoBLocTP%0OZ!F~<=Iy(k(&?Xa4+i* z#x zk-^o;IBRTw-Pu;zbZ9#5<8%Xw;fh^PI7Y21|F*Afx;IrKDCaLqutjD@OzQ7!uyN$E zu(A8*Y2Ie&-Z$jmn$5Df$;!*iQ#W2X2Xh6-^sOc1<;f+!6gYWDBY{TY+pchsN2ZFh znDjzL#NRy*0-4x#QczIfvt7ViTnuqJ8L}3*YcssKy!?@DV=&UOKT)>HZ!wnN{WW0O zY^sb-N=nMe*x2rHiK=1xgse4*LfXjag^J~~d7H@|RowzfuxZ~CDPkBDf)`V2z_jitr;DkuDCh(QQtJR#4$tCcrGj-yL zC?$f|h5~v)>vuKiiuP>Ne`=?G4Hu(V^mE3Mtek@A$yYadR2YX+9hi zoh55>du2n&ab`0S_#rry$R|6SW+bbz!xxocver3y+HiNaHthBq^FZvplL1;06BBM^ zy3T5`GH>=f1-_{6N*-JULgBrKTjQ97WbG28Q7<0I{4L<9s@LbNvPIRxJ18q`PVRL>3{sN~^!dwUmZbt5E54OSno z+wqdhCh!IS3X${nA?RH{|+<35uMPiA}Jf)#Q_7lzg zxcvrKJXLi+>Eh~2@Ao#?aZd%^PhVw^3{}|~#&Ow5=%+?rTs%NRC-)yRdzA+rF4h-~ z;k$8B0=6SSb=Pfy1VFmt-UgTf_J=ixh4lV-O>=!tv0!gP9TLyEmT24?%W6mZHja~;jxH8K z241SW+oRH)0}=TylKWg-A6&?;swNr=@1DcuL+h~V>SNIxD_PmxUld*w{nJ6wH3bxe zgk8t2e#2$vii{>4B-}TCOqvbIw&*(EP6xjq4^~3{y_xOev+8arVNZU|q`B{?_!X=1 z$uJ)6SFA`}Qfyf@wU}d1TfsPPD`^iR=ghBI=hQ@X%;1MB$|FIIAw=RK#9VBv>&J6P z_sG;h*Hn%kuIpZ{JoNK?z?{p)qQZZ(w%$}=y^42E~G z%99qS1Yux(zKp;ko1nB6@Wa(%9fuUVZ$uuGR=G0&C?SD#PQ4-lhemE`cUL@FNPc*C zNEo5m@LG=h!v$t+Z0rT{1&7N4hgft;sIr9xah^)S;!c?9kQwJ!Kc1GwcT%#Bjd9oc zlN_vs!I@LS?qj5(Wc+&-cNdQgCu%-Q=3a=jwFMjX$Cby(Qp5c!*T6>}qi)t~>RepN zt&FftvQ{i$m)FXr?4_@#X1>V3ZE{x}~zc-@VG(o`zQn4}r{t=~w6JRa1}dTAaf zF=}2hyZIz#_TopJC}JP4F{S9If77aS35Vth8|+LBaazs=mz8lI9ly0U%z^YIcsITt zFVuEf^nEn(L7Y_3EupJR#l_tn@!-5sKFemF#`U0CZUE=xU?Cp;o(_7~%_7&bXgi~z ztE{XO!@C)E!6O{Vw1+;vc2hF>fe;Pp1gV~*gq=`rW!dkwva2vtWT~6{opx=ZWurD% zy&9=n@988wT7S2bCRo6wJ%!xDCLd(X!#13-)R9fzk6VtBm_L%E3_`Do*zI}w>NLIb;Qc;2JVN!p_rSx1Ll_|7HDze`0- ztZZqaSyWl*jhh4#1cFUUxA+e`#cs~44fNjV2logvv0#H<%q!{} zeBAi0|K-aU6g0FK?Cf8BkReHGczAfJw2#Tj$KA;V1qJD7ZSNxYSCvZ@?8-El6tf!w zo6YnVzlfuGd*SA(6f*O`L!_^J16lU0v}>L87hA+P(A~a#*;2@$rTydwso8RwJ7`e+ z>{bTZF$<5!B<58LY*DAVxFbIsd! zr{(RB_>j;pIIeE(a$W_bRsCR?MxS-_3znEeMRD}xwk#{7{Z+$6AcA7&Ovh6~Pft%N zBn0o*+I(ik54Zkl4l-B%7{f{E@@IJXqO=*aPSqQ;+jsW%_I$2KxS(bg+Ap`Zw3rdh zR`iJ#)tyC0s#OQwC)?a zcH8Rlv#&V|q0nX@<20(E%d`Enh_DbPu1YtNsGJO7HiA=}d)W9@Kz4_TqepZ)J6L zd3m|j2UBPv4l|E_cd)02l9jbs>Gs!>&BQ_S5pzTpa>!s!-%^tX8ajGw=c1mO9RB`; zQHYBqC{4~>>cd&sMp7hp&(((|P@ajYdqp4$VUP>7WrfVoD(tPUwgbkr_bLc5LX>Cp zXYsQ6Y3b9E)fpkM@7rvYtF=Fa8=y8H(U<>u=hqxHU+vG9;{_7wLn#n?KECRmnd+d4 zeoeJsj!z6bWfzWCd*OnK_=)qN(yian&1R}j5|l==`!hgg=z24#w>uT4y?VOs$L>5w zs-)a*P-1(uLN``${WbUmt4AvDEcE2wgIxMcrViSZs zzon!+y}K-;i;=xF9!tEMLc zvooGRH?Hq&mp?|>`&m+w+fSchlz52{U)t?tSLMjY_YN%r%4$hQm^S0 zP{?&CruRQ+xo%>^2PJeX>Pw=AM#7sh+KZ}zYQYsLoe!9nQ*GkOiQ|umACC$Nv`nNV6B-NY>O#>;xM8P`2r!fk zvjYbXc6i1Lo@?WLM}QH(Pfc(Z(8nv&_tqK3zoh{iBI9>bUQ_UQ_m5V6+aXWrM>j8K zc8hg&x-0s|429&}dga5Y`4=6O*AYeSwr&24IZrGd;o&-bxQZRQmTz^F`8|-p7W1-- zyo=CykK59+HIiX&_#g zlWm+qH=_;O-0hq67Rw0CsLtMoJO&sJD(40pY?Y~M@1O5Yc7{Kf^e#bCFAyJnjFzKt zODvIY8NP1$ft!TOf;ZWz&NbY$c6MMicVu(Chy{l_6s%IQ)ilPKS6QJF+B3Ksr`?to z-=Ga>9`ftgAGTa*aEWn{lcY2;Z}u92`iz zpsLkn&&a>ZmP%6oA&QIz8LIwLbHJSj;o2*1BKB>cyZmQ)|VN2sW^^%6m~Dk36j z+frkFGO>(0We>v8ObPU)x=s&$s7?b9s~iOb*!Oa!-a9Zjd0!Vz>%mHvQYJP-h=h+y z9u+I=_t10a7lML5s07Tv3#KVpi9K8UfeLfm*Gso20f9uh74<{Y zaX5u~!uaSK~d~bF;a+SO@YvmPShMGj}+0&wLU=cSo9Hm8a_JlOAOzOjgt7naX)l zfPj5ZP96mB?$TwJhLVp7?%7t>O)gvNwO=f`NUf^dC3k zy5dOwfC{J>XafPB_**C}66TR4Kkn=9HeMgl2Ax{VkIW!KeiMXf7F{I0zKJ2V0u^HJ z5AW6#KND>d74m&vxKi|jKyX75HmP*%^aOTV{7B@>a>WJzz8LB-4Hn!*Lr6vWI zcDC-H5_j05=`22;<~9x9{_Z5HuHp@e)2w@>rh)ot=Go-L?aq->3TOqN({s6a{!a`r zF7n|%EhnN4Z297Ab98B{TkL*LE-fv+F}EDReh%0cr-V=V-YkXbRGF%){*thkt{#t@ z;efz+MuttpC6cb!C0DKUzFmdgm1Vw0^%Pe-0`EGh#>JRNh0T2P%_ZvL$>>PdTT9Ri zY9HDJ14-qWpszNwK_b1N&lua8Nc=sZ(x72SLqc@(A&=<(s93vtg1- zU{FwRzI#Z0##fnW=EG)WhJfJUg+=DXS!O1~%IT8nL=N@5pP@wvPJZd5hX@FWIm!&* zZSHHsTSORqeN~)hI4?Is?C2GBXZT@M-m8UI_L5p;+wXUg4TXq^=tPzCbJKJ=oD&h0 zI1i?8&n3_#L)6j}WoU^o$C`$r!ROwddj~{d_gs`KU&&jDzehpMlaI&>0mbS(hznNp zTS&MdQEIN$u3FU|zKhSl4dtsV3JCNJKF`z8otgb7+HP`PO_uUWvSvVe{JE&4l=eCW zo=&_+v4GB*wl=J~6!kE*2<$44U)Q^z*{yU9>E^#yv3ydFfM{(wpPfwp>i+IlD_ONb ztN))0``%SzImyKC89kKX{9B=RZL#elrQ7M&>v!+8kI<@9mNY&Qy(*#0NgBwsaagv|D#PFcUf+%>}IS2WhiECI8+g+bUBzT0v zBi{AROt_|e+DfhY!2nehFVU7StK)Vx^b(-h#jDA8yh34GQ9*&%@qiV)hR8rw=+)9* z#P{zTZa=t=6{v#WO-%enE<63T59>=uGa!%sn7##FSe}yZ42hC5)2U8;o_Mm}Q=3;97&gdb z+`el23~jc>-|~_a(%w1L^7x)>?ukW!1)6ylxs~m5TJD_+p$F6l$ay99tMnco9z;ho zdULMMbbnTBUdIhq4&CInxK0bDJ`{=eU_DSK;7)d+K1ua%RZAL-1KBxIEV{6tZ&`B8 z$d$h%@<}FZTQEhg7NU6RNLV`ABBQ9&Ha_lmbK~K(KPR)Z#$aJSTQ04rP z8S)mCXrmk5$HWmxjd-6o23(^cipTsmN7pNJsrWEd!7(a$^=E}WiYHYkA)5{DOm^9c zvM-(NYk3&-Z#GZuoc{-{hXmwT!ybtBD*c0| zF`G1l)|S`TJ4=21ut~MTE>YJ?EXOe!UEPWP;_lzj$@bi^Z6}J?VTCv_?RT-hk3#44 zjW#2LipNF;)Bkgape0YI!{Iq4TXXL61@r*pq~f3Q5+RV9Bn7R?JskF7j+qMMo?aGg zJm}PJ#mNa8^{wZx?f18U8R$*?UjI#U@<$I$#ljON>K9gQv1*|cfAx5AF*EvzZvUmf zuBvR`o3VU#_i6cj*tO$Pic$NxcZ21Fgl=@Wl$jv(G4A*8cjWGMBt%368z&2hZSA}3 z&W)&@*3MOD0oD}#)eh@s(`Q0JzhGiZc3m@%t27%pG3SUmI+6ipJZ@rQUwfJiqm$`+ z#_Yclqxb(8V$67@Hn5o{S^gO1nfLHvX}pO8a!bm{X3TL1Bl*_N(^{vyPkw&L^1_0j zK2mtMe1GN>dwSIcd^v6A@|EfU zcaofTvWn$1#HWrRf~#$PZD&`qZCn{GtXbZ=2$bRozyj?R*qcwk^yX_SD2UkEvE|T% zMg%CZ3OGVFhAec8Kp65kXqE;@LB2OU=~@=BN%pn3zf)VqD#NHDZ*e8V$Pt^y$D^s=5=USqzX2iy zAU9g4?x$N)gF1pSd=B`ouCBs)i-Boa_$tZNZ%IIf-7{^cAC#Ap`pRRWWY-?QGw=Ng zaMGjbMggEidN29lG1y3LfNJ3%XrXPQnqF1=Kvk@0G) zYcKcdU0tD$wSrt+A<16S2G{6P3Xa!KFWP7jU~U6&D@OBFF+cG+tbwZBbMU0~jlcX0 z1_snmf8yFU8>5Lsbx6|H-*E6A$|lXDNVe*Hsr;=uB|9bMpyKSUjLdTye!u0;WtqrE zm|~Y85HM-P%oPfOjK97)qNLOakBXC+X}EnslWYh!4CwtU_Z>_B^-6&hHas$7K9uH~ z%g@XccfTeAHy+^`9{$9Plep%t0d;{?ew03q3T|?8G9xQ%D0c)gn3yX;y>tyukB;^! zKSQlFx~g(yemw!Fl=TmGL>vf-(AbM;d{;Cz_Sk_mg(kMkQ)pgS8)l^iG4i-m>Fck-vpch~$;kn_81ii5Qqo{h2HFgPme=LYo5n!LHY?Wv zUdV=vx8(2$NAdJ73_}|(mKe6i3PgLOm|ScwuU%YRQfMFl1)`EtQUMGDA)TiOwhiNM zF7GO>wUajP2!(`%c4kWQ(t4GcAZ}pMmpe-A@B}Y_<+n7aqHjO7$(ArZGD%I9)~ z?w+2tP7dLkg1jL!UYCRK47mssl{|YZ|Jm2*-9Y`MPiy8I#;# zZsyXsViP)k=L>-VHU00ckL&tuCa!t`VDXFKO!j$r##xf*fzE~ykK@bchzY{)QdLa1 zv#rHIcdO8X)!yjpwUW52sbF2Jy)=jpG7QLWD!MfOl%=2<3LHiEQ$Vviyub;YRj>xe zU6tOD;5_*skK^tp`>Pe93}OWuB9@2}j?`bED3#fv_Hpxywchq2IM9VAEc%A_1>!@9#&vga9R%& z`nA4RP+%tx5dnV1Ooz8?4})5PZ{`#x>m~)u_wc0Vsd9>Fh^~sOx=NwOXPqKRW#uFL zV_wG#l=(a7=Qac0h_;2oF|o1TmGjn=PRIBr{Yje|G6x;ohzA>nv(k~tymr{~^0Q3i zrkAz%o!{4yj)#L-BEs$9KkW%7Erd(f94)Ox8%z61`v(wpgU++pL&S0Mi=)upM6#zH zm)C04BS6oYa#>5ZW-gy0p%Zs4waf5%ZgHljrV5<7@UXKp|K4my28>~F--{r0*2@#= zaN}$!f!{f_!fIbM4?2f^9BZ1CDG(|-wLZ#_KHwo#AzdFB^-SsG2w_XIyV46W(ZyGL1gf21KV)w$;ZiZaTh zM{D~L)HQ1o#AF;uLG2>(+*X9b`i#I2fU_gS!uZ3 zu}{m)oaK64gT&1FuPlH`=91v4lJHc8Wp5u*DQj$kOvMBl2Ea${qN9c#8ENT+W24+Z z@zg*m;ZgfytK`Owt*NSZ{agf){4dWMN$42MendxihLY8G4GcJu$*j61EG-!TDqMLB zeO*6w_VcF_1}U$Yni?$}hM)BN@Q|viTO$)4r`cTk?W-J!2BZ$S3Ad;3m4$9k97IG# zfp#BdiX_;N2{6Wi+jDW{e*<1x<)Xm|*ZlhqWMyC9ShNKDkWVdihayA?+z4dZc zmR}}N*RlMUgTi-7k6x+8gq%lZ53lNT$V6w99QojW6JRLaM}5|I53$E#U}0eahBYt| zeopWDVUSVRcyhkCO5=4qA%tsaXn?8aUoXV4v9SX}t=A#*d8+cDVl?-~mI6~buVchE zaF(<;UDeb9xp*?L+Wzu!t0Y>wdTEx6i_*-oy3Tc8JWz#z095VBR;uLc;_@5;5%GQDG@KJgJa@As7ahRrWY}Gg|A~ zR4het)|J^=S%)L?QXd+hNd;QZhl2Hn19SxkDEn@w36`h>u^iEWxqk~Ilo0Wt1l=)Q z{=FOGw6j*2K3lxa^;d51N?+@+yKn~8gpwkyZhLeyOjK0ECDi4vo}Q(~`^&N2yS*t2 ze0-Gh62k*IhW3MY4|Ql5s_|U#ck@*U+rp8m4z|u8OfUY z+KqYc432pB>ragaZ8*}C@LV2rXM4d-1mfA-TayI=yM4)9zB(YX-{iTVU?M(KTr?lK z>0LZ3yq5f#xP(N?klDu7HS?$A!uNS7>tq=_J0BDjM>a+`;el#AkPlKu#kjcN6O{#* zrO$SQmN!3px9ivsbDeF){rriGK_;MOl9n;PJzF7M<9X_Ytno*h!iH{ekS9DozSq5X z-gIcmx9r1Yi+W@5wxSUOl6tRr3t7Dy&Cxg7D1HWW2=Rk_ zfzx47Itdf}lA#0c?d91_HXgd^-+YAcn%l0>8#1@DGPgGzz2V8p>B;zU-wBUSij$LR zzuKJ|*fX_E{n85W`;a{(0f-G&^rZdu|5u)6S%=ruP;UoLd8JbQ|D9@Chp~N}VkmTt zgUJy|`W#4LbR`eVTh}MLx)evp$CLH$EWl8!3LzsS>jw_UY{mQs z?vcMJ*OUo+EFTa)r;io~!yMg%d!{aSsohRozVt>HRn-d_&*s`Ydt&SeH?;>vYb}o{ zDI2f)<;5Ny1?^1Mk3*>#==TphW!q>#B84_l%=^xlg5~ac1Xtcbsj2*1406ZNObaX% z!?t5}7gs*kSWZT7mhZi)0w}1Z)u=46P5(0=k5&xN)g_0~nO+l^3RBqc?fLq*>8q#C{A_)m`4-moLqF z8^dN8WjXKfuX1B}1nhoxGq4?Ut3Vt6YTb_l0oLyRNxbX@%L)EdB$>WkNmj{QE%Lra z#r)`nm0p6>-Q9gN@6G_Y;QPYz(|@r<7k5<&f0DmqCxz{`h&xUlCfd|37F4?FiyXSb z+^*NGl>9+^S;G!Lsff`M#$9We?oGAN6{BII>AaG@0Tjf2(1dx8rYO3~ zk2Vl!a;+w%Ae{sR8qflqxXE{9X6Y&8e)Ap6whIr5X4a*gRK#p5jMHJn$X^XyhWoZ= zRQqSlAh-A*1PZ?E5qU8QiGxW~T|M?#n2FyR);^N*n$Y*5FVH6X%Ds)Y-(XM(A$*!$ zOsT4xIQ=!9sLS+shT|Ft_D@I1{Ch1eS%B^bXJ=W{>E1@|*A%vUGp>MTNy)xhX$y!j zZi}WXXx}|Pf^@GC(6D*ksQsmBXAQ>mP)yHBD(OE1QGke|A^Qolm7L}`ra=x;&ye*L zamVw--uL|RF3xFrN{)_>D0yE@loK9sJ!@{J4HS`(_?EW=#LowQ4;)rD*g!K62VO+l z`}A+5eD-AuAu#VrPYuC(!r@P;X&Nv)jipT`^Vo-zQkOWd#dH@;B3HwZBa_#GN z!XS{JKYv#BB+OE|fh#5pqEs!C+y4Ik3ozJbT>O``aCW(sR|M~3xc7mR7(Fme|1gaz zLBKUolKfKe?+hhOIH?^lnVJh7k4*{?wpzM4bg4W9BKmHem6rcBwA_*apIJ++NJkLm zF(gQchX7A{*6tVGVUg<__)}TicXydZ3H*qA%hM$f~8Y3md) zlarH!BL4p1;J}tjH7O}ctw5Yq7=JK^E&cH9jGB`D%X8IQc=$2z`p>)kPBlU#=tzV& zXdutiVo`o{($qK%w)I5gJ>1albU0Qr%B!107Xt%{wDIksZNc}r50#bGkIvXZk!vZ3 zJLx}UGC3Zs<`%*FFBIQj?-PX=P=ZEkxkBhwLXK~rrH7v*AZWAo5i>Cb=3Do|L}cxr zxA~w|*xcMKGaE{v@D|vnAMC1vdu40O3X(W*51^=&&jo#2T0{mCgha)R7&IzF^@cQU zYR^h>aerzo7dq`u!L6*vclGzL0!mV9b|{jTrh!95^jRW3b$h=SZs2tH%htoxAv3e# z3^vn&8~@1<9U4kXCLYhc3cr3817S|M@2+$a?Lkos?&YYgWmPc_Nl9>{40P1}qJBuU z3YF+nNVewW zjP1^j@?9ldUg5Y%oLzGH7h&xv6XjpBwYBJ&*7*-zirF;gS(l-JA;Map_ z`oB3uFP4Ie{DXt_w$G;tUw%LVJtIgkfZT0f!iBx$s~ZoPm71If#kOH(eaeDt4VIN7w!4MK!2^K-l~ zdaa2{ux!igatifc$~}JpB9>ue`Nk8+qBa5E2Mf>E`V+ljMcTd&Pc6PgT~#eSN~A%e z_3`~Hx$RTOk~in2VAXs7t;bW!Oo7V$pE5%LEF=u>`VUt$SL);4X-_XO=Mi8h4ukBa z>|a=uCnqMxaL49~J%~vHlvOsMp|3$zv+T}xCV#a=ng3e_kIt?WQBW9WS}iphY#JO7 z1Cb1*8{?Eb0h1HjBYOw++OuW)N>P7Hu+M*)^lQjclD5Eux68 z^CS#U6n9qi%JsxSM;h1`n2owGwXWCQC55#pNA!_u{YhNNArhjM*4`;H9hat z7TG^A@I{mGr(0xR|7bY6J>||+*VhG3N)Iah}~TdMyu6dJqH?*>aKKvd+0yqUhL+rUu^Z6Q;(rO z(@kG39_o7U6F#82UTnXh#eZP(SE6lZ?1~ryvHueac)bM3ZERSGxh%Q>FY6xYp|+m) zieh%Zj=GKGH18W7H__uHcCj2nsIZxCZZf?KEa>Xkh+%Vab7Qxi>+0Y_ne0F4*yBXZvz){_{1( z#v5xnW)PEkyIdy#aAa$k8;8aDRi$&=>G zV>-OTk@MEVSzb~M#wY~Pi8tSdkk%7veOjw~US%VoS}CGxO-CV*(wBOu_79^b0CDeP zUS+jyYYLkS5CaaAJ~Oby0sg@YU5n50_B7ww-paIFR{~xK&`&o043ej{ow_eC zwsvpKXdi)~c^M1@itap&b$W~d zTwmzyBA_ubuO(#Dz@175N*(`Bg%89QpedO~`?%ii9N3)5K696xDj=x~B9{OX>qfmo^L*y#b?SZs^8!TYTkWT* z+Cr>lhe7B_HIHgePw$lu#vBInIUc^fuKu%H3%A*372w-lFabW*)6!=WI#jjB}n#`^7)1iXUj{P?{bewElb!5Mqn;( zpKHtPdhgBfHC!E8c7$A$B&qImqS*1zJGTI0+zdugS%IpG@(l9da6lQLjCXl;1)}k=$1d?eTBJVyPpKE=hO=^VHVCXH zfZFbIQevIi1Ex^Afeq;$zT6)t7;(DIgH>6y!}WmwquZx>;o(RSU~Vv;p8A;QdKzgC zQhOB|(_F`==A70uRZ5fpizp3-1&06b34@p=Olkm8oMNZl&O+XC`~vd-i0=Ti!S?=^ z?7cExPrc6tJHp@- zaJo!POpbOdL+rg2IZ`3J1;R|Ec3@C@>8BuMjBQzx?4-QdNTWLTOUx_0|1-%qCE@ z)fn+X%Ci-W9!R~F`pC3)YpL)LSx;QNNv+d8OGW=VMJnrimI$TlpvIj<4KPG-9T6gT zCCLh|LEXKM#YfKffX^vMUL~t5EAKe*)6wOU^4j_XA?3k?i{qOEeNM|UTo4YpDr(f< z9psP$phWuT(NU#2a2$X9z^*)Hc)8cl@hke{44+NkT11%e>H#$K53T|; zK4xo$oBs<(fk+z=KqRH6<_S89FMfUwuHljtyB(lO{{}{QE-$IMt!_ervB~Os^x^~w z5y>a1a^4H|6KGc#*7rM8Op&m$2w#D=hyk9qC~p#gHr36IwP(zn4M z8BlKg57WBoBl2#z@J$2z{b=Tdj5I6@OyN=d14LJ0p0fI$t&&C7&C$}$x$yj)n~o}u zDH!a@>5|Zz@nYv-!6Bd92z>#H5*LxMK53Q*PU@-X#&{*>v(#rFrfWj1rk$#`PF>l< zPUkODAjP&`FD=Ke91c=A9>ocrQcgR&*`4Hsml!gSWRx7s?UxuztTm|n6|<5Q-E3o9 zj$Ir_H?Am@e)F-KuD`G~{xp4&NM3v}^Zf$?qRbnaB1x}?<8`OS8^^P~ylzjc$B)n$ z^>ww-=X9U=OCWk*I$(I;q(4f3O-0on@z4gkHcWNicx7CE-)Amp*r}8CIwnNa&m!g2 z_D<8)ou82F=&@DWV>-ssV!pBXL7{U|l@Ks*mj^kaDGCb(l9r~ddk?J*_L570ZCxa!?;fom z?i)cx=mTa5usxCYyi=Z6^HtXgIXLB7A4r6J;QU}_xRzhD+TjNAX1;XQK*BWtB#}N0 z$%K|OHOoOV>t z`Mmo`swh0>jBZo!JsLH~hz~wfzFE2Qpd0nAU_{j|m&i^9 zerxN&i6iUvDQbr4#zehl4GNg)$^z3susE=eLAFFcaT`ULY3nx|7x!*T>R|8Bz>0y{ zLW`|_=JP^v$iNT+lUvejnX*l>IbdoBu-KXcT^$2xi6L@YTAEh!c>Y~ZAMfg={|mAj_UTT)t5Z>+XXN)~ zBG8_D%$C!<;Jm27&I6V{t7czWO^xGsKfmMTkq;G0;M(VpQCd8Fxt}I*djbcVqV=f? zz>%GHuTp#LdX73~CPB%-6>kMI8eZXICG>xfHuHJkT{S8v(;QD!b(6&RdlDRSK_1`T zIepo}kFa~)S+YD%vkJ9P9xFV~&S)cgE~u@#dI87p> z_YG|B(Nvkf#0~i03B0b@rQOwL_V2zQ7p;SlG1bIBCkVl4MU`=Wcyh8$>}jvVNf(>Y zg>B|`scJuQC0=&Q!WH3*+S$;eA{Jj?-^@LMm9^D0sD-O}j}goTTN_9WYhBdq`PuDa zR=(QNs4l+l?%?hbRy4LVxdw(-HR ze}($2@Jp+QckA)91^!E%c$K-VS_yPUkfVN5X(J2-AVSuK!NP}~mgDrPo{sR(4MiA& zOZN=DlkO}rMzVCovK1$*y8YyZKHdrZ=^NY<PI8OXDBsbl%V97r z3WVk_rWC*Pfw~D+_jW^uR2rzBDA_93H=s6gPpsq+|rx;ir> z0C$5}IPZFJe*T<=B@8$WTVqVKObR-;N4S%LT?0K%_3Ru)KZ&xdCceoz-=b#J!B2w= zM;OwfV2OQobp;0We4F*20y`RPS`eebCJs!q)1g-W_-@P-v9|s}Kh&+#y`j=@zJV7^ z69zUWQ-C1v$;pW(ekyYibW4`8sQh}$-C5q_n;#D)9Ul>#%=-q9q;_Npr#yvE(Y ztB7@tJ&$UX2eAk9$zS5I%Ll0Mc*M^?;}-#zpi#TrnNc3$8hF%XqWF8WkS0s0!3j>5 z8hxJ`)99k>s_)8K`|7-xim}gimelFI(~01o*gfD&7ItI3y1K@fFEe3&ipuNq$037; zRhHhbQ<2h#J~!Le&kT;sc{SksiRz!k0P`t-@F4t@=*okT!z5~+i5>(@OQ+*Hdo0Sa zL3U@pK|XC{(`@F#xy))h3K4Xkp4W0oJI6FzqXj-`w47E`xWe9z?Axm2b|WJ!zf%p} zL8RS3)LQb*n>Vp`K&+RNk;#@E+yk~ojiV=_uC8vM2`Z2@x5vVPm{>F?czAl+Y|91T zJJ6kJ{SM3Rw!k?CX2>5|L~FV3=F@{jrD;nJEr^YPU}X>brZ%v-Yn}FB92(B!7K-F{ zpGyE-RWRcX6YUx*&fy0#q+ps3$a{f)^0W2q-KQZlFxH3!^Mkmuq_!7d&(?f|B_cu8 zX`5H2Y(qP#`jl|c=vH9Xk_6}R_8AfFTC=2aN&b!Ys&QGghw)*bIDfSK4l)q=%NioqX0e+J8C8-mI9-`hok zcvTsFSJ01IAhHQ&Dvs|0S9hjK*4kq{UrbX0d;Tr=lfrA85~xRe^%hq_Anc>h<~#cdt%gsE%yCA zWAAfv@!$4e2v7c%1^6YH_Kue1b1RlDxp-KLvFaHXEt8@Ijn$^?aF*4N^XuoF+EU}6 z2h$rGw|hQP+3d~i-wN1tB(7I?_Q&%CsMTY?#!@Ts$Yj#AIxifI<@Th%y>5J?q%``R z#Af2gwZctaQG}X}$_U$XJfDFI$93T;qRtlPE2UAEoJ6QBp)f{4WfVwTI(?Xb)D(1k zeQ0p+RRLOMH{c8RRE>B1@@myM3X!0Ej)_G=g4)y(vi;#SyG2ONEN_wX49XVl`7!wI zAjnQ$x=h;p85U<}8kS9U2l%>yMmK{RBMFvGHu`CWm-|r8)^Fb{xj$} z@f{m~Wa9L`-O^Xo^#OIm+%05W*3DB#Ep4U^M+I){;U8zOtToFakUL7Jor9%*^;|UK znEvqeLX6#;ElW(?$Dc8ysZ$jmx3$x$ky|s3>z6cjyq&ANRiT&8^p&qPBb&NEq$ziC zccK^dGqPLD=TI%uFf5Pq8#kGmKpPW#k)rVE1vTBphiKDNYDFQRf2-CK4*79^7xVCs?#8#w)+bRwc#FQXW>+nncjS5I;|FpL3gi-3TmTAi7B^}5sUT=Vtu+O*rTApKn2 zEwxmDRE37L_|HBFgF*9+IEXhP=PCt)CowUx+fl>y!yq?N2A>6>@tu>4E0V%{Mt)@w z8Sdb;p!W!m0tfFD)l#J>9aw2%`4}uT`+IwGwN6&9HUk2hlb_`h`PubvEc+5J&lP;- z;kTg2rjwobVptC}RTlPUlOuk{w1Ke@6g0-!skQZF%FWsJN&7R&JC9FXma1$_j@0Jn z=5Sx-;sb}wjJBh!z^q+DcCDbV#%^CCzw?FT2tG)GkPqP%V`H<&f_o;}pP%p41W8jp zMH&0`&~%Wm)Hts~=}CWQb4I{s-GPT(t|1#6{an22c}c>4gt3&zZ3r^RT{6F%-Ze+8 zci+Bv+LsMJF~j4dpYz&<{c=Y-6YC3a4)aC5Uy6+~ z6fED)1j`cnVb(rzZ3;o(&VQTJZ}Nza&i?FfVc_m|5ANa;?-w=Y=X6PJ^^#xs<(Bai zRSk7@ezm@#WcIGxR=S$~vxVAdvPnPXx=8L;qUiFTV7+UC9Ed$=)}RummS_)6)OqoO z{=!HdJA^p0;=a>!@5GZiJK^@)+kSZ@TlF$O)|@Z|8ypb!wMf|-=kewI zii2qz=`ow%*aW%_O2Lh~&+?vQ^V&9rKrQRxU97Z_h(lsQmlA^?C((;9VehEWa3d|6 z9a>#xZq+#2d5FU-04;Z1_lqIKOU}>HmK&Tb9r!S(H0Kp7yRey!wz_k8%#h((t5thU zO?lKP7Wrj7n(^*?OpF>xwqIUrmJ+f%vepVs-&R>IUmW7(>sAh(sa+)U*Fuya_T^E5 zVCkal@zyD5^eGs{D8q{>Z*XAxN+^Y}zU4%n-W_G3ZsTVV)7b}%^0u{SLs3+OjS#KO zdNz)TBl`&j!63*fn$M>SI`7YAT1|6jS|~(D>i)VA1y0U4utCH}OLV{Yu7X_Wmsxiq zmUX2_qobAF9Ayg~msFPH^~S;YQWL~672fc0WGj2XeC9lpm`oexqL<%rrAvmr$Wg|k zV7~QlYkL8reOmf<6I)Ni-@Ky*Q+T*33c2qfKLI9dl9d)e6cUrnJ2+=qnf16{afsjnC#41A-hVxmCo$>dZ7Oi`6<+ zXI?QxMPh0$w3gO8I(kbCf&$pJieT7j^lO=8&|Xeisv`vRRYAq?`*zYOMmcK7n)0)` zH6{(OtK1904;8QG*X?^IlhYlvg!iB&v1J$ohRq@r*f_YHRu*lutq6yq>xGImh?Cv!`s(A|mS`rp0IxKYu z0;U5ARJ^<>Eb=S^34)!VRXsR8rg~w-4iA4?WxJ@lV!w@iY~#Hx3hJ_G`r%U=$<8}Z z;U^>{z0)?0z6zNlnF_z$PNm@}DaTR{M_Jb*hg{6--$+aUf@(mzFa z1i+BCJ_N3kyBwkEAj4~Ow#6DzuSxfowMie zl+`+AVxvR988B;{q9I7e& zc6iQUG*!k4VA=Mrj)T1#n(ESEgTZpv+dMKN>r@d;ako4WNr>mLo{^%U{tohh+p74^ zf<^Z|s=Pc$QAqErJg)HXYU5|Es^N)eJGso_xA;$*jG}(V(e$=%M}ALPsGR?Kafv?_ zy1p*M>pJZF6Zc^V0{A!p6(p~VFl0lW?iANj4+Zi<$j`_kig#UO-mYx=9!NBDRR=f6 zeBi)fkmp~#jFZLQn^!H~RAg#yc0Jiit=wdB_uQS_-#2YUii;3QQ5__0S-ZAf4?UG{ zTHWZu`8kl}kY$P~D16gdW03t0+F<`neRPHV98>+e6~Og|s( z%VT1eY73I_tNeeQy>(ob>$b;>iGYHDfFPlCBdIhh-QC^Y-GYiVNJ|R{NOzY?mvkyh zcX!?~*V=oZv(GvA+|Rl5A6-i)&i9?q`#fX(#&`V2^iX*|FHUb_#>-k#(kA4QQ@Ry6 z`)qCL3fr_1ix3|_K{Da|_QBei$*;35Oguc1JmnXT>%)=7#kU~W8^{zhFl6BbeXN*H zM-JQA<2jd&5YNdx_8YI_`xWY~pguphKc=>M^Uij2ofEf5N3hCTW(bTmnkU&#=R2d8 z9o;pxv``YS_;yfG-n{EeQz=Su^!kDpjLS%qbp?lhzLrXDwULnXWLY+)R6N~F(n#5& z6n+^FZ@;3(^UuQ$uV3FAFmI@KSYiZv3h@u;-wppQE_-)ls%oyCuvD0Z~N+Sx&+lr9uW{l!(wYxVnrMdLM< zbZzm;(BRfu(0aLvjFCYOBUYdjU7=Z&=b@)|ZM$iP@QJHOVzt*4N@$zpT-yo#nPBTe zw=&i5GZG%cuJ-R=TpNqRa4C+ zkLbQtsGX->6XtdHGl7}6cd_F+w?>30b;U?*bY|L%i!W8h*VmLYczI>`?Zx@A!K2CK;G zJQ^RfQ{WVH(bC2Qr76E~UZAtj2fGAOTifD|oj#&e&S3@2CPAWh{Sw`$^N94cY*7m3 zPEPyT-dAcUN&$->@^FU*3H5CfR1kl!Ed@)`e(U|2?0#^bSAiuz;JPs}x3qO8N|aZ8 zvNg4t%3~K4jK_3sd!RH+G)tZwiv}}q)b?PN9r__VFV2n--KJcpsILOhD>;=9=dWE> zIB{Q{o1##KrRF=cyJaww*c3R`Swi*YE|L0l;b+r@!u*S-OZS07Mk=c80IT=;y!2N) zeIT1YvOlqBgYdHK?BmBD86qxUzo`r~`S5#suG(&;9H{qt)8Uk<`2`2R4UQW=KhwCE z$nhO>_Z|POw^-KGvi6%vtjXL9yZZ|6&YQdB6s@O`!J$g&@@l3;NhT_dr0rioZMK?v zVAEiI5jUEi67<}?2dWtaMfOa6fw&AI!$msH+zy^J)Y11Lx>FI>coazY;5zH)>_1y7 z?>{OFAL_U6l7I5H`{T}T(6t+aRo_s6f&`nL?)UB4 z+ncF;nl*G5S2cTwOWL^)eynBjoU1;yu|^HOzE|TY)*BR4K{#o z!2Y?r67_vWoMC55f4Oa9Yz&Oa5A%kuRsu6NV)O;N+1aAF@zWx!%JxFWKK4Ncmdkcaj=4X7 zUTAA;=OUfwuhYY3w^e_}q2sxO1ELK4xb4k48?vHIJZ&}FM>c96NlC;TO}oVyxV9Ik z_v-8G<5`SI!E)%PF6jUefZ z`!`4PwMCk|`vDcZFrQj@4~4>r`>D+<3MPnMk4(7U(xL&dhi5AKip!2H^td@^#mG9s z!aMD>WD4)H+ul@FC7c~eAWyiveSxPv*dfX>jqM%N)IDd~+kHd|LC|Jn$h;da`t z`|jSx8YX>fyTqhH_$S1cr1MF9OBAZo(#~O4Mvv*}9wEsT%?fDA$lQZYDnmm<*=*^R z%|o0{6+!P8e9+QgsbRi)BfuRM4J}{Fi$q=y$pI?C<`o24rN=s1(8*|RU6`XtOX|bt z+p7P9G!jZe;ezJLlrL-vGc7n0Blx28R$NIa{2qf1LLXBTVYZPh8j`)eBlK*Qn9Ui3 zAqe8A_4897T$@N)A3tG2)J-4XDMv*wrJJdDE4!L3Y;Jxx-ROXf^vc>gcP%khr#@3> z@Di7yptm4+v1-}-)ZZ~vo<@dmeIaLTjhS!Oa)eGr-x5Co8bt*2)eStPi{d^cGn5tF zH8jR;#l+!e(@rriEj7x_?%v*^A(By!^c0$3k`R-Lo3a+l(>(;24oDJ$h#t6Lv|nvH z>}BSR#LClQ5n!-dTjLI!qn#bq8I-8{Si%j?T(-Y+{rRbGycAZVrd0bGHRes%ZGpZL zgTivuQm%)b6D;!b^I$P1)g3DgIY5SzEwR_>^6~CoUA_)p_+uc-QnXHDaq@E%V}wI@ zPd1*dkPz9&@wb?%jY)xJ95g?RIZCQG>)rzLxyo1-CA|k`K)Sot7VQ# z({yt9eRlRp=WR=L3e_tf#n`thhZk-~g;83(J1DS(m+&5hS7q|X^d`RVxI$&OKL`~j z8yHY|$m9AL^{pROim4#N*v{jSP$Z1d;CEVFj#f4YR^Xeq&_@|N!_T9A6qlqVB|jTv zqjxOWgEA5Trhcz@0TCc4Cm-Bu#mm3;gEyt++qbztl^+BkED|NhI>m6s#K3S-#2_jT z>7ieRB0%X^aZu$X_i%gZD#|F~pm~5Ql$)r@SjF`L3xy@&?%S7o-Kx>zSsjKfzfwe1r`P0L|A6U-9OQ{yPLiVJ zKgx44nPkddovg|ZxM5@AIBp~bYcl@GHDEkA@1{a~5Sh$C#`i1m+C`Zh^-cGK!Hj`; zt10mUjio1%&1tVETwUYka)VU5K#ec2tB8uve4JyXo#i}wGk2IEN6S%x`X;11UgVGC z)VA;_cEz(EN1;Frvpm__d=Wi}?x)RUG~?~k7An=QAN$l^(d*qko95y__m0oe?iKj& zt#^gHaz=dwee3x60n5&T{fL@6;=Y$q>wCKZjfYzLa3CB82h z%t#ok^#A#0?Yz;X^i_`5OvdOh72##*UfNjERL2^2dl?9fcinlpE4Stsdo`vTy^!C& zZ1KBAlBS4jbgR&g`YNX{Z|qV0!Qx#Gn~9FxsBEi=*I}yo#4Y*HvRQ3^BlV@$HG@O| zu1WbCbtyCol_a9SH0Nx)tEbe%|Q!vR%*U=E?#}*D+((! zS3*#IBc5=*roBEBj(2uc#yh&QpP4ybHB#~sizSfeNt7jfi|qsrbAugj(v9|Cd^Ni~XN! z=_b%f&Kon8R@|GL#E3Py_AH-b#+0087ipiNTIY1&xmgd&%>;rm?q7B(gxnz~>vF-4Q z-1TYiaBM2g=Pre_R$s#Tb6cm%6!5vogIP_IYuuIIc9QEU2{L?c*g>MALZgzY0nCOV z#dENh)PAKj=+Rh=<>dYF*6So*nu+59b|T!)t~-nQins6eEOy9^iEwE9zGgCF-Oid- z(oL2Yw=ex#DbLEVe{JX`$@sJ9(|HmK5nT3p0ZfMBT!uk|&R_0h@I`0B`LmX$! zlaOAWXD0SQ`THdMTKuW-od66X@Sc=HLTq>hp~!h;qk|3Ytal%7lfn}~$x0TrG37Ft zVdC-uE6TFsJyLzScD~l5mhvA7nOSOQvu{CM)nv?eSdzZur`xSR)o|tje-UBl_WE^} zM#=fP0=Y)zd0x`S!Rkrb`kc??h=GkJAW6ojA+pWtPydr3oTJj8T4JE{Cy*+&8I0Y| z4vCZtLclupYRrLN-s$B_$})(#G=vS*zN(OynuJqjOLOzb?!}E<^{TkInuIYuGmn=$ z+9@UHVK**U$G(BA@=HI5K9yc#cFl(8xm~Go78c^RUFIv&xO#QYVt^LY+TS17)WjbA zB|OQ(sNJ=VMLW>FV^*7EiOJs$WT zTre%hc8-pUibYL@BvW{BD#UxynD&h>&yU<3MlG8s?I~Dx)1(S>bj_Xi#~;OkSufJR z>5!54N%|k9+t|)`$i*^Yw0DY$t&J8$h_~*~USW`9p};Ze=XYI^7Dqe=3oNSSR}{a* znLYm!UJ0~Z-ww{$`d&lFkJ%f(lFMutyJN}^ukdS%QBetiBTa8tR zuh4W-I{LIylDJKr{BYm=TwU0;eruO{ zrTK=Do#9pJn)qiai41RnYfJsyWKkM3We}fzmh=`_`^~evn|V&S(iW#<_GQFZ74b#% z3szk2*4EWw6HW)^m8hVgBuEMiQz}q4y|_3%NI1Im_}-vhDNyHtkXOkhUxi?BGYK1ej6i0cL;(h7DI@91;qGmh8y@|u)(XO>a!TE16a zYaPiObB#Fk4UD2JhOg=TaB4$8Kw-WF>@d{IZBZb)$#jU5HZ(FWaUB?xpZX0^{g1R4 z*Meh*a|N*PKKdvmT^Uj`w@Ma+T5hU6eY>@LND>a|&;8rq3_tu<`E($nb^)q~?QAAm zB0s}Sd7YR6nZx3!P(fv}o)!->M(qGlO!YA)G$R~RI4!t95cw7mUJCoeC;x*h(Qx9QC>T0I;PkY; zll!f~qgA>WVypG3E#Vh0T0_llwM@Pl&z627)(KoYBcmNCQ0tQ$W)`xEs-N&Qln!nX z@-7Co>Tj^SF!iDMT)j-$$TC=Bl$kL#^`M{H!Jik&5s<#wzkDn*~hR>1D$_*nId*Tfk2sH3Z==Ow~6 z$sO$U)oKiXfdu^h27P5+`%CF&_Zj00O`9 z%$Z3fjJS-~v4DBf_9Zw zjUdwSnE#d>_dv7$wVVa3Pp{52DFcpGzL*>l%Ls?|7!)S$zvx z%@3=~$WP~SsZKshVI@Uh|MkmwbEc@;%-X2>xkg7fo%K9gL;}UP-rkVM&4aC-m2)f! z&B=A_XgPRL+dN?fIigGVX+)Hk=8NZa-IJ-^L*2n=oks;nyzC&AMn*=yNak`9FA!8B z*HJ*AXK*#liG}(ls-lvTnLx2At+t!6saM%&4$hL0<|>*$8)AkX6Pm}<3vIOS*3Z-LGn5o_e8?EU#C3*d9hT(P~&lnsl>>n-@r0vO;r8z_vRO3F<7!N!dF zHoAM@q?0*Wq$n7!G84#zzH$?RwCe%tEm3mFjo??Tpr(2$N^H6IPs`)EH;`s7J(!^2 zFJrr=8!b)&IwTR9IMBAiYQE2PWpUDOoH`#pyN2_3_tJRW>ST9|MO8)4!vd z40xHCpf#k9?EKUYmoG&LM6Gr16Jo?$9%hbnzZ`YVh3qL;sk_$8q9;nXL_oW6Ecjv4jYt^h$j9m?-1t))4lr$G&lD zk|BF%e>F=agE?bN0_3vR<1rT5JcbU#>#y&jnT`%GcMu|K>-@azePh~9)?`I8g#D-Y zESQ%M*2f#85}(x{K%5;|@m<8RCR zAbtAe{bD2E`0KHqX+uS3wh6+a9O<8VM1yqpP?_t1d|LxY?7^ea4>oLA_-?-As%u@} z{}V!?^}iw%4F5tX01*N=6(4W}m6n!9hggSvcj-nLQ%J`Znpf%&rk9YAy!?t)Wl`hk zzeW9h1QJU8X})4b*>kJrFS4Ub?V@7Kk?pTvM_tc#$!U5|#9i;|piJw3+t^_~C+`(^ z)9K`mw=aKx%M#0pzHVoS8XKU|9ji)T49)#EO))|8W`Bkl)B_HE&czshr6hO#c%qiX zxz+$Mzh10&c&trY@ zS7aWJ@o!NzhaN8C2f@ot@O*`k4g=#%P4Vv#o|H5^QQRQE(rU&}J{LHI(y~%cpFb+l zR-;$7IF#{qtUnHHXCPd`)UfMOX$uj~*wJl0Jfpv~(O>vb+u=e{0l0ag!^shFs~6PA>JBN$A^c*_0} z5uM<_+#UNwJ$4%>aD8H~Gj}LF8`DAU;$IAdaBq;EcRf9dOelWA==bK95u1tq&QkKm z%Qk;(s#erB#9g7tmES)7&|g-5eS9o%U%f*&9y6&Usj>n=HYJ&x|C??{!H0VB zELs)pF3kT{wSNJ=RYWOO8dcdal!6Tt)1t+P1ACKpL4Q zOARl9EctXrnt>HZ>KJJ#zs8Ays(_Id)x5$Q-kw{U?eo*!1`Zv!%}$LnuK{x@%U=(! zs3j5W4bx3DrZM5xi)Kp>Y&<-G8I}-1S6m!bkxY^R@XpZJ=y|kpLUo~RcJRz&@#)0gRDLj>})W)e1?@@VM+I(;zNnT@6ji?cPvFUW$yPS^y0R*ps;&i)hG$J5p23FBY6!T&SK`5`Tj_7X~~NA z$L89&hq{XvPk-F-L$q#UhspT7aD})v|>?ypSq{0|Cx3<&`@%JTN z!{PB?~T6zM3Al{z_%A5%)%b88>Y0 zOQFok0y}I8N*N*ukNv*~;n9jn|2YT`BFytRnuYd#=-VPh${Gy({ad-7*@^4q{d*KDjpo@!?gYwOq{R!*|}H6X|xU%hvy(@pQOo5AVuvwsQX2(&+#s z20#Wgjr5?<0&gpNs5l?2;cfR3>Y$=h2ol@Q#SHvYjvS*J`DPle%hvUt=eO`uSj{H` z3R2SDxGbo=ehy6xY;ebEkPdIvZ)tBo-Qr|r9YS>7zZK4Sk#|5!L6J4Q#!i3{up6`U zA7Ob|R22JrZ_p2{`n%^@Hh(p!#ONsoe^_FmE^ZsDu2tS?|JuU$UYEv4GfVyh%)SW_ z{^l~XxzI6SP`Py1-798;VNd}R%J(g%Y%J#cqP4txYyh|vlwLN`f;+|ICw#Amvioeo zO<6d^bz;;nC$=gOeZwJva8@T5?EQG~*;%4a^o~G0hWod)$CSTy<@XXLAz|T6T3LkO zH(hY+1=OpeQv7e_Zfv(U_y(Jj}K8{_OQ63&~A(!ICDcWFL1&! z20$=+T(mOd2BT-VV)yA485|qz#Z$)gOMns+Ei;y)TendKyUCxlAH;)wmNVsZe@b>i z!3MVAH?@sU%=3#MB2(nZJc9QX1*OBn^7H9AtfqUuytf4{Uf6PdgdlmV=xYoe^Y`zn z9-^N=XJVC@hi=qdUN}6*UCAaaBf1&h*-4OQu}KEFFvP(9A!b3>e+K9>LI;QXZPX@aC6QSc|IjsQ}2AHsTO1Cb2nyogRi zHq#%zU`=@=A~HdUh=e3sJX`#r>)%584_MY}oqN|k&$b%wy5{n?6!^>0#sF27DK*70 zDi$p+NBy8u17sgC9ob*mqc^Ykc>CV!P`w+ghGf+LQ1TECmsGw)t{^|$A16{tkQ9Rg zpW*zqcj%911qj7dp|D*mW&V6?9h032<2uj=xe=?q_- zdPP18b{h{0F53J8*X1$ippKya2fwsfoFdulggo2-FPK@tGtaK4$nTSzLOifs25rAU>FAQn`n*I9YG#$b8LqtTEJGJia% z{S_9YoIE!Ff52!9t&{O;yX1mP#c^abtBT0BMy_`yMPVf?oGzO@BupBcw%Y3}G-~Z% zOf`ixR468n=Dbf2JW@VOCB9F1&5o$G{2#$+X#s)Pya(t9cqIk_cs70FMzE8H5jr`U zE~)5vq{-g#tY$-rk$=o6-Lh+Ip@tcJi^F<%aidCJj+Vi*R%q?V<-ZpLti0~V{cm9O zIGwCu=11TTAC0w_tw&9UXUXl(jWQt~irwQJx3?`K0?w8JC|f^hF;gv1(MBOW+K64j-T4lyZ?m^Z&GJ!{{U5u{NW$fp|4c z?e0Hoz(u7&=tlD9MA1FWWk&1?vs}v|QC8lu&%Pd3=%cvHo_?<;MzpUVBE<`widk6T zzOD-cSICiH#^J(|NRgS@F>&V44JGayzn4@xKEA&hM(kt+n(J_(mHyo6?k@2rE|+u1 zLP3?6l~ZM{GxJk7d9Eim$59%eHHARs&HIXtdDG(H1aM<$4vUP)`3-b7&{UI`Bu6zv zM>R?Ihg(;jp)$|fSk1(F#>QCSBrJWtFWy6(h4t|{A$xgqt^67LeujE ziwQ@o=>Lsxe$)1U;+sk3y}mrCZv+_gI|LnI;5jq%u{9#yf8td-K;>J{gy=%86Ph=2Xk{=T+WIX55wO9D3dM=FJJMj zm$~xLvt;Qs_!al~K2gEfnWhMrtH`cxy#&iCIXjJXkr&z0w=1ppzUt;o`jv?v%;5DU zvsN+6qvWeaHK*_rK+__P=eXZegPT*0vy|A+TFS)$iVPpqu{UEkemu%7w@U0@Z_38P zTN1R)50WNwsPSqKbl$L+IAEZsBdKf-F!5Mfz6?nr6VZz7zSS1iY1nR(g1E|%M#`Ys8R=T7a4!g@2EY>CluPb1>f(##ad zHi>cHyYRRi7LM)zU<*0HqLj>U#|}kxT}p;oGoGro!;>SV`byVzJk63#in#>ju#p7U$%}U%~My;C8*%WH5*OBct1Gp5OYFa^Vt9ivwcrNS?~|`7j^?)0zct^x8SM0S;TJCzq$;1~GOm|v8^8R_ zgZLf*P%3KLc?^oUJk4Dn&Zu7vPB}`TCQ0Y3s-Y>Qe=qbDO5$CT>?d{y&bMwOJ~8nv zO%%xwuIEr$qTv^*MYQT{H6;3p8@V_v5o}s)ava#MMqtuf4Ur zh{MBfGqHu1qkjHW|6h+6ezycIwFAa*)#xXcYL0^5mtlg@Am#Hq8Fj~KYn08~x3QQ2TEP7&dub zAj$3RGec7EH}7t%*YiC|rb_KGS&pEub?h_h^JokqR!H68=8f#U8L*2}V$;O!br!2_ z-v$OLLU)qv?eO!ob-3t|S~ExN-wlJD;I>JL#CWGE*&pKQc_5Ds1E z77tr*@|yB4dZnTQo3HG~37tm+P%xt8(Uay9;_|<@R4)5vh2U_V98nl+S7i7H!iz~G z6Qi7O-1jkT!mw?kHDS4XVEyMAZ{AqG{$j{88h~y==t4AFq7zLHWm(`M!cl}pv1Xk! zQH;2dY~JI#T?!A>*o9vW&-ZWhGN`j53*Rn z2nSpF)5#uKTvfa7U?Gt(Xap(J3Xw)aW^_-bNIL`Y@aZO>RG13(DWmAA7I)@Lrx%$SdtKM9L? zb`C_X?cBQ$4ogWZ(=>6}se@$>aa1%kqv4vC`KU2nFQF1!w|nS*hGX|Hu62}IJWBwo z=kW7RmuUVUK{JlHD^UB{z>3a%Kb9Q2bY6(wZj*e!vcZU1Dl)b;u+t+9RKyQV& zQ>_OkE3T&9&hli%vwXFg7XGyRxj879K8Wwnk}y}!cO;xsK6LLi9F1q3qJ2C{97?Oy zN^CI3czd#v2K^q$3jYPWeXke}xpX3jHRa)|(moe2ZtyJ<5(`2BW8uPNdHYc$npws)(ot)P8HG#qlA_Ouun!`xCTvg9X%cJ)h(M(eU_)`?Ct&bD&tR` z%@M+kYRchuLrO$$RQCiwtdY7}C^N{>CP#>p11R-zWNjImHwoBsbgb$wm!UD(@6GW| z=~S+7P#?l)o;A`4PD4NqSQ#&~qx4Dyeg^O!v#2N(99~xSh zZDc{HJT^0gz(Z#!s^5PDjG82+?UMCDQpCsIO%Fr_@mAS_bUzfio~P%OGxg{-2CzLP z1}w`1TK%00jKJA+1C!srFet=6^lHeGjvYwz+1ccdj)5j-s|Swmi%c&QWA!{y^nNs|S7&ZDje6I_3vJmRt4pM)RxI z+wP-$^&!dB!2cKcYBJva>RLzV01S3(1zk!F2lF4`D`|}Q%0OA&hEsu`|9aOmn_nU0 z<9SyxS`Y_tIxgRF@>(EQ^mLu*-vCV0q4#>VPf77dc*6dK9YOfsxAx%PuYMnDP1{(Ti; zskVCS<9GG-haZN@)8nEjyt<$%$9_eAXSQM&B zfz{OF0PS;(ga;{J$|fFKeFdwW z2M-f_vFhAsu^*J1>d~9{czf?G{pYVNqlp~G2`w+v-6iI^51=8o4BIEGsY-B83L_H< zW48SvFY@hS5+SX^pOUGOW>V|nU@vnZzU;V7SU}40pj~l zhP9HGs9rJXWjeJ}RQCe)1Jnpnka^%&jnC<@JyS-(%;=Tj8f+SjD(+wyX)P#B{5ys@ zgE_G`#KY;jfi`}7yh_{7!PpfgbxxMnN&2^Uve<_9oKCC5deasL5X3Ky4^Xe|u*}hR ziPBs6=<8$sH{pj-Cv5RY%eRo!r|3RDKGEV-<|Dg>%^&!mQ5gKB4f0?m$U1*(Usl`&g^VRZK=<4A zkL(qNX@-U!xrjT@@QD=qW7C`mq|)z4bQc^&`f3_C=tTR{#i*-v)Hg^u0>tAjZif7# zD6SOF_PMst2Fwx z2A5tRdmdec8i|a~@;mDi2_%N@_2W&c8zs`&R1^!11z{u65n_@k3E!cE8_D&`zvhmguXNDy>g+#Rfb2Q* zb@t1P-YR-cwx;MlFaAwnB=KqpJPL-tOaceHVcoECX2*YV$}2PUS&FuNg!s|3!m^PP z)HB`mg0{hNmG-BAoN_>Ke&1Au4;b53*LghMtSA8;E!Hz561eFkexKLfaT#FJL%!8? zMJz2&1y}pcgxf`_yRnHBGp_+9;X~gjgWd9he5K`x{l&Wv8cm$(|E4Z&Pogj6eZ5Sb ze#p~NTU*Lg50+oX#gwGiV#FTtJ6FoDNm4K^iR##bEX67&Q z30BYu_*CEZq@W7XhUj~3g3ZP{|A(@N<&=4Hcf2YN@J`2V26Qx(^m1pahE4PdA#J_6V84B&wR|Z@4-xBj1kuN*V2YIhsnMtG@#l@07 zxF4N9+yA#qeK-@kLy1;s8!8S$IzuYWT>A*B2J|N7Ml#xN_djTQ;zvQaJe^mZ;Rm&`$1_v^17 z@nbolcG0U5-0}t67dYWy-^IQ-Lx&-y_(YuGU~Fv4rtW?GMd# zXSUVe%4zNP)2%rS0JUR>oD-k<2*K%7W-L>cgiCJ(m3G*(M!zKcodtJv$XQNTciQik zlFFee9PdiVpto^d^v0qfK4z+5h2Pjx&!zA8?+V9fXFHSgV*4voiBdY2jboL}l=k#o z$zeb@vFOb{FC^DVcS+TLu!@F{%^CLlb_)n7ff8bI%VSM8S%(v4i@Q7Zw~%^LuP|qP zuE-$wLAIu;w0tX<(e^vXejZFm4Nv!vT%88jBt3j6A%%J?w|8=wxHS&GJz!4Ev5{}K zdb5QeBT&%qWqKMo7srT0o3S9UT#8&!&{Y=McpZC-nn*Hs?hJ9ekGJF*+F`x~IAx1U zH+}`fGZb|6uh1SHCvrC%+M~g|#rt%}#CbCW)X2eX875-4eM~|ki9J<@Y#7vG?&I+= zloAy!_mbw0ujD`0WC<(-474AV3z*kLgs#O1~45HY@E2a=wj>jMBc!*WB8g0K=j(I*0Ddj-~Q7 zc>E#xEz{E%Z~r#lJx4zfFM*NVe!fN_(O#y7U59Ze9mIM?nJ=ORok8l{O;M&gd}yg`w&m@dHJ{i&LSVk8=hp%1wW{yq(T$Q<)sq$)!$bE-=z6$=FUU$yU#hf5f%lp4E$w|6Z(|Wt}zJXuT=hi zm`83pMCk_^+ulf=PLy5Qbaw))iCnJYn~FPSlQSs>2LtsrfA>>L;4)>v@`>tHw0_iI zFO^X~;hnvF@OD^!N{2VcbZKSC1aS?iui_Y!1B28hk2ZgTY51Sr1;cKO2KU8Mt2#O% zp~K*v1j)ru-Hm*$nV)H%Be30{r5-l&aU|7#b>FO< zfI&C|W(DjO?X9nus%uY7a3W?(!L3b6(cW~2?wrJn4Q7i)La+t(zs)bwE{#!kFlGfx z=e&JQYoNWYtw0eI;-ls$itp~Btsmx^E~UQ;*g|~N7pA5Th1xaZ>n*RyDYW!|H(!Dt z@W6MnLfjNPvOlN8mv+JOaxm&ezY)v>WPgB)Jylt^GcvY#LZhlc!NPC{vEDYRxaG3XaH@$T-j!MJFX-c=bC6qFY5 zG5zb!atFiag{v!?zVl}3q_+F@;?EuP_F%vC@NiakdU|@i%!A3k zhVbpnYyaqndMzmLeU?4k*LZO{9jo2KA2s+2wd!(X-Y|2`fWUilR=aR(;vNyk zX9I;+d`>rdcI2U?1~R?2)CivFQ-buzI+>B!a0zFjQ-wIy_O0gH#5-7YDhwjoBc*y5 z!k4FOJa|l$>9W-E%yVARU4sg*yDblk7^f<&vjP86tu@5gBH8NN#gP~=Ek_&>O_yB# zyGC?y6qL%JZ4|p7ph^(unQisMrWoCAz|Lh)o{zz>7CWifzEkCh zN->aN9BjA{*PpoGel(_IeC2HtM#$VQKY~WDKi{2DUHuUJsq(cm7EkZh7>$S{7RV9u zC*?E&*;n&mE3Bfe_si2pI#v0is23BCvljmMQ`#l9kHC6+u`@d*XSi_0JW##*xN(TC znqM~W-g$Ye)^jDq!<_R*wFC=s0K&;A@qStDpGV;LrqL367nh>isJ~9i>n$^)|2h;+ zIQsu}D5h(wh1Z3~O$Gx=_SAY^5R^Cc=5ad%@Y?b$HD(~e?4Qlo@XpsaZmZ;;jSl%_(d$(DF&7D9l{w(S`nmS|UNqJ;uOF6Mz<@^EV|(;86kg+2gfN+yhNpIriW> z2Ya&qT$>aa0p=BnFi8ICX5!_1=wXA(tP*{7Q6*N--Wu+(WL;F-+`cEjv;QB(wynUK9K@t(~it6LTubs#f$miuzwi4WXG|7>e zqxeOfGgJJ;uy@ivVJ5qtcVza5VgO>bfJw|#bG{kxJt8=i+oz@;`M&4Cgz=QOxU?Fx zeA>e>SPeULW9ilUCRj~S?%Zka?LDY$V>cguNT?JB#)eUnsh7k>((XjQP&mF%bP>n1}uzQCnNizB0=bq|vB z{3u1r@(&z;b<~zyO6dbdE|BcbOk^mVHUrePzGhn#PT#}61&hZv%G`@3QIZn0_RdZf zc=D-RT3&!#=I-wMKZq2uK)G9n|FWkqnHl!{)BTlJvT#1X3a@1~_9>F0>qObaeLV9p=|8RJQp01?A{8y;pPaTo?88 z_HyXxj$w9G<;|4G?tQf%JN9295+i9xp%ZxE%C3A_Q@uZEiit$Exqq(LKo$`p%Tw0; z6V9(`HpP*8h_T4JK*Z0&GS6o5S%fmLW{mZu;;udhC$p0|5tqy8?vGboNZQHKFZ9yi z{2{w;XZw`J#hHL67xi!hTjLEx-A!T@gn5BcZ3fiLzvtHlJvDitQLJasC^+HyA0_Z6 z1#3_qm_(N$m3RkOv3{t7N(sB)MgpQqC`%r5l(fhE3R*p`EEsj9p<#Wn-tCUAb3RhJ z`cJK~tT8-!2`lXi#5@Pk{9`)Rnyhbl99^mza8@3h{?hy#BBKb7`-v^GGb8z5gCLgd z&no?zl~yib`+GX-NJEM3>Q1nIKtstc)zVpA`hbchAy6ujmxhM9TU3mudr@2K1gY+* zT9?gFnrgwm^v1PotvrW0??MxK80ZwUrAK&kZw)B!-?=PP>@HC+JB4NizEH4aHD#M!v$#A+N=~*~ ziAqlPhyHi-3YD6NR7igXRR#J6BrS&LGh0mOms9A(S51Y})sbRyk(_;Ptyv#+NZB98 ziD!}XHzB!TV0fR}q18EWmDGP8GS9QJ$tCoFMT6X+-JjOdKTtCC4T=KQle=3kFJC1( z9CRt^V-Umo!n%QcSQX9kMJw+O2j)pg(A^yQzC|Wp{C!Q1p=_;J=}$|n>K^HMS$SXK z;Yf7!#VXZ)rrf>eST#({7Ai zbV2#k`au=6_xv)C6z^`NhOgDV!R_q3A&dUnQC*9y{3aK*gC;qaSdCw8)wdS^lDh=w zgzr8Kfn$Wcygbw$%qmu~CJEvyuw!9o1rj=#%iHP4!ctUBf|JH!Y*&ehcFH@jfgR1i zjBb_qbO*((4M;T`iJ1#wnEM+Tn2ppS+OOL=YZN(Xz~uWcfcge@Q!dGqb3b>78A zYb1e;$Wj2Plyc0bt0N{@ho0O1AZ#~eQysIC@}_x*g)(SPF45T&{bx<1N5@CW*;$fu zPm4S<`s93cy`L#!cG*-gi$yJo4#VY!n;W7z!JzH7tfuBc&_{?L&he@Xc$A@H43qv~ zG)W-jiwLhx^ASY5QnAGtF>pmlB%bvu%R&MCsA_7IRK%^V8Nnz9+`r4aN+1~cPu(CNG^VS;^80XeLIUPF zBOUJqFz`%eaQ|WWhCs=Xk#_|0kdexUGG(dh!{J=Xo1+ai`_Q>?e0=cDD2KEKk0Q zJQ`Fkp7?N0>rYx!o~yUx=du9q$%WrPeW~-f#q^Dz=TucH!%0?VChZ-xiY6?S?RIIE z(}T{|_UxO1H$QTW%&D|nDoBUjZP0$%!LXwZH@P>)ZXxJKzjMD(`qQ1|40Rr!yQUTL z(kY5NgTZRgxdaqsaKenxom0ksg>dS_JI$g>-OVlT8dPk#*~MT z@}3{=s@`++eh6->!(X(5DI`82Gz5t_`lYKB*Cdl#-q70Ek3Bu~9QiY%ON`0y-5fO!N5>=(@Z8O5irjJyq?w{oAl=CRe|ID6AZ~dH|vA${|s+eq+(U{&! z7;-3DKtrfSzn&=P{}tQAo3XAYNqZ1+J|ekfyQ~O{sjE8}l849u9|Pn6q3tcBs@~VO zQ4GXDu@EFgrMtUSkS>vsR=T@WML}A+OS-#L>6Y$pm~{7hPuJS}-Rs%U8E2diXAC~f z<(eYQ|1a+Qy05@3!$rPtvqVbEyT5$T05%7R0n9DT+3gW*fD7kFI4m2#QDm|k8}d-D zG48ZtwjRTV&NwzxK@{|jc5~e{?J>+HJw=f$CR0^uz0}Mn3+>S!?iFZIyIs43t(>&p zl2aoBh*ubd?TZ5f*-v>&$mVbxz>)U1YX#p7+*-Q_da6B8F;mLEKjH5^)MfEIaYF{vl+rQJ!1vBhi)={Ci1 z%^9makAjiYxqQwW#v{j30F(A6N`Oxp%)ER)@r&VA3~FZTI*Gp zzqv`5Yg~mj+o(!fSQf+O6J%1o7Y7I46J0&-qQ>g8POiRq$9ea9e#{*#d-(v1!`#6B z13xkCnQ3>+V8qq|Ey)k7YVZTQezo}jy=@BnN86M-exr9H)`S1~hYx*@)n^Nw;8|co zKE$PQOa&hF?m0QMNW-R)$nfr_|JnN>C8E$=DVJM%$Ynht3k^(HzhE!mjf3-$Yi#S; z{`%2_GUd*=msf^Q=jDT=(v==F>!bTp2*x-c3nxpu_{o!2-3b$&<`)c2Dy75mv2;4k z6WKRlvMc6iwB57-tZUY_i~y9aB1jgRg+*0D*;xvx_K^mgn3(Z@3^t+N5#9 zix4IqebsX*0R0CsC^t@F8i`K*?w%y=e>^o zXi@LhFbAz=IYVTVUzKmQ)UVBZR(eBm-%2J#bViue7CM1QmDCT#OTm*zHm4w z&(+kU_Cim%F%cc0Dl8$FeCFq1us;;RY9MR?jVA1LIg-E|z}z<9#srbQh^gsaq*nl! zIvcWE$>`ti_2VtD&_S0@3*vFI-)c_qn_7Ao(WK7~8L4t7gIBSzutI25zWn8fX}SCy z1^Q?=_Y^d~7y@s=BKrFJDq>vI`aEV9lpkV+Vzx5l_y9%#C74io*q2zf=*YGI0HHs- zy0-hu@*5Nzo%k%q;DQgOcynp^r)u?!+S+o%cNeI%=(xXrUdcP1eBcM#_94uI(d?}M zttoxiX&kvfxK%(QA20R0%mStk=O0BwX|8+^`~I%L;}mOpW~Tj%$87hU-u2W~$=Hdi zO^i)aZ5?#eJAvJm0p>^fSMuDWbbrTPFADwC+|8;xBI74VIa{$Y?lCd#`M-3K!g=-3 zkxZ?qYj&hlrpgEeQ9Lk^3$N+GqRRA1N%@53t`#pAYRa6{sdDj(D$C^C4H5MFp2jV; z#+B^6@;MZxrY}8e)bf(5a;1KKy3(1LLaBRK*|ImUXR9q|9o>${>$~>X#7Sk@w4oZ+ z_w=z&>kXTs`9n36;VCh#d>Mh;O$7UkS&96=pvoR_{6WH1`BAW3mwMYPQ`0v`*X5&& zziio^n-BbW0-6e!tBHuiqt{Ch(=o2%^UTx}suZ4XXV^7J#M9k-qFS3M-{ISqH|rb4 zHZA0SheKkV>zO`-aBD}wjRHcejI;IiYZ>Mv#YJkpg+I9W7dqr-6hFO?s>7yaWo7+U zr}RA{KtywnjL8m1z|a0G^jJH;a^sl{hd#z|$0iw76pKZ&xQ43Y{Y<8<<|hdpMW{Uh z?(5D!os&KQ%+ux4_~5Y4N%zc~=b-+D*aunO zu(7d$)H5N7alUcGBRJrj9Kr?EMLj*)^zUErf}h||9fQICRI0AOx@P-~MY$7E#-H+F zyMPL(5GeW5vo0n zPRZKK^w7G(tO~I%K{XhpXYdO~#<% z|KsGrKju>He@q@O1|mLR$R&%rbZsAeIzwYOn;}9W=!o?CLm$fr6dVYqbqRhvur>#q z+uMnFcs^AFW@oi(9eH+%=faSiz?sP%CVny*B-2@crWBDSDc5e}2u)UN&Fc^3jK1$b zpKX$S7d$^T^-(UPPM7KO=7Lhr13Wx_a5rfS$xiiGxgaUGTo#k*Q!lsKaLdWT2&E;x zvUxm*j(+V%XQzNfl;xZ|0r$HCituLn%VZQGrt47wgo07Fxhgyuyop+~B$A?yJ8x5D zVBZ4L^KQ)~t9Y`;N6CxvqO2=Cp(*O4*rV4;PlF@A3$oMtsI)os06e z(0qSk=zQK#Nui#_TMJcWp6N>phYQOEL|H_K{3q2{S&9oUE}nJi(3`$c_;d($Y}Sa& zTWcbsgz=Nj=q3p8M}+2auQiKw5}Kk@j9n6o(T|mVj5cE@Y@x zPR2&7?0*RQ8#9Q!PE`LdF2FzVgV_`vJ^FbU9JusSLxub`ER%Fd!#C=uT$7v9+*Pa9C>loKSFjaZ#s$w-zYJ$lO61n(D@4pb5eJ#`Iuw zDutjV*Wlnun*m2wNHcu`#qeZ_iAhF2NLt@e;8QhZhEl7%1Yg=WHO^HyqkAULmcSZ*00?ZXHg`QgYd^T?J8%NJ58TDCLpv4k;8`X^ zDFv5+Z(GX)UvC13@qB5GEZ!H}m}vR=ns_xn+w8s+4~~wcxwz4R@`vVvumsGczcq|* z-JbXaZMQ3rLNte!lRBv(6HA~!xv8M+Dk>(ugEme_WT=hIBmQ7^B^W_%&js3zl|E~F zPnYw(WuCorI zZrGLCg#>%{tg%SuKn2WqS z0whopfTKqWVUZ&Bv4btgZtRO!uYSyb(FLRqMvw*Yd5N@i1S`l<_13&kovmX@v+hHyQo>!bq|AtBrI)LaC-o@5`4{$LmHf2i`Cq z`(B{qcZ>R0`+pU_dx|374_ei_Bp)vvU*8R)3MaDBnK)q(?eS(P>so!#fsvF#sKG zU`R;gtRJsiLINSUJQETnh7&*KrsPB;P*ZDL&QuZ>7bi@#6Dli)(Ijjbh)L8dY9tLt zO7!NR{9|tS!K@Ef09YCpDT-I1jru!V;1)jodmc!@fbIITHW$kc+Kvx^{9{i#9bEbF zAztp}U~SNS^d(8??Cfk^E|&Yu!a^hHKs(kj8)faE=lwW?C^)%AUK*MhXdyRyHa}dw zdKJk-sIaEy3>hOB!|BzgtrpJ-HD~DbcRn*Wl?sE1^Y7ojIjUPViJb~DEDm1|(2e_Y)2SA2URwF{Y4z(;$iG`=k?EPMBn;(4?4 zUm%T;&>kLUS|47j%CQugSo8cs4Uz+PUeWg^P~;^EjQeyC=CZs}{@!9j!l>!(F zY`jR)at=1DGdg7I)j@d%!qe zu_bn39I}Yx192<{AzX4WD`kL@DPwZi<*BNJ$p%dZ@akoAT0!S^ydVVMC0bI8(SbFt z69i)vk5%$mOQkECdX{mO(P(+J@p#M+kc2SvOqc$92wOO(igWzyu3I%-ea{8}NOEgx zCC1#w#_NBro1d<+vsDKZKVL4_Hh2j;=9#_qK~%&l>&wHSfuB_(VxgOqpdAR6M@R87M)lUfB}ZjBPrc6I4_wpNHmlchzw+wf9}3c z;DqQ%i`){zWwG5_Nkq5bYu6ey#*)j-{MvmzW3X?=r{ytOumF!jhPHe30}pP8xt;>S zVTu9)LSkz14+?28S-LjcI59PT(4L~M(=JR?D9#WL8N3!3MGNVpl(w8$=&&=Gp8pWP8cL(`LpB2qh`8A3%(UTm*|i^jJ$?m4V8YUu zbdX3mBi%#n=;Qpj*8q1C;Kc_3bIOePs8xmbGWFq!zYv&4-SqVI1pYOdtOyg%ZGh^_=F&^H z*B58E%(EJLX zZJ{*a#_pbw;0f9hi}x3w%-Q2J?*Rg8H0nHCws`F~5GjB{(yx2hc-;4cy||l|oZ2ysq(QGOT?Dk(6!bItsl?D}CW~fOM15&=iyN{wON@nBT4YBlpjm z03r=38=DXqvt6R0=@biNdm|)B`ZxHV$n{ytIV48Eg^Cf;STxa zwF2*=aSzuUn>`AY^Ms-Dw48O_2~FR0AH1|}GZlTQu2fo4(VO~)@BYjKVId)+=Rd6W zvT8gacMe7?5P&MG1Y|L*E2}e$8#?6LjurMsEeBiFYUS`7UoRT*N=y`Ge&RY6>;AvC zm|^4It6PuEgqyI-bWyg1n{Moa{d7iZ;x~oJ3I6%1`UZo=cLmg*g1=(t5dHiUlbblS zw1~Dos|U-+FIXc6Z{_4=C6rfrCO`F~7ey;DY;#9n=wN9k`=D;x3ckcOy*8FHVx95B0k^7>u)}qRRqIPaZr&Zh49{^BXITK4OqKb>+qT_fG>= z@lA$lBKObHw{Nu*Q(W8K5H!s_l0ONilrJ-#ehzf2v>srKWC?$hy!w=fCI+~qkS{u* zdl$xIe^b|v%pfS?>Oe)QOm>yFsEN6`dC`1m5Poa6}nXvEQ;f{w&rUZ}1X3sKD9xMX&zrRS5rClQ9`}1EOx^D~CYWrk%u#kS+4fNYtvu$8% zzO}m>2OfFzFf8pg=*Y__<~>v75QmT&T1h^z4l|H*X`LZ{^W_WEY+qV0GY%|vVdw&g z7ibB&T>$`^UR(D{aD5>1wRJ|hjML#=HaT@4mA??;kx__2&VE2C^x`r-};5%&HsQ#USN?`K^YfZ93d)^iH~aR4uKFWLulk^kbz z0l?km$7?t}3=WSbkA0=nh}hV^#Z=i3^(*;90iLn#hsUj$9V?MS$YGD>bh1}QxkGrU zBh{TI+$B7_;?u@8Ud(zk{IkRdKP5RI6mzTLhmThE6j}SKl@snIbPIXK$q9Ym6sxE% z<+O`4H!Y-0QLm^@{rE++X?gFr1=-vkrqtdqXgGzln`LJR-;?MkYiLtz(_Z|~tGwTO>G18C$|N{m*m%dH$dkxmnVpAP6nosU1>sG5iu zJh_B-w)#{jheT18F~Zw%|Ac{LH|n!Akk9L}GZ@6e-W{zv3h;2>Kr6fA-nqVb;uNX7 zG+3V=WyL9%zdC0kH!5$W(!5F9n5T{)fioQU;$6p4A0v^<$*r$rpY-@1#Yv}@nxEYl zbva)$2`7Ygen<<+vp~f8v*d~O9}zo5{!ez^2Hi{Ka1IKZ7{dRU+x@s+@bB`64XEo= zzI3*>GULMV-g82@6jpfS2*hz%)fd{?LyCX@UZ^~8)PxDvE7xncTldte4N)~zJ&3dy zX+)*F7v0et>+0}%d3i-IcS}28P)8IQ@Rp?2fZHmvj<$7h2#gNyINrlW9wtzK-@o63 z?jz8K!FwvCK12S9DokE@gAc>1wzv1(z50JL;3-@D&YjQ#)m(!6f@D~Xj`PR%AW=4* zDZ9$yJW(UXJ*%~(0Y;0|k0&htJy(p&&ArQ8!vQ(u^uT#($xouRb!d$QdUP(i!J#N2 z)lq}0y&iUUb~cq_Vf{MSb;N_m?4Hn9h$p^ z%XnU=!|U@pjQG`K?4p#8QlrPqJ3RGM)1O{uB^z&4%N9?P_eZ? zB6f3SkM^bM+QZK-0jUFWYiElf9;vs4HL`k0j6d=^jY>Ixh8)Jzz?Q?MIzKorgBvmL z-mM+O&>k+5m2&#atNF)|=b+aCuVx;;K~=4CAuaV$boUMsd$F;&H{>&7niovMa|L=H|cj294n-ZAd?jP&cS-uv%5@U(GXiN;)cGXGL~i z?r=mfgp1+vng!(2S-9!Q%VT~1ykc>Bc%$M~f{Wk6#gh&DQGv43Qb;9{PYcWYXR$cJ zGhvg+`d4`fH&Mp++3A_F1=0LGschc1tY>5-?({S@@NJPcsRBMY0e54C;6Cj@Y<{lz zTXgV`LB&CFboxx(@x%TcznxBOyv}Go#W+C%#SmHUi}*WiXGf$GXm_M^WQg*kqC^;O z0{(O|o_1Kt@mM94=HXz5;6mb!Fiq)G0q=U7?bRg?tLHU*4w2S#d&}ZKUDr09btumH z+-9oH2%G0LeH>8rRG&E4sR`g0eM3yszUfPim#uml-PK4<4q6lQ#l49n9EhIIV|*)gB;x1|w7r{;c)`Pl}y)_?*_>Ak+AT6?x{a!(Ss zpMJc;rfzW1y)Be-Ffj9u9k;_&z7uCaS>Xr0THW9~4@;m7Dd7hUiIvw^u zc7Kye;q#9Y`%v)bR4|#-B|3fuU&_{qxHu!FsQtAP3ciD-gi@1{FI?RCDD!E(VKNlE z)6;!+T2uiu>Uf=JUuXRj9u^wt$eNhFK=Et~ro;$R4`?x+JS7f@JP4p-Y)f`@S6Z=^ z`}#7gm|e9YI3sws^=+#&k!;kTQyEKU`CUV_w+>>69!wwa<2-8J(rC&cK0KJT-aNdp zns4;U-=^a|EB&fcaquo?wNNo*aA9ul@FAO;>_)|l(hKhRld67b!{^`>vIj`5D z3~OhP=dd24(8am%;^ExrUO4iD|aS=;^V7T9!s7U&E_h8WA$R@C-vit~g0N zBwCAoOa4ucu-*kXF*%Juhzdyt#ZiAloZKkB$?K|+)y#I#wcQ=Nm2R1N^X5%9n|-|a z4;>&QDjZRxK*MNc(A~7a7Lia=&#^o@lFhdMWEV_EO#D^5BVv1yx<(sFbSRrUI|Xcy zs;wMbgu0Mfl`MNB&;L;{BZjL6(@)`Ehnq_4twe)af40hK`Y8zBqByKZit(a-E62Fn zERv*!L1hI%JB^>^wf511dq#?*R+;$)1=N>Lp#%AqSAGSsd|@#z)EECk-L(T+zK?lZ zRbU#dMXYyCRUSwt+G$;=fn7zjxkb0ToAjm>+F12T^%yhI_`Z*HeS6-o`%|~x24PFo z@2wW3r7b+?~OeT19{%=>L3~%wlHVD`()ztY*U+Dcjj`| z&HpQX$=E&^ACvZ%%Tsry*Hf z%tgxRACH%%B0C>Ag}0A)lk1z%i0;Fm{G3|$prG-s zbatXAfA|n))i3#>yjqKm3DnYhtDJI&B&o-k*F)7rzM6^@&7=DJukYIP^YXf(T3Y?K zmHP{7NR}E4%o1!7OJ>mVw8wBeP^(e(CQBxL;Io)oUTXID_Qh)fjZCWwR@E#<%v$&O zw&T(*K5Rf{+jc;Kj$|v!S*?$skop3!?xKgiq6k%e!BDOJGaGula4w+ z4IEp%HdE*znS_aba9iy=v)<*17;e*Qt&FngE2*#N(D7f51iTKD@oj$l)^xIPSlgv! zqq-?k>N~v+i$K!-*V~wVZ{FBat4Iti`6p(dT}_koYSM|Fh3W3Nom4|ZJePxSpDg8f zY@bx#7{9_-hMMHo^SC~?*$R9MbAxmgvbNbO20Zk-N#hH)J3Cn`MXX3Mo@vP+zM#W5 zVH#4SdGo#D66W0roQaMP@C`>QFG1b`xDar1x^p}1Z-bstgCX43X5}Fq zy;l~f5GK`IEYNA>r|N>mdwHyW;k17t!$ABoVB$q8cP*E8m<;>wLb?Eq2SCpE zg>}+?++49BNOHijwT;kCKEUj7^Io66mCx?E{C^M!HT`VEKNlO(l~)k9wb!%Tqd|H1 zV!!#`L;k|XrFCB}=GzCf)wNsSnjMj4^#$fXI+AxH<$!5|uDJFWsu%c@Pe&;ARp7zW4;%&EJ1gDda~L=ycw{d-tQeJ141R<0ZPk zf#484xss5wv~O8k0)-w^JxQX4`gzX83;&6}q#@!N4%7AGhlbfLrvN!kIIi9X z&2-0S)HiHwWO~E-sM2ZPpmNIGb%B^`M0NP-Ltv4(V(>=Pt*baJji<=_oYP(q|7lca zv=s>dYEzcR`4j)e1#p#K{@8ndR(f8D8ZN+R_Fg4hGTO7Qfe1z4>G0n6E;{IHNOyb& zxA0kiO7jRHJL&^g>ypc~5XJG*`4V73d4*qrmhMm#znT@w z7DjBJhgeujPp(laWLz2>8^3<*)_kN%HQ)c$8bj-WvV&CvO)%W0iC)522eJ%8Tzc>D zp*GbO(;?R^WsL_zfkOi($XOY_fT4u z#=$`>K|xHUWUlu73UdsBB(0==zcf;H`tacrIM-+aDn7TcpmK<03!}Hdfo~=lZhO;C;99`v%bMW|Qqq?NuEb;vPC!ltIVSzS?_Uo2 z;r4IS66Lku#lC0s{JP2GPO!2z$fRW@4aFTap;MnTjbPIAR#rXBe7wfVB~&K>nQc2( z%mXKC@X0fP823(NBe)W}m)IC-cSVSbwHu>sAMZb#-{}%ks(yHoQ~e54o`>GhBZpQX z_@;X#WftWFvNfW8_erObl;IR`QhiR+(&V~FhcXYP?I+vBcrSUnxxW@ zm8jmGXgPzu5oo?)znPbf&5!{M5;ur-nGOnFptaqhrKJ_{d-C&ld{=?-xSKhH@pySg zYDsD8H^`xyotaV2%9C;Tob}P|jev)X0zUR|@_nsvM?;a%R-XU$)eA8qTP-GRwTLza zAhu|&cf7nti*@mjkznkci_2KYBzd;q;tt}+h>GM$h}d427tGwQF+ z#P;0gRZn20c9$4`Mb}tRyfxiqL>0NZ+W5?_a z`Ds)0*b}ZrB0H`{_AY8dt#2QcgI7naByBOSzP$UTDQ(CXbT2Gew91JRQbsESSsJI( zVq4FMk>Na>)y?*t1dgVof2&Qm(jHcs?WX@n_Yefpc2&Zg@c^3Ov3frPp~g*-lP@a*)8cYKCnY3wRc9b->O|x zDhcOY6zrv3m`^AvVzx}bwu|;+PlGM&aU|*W&reTJf^?r`Xf#RwPVUGU8XbLrW%C$C zNl6LRGtHWRmA?#{je~RZ^Y`+2KMVNa;)J#s83J{=@#1Do5G4iJDlqDFZl9lQ%pef_ zRrXeC@;TXCH@IQBH5o#E6rP4-Edo1-vvnh&0SrK1(FWGi`sN7*R~(Sh%|ZoiblN{x!%dp@NjpL zflg%=Wr7r0s&qprU=H^Q2u!w1gDfZnyHv-K0s%WayT(IQjRKMK@x^{ud0xoW;7Bpo zv|JI2(LuG8m@ge<3W{=jM&^f4T4Y0OdFM{5^Xa`RWna~J6kK|hsHfL|?fl?Ri1EYc zmKe;A9qU!Ieu_$R(j3=q%0D$JGm^CofT>>0qOLdbH?kHS+=V9Q(oT5 zAG6OtQmMHo8{b{=#s57zs^PFYaF%juwv=%J7v(-*B=(?}p+Kz{EjquOgK9#By|NVY-nJoBw z@D=>cH~1@P{A1JEeibwnMV$mnKxFYtGQKXOCjF6J@~e^Is?&?i89tJOn7SiOLAjsK z2<%1&JPEmYpnm^3JbdJ@{$;@N>!q~|gCuX{c1-EE7|o;T3}|R8wOW;n*Ahv(A1+3+ zQhZk?yqRD_jp!aH!1&bgyLS^z<8MWNlML5x3;Mu_6btzCs%c{+6Yz{{&unL*m;FU_GXVOq42+c{WeGS zE`<%|n{N6{#WEaN@)J%agjtFuzka@K0qSTND{B-)SH27K^YddRtik&U0fx34RT69* z9QiITS9vcg2Q*J<-7sdG{mCL&ZYRC^y3Nmzr@8fm7>fY!!}#Z7F)^G5*fjnvcK` zB@{q!QcdGeD)W?TI1ipUNStPo>rg=O7xeAyUZHInYJbKFqjmdLJiMUx7{)*+hl}S#L}74d z(OV;I*T<^)-oHmNFSAsXKGIA~nO$EO$QogO%;QJ|M}@7O><>Qo65?4jv_YM*p)Dv~ z80=cFTA$|y61pd_nX`Fr9$f^j3k#JByc>G2SYrITS36!Tif;I@{5mh?Se0kHMEcd7sj73MFvV$D2#}N7$>az7;VNi7+t`gXrEL2`lVl zA`y>zW!g_7qbC#S!Rt5YJ|X(8#?JpN#in(buloop%4~OWSJ?NAsk~ z43{TsXjOx&zK=GWS(`z~1McqB`nm*a*Uhm?v%sODUKCh-adrjT{7*Q%VM)LOR{weW z8u_`RJ--7s$<3|hO+^MCGW+{Kv@$}FIkTfB##h{Y-|B6%2gdj+)966fdE>7RVPV$x z#tVys*wp@T_);!2$Ak(34jwYI*)%Shz6|-$OJ``v$aP&Nq~7bh+wD}Q}D0+3+QFyiDl$u+f75-l%V036u#Tx5)yX9>9r_*=E=z5-+tm zpL#D-t>)84b>t_B6b-mKhg#=Px7)5wTugCSpX)!o$%)Eov#ves2EJB!Q)fUtYiaQS zwuQxhyFyP7dI=90R_l02g8@%;H2#w(>F$jT!6XDIS#qL^`ik*`VP3H@F&|D9GWsK^ zSv5S}MZT)$=!}(`__WOxo5T9m?{>yaS#k~^&3>-}&UPeQiq8e_2yPur${#KzV0@c+ z?4_D>5H>G^qwU)^@STwGs3oFSlVNL0ZdY#p&IoyLurGW||Mc$83nBNHgD7B{c2V1n> zQenaf7K7Gx6_*Hc=wncU=cHk_*t2j2!hWBSpSywvHfCy3Ts6T8YWH_Ieb7p7gAi zN0FB9P9fPG2A*J(OLG73RjaR06oooVT_sXxyiiwMZZ^hdZx$R2D9Sa?u5hNP8yJWR30b{QUf>M_aH|fflnQ|!J|EK_GH0oo6P6b%#5g#2O>k1h>eRFF+}jJ z<&mUGko6rn2e)=I1wPtPkGNUZCPi_!*_=0TNAoglM$?)V(#o@NBCp(cKEsr9Wo2dU z7-}yjtE=7&4d27W>}b3lxtX&rnJw40IL-@;^M;jM1ek-G!s9{denSt3ziR>vle*_3 z#NW3qWC0ti(T~8j%IW7@2VTV}2%{E!!hY^La9Zj6$@RFm+KCf_2j1n|K2Fh)v{>#T zUg(U3Iz?x}d$>IkS7Nb~01~PW;2sSKFwQkzvo9EB#?*mti;m9{melshjBWed*76H- z=~2v>%q)L{$30sHk1&qD5-t+5J;BmC9bKku@(|_dLO6qcrB(X`L-?jq?@^*GhVxPt zcG9m;i9!7PP3u42?noY5&r5Av9pSMPygbvty?oU8bipuu`|5!Nasfz$_uq_Sw0YDP zLbF)!5h&+J{im$hWTMzltL?dd+vszaa%bAxyd--kcrtLUAM>>_GBSoUTXZHQBa7YZ zpQT7Log4IzZQep=>oYFLXQU1N6v!InZVaK8HKi2t)zxV`LKxB`-~IHR$I`nSf4%x7 z7f8(^_viKXf#?5vCHMc|EA?Bs*5em3mf(Vi{L#Cj{CE(`OE!@EX8QvSO=3OP6e+t% zi)!Hi{hIx7GDQpLE;frL8yF|+ym-fpQhi~34UYT6xj?_0RZ{wPkmGP`fp!KlY{ACK z3E`(`BbECUC@w%EDK@GxKiM}LlU=u59r*hF`!$jWK$-TJ&2WCcE{(^+!XlG({2bz- zpwJIfcG(WPK^A=H>vk-I9S*5v3`5!Z)UywW;T`$-L)U8<^~1wyS3CCox)Z8Nc+NLo zwW&H(-5#%S(S8#(t>!%!*hz2?Pq{|u)I>;Bl8~4^Ni3U6q=9yI?J^$6! z$}_Z0J7))sTMpfR5M`KezjuMnmdpEz`LeK>7!e_#5rZ2n>XE+XLc^n*KzM(~DqrXE zAm#eabf|$CQPdpiKTAY&{LWN(Tjx780-iECU$+V9&Dl7j*W>q~fv9u4<3d&~5o)q^ ze%bP*kkV-6wCS+I$7he`szeOKr=Yoq#|H$uMPbAqY6GLF%`Gi2a|S~d91V;H$Bwxj ztiZHuC$I4ya`<&>irw43!AR4CBKhs5(Z@C$#0+9uTXlx3d@pz_Ay;c$D}{siNy zr+1!k)x)Z;Jd9YM1mn-b%Ci`yb2If+H-; zI|RzS#Ow`*r{3P^U>x_lEhJ~NTae&k#iTiIm8xF(;C%Yx=7wyN0r${o@@{GZODDht8O?gwfPRO~ zseQRWT{h`Wf*XlOSL6wy^}h9&u2?}Zwa}=>7fcetym8w|-P|c{Z6N#Y=ntm|UYBPS z!JM}qoi~GyDV)yvK3H8xabSw}`I9yJo`q~Il>!Uv?Kwo)#-|wJ=sY40N0sx&+Qg2R+ABcL2r3I>Jm)pHCrFE170vu$?8;G zA(`aIMsb|(8nq!p_&hs9s7J+$7js5k9LTES)7;#p+b8jT!Y$C?iMh48`IId64law~ zOs`~x;zO~7Zn$)BT1i8NTxvs$i$a=WPV7k-+V+@pUx~$dtUfc`0(MKhY=%4%MhU>D z65XbysgA6`g_KB&t*qa%E~;&Aw{d-HY$|HT7pNmXXlU@2nfo3d+FEead)$n{ybhOR z&mIw69jS~AP}to2$YP}0(BF?KFE1ZaqTARVmO#QON8Umn#bxJ7P`CKr#KfBR1fjVDSyzzHTTO%Dl*tn^d6th5XchF*L2GXS64 z;z-mgv%R59h!$I8kAWck@uEyzR01IdhHT!dmX?-(V4#Mh2>8jv%JAnnFi}WO(ZPlo zFVVU+XF*YILdI;`z!uwSR18By!!Y)p6Zb~zaBzH3N7i;&WaX7lWBY<0Qplz29U=dI`kkt+kdq8uYz!`fF3#+L#?}1)l={+8v2@Ipb z9xei+&`}(M@43hiC``X=X66?B;*v49v9F1@&6~?*Dz~o0%H6T2}sn1 ze{?h-T)P15P6Mz@QnI?fZv6Krr<^7OE8bl^vN#TW2E8iU0esdSqWcm;t)>m7;#jp6 zE_gOIcwx2l&qa)9w~qTLv6?`E`UrPY8f>!`*P|;MOIcVLfKnl5TvEDEUViRcSxI5G z-##pDG^h;g$8M)lykH9zup82@M^8ye+>ZCuC@l99gmpDo42Qn-o{cKj7+-W8vg+uN zUcPcgoF*l9J9&Pk(shDBAQcOR+3MmQo(qB{U+kZD1h8`RpYB z{mTZmrGTZ z^U7vag9qFEs7X_N_d~7*mRf}M>ec>uP>!Rc<9dTT&rYvq*4vEU<&}!om^|hi887A)M^&^qNa?q~HDj z6sxb6xx0O3p$Kmo)ka>mP`=_Qz{Rk4(}Dg__OEaBhHFdd(*m3xk7#bPiqWJGS}aTB z!DN!!iVF^HsBlHkj%#aCuHC^y!M^6Y0cKaXai2^M6$*A-n2~32QF9Z->}~~YXW|Kx zciErAKcUs}sJ5voa-%v{z;C?@&=*D3G^-OR7Da*RGX6UCt@*cYd@BLVY+N6C4WS>us`aGU|tmh%wL=HfvJTR z-+Vj;lWBL9&ODol-M|jk7t*!h5Zayn(X~{m_{)%kqFia|0fy=H7LAZ$NAHLR2-X!a zDBxKe7}xZMWfl+<0^t}r)K*Uj91nRuUFrw%O1_ywG)K|V#<%HRME59LQUG(S8=>%)L)NGan!km%Q&ww^+pPi?H@|oq9 zM_+K54d|T5zK{-p&tsA_xk6Ma6>`C=RGc%NpHE%=E*(Op+6Z^%O=<_}Bc&CEmbW6Y zJZEN79GeS~Mqopz2Q_oifx zq+RZv)Eh8`5j*G)eA>mB!Bfo}hdY4MMQs`)mq`W(6BgY!bfB5RhY@0XF0C7#;gAb) z=wvlGH?v`6Ur05r0G2}xqNmwLi5FR&(5?Ir1Qh`GBkT4-B-U#yrC2!@WxY0`z7n+j z7aoirXw=vkqrFd67wQK^Qg4dnhso-icNNx7X*j(yJkWD!trWKW0~tn)R`}f`bkoR@ z`5`mH2$dMhLg$%(Vj@wX84NHOx7+SzsucJl(R^5&CkKL?y^_32Q3gNj<1x0=5wB~U zosdSy@T7)Da28ti#}ekpO?{jQ$ouC`g2UQ(%5 z2S6!Zc`9;i|DtG8lXGb=c~OeB-O4*)m}0A6UJcoau{rD;dhm+Us8x&YR~bTD z?p$BmyIQH6>s`DDLe4BgPORtqqZ=eOJK|0$mr`ZcL4xcG`yV)t!{u6>4*Q6rLq-I2 zuZ^*9rKOvR)v9v;#RUNW@Te%<_keFT#@cM02TF3d@b_b>1u4_?=TWpAf8~%{8!egj zVI5_#Tr!o|TcSgO%a&N( zwJL|bI+(+OXb^jLwAl!qp!1GMOEj&o3=hhGU$2rr7fC1j)afvY-|MJBk;7AlicbEPB{Q*N| zgX7hDtVCHQMN2xyAr<`33 zBK|*hU3Way`~O#3w?Qd%2`wteOoglx$tEijnaAFHR+3H8!7;P32TZ6UTN^<-hb43sAX}!fu16pK~536$WIU3KDGoK(khqII+6==Xgy?A+yq&f07 z=}F>l*0WNoqhuEjmdA-a0@xbiBx#-d&kM2M4u}zO%GcgWr(k^czSxC?Oyq(H49&*a z1{wEKr2Sk_O6P$sg0PD4ZCKdRdyhK;9#7)yuQA|Y%GkKOdHDuYMTHtpwv;dKz)ogpO<@aE&s$gGz(Bs4JF5MxaG3p{6L z!XLYaUI02HA|xlv@rwOx;aO2Am23(igSLjNJUIm(A$&H~WgZ2buT>61W($crtB&DURnwwAM?&ZUUd%?I&!eF`A$nJ(= z_Z(%u$FAPZ-?d2b*1(Us?da*?AU`U60N4oxK5&=}ftG|(Fr4m$%P{Q%MvHLsepnbR zUPB1G1cvHAf8j`Iv{y2}`L7cTlRAps_U{7DG19@<8&c6cVR0_eAI8Juof!IK{W(BgC6q$C0a`{&I57`KKF3)%VmYaqwV zfPjDrh{gQhCTva^8X9J*ZJY(Tw)Q*cS%-x}6)fkPGem5FmY>)YeJW;B&x334OM8M? zyTM6W;`a9Lvg4L4khMS_>+j@I4wgrncsslMcP9*zMZxv7L<`-)2EFgZr4-xDQoxeo zhdI4mP~q0|^h9aI52QSsg`RADiIYfUJ=5 z_C5xsr~XZ1d=6<)u2op+&7wOQ!L?&Gic zt7x$7o88)qCMS1KVGXYYBW6kdb1fcKEH+bPBVCg245`0_p)BbMrdT<*1g} z@Zz>&ExKTWZ)C=$YuAo)*i`oy?2way4&-L7YN>v7{bYu6_7ss|F6J|SE>m;lon(I# zmd{U5GR%6+O}1SP4nc;y+WnjuR|dyda>nz08GKuLivk^oOkdp>2l$Yep?by1s$p&o z;WZ4`zcHGET=qFCjCT4B{?&#K?9_#JHYh)P%)FNo`A+j*MP|csRm~u<=%u8QqgEp3* zE@mzeb0a~_)uZ8osKclAZr?G$%pSV&zH-GAv}^rUL7TMJA!&=l-EciH9Gv%%(37ml z{H|W&=Hc0KpS7#u>HJHem`i^`$*lOnaV>d$vAd`(p*(QmVLmad}7VF?{T0 zBVUO7n|v@6RTn)ChF9V_?+u_epthCrJU;2;>(cR8mTL!VLr^P2rq=pFTBuj=67a zT)(`@@VxS{C_0JREexd+2pYXJr%&H=ap8wOX@g~sey1op7b7z+5JoVcaw>ms?#o9T z4y9w_I6ij7IIiiFa@a2hAo)|hG5tZG4rHVzk;GAxf_*^0960R_wtA$(?}XdN|&s+LCj`#4oQ zriR&sgkk{;3kiv?f+gBd%5)D52`(6Aa;;A<3W3xGNxFciB|)pigt8*tR>?T>nVc*6 zEKUERR^OP3=}GG~{d)7Q@Qm%DT=`=Fa0Ngm1Jb@mQ7)Aiz8M$H(jfc*3N4mU&v^H4 za+hVp<3?rHzC1@15bqFgtwB^{Huy9^seJJryr^ z-G5$?hvR8Zua?ob;)Vx$dwtDA(FFxI0E@8(DujZ-e|de~#UKh6yEC_ji85{;MU|t` z(~syit?M!jJRPkmXOa6j0R7G{!&<&My}XOZ+!movFw4NMSIF-Avw5Ny0{I^s#AN?RN$_Sgt->1J%4OTHYcgqNw}%S>V$cd| zaKEv0{QJtvA5DJ1O3CMY+nnDAsQD=k9Hqq-Fw-hIyYpx1K1qgQji)3;?%g9H{knVb z%~RJ>yZxO{9V`mKwu9^gj2bV(R2U(Vvcxou4v!5x2zrmB08Cw4?b5(eoIHN_SYY6! z99lP5tBQ$?&X;9vLC{nslaLkDwL*!6!8iZX9Mmf~qvYb`axLU}wifj~G++s@Wm636 zGfj354ul~kdGk~V3UlqMH_}0-e5muSDdG65t+~kx^-|kNRzhFXcq9+@FUtQ9#%5d75+d$wx~q^BYU`rVaMw+h>t7#-&eNIPif4$m zA%sIy4jRX|HGZK_SU-Y_O~AVs!LA@qlZZau$p#)x1Xzp~t9Q;RTExK)8=;cd1?4FMgCtAGuC}>F3pj`NWT|0z++RSk4{-ZM zIAh*HLDzVBv4A|T)CCGjRRkr=L`o?t-rATu9A~9+hLWx-9h1R0Z2#j2=J%b+V?Eib zbL=9q72ZRc_ww0wkXtMrEV=1YwF2IUPHP`YabFsLRcCTTjQQ z6$PpV*;d^;W}Z)ig06Wdv0ivr+SZ|rrwev$L&m}vTr3aSeiT(66WRlwP$v$Kk!s^Q+K zK%@c?;AaQWBtYknMw(Y%zVv0?nUR;bCVuaLAU=~8i^Z&YmOjy`S0J-(Ljq zWKap>#w#Y(wB!5s{OEHICa)R}6Ies=poNx;N^$bXycdE#3V1yjpIB@)$*iHFk>tze z+#*HAuKI0^@q}S_2_t}#h(?kUr3@NLxs2{VHIhxWAVPly_WN5A>hTFWK&>Sz?i>q6 zHdu6@(w_gg0Q6scd_33;6!%W}<^GFGR)<|KeqX=FH-whJnsh>U`hn#t|5+I6^Cdt2 z+K%JSV4300LVEm?AG1>WX+>^tct?H_cz!?+=qL*a(cU>e+PhHsE;15X-dF4}dYO!j zOn+GHZ=%pcJ;yjoEB=&#j)%OrA@%$kO4!HWbZ$ABEE6rVvpNZBk*!Xr9}pTF-l-MnWsi%Y^+y+^yrC7r}Dty zllv7;8_dk)lmU^q#)xkC=sP*(62EX7jXa6HS7aWg5;e{EqER@+pRDm@YNpu}ZkStc zc6MYSeSpDX)}SDKKJ!zf*hy*C^_J=Gd#^Dlq$RSK#>WF>Qcwj_NsnQVb6=q~_j3m! z<;~5hb!>jklzF;1%@6j-+)a>vLXkWTd3YPs0+sd4CTNiemM^*jNT= z{YVm1QWDw?QdRRG#`P8&t}y_5f;^tMxBylfXYvQNPN^SN9X2nhHdpUytlRN>W{MJCR1M!HYnn3X6LO zDxF!IdXtc=!~v;?MYZHDK(f!>iKI_cI&mhmR$!8@Zcu78fR~?Sx+Mk;9FkPTtr+0l zCSG4BUHiVrV=kzap`_QhT2nxfMU8iAgdQi?e36wEU z^5)b7dZ+7J&8_pGi)?}qp9N@u;N8QoOnAJI9BgN-G12)UW? zlW@ssPJo_KfZ<^Py||Q(RNO2TivUB3&4Ls#o#%zj9>=Y43$Gwwgd_)+hqXinT)O)_ zylc;0WjD^F{vFe(-Eoq-ab5q!o0oN=O*&WkY3X}+mOJN&?WMA^6&E%%L3i)_Fu`$R zkeF4*?5u?~=L)_Ed4hUNX$wyb3)P^8R2bV}*C_ioa=)s9 z_Q$yIEqJ=0kAp4L^`#?hoo) zbqy-P$JfuXsGn;ockcUuP~YltUrR+ZdXFAC!eKE&^4Ve@J>BvwzQBLE3FQ>?OFmMR z@=@pT$jl7#!|7=<2MY|ZgG@lTquPC{8X483rR8y;>bV{tSH6A_kfQKjMC=XB$Pb@p zU?6@g{u_3(cBKyG=6trV#Fkc!Oo&cF;JvM25RE&MgHKz&O-(gGq4folTh{6htkw!sGr-QW=WmI#Ky{k9)-kd9i|i0 zqFt2J2H~I|g%ATlE6=vk4s>rQ)dd2uCR$cIZ#3^j4E~R*@ZDO!v8e&Rb{^I}1;2~a zuUm4@)v04}P}+>wtQ17-mp{K-0z{yguJ}&WZ@ROnm1Nwcd!fHlG)wI^ujO81JrBq> zFM;^RY2%e#afY{VpjLN7H+WW-7fb0NuTz3d69#tHmKBczKN8tg8LX1zwfe3D9wTsN z_p+1|6q$GU27-`2R7cG_`w zH?ke<2^R@g{QvDPa^Ei;o>&Dk65C`A@r1mPSW%8=x!bzGw|AavlNRl%qt0WoHZafp9D3Ue?A5d zC4W#%TA&hCWcl6mS#fZm5)%_U;LfBgrhVleb`u4QVooI?qTXl=BrnYqRyY1vl~}*g z8e4f!SNAHkSu!#*{&ZWcy%c9>d$LY&wsZP3aKEEsjQ~XCH2|X_AqjCHmIZzOk&Cwq zeyb!7lTlD)WBo}Hag0u#)MqeX{p989E81cg7Jh}OvUKVKr&|{IU_Yrc+R`cq& z;n7hQrFeNAhuo2^Da%|i*ae0a%c`G(K;ZP`3_mY(je2iWHL-djVAc-xtrPAU^I!a~ z%8F5McFjvtFR5(fMSk~ly*Zk7t*uM%v=Q8OJ|+#Ntk>M!Ov%x88TB?I;*FP=7u=JN zA3rjMC4aw2NkVdHNnGT;^<(UC8DVEn?-etvML-pALFAiuQly86d zb7<>qupnOigCra{4`nyEN;dQ}BQMI!%W?Umb4J^FQjZ>86c9j2uQTv+A>c_Zuj^Fi z#7B@=03vpkZ86Uht4IKft0`jNquzxju2g6$%>WO}*uw`k3)M{JonOU`u%FNFM?%_= zCP~&EYN)^WhH7edVqKPkbes)@d|9~d2UDbDU!6-^E1PjV{5CYAw%B^w5R@#^k+=1V zumhG;Eo)+= zVFTd^Xt1c~zJd2Z+{?aS0jDhrz5=%2#SD|LFT!|@*|rrrW(VbaOd$ZFzbNncp-TXx zsQ%iG8|512dHY)n_(t75FgN@4pS{S-d$>?7pvZnwd#ebnMgQ#*I-?qqR9F6@%TZ&! zj5!zlpXO!lRN!RL)=rFdxMd$BoKC5cC5O~q+}kOg^cTLyaAi|H6Ez#&7$VYWe_0e||iPh6!mOpT3S08xtp zTJt-h=23p6;^SmiRIGi2sR)ocjf%B5sK$4q#8Dg?S!G7;OQG)*g{2LDN; zM5ysNpf}ZT#oh<+`~*KoTOSP+f#9Y$-rjL5#D7=71vh%8^g@8X%A}D3vV7UQlo`kW z^cdB-5PmmfudM06Jx@Px2hecLLs=MYo+5qk-n}@ZEkyX<7Wb%r^3^hrG|`M1*yGn; z>=P3@6>5kndhdY^{8mUQm^qPF@u#nPndJ-}U@XYLqyFh{xWjEmd45l2e|^XO>$ODE Y0}lI9kIcA?NZ^mSsEkOq@bg#y2cyW9!~g&Q literal 0 HcmV?d00001 diff --git a/classes.html b/classes.html new file mode 100644 index 00000000..a8ff338d --- /dev/null +++ b/classes.html @@ -0,0 +1,128 @@ + + + + + + + +Arax: Data Structure Index + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/closed.png b/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..1db6dcb8bd1c5d0bcb0eb5864aade7739cceb8a8 GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{Vo}Mm_Ar*{o?`HEh81T40PGu)j3Y|}czxZ46`m*QFL`~j}Q|3+eUb!ce e<3sYd< + + + + + + +Arax: alloc -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

alloc → include Relation

File in src/allocIncludes file in include
alloc.harax_types.h
alloc.hconf.h
+
+ + + + diff --git a/dir_000000_000012.html b/dir_000000_000012.html new file mode 100644 index 00000000..dd10ba95 --- /dev/null +++ b/dir_000000_000012.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: alloc -> utils Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

alloc → utils Relation

File in src/allocIncludes file in src/utils
alloc.hbitmap.h
dlmalloc / dlmalloc/alloc.ctimer.h
+
+ + + + diff --git a/dir_000001_000003.html b/dir_000001_000003.html new file mode 100644 index 00000000..b957fed5 --- /dev/null +++ b/dir_000001_000003.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: arch -> core Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

arch → core Relation

File in src/archIncludes file in src/core
shm / impl.carax_data.h
+
+ + + + diff --git a/dir_000001_000005.html b/dir_000001_000005.html new file mode 100644 index 00000000..16d381aa --- /dev/null +++ b/dir_000001_000005.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: arch -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

arch → include Relation

File in src/archIncludes file in include
shm / impl.carax.h
shm / impl.carax_pipe.h
+
+ + + + diff --git a/dir_000001_000012.html b/dir_000001_000012.html new file mode 100644 index 00000000..e5bdf8ba --- /dev/null +++ b/dir_000001_000012.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: arch -> utils Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

arch → utils Relation

File in src/archIncludes file in src/utils
shm / impl.cconfig.h
shm / impl.csystem.h
shm / impl.ctimer.h
+
+ + + + diff --git a/dir_000002_000003.html b/dir_000002_000003.html new file mode 100644 index 00000000..3ff6a5d1 --- /dev/null +++ b/dir_000002_000003.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: async -> core Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

async → core Relation

File in src/asyncIncludes file in src/core
ivshmem / ivshmem/async.harax_object.h
mutex / mutex/async.harax_object.h
spin / spin/async.harax_object.h
+
+ + + + diff --git a/dir_000002_000005.html b/dir_000002_000005.html new file mode 100644 index 00000000..53fe17f2 --- /dev/null +++ b/dir_000002_000005.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: async -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

async → include Relation

File in src/asyncIncludes file in include
ivshmem / ivshmem/async.cconf.h
+
+ + + + diff --git a/dir_000002_000012.html b/dir_000002_000012.html new file mode 100644 index 00000000..0f79dc3c --- /dev/null +++ b/dir_000002_000012.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: async -> utils Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

async → utils Relation

File in src/asyncIncludes file in src/utils
ivshmem / ivshmem/async.cconfig.h
ivshmem / ivshmem/async.hlist.h
+
+ + + + diff --git a/dir_000003_000005.html b/dir_000003_000005.html new file mode 100644 index 00000000..33a13030 --- /dev/null +++ b/dir_000003_000005.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: core -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/dir_000003_000012.html b/dir_000003_000012.html new file mode 100644 index 00000000..1972aa84 --- /dev/null +++ b/dir_000003_000012.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: core -> utils Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ + +
+ + + + diff --git a/dir_000004_000012.html b/dir_000004_000012.html new file mode 100644 index 00000000..22050315 --- /dev/null +++ b/dir_000004_000012.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: dlmalloc -> utils Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

dlmalloc → utils Relation

File in src/alloc/dlmallocIncludes file in src/utils
dlmalloc/alloc.ctimer.h
+
+ + + + diff --git a/dir_000005_000010.html b/dir_000005_000010.html new file mode 100644 index 00000000..8570b1a9 --- /dev/null +++ b/dir_000005_000010.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: include -> src Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

include → src Relation

File in includeIncludes file in src
arax.hcore / arax_accel_types.h
arax_pipe.hcore / arax_accel.h
arax_pipe.hcore / arax_task.h
arax_pipe.hutils / Kv.h
arax_pipe.hutils / queue.h
+
+ + + + diff --git a/dir_000006_000003.html b/dir_000006_000003.html new file mode 100644 index 00000000..9b3820d4 --- /dev/null +++ b/dir_000006_000003.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: ivshmem -> core Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

ivshmem → core Relation

File in src/async/ivshmemIncludes file in src/core
ivshmem/async.harax_object.h
+
+ + + + diff --git a/dir_000006_000005.html b/dir_000006_000005.html new file mode 100644 index 00000000..593a12cc --- /dev/null +++ b/dir_000006_000005.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: ivshmem -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

ivshmem → include Relation

File in src/async/ivshmemIncludes file in include
ivshmem/async.cconf.h
+
+ + + + diff --git a/dir_000006_000012.html b/dir_000006_000012.html new file mode 100644 index 00000000..88d422b7 --- /dev/null +++ b/dir_000006_000012.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: ivshmem -> utils Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

ivshmem → utils Relation

File in src/async/ivshmemIncludes file in src/utils
ivshmem/async.cconfig.h
ivshmem/async.hlist.h
+
+ + + + diff --git a/dir_000007_000003.html b/dir_000007_000003.html new file mode 100644 index 00000000..a1d7375d --- /dev/null +++ b/dir_000007_000003.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: mutex -> core Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

mutex → core Relation

File in src/async/mutexIncludes file in src/core
mutex/async.harax_object.h
+
+ + + + diff --git a/dir_000008_000003.html b/dir_000008_000003.html new file mode 100644 index 00000000..44488776 --- /dev/null +++ b/dir_000008_000003.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: shm -> core Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

shm → core Relation

File in src/arch/shmIncludes file in src/core
impl.carax_data.h
+
+ + + + diff --git a/dir_000008_000005.html b/dir_000008_000005.html new file mode 100644 index 00000000..9356be9c --- /dev/null +++ b/dir_000008_000005.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: shm -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

shm → include Relation

File in src/arch/shmIncludes file in include
impl.carax.h
impl.carax_pipe.h
+
+ + + + diff --git a/dir_000008_000012.html b/dir_000008_000012.html new file mode 100644 index 00000000..3b5ebaa0 --- /dev/null +++ b/dir_000008_000012.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: shm -> utils Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

shm → utils Relation

File in src/arch/shmIncludes file in src/utils
impl.cconfig.h
impl.csystem.h
impl.ctimer.h
+
+ + + + diff --git a/dir_000009_000003.html b/dir_000009_000003.html new file mode 100644 index 00000000..e4a53455 --- /dev/null +++ b/dir_000009_000003.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: spin -> core Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

spin → core Relation

File in src/async/spinIncludes file in src/core
spin/async.harax_object.h
+
+ + + + diff --git a/dir_000012_000000.html b/dir_000012_000000.html new file mode 100644 index 00000000..cd2b5e2e --- /dev/null +++ b/dir_000012_000000.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: utils -> alloc Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

utils → alloc Relation

File in src/utilsIncludes file in src/alloc
arax_plot.calloc.h
+
+ + + + diff --git a/dir_000012_000003.html b/dir_000012_000003.html new file mode 100644 index 00000000..78e6866f --- /dev/null +++ b/dir_000012_000003.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: utils -> core Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

utils → core Relation

File in src/utilsIncludes file in src/core
arax_assert.carax_object.h
arax_assert.carax_ptr.h
arax_plot.carax_ptr.h
+
+ + + + diff --git a/dir_000012_000005.html b/dir_000012_000005.html new file mode 100644 index 00000000..f1cc6f4b --- /dev/null +++ b/dir_000012_000005.html @@ -0,0 +1,105 @@ + + + + + + + +Arax: utils -> include Relation + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+

utils → include Relation

File in src/utilsIncludes file in include
arax_plot.carax_pipe.h
arax_plot.harax.h
Kv.hconf.h
queue.hconf.h
timer.harax.h
+
+ + + + diff --git a/dir_0f311e9d6354c33ee33a2e1d521faacd.html b/dir_0f311e9d6354c33ee33a2e1d521faacd.html new file mode 100644 index 00000000..e117ba3a --- /dev/null +++ b/dir_0f311e9d6354c33ee33a2e1d521faacd.html @@ -0,0 +1,121 @@ + + + + + + + +Arax: shm Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
shm Directory Reference
+
+
+
+ + Directory dependency graph for shm:
+
+
+ + + + + +

+Files

 impl.c
 
+
+
+ + + + diff --git a/dir_0f311e9d6354c33ee33a2e1d521faacd.js b/dir_0f311e9d6354c33ee33a2e1d521faacd.js new file mode 100644 index 00000000..1ed348e3 --- /dev/null +++ b/dir_0f311e9d6354c33ee33a2e1d521faacd.js @@ -0,0 +1,4 @@ +var dir_0f311e9d6354c33ee33a2e1d521faacd = +[ + [ "impl.c", "a01907.html", "a01907" ] +]; \ No newline at end of file diff --git a/dir_0f311e9d6354c33ee33a2e1d521faacd_dep.map b/dir_0f311e9d6354c33ee33a2e1d521faacd_dep.map new file mode 100644 index 00000000..dad27863 --- /dev/null +++ b/dir_0f311e9d6354c33ee33a2e1d521faacd_dep.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/dir_0f311e9d6354c33ee33a2e1d521faacd_dep.md5 b/dir_0f311e9d6354c33ee33a2e1d521faacd_dep.md5 new file mode 100644 index 00000000..de35e155 --- /dev/null +++ b/dir_0f311e9d6354c33ee33a2e1d521faacd_dep.md5 @@ -0,0 +1 @@ +9fd63c67dea39747ae9abbe250f8d8ed \ No newline at end of file diff --git a/dir_0f311e9d6354c33ee33a2e1d521faacd_dep.svg b/dir_0f311e9d6354c33ee33a2e1d521faacd_dep.svg new file mode 100644 index 00000000..65953e3d --- /dev/null +++ b/dir_0f311e9d6354c33ee33a2e1d521faacd_dep.svg @@ -0,0 +1,86 @@ + + + + + + +shm + +clusterdir_70d5e250c66d001b18da37689179cade + + +arch + + + + + +dir_0f311e9d6354c33ee33a2e1d521faacd + + +shm + + + + + +dir_313caf1132e152dd9b58bea13a4052ca + + +utils + + + + + +dir_0f311e9d6354c33ee33a2e1d521faacd->dir_313caf1132e152dd9b58bea13a4052ca + + + +3 + + + + + +dir_aebb8dcc11953d78e620bbef0b9e2183 + + +core + + + + + +dir_0f311e9d6354c33ee33a2e1d521faacd->dir_aebb8dcc11953d78e620bbef0b9e2183 + + + +1 + + + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + + +dir_0f311e9d6354c33ee33a2e1d521faacd->dir_d44c64559bbebec7f509842c48db8b23 + + + +2 + + + + + diff --git a/dir_18997a6c0c87b9abd61bc73a2ec4908c.html b/dir_18997a6c0c87b9abd61bc73a2ec4908c.html new file mode 100644 index 00000000..a38e6457 --- /dev/null +++ b/dir_18997a6c0c87b9abd61bc73a2ec4908c.html @@ -0,0 +1,127 @@ + + + + + + + +Arax: dlmalloc Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
dlmalloc Directory Reference
+
+
+
+ + Directory dependency graph for dlmalloc:
+
+
+ + + + + + + + + + + +

+Files

 dlmalloc/alloc.c
 
 malloc.c
 
 malloc.h
 
 test.c
 
+
+
+ + + + diff --git a/dir_18997a6c0c87b9abd61bc73a2ec4908c.js b/dir_18997a6c0c87b9abd61bc73a2ec4908c.js new file mode 100644 index 00000000..fb2b5021 --- /dev/null +++ b/dir_18997a6c0c87b9abd61bc73a2ec4908c.js @@ -0,0 +1,7 @@ +var dir_18997a6c0c87b9abd61bc73a2ec4908c = +[ + [ "dlmalloc/alloc.c", "a02340.html", "a02340" ], + [ "malloc.c", "a01898.html", "a01898" ], + [ "malloc.h", "a01901.html", "a01901" ], + [ "test.c", "a01904.html", "a01904" ] +]; \ No newline at end of file diff --git a/dir_18997a6c0c87b9abd61bc73a2ec4908c_dep.map b/dir_18997a6c0c87b9abd61bc73a2ec4908c_dep.map new file mode 100644 index 00000000..13c5736b --- /dev/null +++ b/dir_18997a6c0c87b9abd61bc73a2ec4908c_dep.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/dir_18997a6c0c87b9abd61bc73a2ec4908c_dep.md5 b/dir_18997a6c0c87b9abd61bc73a2ec4908c_dep.md5 new file mode 100644 index 00000000..de3c6d1e --- /dev/null +++ b/dir_18997a6c0c87b9abd61bc73a2ec4908c_dep.md5 @@ -0,0 +1 @@ +c9def8dd0f8b518e24d4e6c28ea88bb1 \ No newline at end of file diff --git a/dir_18997a6c0c87b9abd61bc73a2ec4908c_dep.svg b/dir_18997a6c0c87b9abd61bc73a2ec4908c_dep.svg new file mode 100644 index 00000000..7b8d281c --- /dev/null +++ b/dir_18997a6c0c87b9abd61bc73a2ec4908c_dep.svg @@ -0,0 +1,48 @@ + + + + + + +dlmalloc + +clusterdir_2e53991d0abfe4d26476f40debcf47e2 + + +alloc + + + + + +dir_18997a6c0c87b9abd61bc73a2ec4908c + + +dlmalloc + + + + + +dir_313caf1132e152dd9b58bea13a4052ca + + +utils + + + + + +dir_18997a6c0c87b9abd61bc73a2ec4908c->dir_313caf1132e152dd9b58bea13a4052ca + + + +1 + + + + + diff --git a/dir_277b185b16885b8bfa09a39abbb00c86.html b/dir_277b185b16885b8bfa09a39abbb00c86.html new file mode 100644 index 00000000..5e90da4c --- /dev/null +++ b/dir_277b185b16885b8bfa09a39abbb00c86.html @@ -0,0 +1,121 @@ + + + + + + + +Arax: tlsf Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
tlsf Directory Reference
+
+
+
+ + Directory dependency graph for tlsf:
+
+
+ + + + + +

+Files

 tlsf/alloc.c
 
+
+
+ + + + diff --git a/dir_277b185b16885b8bfa09a39abbb00c86.js b/dir_277b185b16885b8bfa09a39abbb00c86.js new file mode 100644 index 00000000..d0004f33 --- /dev/null +++ b/dir_277b185b16885b8bfa09a39abbb00c86.js @@ -0,0 +1,4 @@ +var dir_277b185b16885b8bfa09a39abbb00c86 = +[ + [ "tlsf/alloc.c", "a02343.html", "a02343" ] +]; \ No newline at end of file diff --git a/dir_277b185b16885b8bfa09a39abbb00c86_dep.map b/dir_277b185b16885b8bfa09a39abbb00c86_dep.map new file mode 100644 index 00000000..252e1b45 --- /dev/null +++ b/dir_277b185b16885b8bfa09a39abbb00c86_dep.map @@ -0,0 +1,4 @@ + + + + diff --git a/dir_277b185b16885b8bfa09a39abbb00c86_dep.md5 b/dir_277b185b16885b8bfa09a39abbb00c86_dep.md5 new file mode 100644 index 00000000..816a3ec0 --- /dev/null +++ b/dir_277b185b16885b8bfa09a39abbb00c86_dep.md5 @@ -0,0 +1 @@ +6ddcf473b1e0330d9cb9dc12ab603002 \ No newline at end of file diff --git a/dir_277b185b16885b8bfa09a39abbb00c86_dep.svg b/dir_277b185b16885b8bfa09a39abbb00c86_dep.svg new file mode 100644 index 00000000..3a99d1fd --- /dev/null +++ b/dir_277b185b16885b8bfa09a39abbb00c86_dep.svg @@ -0,0 +1,29 @@ + + + + + + +tlsf + +clusterdir_2e53991d0abfe4d26476f40debcf47e2 + + +alloc + + + + + +dir_277b185b16885b8bfa09a39abbb00c86 + + +tlsf + + + + + diff --git a/dir_2e53991d0abfe4d26476f40debcf47e2.html b/dir_2e53991d0abfe4d26476f40debcf47e2.html new file mode 100644 index 00000000..79f9d0a0 --- /dev/null +++ b/dir_2e53991d0abfe4d26476f40debcf47e2.html @@ -0,0 +1,128 @@ + + + + + + + +Arax: alloc Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
alloc Directory Reference
+
+
+
+ + Directory dependency graph for alloc:
+
+
+ + + + + + + +

+Directories

 dlmalloc
 
 tlsf
 
+ + + +

+Files

 alloc.h
 
+
+
+ + + + diff --git a/dir_2e53991d0abfe4d26476f40debcf47e2.js b/dir_2e53991d0abfe4d26476f40debcf47e2.js new file mode 100644 index 00000000..11085681 --- /dev/null +++ b/dir_2e53991d0abfe4d26476f40debcf47e2.js @@ -0,0 +1,6 @@ +var dir_2e53991d0abfe4d26476f40debcf47e2 = +[ + [ "dlmalloc", "dir_18997a6c0c87b9abd61bc73a2ec4908c.html", "dir_18997a6c0c87b9abd61bc73a2ec4908c" ], + [ "tlsf", "dir_277b185b16885b8bfa09a39abbb00c86.html", "dir_277b185b16885b8bfa09a39abbb00c86" ], + [ "alloc.h", "a01364.html", "a01364" ] +]; \ No newline at end of file diff --git a/dir_2e53991d0abfe4d26476f40debcf47e2_dep.map b/dir_2e53991d0abfe4d26476f40debcf47e2_dep.map new file mode 100644 index 00000000..d5ccc9ed --- /dev/null +++ b/dir_2e53991d0abfe4d26476f40debcf47e2_dep.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/dir_2e53991d0abfe4d26476f40debcf47e2_dep.md5 b/dir_2e53991d0abfe4d26476f40debcf47e2_dep.md5 new file mode 100644 index 00000000..f4242985 --- /dev/null +++ b/dir_2e53991d0abfe4d26476f40debcf47e2_dep.md5 @@ -0,0 +1 @@ +b49b007bd489eaafae9db04ed554e93c \ No newline at end of file diff --git a/dir_2e53991d0abfe4d26476f40debcf47e2_dep.svg b/dir_2e53991d0abfe4d26476f40debcf47e2_dep.svg new file mode 100644 index 00000000..df5f45a0 --- /dev/null +++ b/dir_2e53991d0abfe4d26476f40debcf47e2_dep.svg @@ -0,0 +1,98 @@ + + + + + + +alloc + +clusterdir_68267d1309a1af8e8297ef4c3efbcdba + + +src + + + + +clusterdir_2e53991d0abfe4d26476f40debcf47e2 + + + + + + + +dir_313caf1132e152dd9b58bea13a4052ca + + +utils + + + + + +dir_2e53991d0abfe4d26476f40debcf47e2 +alloc + + + +dir_2e53991d0abfe4d26476f40debcf47e2->dir_313caf1132e152dd9b58bea13a4052ca + + + +2 + + + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + + +dir_2e53991d0abfe4d26476f40debcf47e2->dir_d44c64559bbebec7f509842c48db8b23 + + + +2 + + + + + +dir_18997a6c0c87b9abd61bc73a2ec4908c + + +dlmalloc + + + + + +dir_18997a6c0c87b9abd61bc73a2ec4908c->dir_313caf1132e152dd9b58bea13a4052ca + + + +1 + + + + + +dir_277b185b16885b8bfa09a39abbb00c86 + + +tlsf + + + + + diff --git a/dir_313caf1132e152dd9b58bea13a4052ca.html b/dir_313caf1132e152dd9b58bea13a4052ca.html new file mode 100644 index 00000000..2f399f3b --- /dev/null +++ b/dir_313caf1132e152dd9b58bea13a4052ca.html @@ -0,0 +1,157 @@ + + + + + + + +Arax: utils Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
utils Directory Reference
+
+
+
+ + Directory dependency graph for utils:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

 arax_assert.c
 
 arax_assert.h
 
 arax_plot.c
 
 arax_plot.h
 
 bitmap.c
 
 bitmap.h
 
 compat.h
 
 config.c
 
 config.h
 
 Kv.c
 
 Kv.h
 
 list.c
 
 list.h
 
 queue.c
 
 queue.h
 
 spinlock.h
 
 system.c
 
 system.h
 
 timer.h
 
+
+
+ + + + diff --git a/dir_313caf1132e152dd9b58bea13a4052ca.js b/dir_313caf1132e152dd9b58bea13a4052ca.js new file mode 100644 index 00000000..b114deff --- /dev/null +++ b/dir_313caf1132e152dd9b58bea13a4052ca.js @@ -0,0 +1,22 @@ +var dir_313caf1132e152dd9b58bea13a4052ca = +[ + [ "arax_assert.c", "a01946.html", "a01946" ], + [ "arax_assert.h", "a01370.html", "a01370" ], + [ "arax_plot.c", "a01949.html", "a01949" ], + [ "arax_plot.h", "a01373.html", "a01373" ], + [ "bitmap.c", "a01952.html", "a01952" ], + [ "bitmap.h", "a01376.html", "a01376" ], + [ "compat.h", "a01379.html", "a01379" ], + [ "config.c", "a01955.html", "a01955" ], + [ "config.h", "a01382.html", "a01382" ], + [ "Kv.c", "a01943.html", "a01943" ], + [ "Kv.h", "a01367.html", "a01367" ], + [ "list.c", "a01958.html", "a01958" ], + [ "list.h", "a01385.html", "a01385" ], + [ "queue.c", "a01961.html", "a01961" ], + [ "queue.h", "a01388.html", "a01388" ], + [ "spinlock.h", "a01391.html", "a01391" ], + [ "system.c", "a01964.html", "a01964" ], + [ "system.h", "a01394.html", "a01394" ], + [ "timer.h", "a01397.html", "a01397" ] +]; \ No newline at end of file diff --git a/dir_313caf1132e152dd9b58bea13a4052ca_dep.map b/dir_313caf1132e152dd9b58bea13a4052ca_dep.map new file mode 100644 index 00000000..66160546 --- /dev/null +++ b/dir_313caf1132e152dd9b58bea13a4052ca_dep.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/dir_313caf1132e152dd9b58bea13a4052ca_dep.md5 b/dir_313caf1132e152dd9b58bea13a4052ca_dep.md5 new file mode 100644 index 00000000..b8f0f8fc --- /dev/null +++ b/dir_313caf1132e152dd9b58bea13a4052ca_dep.md5 @@ -0,0 +1 @@ +dc3050de405b0741d0c1b62c85eb2d83 \ No newline at end of file diff --git a/dir_313caf1132e152dd9b58bea13a4052ca_dep.svg b/dir_313caf1132e152dd9b58bea13a4052ca_dep.svg new file mode 100644 index 00000000..a4df0fc3 --- /dev/null +++ b/dir_313caf1132e152dd9b58bea13a4052ca_dep.svg @@ -0,0 +1,86 @@ + + + + + + +utils + +clusterdir_68267d1309a1af8e8297ef4c3efbcdba + + +src + + + + + +dir_2e53991d0abfe4d26476f40debcf47e2 + + +alloc + + + + + +dir_aebb8dcc11953d78e620bbef0b9e2183 + + +core + + + + + +dir_313caf1132e152dd9b58bea13a4052ca + + +utils + + + + + +dir_313caf1132e152dd9b58bea13a4052ca->dir_2e53991d0abfe4d26476f40debcf47e2 + + + +1 + + + + + +dir_313caf1132e152dd9b58bea13a4052ca->dir_aebb8dcc11953d78e620bbef0b9e2183 + + + +3 + + + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + + +dir_313caf1132e152dd9b58bea13a4052ca->dir_d44c64559bbebec7f509842c48db8b23 + + + +5 + + + + + diff --git a/dir_62dd6e7b4057fd55668a5ab83622491d.html b/dir_62dd6e7b4057fd55668a5ab83622491d.html new file mode 100644 index 00000000..6473945c --- /dev/null +++ b/dir_62dd6e7b4057fd55668a5ab83622491d.html @@ -0,0 +1,123 @@ + + + + + + + +Arax: ivshmem Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
ivshmem Directory Reference
+
+
+
+ + Directory dependency graph for ivshmem:
+
+
+ + + + + + + +

+Files

 ivshmem/async.c
 
 ivshmem/async.h
 
+
+
+ + + + diff --git a/dir_62dd6e7b4057fd55668a5ab83622491d.js b/dir_62dd6e7b4057fd55668a5ab83622491d.js new file mode 100644 index 00000000..12a9f0fd --- /dev/null +++ b/dir_62dd6e7b4057fd55668a5ab83622491d.js @@ -0,0 +1,5 @@ +var dir_62dd6e7b4057fd55668a5ab83622491d = +[ + [ "ivshmem/async.c", "a02346.html", "a02346" ], + [ "ivshmem/async.h", "a02355.html", "a02355" ] +]; \ No newline at end of file diff --git a/dir_62dd6e7b4057fd55668a5ab83622491d_dep.map b/dir_62dd6e7b4057fd55668a5ab83622491d_dep.map new file mode 100644 index 00000000..734710d7 --- /dev/null +++ b/dir_62dd6e7b4057fd55668a5ab83622491d_dep.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/dir_62dd6e7b4057fd55668a5ab83622491d_dep.md5 b/dir_62dd6e7b4057fd55668a5ab83622491d_dep.md5 new file mode 100644 index 00000000..b2425c10 --- /dev/null +++ b/dir_62dd6e7b4057fd55668a5ab83622491d_dep.md5 @@ -0,0 +1 @@ +47f49332bba168cccb2b6269ab35310e \ No newline at end of file diff --git a/dir_62dd6e7b4057fd55668a5ab83622491d_dep.svg b/dir_62dd6e7b4057fd55668a5ab83622491d_dep.svg new file mode 100644 index 00000000..b4dfa7f4 --- /dev/null +++ b/dir_62dd6e7b4057fd55668a5ab83622491d_dep.svg @@ -0,0 +1,86 @@ + + + + + + +ivshmem + +clusterdir_b60a79ed93f318a37dbc9781b4452c17 + + +async + + + + + +dir_62dd6e7b4057fd55668a5ab83622491d + + +ivshmem + + + + + +dir_313caf1132e152dd9b58bea13a4052ca + + +utils + + + + + +dir_62dd6e7b4057fd55668a5ab83622491d->dir_313caf1132e152dd9b58bea13a4052ca + + + +2 + + + + + +dir_aebb8dcc11953d78e620bbef0b9e2183 + + +core + + + + + +dir_62dd6e7b4057fd55668a5ab83622491d->dir_aebb8dcc11953d78e620bbef0b9e2183 + + + +1 + + + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + + +dir_62dd6e7b4057fd55668a5ab83622491d->dir_d44c64559bbebec7f509842c48db8b23 + + + +1 + + + + + diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 00000000..e5a3e339 --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,129 @@ + + + + + + + +Arax: src Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
src Directory Reference
+
+
+
+ + Directory dependency graph for src:
+
+
+ + + + + + + + + + + + + +

+Directories

 alloc
 
 arch
 
 async
 
 core
 
 utils
 
+
+
+ + + + diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.js b/dir_68267d1309a1af8e8297ef4c3efbcdba.js new file mode 100644 index 00000000..351bfa67 --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.js @@ -0,0 +1,8 @@ +var dir_68267d1309a1af8e8297ef4c3efbcdba = +[ + [ "alloc", "dir_2e53991d0abfe4d26476f40debcf47e2.html", "dir_2e53991d0abfe4d26476f40debcf47e2" ], + [ "arch", "dir_70d5e250c66d001b18da37689179cade.html", "dir_70d5e250c66d001b18da37689179cade" ], + [ "async", "dir_b60a79ed93f318a37dbc9781b4452c17.html", "dir_b60a79ed93f318a37dbc9781b4452c17" ], + [ "core", "dir_aebb8dcc11953d78e620bbef0b9e2183.html", "dir_aebb8dcc11953d78e620bbef0b9e2183" ], + [ "utils", "dir_313caf1132e152dd9b58bea13a4052ca.html", "dir_313caf1132e152dd9b58bea13a4052ca" ] +]; \ No newline at end of file diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map new file mode 100644 index 00000000..dea94a10 --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map @@ -0,0 +1,22 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 new file mode 100644 index 00000000..c7075054 --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 @@ -0,0 +1 @@ +f5117bd557983263765e840ceff147f8 \ No newline at end of file diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.svg b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.svg new file mode 100644 index 00000000..1005e181 --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.svg @@ -0,0 +1,208 @@ + + + + + + +src + +clusterdir_68267d1309a1af8e8297ef4c3efbcdba + + + + + + + +dir_68267d1309a1af8e8297ef4c3efbcdba +src + + + +dir_2e53991d0abfe4d26476f40debcf47e2 + + +alloc + + + + + +dir_313caf1132e152dd9b58bea13a4052ca + + +utils + + + + + +dir_2e53991d0abfe4d26476f40debcf47e2->dir_313caf1132e152dd9b58bea13a4052ca + + + +2 + + + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + + +dir_2e53991d0abfe4d26476f40debcf47e2->dir_d44c64559bbebec7f509842c48db8b23 + + + +2 + + + + + +dir_70d5e250c66d001b18da37689179cade + + +arch + + + + + +dir_aebb8dcc11953d78e620bbef0b9e2183 + + +core + + + + + +dir_70d5e250c66d001b18da37689179cade->dir_aebb8dcc11953d78e620bbef0b9e2183 + + + +1 + + + + + +dir_70d5e250c66d001b18da37689179cade->dir_313caf1132e152dd9b58bea13a4052ca + + + +3 + + + + + +dir_70d5e250c66d001b18da37689179cade->dir_d44c64559bbebec7f509842c48db8b23 + + + +2 + + + + + +dir_b60a79ed93f318a37dbc9781b4452c17 + + +async + + + + + +dir_b60a79ed93f318a37dbc9781b4452c17->dir_aebb8dcc11953d78e620bbef0b9e2183 + + + +3 + + + + + +dir_b60a79ed93f318a37dbc9781b4452c17->dir_313caf1132e152dd9b58bea13a4052ca + + + +2 + + + + + +dir_b60a79ed93f318a37dbc9781b4452c17->dir_d44c64559bbebec7f509842c48db8b23 + + + +1 + + + + + +dir_aebb8dcc11953d78e620bbef0b9e2183->dir_313caf1132e152dd9b58bea13a4052ca + + + +7 + + + + + +dir_aebb8dcc11953d78e620bbef0b9e2183->dir_d44c64559bbebec7f509842c48db8b23 + + + +14 + + + + + +dir_313caf1132e152dd9b58bea13a4052ca->dir_2e53991d0abfe4d26476f40debcf47e2 + + + +1 + + + + + +dir_313caf1132e152dd9b58bea13a4052ca->dir_aebb8dcc11953d78e620bbef0b9e2183 + + + +3 + + + + + +dir_313caf1132e152dd9b58bea13a4052ca->dir_d44c64559bbebec7f509842c48db8b23 + + + +5 + + + + + diff --git a/dir_70d5e250c66d001b18da37689179cade.html b/dir_70d5e250c66d001b18da37689179cade.html new file mode 100644 index 00000000..9e0c83e7 --- /dev/null +++ b/dir_70d5e250c66d001b18da37689179cade.html @@ -0,0 +1,121 @@ + + + + + + + +Arax: arch Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
arch Directory Reference
+
+
+
+ + Directory dependency graph for arch:
+
+
+ + + + + +

+Directories

 shm
 
+
+
+ + + + diff --git a/dir_70d5e250c66d001b18da37689179cade.js b/dir_70d5e250c66d001b18da37689179cade.js new file mode 100644 index 00000000..df3aca01 --- /dev/null +++ b/dir_70d5e250c66d001b18da37689179cade.js @@ -0,0 +1,4 @@ +var dir_70d5e250c66d001b18da37689179cade = +[ + [ "shm", "dir_0f311e9d6354c33ee33a2e1d521faacd.html", "dir_0f311e9d6354c33ee33a2e1d521faacd" ] +]; \ No newline at end of file diff --git a/dir_70d5e250c66d001b18da37689179cade_dep.map b/dir_70d5e250c66d001b18da37689179cade_dep.map new file mode 100644 index 00000000..f5ba2edb --- /dev/null +++ b/dir_70d5e250c66d001b18da37689179cade_dep.map @@ -0,0 +1,11 @@ + + + + + + + + + + + diff --git a/dir_70d5e250c66d001b18da37689179cade_dep.md5 b/dir_70d5e250c66d001b18da37689179cade_dep.md5 new file mode 100644 index 00000000..36ad9271 --- /dev/null +++ b/dir_70d5e250c66d001b18da37689179cade_dep.md5 @@ -0,0 +1 @@ +a3db8ef554be345724431f99ea5b78ea \ No newline at end of file diff --git a/dir_70d5e250c66d001b18da37689179cade_dep.svg b/dir_70d5e250c66d001b18da37689179cade_dep.svg new file mode 100644 index 00000000..688e9880 --- /dev/null +++ b/dir_70d5e250c66d001b18da37689179cade_dep.svg @@ -0,0 +1,98 @@ + + + + + + +arch + +clusterdir_68267d1309a1af8e8297ef4c3efbcdba + + +src + + + + +clusterdir_70d5e250c66d001b18da37689179cade + + + + + + + +dir_aebb8dcc11953d78e620bbef0b9e2183 + + +core + + + + + +dir_313caf1132e152dd9b58bea13a4052ca + + +utils + + + + + +dir_70d5e250c66d001b18da37689179cade +arch + + + +dir_0f311e9d6354c33ee33a2e1d521faacd + + +shm + + + + + +dir_0f311e9d6354c33ee33a2e1d521faacd->dir_aebb8dcc11953d78e620bbef0b9e2183 + + + +1 + + + + + +dir_0f311e9d6354c33ee33a2e1d521faacd->dir_313caf1132e152dd9b58bea13a4052ca + + + +3 + + + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + + +dir_0f311e9d6354c33ee33a2e1d521faacd->dir_d44c64559bbebec7f509842c48db8b23 + + + +2 + + + + + diff --git a/dir_8d1c3ce1cd911fc2390a767bff7252f7.html b/dir_8d1c3ce1cd911fc2390a767bff7252f7.html new file mode 100644 index 00000000..a91ed8b6 --- /dev/null +++ b/dir_8d1c3ce1cd911fc2390a767bff7252f7.html @@ -0,0 +1,123 @@ + + + + + + + +Arax: mutex Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
mutex Directory Reference
+
+
+
+ + Directory dependency graph for mutex:
+
+
+ + + + + + + +

+Files

 mutex/async.c
 
 mutex/async.h
 
+
+
+ + + + diff --git a/dir_8d1c3ce1cd911fc2390a767bff7252f7.js b/dir_8d1c3ce1cd911fc2390a767bff7252f7.js new file mode 100644 index 00000000..3912788d --- /dev/null +++ b/dir_8d1c3ce1cd911fc2390a767bff7252f7.js @@ -0,0 +1,5 @@ +var dir_8d1c3ce1cd911fc2390a767bff7252f7 = +[ + [ "mutex/async.c", "a02349.html", "a02349" ], + [ "mutex/async.h", "a02358.html", "a02358" ] +]; \ No newline at end of file diff --git a/dir_8d1c3ce1cd911fc2390a767bff7252f7_dep.map b/dir_8d1c3ce1cd911fc2390a767bff7252f7_dep.map new file mode 100644 index 00000000..4d2e6bad --- /dev/null +++ b/dir_8d1c3ce1cd911fc2390a767bff7252f7_dep.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/dir_8d1c3ce1cd911fc2390a767bff7252f7_dep.md5 b/dir_8d1c3ce1cd911fc2390a767bff7252f7_dep.md5 new file mode 100644 index 00000000..e936d25c --- /dev/null +++ b/dir_8d1c3ce1cd911fc2390a767bff7252f7_dep.md5 @@ -0,0 +1 @@ +756137d8b07d753bda6f6b643659c67c \ No newline at end of file diff --git a/dir_8d1c3ce1cd911fc2390a767bff7252f7_dep.svg b/dir_8d1c3ce1cd911fc2390a767bff7252f7_dep.svg new file mode 100644 index 00000000..070af99f --- /dev/null +++ b/dir_8d1c3ce1cd911fc2390a767bff7252f7_dep.svg @@ -0,0 +1,48 @@ + + + + + + +mutex + +clusterdir_b60a79ed93f318a37dbc9781b4452c17 + + +async + + + + + +dir_8d1c3ce1cd911fc2390a767bff7252f7 + + +mutex + + + + + +dir_aebb8dcc11953d78e620bbef0b9e2183 + + +core + + + + + +dir_8d1c3ce1cd911fc2390a767bff7252f7->dir_aebb8dcc11953d78e620bbef0b9e2183 + + + +1 + + + + + diff --git a/dir_9572de8811e490ed7cfd146fb7e7620e.html b/dir_9572de8811e490ed7cfd146fb7e7620e.html new file mode 100644 index 00000000..6387dd6f --- /dev/null +++ b/dir_9572de8811e490ed7cfd146fb7e7620e.html @@ -0,0 +1,123 @@ + + + + + + + +Arax: spin Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
spin Directory Reference
+
+
+
+ + Directory dependency graph for spin:
+
+
+ + + + + + + +

+Files

 spin/async.c
 
 spin/async.h
 
+
+
+ + + + diff --git a/dir_9572de8811e490ed7cfd146fb7e7620e.js b/dir_9572de8811e490ed7cfd146fb7e7620e.js new file mode 100644 index 00000000..dd84a76a --- /dev/null +++ b/dir_9572de8811e490ed7cfd146fb7e7620e.js @@ -0,0 +1,5 @@ +var dir_9572de8811e490ed7cfd146fb7e7620e = +[ + [ "spin/async.c", "a02352.html", "a02352" ], + [ "spin/async.h", "a02361.html", "a02361" ] +]; \ No newline at end of file diff --git a/dir_9572de8811e490ed7cfd146fb7e7620e_dep.map b/dir_9572de8811e490ed7cfd146fb7e7620e_dep.map new file mode 100644 index 00000000..ac37d9dc --- /dev/null +++ b/dir_9572de8811e490ed7cfd146fb7e7620e_dep.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/dir_9572de8811e490ed7cfd146fb7e7620e_dep.md5 b/dir_9572de8811e490ed7cfd146fb7e7620e_dep.md5 new file mode 100644 index 00000000..f1479eec --- /dev/null +++ b/dir_9572de8811e490ed7cfd146fb7e7620e_dep.md5 @@ -0,0 +1 @@ +821ca1a17fe5f52fca1b8e7ef0c59526 \ No newline at end of file diff --git a/dir_9572de8811e490ed7cfd146fb7e7620e_dep.svg b/dir_9572de8811e490ed7cfd146fb7e7620e_dep.svg new file mode 100644 index 00000000..ebc639f2 --- /dev/null +++ b/dir_9572de8811e490ed7cfd146fb7e7620e_dep.svg @@ -0,0 +1,48 @@ + + + + + + +spin + +clusterdir_b60a79ed93f318a37dbc9781b4452c17 + + +async + + + + + +dir_9572de8811e490ed7cfd146fb7e7620e + + +spin + + + + + +dir_aebb8dcc11953d78e620bbef0b9e2183 + + +core + + + + + +dir_9572de8811e490ed7cfd146fb7e7620e->dir_aebb8dcc11953d78e620bbef0b9e2183 + + + +1 + + + + + diff --git a/dir_aebb8dcc11953d78e620bbef0b9e2183.html b/dir_aebb8dcc11953d78e620bbef0b9e2183.html new file mode 100644 index 00000000..6a1a0e24 --- /dev/null +++ b/dir_aebb8dcc11953d78e620bbef0b9e2183.html @@ -0,0 +1,159 @@ + + + + + + + +Arax: core Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
core Directory Reference
+
+
+
+ + Directory dependency graph for core:
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Files

 arax_accel.c
 
 arax_accel.h
 
 arax_accel_types.c
 
 arax_accel_types.h
 
 arax_data.c
 
 arax_data.h
 
 arax_data_private.h
 
 arax_object.c
 
 arax_object.h
 
 arax_pipe.c
 
 arax_proc.c
 
 arax_proc.h
 
 arax_ptr.c
 
 arax_ptr.h
 
 arax_task.c
 
 arax_task.h
 
 arax_throttle.c
 
 arax_throttle.h
 
 arax_vaccel.c
 
 arax_vaccel.h
 
+
+
+ + + + diff --git a/dir_aebb8dcc11953d78e620bbef0b9e2183.js b/dir_aebb8dcc11953d78e620bbef0b9e2183.js new file mode 100644 index 00000000..007c59b6 --- /dev/null +++ b/dir_aebb8dcc11953d78e620bbef0b9e2183.js @@ -0,0 +1,23 @@ +var dir_aebb8dcc11953d78e620bbef0b9e2183 = +[ + [ "arax_accel.c", "a01913.html", "a01913" ], + [ "arax_accel.h", "a01400.html", "a01400" ], + [ "arax_accel_types.c", "a01916.html", "a01916" ], + [ "arax_accel_types.h", "a01403.html", "a01403" ], + [ "arax_data.c", "a01919.html", "a01919" ], + [ "arax_data.h", "a01406.html", "a01406" ], + [ "arax_data_private.h", "a01409.html", "a01409" ], + [ "arax_object.c", "a01922.html", "a01922" ], + [ "arax_object.h", "a01412.html", "a01412" ], + [ "arax_pipe.c", "a01925.html", "a01925" ], + [ "arax_proc.c", "a01928.html", "a01928" ], + [ "arax_proc.h", "a01415.html", "a01415" ], + [ "arax_ptr.c", "a01931.html", "a01931" ], + [ "arax_ptr.h", "a01418.html", "a01418" ], + [ "arax_task.c", "a01934.html", "a01934" ], + [ "arax_task.h", "a01421.html", "a01421" ], + [ "arax_throttle.c", "a01937.html", "a01937" ], + [ "arax_throttle.h", "a01424.html", "a01424" ], + [ "arax_vaccel.c", "a01940.html", "a01940" ], + [ "arax_vaccel.h", "a01427.html", "a01427" ] +]; \ No newline at end of file diff --git a/dir_aebb8dcc11953d78e620bbef0b9e2183_dep.map b/dir_aebb8dcc11953d78e620bbef0b9e2183_dep.map new file mode 100644 index 00000000..67f3944e --- /dev/null +++ b/dir_aebb8dcc11953d78e620bbef0b9e2183_dep.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/dir_aebb8dcc11953d78e620bbef0b9e2183_dep.md5 b/dir_aebb8dcc11953d78e620bbef0b9e2183_dep.md5 new file mode 100644 index 00000000..97e6030b --- /dev/null +++ b/dir_aebb8dcc11953d78e620bbef0b9e2183_dep.md5 @@ -0,0 +1 @@ +bf25774a9d062dea40911cb86dc1c298 \ No newline at end of file diff --git a/dir_aebb8dcc11953d78e620bbef0b9e2183_dep.svg b/dir_aebb8dcc11953d78e620bbef0b9e2183_dep.svg new file mode 100644 index 00000000..ffcbc1a0 --- /dev/null +++ b/dir_aebb8dcc11953d78e620bbef0b9e2183_dep.svg @@ -0,0 +1,67 @@ + + + + + + +core + +clusterdir_68267d1309a1af8e8297ef4c3efbcdba + + +src + + + + + +dir_313caf1132e152dd9b58bea13a4052ca + + +utils + + + + + +dir_aebb8dcc11953d78e620bbef0b9e2183 + + +core + + + + + +dir_aebb8dcc11953d78e620bbef0b9e2183->dir_313caf1132e152dd9b58bea13a4052ca + + + +7 + + + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + + +dir_aebb8dcc11953d78e620bbef0b9e2183->dir_d44c64559bbebec7f509842c48db8b23 + + + +14 + + + + + diff --git a/dir_b60a79ed93f318a37dbc9781b4452c17.html b/dir_b60a79ed93f318a37dbc9781b4452c17.html new file mode 100644 index 00000000..f4a9db9e --- /dev/null +++ b/dir_b60a79ed93f318a37dbc9781b4452c17.html @@ -0,0 +1,130 @@ + + + + + + + +Arax: async Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
async Directory Reference
+
+
+
+ + Directory dependency graph for async:
+
+
+ + + + + + + + + +

+Directories

 ivshmem
 
 mutex
 
 spin
 
+ + + +

+Files

 async_api.h
 
+
+
+ + + + diff --git a/dir_b60a79ed93f318a37dbc9781b4452c17.js b/dir_b60a79ed93f318a37dbc9781b4452c17.js new file mode 100644 index 00000000..c3877443 --- /dev/null +++ b/dir_b60a79ed93f318a37dbc9781b4452c17.js @@ -0,0 +1,7 @@ +var dir_b60a79ed93f318a37dbc9781b4452c17 = +[ + [ "ivshmem", "dir_62dd6e7b4057fd55668a5ab83622491d.html", "dir_62dd6e7b4057fd55668a5ab83622491d" ], + [ "mutex", "dir_8d1c3ce1cd911fc2390a767bff7252f7.html", "dir_8d1c3ce1cd911fc2390a767bff7252f7" ], + [ "spin", "dir_9572de8811e490ed7cfd146fb7e7620e.html", "dir_9572de8811e490ed7cfd146fb7e7620e" ], + [ "async_api.h", "a01433.html", "a01433" ] +]; \ No newline at end of file diff --git a/dir_b60a79ed93f318a37dbc9781b4452c17_dep.map b/dir_b60a79ed93f318a37dbc9781b4452c17_dep.map new file mode 100644 index 00000000..0be480d9 --- /dev/null +++ b/dir_b60a79ed93f318a37dbc9781b4452c17_dep.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/dir_b60a79ed93f318a37dbc9781b4452c17_dep.md5 b/dir_b60a79ed93f318a37dbc9781b4452c17_dep.md5 new file mode 100644 index 00000000..91206728 --- /dev/null +++ b/dir_b60a79ed93f318a37dbc9781b4452c17_dep.md5 @@ -0,0 +1 @@ +42a72b457ec9198f67794b1843887856 \ No newline at end of file diff --git a/dir_b60a79ed93f318a37dbc9781b4452c17_dep.svg b/dir_b60a79ed93f318a37dbc9781b4452c17_dep.svg new file mode 100644 index 00000000..bda66874 --- /dev/null +++ b/dir_b60a79ed93f318a37dbc9781b4452c17_dep.svg @@ -0,0 +1,136 @@ + + + + + + +async + +clusterdir_68267d1309a1af8e8297ef4c3efbcdba + + +src + + + + +clusterdir_b60a79ed93f318a37dbc9781b4452c17 + + + + + + + +dir_313caf1132e152dd9b58bea13a4052ca + + +utils + + + + + +dir_aebb8dcc11953d78e620bbef0b9e2183 + + +core + + + + + +dir_b60a79ed93f318a37dbc9781b4452c17 +async + + + +dir_62dd6e7b4057fd55668a5ab83622491d + + +ivshmem + + + + + +dir_62dd6e7b4057fd55668a5ab83622491d->dir_313caf1132e152dd9b58bea13a4052ca + + + +2 + + + + + +dir_62dd6e7b4057fd55668a5ab83622491d->dir_aebb8dcc11953d78e620bbef0b9e2183 + + + +1 + + + + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + + +dir_62dd6e7b4057fd55668a5ab83622491d->dir_d44c64559bbebec7f509842c48db8b23 + + + +1 + + + + + +dir_8d1c3ce1cd911fc2390a767bff7252f7 + + +mutex + + + + + +dir_8d1c3ce1cd911fc2390a767bff7252f7->dir_aebb8dcc11953d78e620bbef0b9e2183 + + + +1 + + + + + +dir_9572de8811e490ed7cfd146fb7e7620e + + +spin + + + + + +dir_9572de8811e490ed7cfd146fb7e7620e->dir_aebb8dcc11953d78e620bbef0b9e2183 + + + +1 + + + + + diff --git a/dir_d44c64559bbebec7f509842c48db8b23.html b/dir_d44c64559bbebec7f509842c48db8b23.html new file mode 100644 index 00000000..1296accb --- /dev/null +++ b/dir_d44c64559bbebec7f509842c48db8b23.html @@ -0,0 +1,127 @@ + + + + + + + +Arax: include Directory Reference + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
include Directory Reference
+
+
+
+ + Directory dependency graph for include:
+
+
+ + + + + + + + + + + +

+Files

 arax.h
 
 arax_pipe.h
 
 arax_types.h
 
 conf.h
 
+
+
+ + + + diff --git a/dir_d44c64559bbebec7f509842c48db8b23.js b/dir_d44c64559bbebec7f509842c48db8b23.js new file mode 100644 index 00000000..31ff33b3 --- /dev/null +++ b/dir_d44c64559bbebec7f509842c48db8b23.js @@ -0,0 +1,7 @@ +var dir_d44c64559bbebec7f509842c48db8b23 = +[ + [ "arax.h", "a01355.html", "a01355" ], + [ "arax_pipe.h", "a01358.html", "a01358" ], + [ "arax_types.h", "a01361.html", "a01361" ], + [ "conf.h", "a01436.html", null ] +]; \ No newline at end of file diff --git a/dir_d44c64559bbebec7f509842c48db8b23_dep.map b/dir_d44c64559bbebec7f509842c48db8b23_dep.map new file mode 100644 index 00000000..73a3d0eb --- /dev/null +++ b/dir_d44c64559bbebec7f509842c48db8b23_dep.map @@ -0,0 +1,5 @@ + + + + + diff --git a/dir_d44c64559bbebec7f509842c48db8b23_dep.md5 b/dir_d44c64559bbebec7f509842c48db8b23_dep.md5 new file mode 100644 index 00000000..ec415aec --- /dev/null +++ b/dir_d44c64559bbebec7f509842c48db8b23_dep.md5 @@ -0,0 +1 @@ +c813a82adc019920c7fc0cb0ce31c2f5 \ No newline at end of file diff --git a/dir_d44c64559bbebec7f509842c48db8b23_dep.svg b/dir_d44c64559bbebec7f509842c48db8b23_dep.svg new file mode 100644 index 00000000..3422b340 --- /dev/null +++ b/dir_d44c64559bbebec7f509842c48db8b23_dep.svg @@ -0,0 +1,40 @@ + + + + + + +include + + +dir_d44c64559bbebec7f509842c48db8b23 + + +include + + + + + +dir_68267d1309a1af8e8297ef4c3efbcdba + + +src + + + + + +dir_d44c64559bbebec7f509842c48db8b23->dir_68267d1309a1af8e8297ef4c3efbcdba + + + +5 + + + + + diff --git a/doc.svg b/doc.svg new file mode 100644 index 00000000..a0005eff --- /dev/null +++ b/doc.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/docd.svg b/docd.svg new file mode 100644 index 00000000..b2163e36 --- /dev/null +++ b/docd.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/docs.png b/docs.png new file mode 100644 index 0000000000000000000000000000000000000000..45af6fb1dcdd5a25afe1f0b0a1710f6eeee3ff08 GIT binary patch literal 1837 zcmV+|2h#Y7P)!>NF=36Lz*?&M61+|l1&x&Wnv-?ZX0x$0Teey1!Cfsh^(># z3L-kZhM8ag0A?A6SF*RzV85B)LRff3Q1*Jx zTvJdCX1#{(%cD5@Rt$1fR8*1I>;2talbUS^A?BKbVrYLcz^U3+gb>I=i0rv0G#8jp z4jsj34eiLUQkor$*>>pK*9kDt-eFDb@n z#u2(U#GFOoK+u!qO zxdS8>2!RlS&S%}U^$C{rHq$P}D#8UoB}O)wt|ccY)6mes`t|Gmyn6F$ko9>*iHykUVZh`OGLnBO)S*jg2KYHG>2z}O;za<~ zty{;gUAxd|G}PACa{l~z7B5~*c6K&atCiN)R!T}r=Bsk# z*I)zaA52n-89o zMlv%qiH?rO>2&h&;X`yf-Ly6-85K+up`%V4GyMBL%0}q44vmS4VbP*R95`?QNs@e# zxM0BoTrL*?85tRPy!e+BkSy{=_rAv|J?~89qlJI)HzWcEx z4OfKG(a{JYsHmu*uC9*M)Kv2F@~Ew?<lpM zWo40>nMqbw7WePpXYJaxJ|bqb8ME1p$z&odEX?QlQSuX}sWJVOloaCP;<$0+2KDvz zq@|@H%Q6~`hV=Aw?%cV<-Me>5OiUy+G!(U3&Edm`vD@tw6%}E(+qr!CG8ZmfAU-~R zmQ(ID>3D*ai%$n)l56x|Nx70Fk)EDTK|ujgQBgj5Sy>qyH*Tb&q9VXK<1v};$dMxq z4Gp1It9kI?0S6BrM3N+K-MWR%X5-kgV*p&aa)sNsZzIbx$B!SUu&@xVR*Tc=q^72Z zuC6Zf^76>Z$)TmCh0~``&*;P}8lh99O(6sl67R0Gu z<+w-=hhxgsIyyQC4-Y3OD99)4?d_$%zn_SR2-@1(uv)E?&W((WM6Fi)$vZnc@pwGG z-?A)YG#Y*5UcP)uUtb>pI-L%^UJpQDUmq@)3n2u-!NC{|1_lNO=;`V4t)tiL{kTpB zrQWvG{b~gp{#-_n@kar=fBrm736N{GTC`fN zpIoES_+^iY_M2+2ABv{dcHYlU=ZWwy#8i^R8#XIK{F{Y3xYOUqPk#9xLK-d>B_Lr* zDBpFxK!nd?Q8Ztnl-<9+@GsucwSZPXP9xD|*i6GOV)^*9&$<6>AYkr4PJP37rneML z|I*g2TOR`x=gfHwC0}q$!h_o54v>d;eS`kRBf7)mcwtx)p!dkZ2$Xw{yU?gb20j)- z{Qm{_4_ONpUUhJQyu-AT4%5o1CXRk7g3MJ5k=<_hdn3= 768px. On smaller screen the menu is always visible. + * `GENERATE_TREEVIEW` MUST be enabled! + */ + --menu-display: block; + + --menu-focus-foreground: var(--page-background-color); + --menu-focus-background: var(--primary-color); + --menu-selected-background: rgba(0,0,0,.05); + + + --header-background: var(--page-background-color); + --header-foreground: var(--page-foreground-color); + + /* searchbar colors */ + --searchbar-background: var(--side-nav-background); + --searchbar-foreground: var(--page-foreground-color); + + /* searchbar size + * (`searchbar-width` is only applied on screens >= 768px. + * on smaller screens the searchbar will always fill the entire screen width) */ + --searchbar-height: 33px; + --searchbar-width: 210px; + --searchbar-border-radius: var(--searchbar-height); + + /* code block colors */ + --code-background: #f5f5f5; + --code-foreground: var(--page-foreground-color); + + /* fragment colors */ + --fragment-background: #F8F9FA; + --fragment-foreground: #37474F; + --fragment-keyword: #bb6bb2; + --fragment-keywordtype: #8258b3; + --fragment-keywordflow: #d67c3b; + --fragment-token: #438a59; + --fragment-comment: #969696; + --fragment-link: #5383d6; + --fragment-preprocessor: #46aaa5; + --fragment-linenumber-color: #797979; + --fragment-linenumber-background: #f4f4f5; + --fragment-linenumber-border: #e3e5e7; + --fragment-lineheight: 20px; + + /* sidebar navigation (treeview) colors */ + --side-nav-background: #fbfbfb; + --side-nav-foreground: var(--page-foreground-color); + --side-nav-arrow-opacity: 0; + --side-nav-arrow-hover-opacity: 0.9; + + --toc-background: var(--side-nav-background); + --toc-foreground: var(--side-nav-foreground); + + /* height of an item in any tree / collapsible table */ + --tree-item-height: 30px; + + --memname-font-size: var(--code-font-size); + --memtitle-font-size: 18px; + + --webkit-scrollbar-size: 7px; + --webkit-scrollbar-padding: 4px; + --webkit-scrollbar-color: var(--separator-color); + + --animation-duration: .12s +} + +@media screen and (max-width: 767px) { + html { + --page-font-size: 16px; + --navigation-font-size: 16px; + --toc-font-size: 15px; + --code-font-size: 15px; /* affects code, fragment */ + --title-font-size: 22px; + } +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) { + color-scheme: dark; + + --primary-color: #1982d2; + --primary-dark-color: #86a9c4; + --primary-light-color: #4779ac; + + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.35); + + --odd-color: rgba(100,100,100,.06); + + --menu-selected-background: rgba(0,0,0,.4); + + --page-background-color: #1C1D1F; + --page-foreground-color: #d2dbde; + --page-secondary-foreground-color: #859399; + --separator-color: #38393b; + --side-nav-background: #252628; + + --code-background: #2a2c2f; + + --tablehead-background: #2a2c2f; + + --blockquote-background: #222325; + --blockquote-foreground: #7e8c92; + + --warning-color: #3b2e04; + --warning-color-dark: #f1b602; + --warning-color-darker: #ceb670; + --note-color: #163750; + --note-color-dark: #1982D2; + --note-color-darker: #dcf0fa; + --todo-color: #2a2536; + --todo-color-dark: #7661b3; + --todo-color-darker: #ae9ed6; + --deprecated-color: #2e323b; + --deprecated-color-dark: #738396; + --deprecated-color-darker: #abb0bd; + --bug-color: #2e1917; + --bug-color-dark: #ad2617; + --bug-color-darker: #f5b1aa; + --invariant-color: #303a35; + --invariant-color-dark: #76ce96; + --invariant-color-darker: #cceed5; + + --fragment-background: #282c34; + --fragment-foreground: #dbe4eb; + --fragment-keyword: #cc99cd; + --fragment-keywordtype: #ab99cd; + --fragment-keywordflow: #e08000; + --fragment-token: #7ec699; + --fragment-comment: #999999; + --fragment-link: #98c0e3; + --fragment-preprocessor: #65cabe; + --fragment-linenumber-color: #cccccc; + --fragment-linenumber-background: #35393c; + --fragment-linenumber-border: #1f1f1f; + } +} + +/* dark mode variables are defined twice, to support both the dark-mode without and with doxygen-awesome-darkmode-toggle.js */ +html.dark-mode { + color-scheme: dark; + + --primary-color: #1982d2; + --primary-dark-color: #86a9c4; + --primary-light-color: #4779ac; + + --box-shadow: 0 2px 8px 0 rgba(0,0,0,.30); + + --odd-color: rgba(100,100,100,.06); + + --menu-selected-background: rgba(0,0,0,.4); + + --page-background-color: #1C1D1F; + --page-foreground-color: #d2dbde; + --page-secondary-foreground-color: #859399; + --separator-color: #38393b; + --side-nav-background: #252628; + + --code-background: #2a2c2f; + + --tablehead-background: #2a2c2f; + + --blockquote-background: #222325; + --blockquote-foreground: #7e8c92; + + --warning-color: #3b2e04; + --warning-color-dark: #f1b602; + --warning-color-darker: #ceb670; + --note-color: #163750; + --note-color-dark: #1982D2; + --note-color-darker: #dcf0fa; + --todo-color: #2a2536; + --todo-color-dark: #7661b3; + --todo-color-darker: #ae9ed6; + --deprecated-color: #2e323b; + --deprecated-color-dark: #738396; + --deprecated-color-darker: #abb0bd; + --bug-color: #2e1917; + --bug-color-dark: #ad2617; + --bug-color-darker: #f5b1aa; + --invariant-color: #303a35; + --invariant-color-dark: #76ce96; + --invariant-color-darker: #cceed5; + + --fragment-background: #282c34; + --fragment-foreground: #dbe4eb; + --fragment-keyword: #cc99cd; + --fragment-keywordtype: #ab99cd; + --fragment-keywordflow: #e08000; + --fragment-token: #7ec699; + --fragment-comment: #999999; + --fragment-link: #98c0e3; + --fragment-preprocessor: #65cabe; + --fragment-linenumber-color: #cccccc; + --fragment-linenumber-background: #35393c; + --fragment-linenumber-border: #1f1f1f; +} + +body { + color: var(--page-foreground-color); + background-color: var(--page-background-color); + font-size: var(--page-font-size); +} + +body, table, div, p, dl, #nav-tree .label, .title, +.sm-dox a, .sm-dox a:hover, .sm-dox a:focus, #projectname, +.SelectItem, #MSearchField, .navpath li.navelem a, +.navpath li.navelem a:hover, p.reference, p.definition { + font-family: var(--font-family); +} + +h1, h2, h3, h4, h5 { + margin-top: 1em; + font-weight: 600; + line-height: initial; +} + +p, div, table, dl, p.reference, p.definition { + font-size: var(--page-font-size); +} + +p.reference, p.definition { + color: var(--page-secondary-foreground-color); +} + +a:link, a:visited, a:hover, a:focus, a:active { + color: var(--primary-color) !important; + font-weight: 500; +} + +a.anchor { + scroll-margin-top: var(--spacing-large); + display: block; +} + +/* + Title and top navigation + */ + +#top { + background: var(--header-background); + border-bottom: 1px solid var(--separator-color); +} + +@media screen and (min-width: 768px) { + #top { + display: flex; + flex-wrap: wrap; + justify-content: space-between; + align-items: center; + } +} + +#main-nav { + flex-grow: 5; + padding: var(--spacing-small) var(--spacing-medium); +} + +#titlearea { + width: auto; + padding: var(--spacing-medium) var(--spacing-large); + background: none; + color: var(--header-foreground); + border-bottom: none; +} + +@media screen and (max-width: 767px) { + #titlearea { + padding-bottom: var(--spacing-small); + } +} + +#titlearea table tbody tr { + height: auto !important; +} + +#projectname { + font-size: var(--title-font-size); + font-weight: 600; +} + +#projectnumber { + font-family: inherit; + font-size: 60%; +} + +#projectbrief { + font-family: inherit; + font-size: 80%; +} + +#projectlogo { + vertical-align: middle; +} + +#projectlogo img { + max-height: calc(var(--title-font-size) * 2); + margin-right: var(--spacing-small); +} + +.sm-dox, .tabs, .tabs2, .tabs3 { + background: none; + padding: 0; +} + +.tabs, .tabs2, .tabs3 { + border-bottom: 1px solid var(--separator-color); + margin-bottom: -1px; +} + +.main-menu-btn-icon, .main-menu-btn-icon:before, .main-menu-btn-icon:after { + background: var(--page-secondary-foreground-color); +} + +@media screen and (max-width: 767px) { + .sm-dox a span.sub-arrow { + background: var(--code-background); + } + + #main-menu a.has-submenu span.sub-arrow { + color: var(--page-secondary-foreground-color); + border-radius: var(--border-radius-medium); + } + + #main-menu a.has-submenu:hover span.sub-arrow { + color: var(--page-foreground-color); + } +} + +@media screen and (min-width: 768px) { + .sm-dox li, .tablist li { + display: var(--menu-display); + } + + .sm-dox a span.sub-arrow { + border-color: var(--header-foreground) transparent transparent transparent; + } + + .sm-dox a:hover span.sub-arrow { + border-color: var(--menu-focus-foreground) transparent transparent transparent; + } + + .sm-dox ul a span.sub-arrow { + border-color: transparent transparent transparent var(--page-foreground-color); + } + + .sm-dox ul a:hover span.sub-arrow { + border-color: transparent transparent transparent var(--menu-focus-foreground); + } +} + +.sm-dox ul { + background: var(--page-background-color); + box-shadow: var(--box-shadow); + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium) !important; + padding: var(--spacing-small); + animation: ease-out 150ms slideInMenu; +} + +@keyframes slideInMenu { + from { + opacity: 0; + transform: translate(0px, -2px); + } + + to { + opacity: 1; + transform: translate(0px, 0px); + } +} + +.sm-dox ul a { + color: var(--page-foreground-color) !important; + background: var(--page-background-color); + font-size: var(--navigation-font-size); +} + +.sm-dox>li>ul:after { + border-bottom-color: var(--page-background-color) !important; +} + +.sm-dox>li>ul:before { + border-bottom-color: var(--separator-color) !important; +} + +.sm-dox ul a:hover, .sm-dox ul a:active, .sm-dox ul a:focus { + font-size: var(--navigation-font-size) !important; + color: var(--menu-focus-foreground) !important; + text-shadow: none; + background-color: var(--menu-focus-background); + border-radius: var(--border-radius-small) !important; +} + +.sm-dox a, .sm-dox a:focus, .tablist li, .tablist li a, .tablist li.current a { + text-shadow: none; + background: transparent; + background-image: none !important; + color: var(--header-foreground) !important; + font-weight: normal; + font-size: var(--navigation-font-size); + border-radius: var(--border-radius-small) !important; +} + +.sm-dox a:focus { + outline: auto; +} + +.sm-dox a:hover, .sm-dox a:active, .tablist li a:hover { + text-shadow: none; + font-weight: normal; + background: var(--menu-focus-background); + color: var(--menu-focus-foreground) !important; + border-radius: var(--border-radius-small) !important; + font-size: var(--navigation-font-size); +} + +.tablist li.current { + border-radius: var(--border-radius-small); + background: var(--menu-selected-background); +} + +.tablist li { + margin: var(--spacing-small) 0 var(--spacing-small) var(--spacing-small); +} + +.tablist a { + padding: 0 var(--spacing-large); +} + + +/* + Search box + */ + +#MSearchBox { + height: var(--searchbar-height); + background: var(--searchbar-background); + border-radius: var(--searchbar-border-radius); + border: 1px solid var(--separator-color); + overflow: hidden; + width: var(--searchbar-width); + position: relative; + box-shadow: none; + display: block; + margin-top: 0; +} + +/* until Doxygen 1.9.4 */ +.left img#MSearchSelect { + left: 0; + user-select: none; + padding-left: 8px; +} + +/* Doxygen 1.9.5 */ +.left span#MSearchSelect { + left: 0; + user-select: none; + margin-left: 8px; + padding: 0; +} + +.left #MSearchSelect[src$=".png"] { + padding-left: 0 +} + +.SelectionMark { + user-select: none; +} + +.tabs .left #MSearchSelect { + padding-left: 0; +} + +.tabs #MSearchBox { + position: absolute; + right: var(--spacing-medium); +} + +@media screen and (max-width: 767px) { + .tabs #MSearchBox { + position: relative; + right: 0; + margin-left: var(--spacing-medium); + margin-top: 0; + } +} + +#MSearchSelectWindow, #MSearchResultsWindow { + z-index: 9999; +} + +#MSearchBox.MSearchBoxActive { + border-color: var(--primary-color); + box-shadow: inset 0 0 0 1px var(--primary-color); +} + +#main-menu > li:last-child { + margin-right: 0; +} + +@media screen and (max-width: 767px) { + #main-menu > li:last-child { + height: 50px; + } +} + +#MSearchField { + font-size: var(--navigation-font-size); + height: calc(var(--searchbar-height) - 2px); + background: transparent; + width: calc(var(--searchbar-width) - 64px); +} + +.MSearchBoxActive #MSearchField { + color: var(--searchbar-foreground); +} + +#MSearchSelect { + top: calc(calc(var(--searchbar-height) / 2) - 11px); +} + +#MSearchBox span.left, #MSearchBox span.right { + background: none; + background-image: none; +} + +#MSearchBox span.right { + padding-top: calc(calc(var(--searchbar-height) / 2) - 12px); + position: absolute; + right: var(--spacing-small); +} + +.tabs #MSearchBox span.right { + top: calc(calc(var(--searchbar-height) / 2) - 12px); +} + +@keyframes slideInSearchResults { + from { + opacity: 0; + transform: translate(0, 15px); + } + + to { + opacity: 1; + transform: translate(0, 20px); + } +} + +#MSearchResultsWindow { + left: auto !important; + right: var(--spacing-medium); + border-radius: var(--border-radius-large); + border: 1px solid var(--separator-color); + transform: translate(0, 20px); + box-shadow: var(--box-shadow); + animation: ease-out 280ms slideInSearchResults; + background: var(--page-background-color); +} + +iframe#MSearchResults { + margin: 4px; +} + +iframe { + color-scheme: normal; +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) iframe#MSearchResults { + filter: invert() hue-rotate(180deg); + } +} + +html.dark-mode iframe#MSearchResults { + filter: invert() hue-rotate(180deg); +} + +#MSearchResults .SRPage { + background-color: transparent; +} + +#MSearchResults .SRPage .SREntry { + font-size: 10pt; + padding: var(--spacing-small) var(--spacing-medium); +} + +#MSearchSelectWindow { + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium); + box-shadow: var(--box-shadow); + background: var(--page-background-color); + padding-top: var(--spacing-small); + padding-bottom: var(--spacing-small); +} + +#MSearchSelectWindow a.SelectItem { + font-size: var(--navigation-font-size); + line-height: var(--content-line-height); + margin: 0 var(--spacing-small); + border-radius: var(--border-radius-small); + color: var(--page-foreground-color) !important; + font-weight: normal; +} + +#MSearchSelectWindow a.SelectItem:hover { + background: var(--menu-focus-background); + color: var(--menu-focus-foreground) !important; +} + +@media screen and (max-width: 767px) { + #MSearchBox { + margin-top: var(--spacing-medium); + margin-bottom: var(--spacing-medium); + width: calc(100vw - 30px); + } + + #main-menu > li:last-child { + float: none !important; + } + + #MSearchField { + width: calc(100vw - 110px); + } + + @keyframes slideInSearchResultsMobile { + from { + opacity: 0; + transform: translate(0, 15px); + } + + to { + opacity: 1; + transform: translate(0, 20px); + } + } + + #MSearchResultsWindow { + left: var(--spacing-medium) !important; + right: var(--spacing-medium); + overflow: auto; + transform: translate(0, 20px); + animation: ease-out 280ms slideInSearchResultsMobile; + width: auto !important; + } + + /* + * Overwrites for fixing the searchbox on mobile in doxygen 1.9.2 + */ + label.main-menu-btn ~ #searchBoxPos1 { + top: 3px !important; + right: 6px !important; + left: 45px; + display: flex; + } + + label.main-menu-btn ~ #searchBoxPos1 > #MSearchBox { + margin-top: 0; + margin-bottom: 0; + flex-grow: 2; + float: left; + } +} + +/* + Tree view + */ + +#side-nav { + padding: 0 !important; + background: var(--side-nav-background); + min-width: 8px; + max-width: 50vw; +} + +@media screen and (max-width: 767px) { + #side-nav { + display: none; + } + + #doc-content { + margin-left: 0 !important; + } +} + +#nav-tree { + background: transparent; + margin-right: 1px; +} + +#nav-tree .label { + font-size: var(--navigation-font-size); +} + +#nav-tree .item { + height: var(--tree-item-height); + line-height: var(--tree-item-height); +} + +#nav-sync { + bottom: 12px; + right: 12px; + top: auto !important; + user-select: none; +} + +#nav-tree .selected { + text-shadow: none; + background-image: none; + background-color: transparent; + position: relative; +} + +#nav-tree .selected::after { + content: ""; + position: absolute; + top: 1px; + bottom: 1px; + left: 0; + width: 4px; + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; + background: var(--primary-color); +} + + +#nav-tree a { + color: var(--side-nav-foreground) !important; + font-weight: normal; +} + +#nav-tree a:focus { + outline-style: auto; +} + +#nav-tree .arrow { + opacity: var(--side-nav-arrow-opacity); +} + +.arrow { + color: inherit; + cursor: pointer; + font-size: 45%; + vertical-align: middle; + margin-right: 2px; + font-family: serif; + height: auto; + text-align: right; +} + +#nav-tree div.item:hover .arrow, #nav-tree a:focus .arrow { + opacity: var(--side-nav-arrow-hover-opacity); +} + +#nav-tree .selected a { + color: var(--primary-color) !important; + font-weight: bolder; + font-weight: 600; +} + +.ui-resizable-e { + width: 4px; + background: transparent; + box-shadow: inset -1px 0 0 0 var(--separator-color); +} + +/* + Contents + */ + +div.header { + border-bottom: 1px solid var(--separator-color); + background-color: var(--page-background-color); + background-image: none; +} + +@media screen and (min-width: 1000px) { + #doc-content > div > div.contents, + .PageDoc > div.contents { + display: flex; + flex-direction: row-reverse; + flex-wrap: nowrap; + align-items: flex-start; + } + + div.contents .textblock { + min-width: 200px; + flex-grow: 1; + } +} + +div.contents, div.header .title, div.header .summary { + max-width: var(--content-maxwidth); +} + +div.contents, div.header .title { + line-height: initial; + margin: calc(var(--spacing-medium) + .2em) auto var(--spacing-medium) auto; +} + +div.header .summary { + margin: var(--spacing-medium) auto 0 auto; +} + +div.headertitle { + padding: 0; +} + +div.header .title { + font-weight: 600; + font-size: 225%; + padding: var(--spacing-medium) var(--spacing-large); + word-break: break-word; +} + +div.header .summary { + width: auto; + display: block; + float: none; + padding: 0 var(--spacing-large); +} + +td.memSeparator { + border-color: var(--separator-color); +} + +span.mlabel { + background: var(--primary-color); + border: none; + padding: 4px 9px; + border-radius: 12px; + margin-right: var(--spacing-medium); +} + +span.mlabel:last-of-type { + margin-right: 2px; +} + +div.contents { + padding: 0 var(--spacing-large); +} + +div.contents p, div.contents li { + line-height: var(--content-line-height); +} + +div.contents div.dyncontent { + margin: var(--spacing-medium) 0; +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) div.contents div.dyncontent img, + html:not(.light-mode) div.contents center img, + html:not(.light-mode) div.contents > table img, + html:not(.light-mode) div.contents div.dyncontent iframe, + html:not(.light-mode) div.contents center iframe, + html:not(.light-mode) div.contents table iframe, + html:not(.light-mode) div.contents .dotgraph iframe { + filter: brightness(89%) hue-rotate(180deg) invert(); + } +} + +html.dark-mode div.contents div.dyncontent img, +html.dark-mode div.contents center img, +html.dark-mode div.contents > table img, +html.dark-mode div.contents div.dyncontent iframe, +html.dark-mode div.contents center iframe, +html.dark-mode div.contents table iframe, +html.dark-mode div.contents .dotgraph iframe + { + filter: brightness(89%) hue-rotate(180deg) invert(); +} + +h2.groupheader { + border-bottom: 0px; + color: var(--page-foreground-color); + box-shadow: + 100px 0 var(--page-background-color), + -100px 0 var(--page-background-color), + 100px 0.75px var(--separator-color), + -100px 0.75px var(--separator-color), + 500px 0 var(--page-background-color), + -500px 0 var(--page-background-color), + 500px 0.75px var(--separator-color), + -500px 0.75px var(--separator-color), + 900px 0 var(--page-background-color), + -900px 0 var(--page-background-color), + 900px 0.75px var(--separator-color), + -900px 0.75px var(--separator-color), + 1400px 0 var(--page-background-color), + -1400px 0 var(--page-background-color), + 1400px 0.75px var(--separator-color), + -1400px 0.75px var(--separator-color), + 1900px 0 var(--page-background-color), + -1900px 0 var(--page-background-color), + 1900px 0.75px var(--separator-color), + -1900px 0.75px var(--separator-color); +} + +blockquote { + margin: 0 var(--spacing-medium) 0 var(--spacing-medium); + padding: var(--spacing-small) var(--spacing-large); + background: var(--blockquote-background); + color: var(--blockquote-foreground); + border-left: 0; + overflow: visible; + border-radius: var(--border-radius-medium); + overflow: visible; + position: relative; +} + +blockquote::before, blockquote::after { + font-weight: bold; + font-family: serif; + font-size: 360%; + opacity: .15; + position: absolute; +} + +blockquote::before { + content: "“"; + left: -10px; + top: 4px; +} + +blockquote::after { + content: "”"; + right: -8px; + bottom: -25px; +} + +blockquote p { + margin: var(--spacing-small) 0 var(--spacing-medium) 0; +} +.paramname { + font-weight: 600; + color: var(--primary-dark-color); +} + +.paramname > code { + border: 0; +} + +table.params .paramname { + font-weight: 600; + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); + padding-right: var(--spacing-small); + line-height: var(--table-line-height); +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--primary-light-color); +} + +.alphachar a { + color: var(--page-foreground-color); +} + +.dotgraph { + max-width: 100%; + overflow-x: scroll; +} + +.dotgraph .caption { + position: sticky; + left: 0; +} + +/* Wrap Graphviz graphs with the `interactive_dotgraph` class if `INTERACTIVE_SVG = YES` */ +.interactive_dotgraph .dotgraph iframe { + max-width: 100%; +} + +/* + Table of Contents + */ + +div.contents .toc { + max-height: var(--toc-max-height); + min-width: var(--toc-width); + border: 0; + border-left: 1px solid var(--separator-color); + border-radius: 0; + background-color: transparent; + box-shadow: none; + position: sticky; + top: var(--toc-sticky-top); + padding: 0 var(--spacing-large); + margin: var(--spacing-small) 0 var(--spacing-large) var(--spacing-large); +} + +div.toc h3 { + color: var(--toc-foreground); + font-size: var(--navigation-font-size); + margin: var(--spacing-large) 0 var(--spacing-medium) 0; +} + +div.toc li { + padding: 0; + background: none; + line-height: var(--toc-font-size); + margin: var(--toc-font-size) 0 0 0; +} + +div.toc li::before { + display: none; +} + +div.toc ul { + margin-top: 0 +} + +div.toc li a { + font-size: var(--toc-font-size); + color: var(--page-foreground-color) !important; + text-decoration: none; +} + +div.toc li a:hover, div.toc li a.active { + color: var(--primary-color) !important; +} + +div.toc li a.aboveActive { + color: var(--page-secondary-foreground-color) !important; +} + + +@media screen and (max-width: 999px) { + div.contents .toc { + max-height: 45vh; + float: none; + width: auto; + margin: 0 0 var(--spacing-medium) 0; + position: relative; + top: 0; + position: relative; + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium); + background-color: var(--toc-background); + box-shadow: var(--box-shadow); + } + + div.contents .toc.interactive { + max-height: calc(var(--navigation-font-size) + 2 * var(--spacing-large)); + overflow: hidden; + } + + div.contents .toc > h3 { + -webkit-tap-highlight-color: transparent; + cursor: pointer; + position: sticky; + top: 0; + background-color: var(--toc-background); + margin: 0; + padding: var(--spacing-large) 0; + display: block; + } + + div.contents .toc.interactive > h3::before { + content: ""; + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 5px solid var(--primary-color); + display: inline-block; + margin-right: var(--spacing-small); + margin-bottom: calc(var(--navigation-font-size) / 4); + transform: rotate(-90deg); + transition: transform var(--animation-duration) ease-out; + } + + div.contents .toc.interactive.open > h3::before { + transform: rotate(0deg); + } + + div.contents .toc.interactive.open { + max-height: 45vh; + overflow: auto; + transition: max-height 0.2s ease-in-out; + } + + div.contents .toc a, div.contents .toc a.active { + color: var(--primary-color) !important; + } + + div.contents .toc a:hover { + text-decoration: underline; + } +} + +/* + Code & Fragments + */ + +code, div.fragment, pre.fragment { + border-radius: var(--border-radius-small); + border: 1px solid var(--separator-color); + overflow: hidden; +} + +code { + display: inline; + background: var(--code-background); + color: var(--code-foreground); + padding: 2px 6px; +} + +div.fragment, pre.fragment { + margin: var(--spacing-medium) 0; + padding: calc(var(--spacing-large) - (var(--spacing-large) / 6)) var(--spacing-large); + background: var(--fragment-background); + color: var(--fragment-foreground); + overflow-x: auto; +} + +@media screen and (max-width: 767px) { + div.fragment, pre.fragment { + border-top-right-radius: 0; + border-bottom-right-radius: 0; + border-right: 0; + } + + .contents > div.fragment, + .textblock > div.fragment, + .textblock > pre.fragment, + .textblock > .tabbed > ul > li > div.fragment, + .textblock > .tabbed > ul > li > pre.fragment, + .contents > .doxygen-awesome-fragment-wrapper > div.fragment, + .textblock > .doxygen-awesome-fragment-wrapper > div.fragment, + .textblock > .doxygen-awesome-fragment-wrapper > pre.fragment, + .textblock > .tabbed > ul > li > .doxygen-awesome-fragment-wrapper > div.fragment, + .textblock > .tabbed > ul > li > .doxygen-awesome-fragment-wrapper > pre.fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-large)); + border-radius: 0; + border-left: 0; + } + + .textblock li > .fragment, + .textblock li > .doxygen-awesome-fragment-wrapper > .fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-large)); + } + + .memdoc li > .fragment, + .memdoc li > .doxygen-awesome-fragment-wrapper > .fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-medium)); + } + + .textblock ul, .memdoc ul { + overflow: initial; + } + + .memdoc > div.fragment, + .memdoc > pre.fragment, + dl dd > div.fragment, + dl dd pre.fragment, + .memdoc > .doxygen-awesome-fragment-wrapper > div.fragment, + .memdoc > .doxygen-awesome-fragment-wrapper > pre.fragment, + dl dd > .doxygen-awesome-fragment-wrapper > div.fragment, + dl dd .doxygen-awesome-fragment-wrapper > pre.fragment { + margin: var(--spacing-medium) calc(0px - var(--spacing-medium)); + border-radius: 0; + border-left: 0; + } +} + +code, code a, pre.fragment, div.fragment, div.fragment .line, div.fragment span, div.fragment .line a, div.fragment .line span { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size) !important; +} + +div.line:after { + margin-right: var(--spacing-medium); +} + +div.fragment .line, pre.fragment { + white-space: pre; + word-wrap: initial; + line-height: var(--fragment-lineheight); +} + +div.fragment span.keyword { + color: var(--fragment-keyword); +} + +div.fragment span.keywordtype { + color: var(--fragment-keywordtype); +} + +div.fragment span.keywordflow { + color: var(--fragment-keywordflow); +} + +div.fragment span.stringliteral { + color: var(--fragment-token) +} + +div.fragment span.comment { + color: var(--fragment-comment); +} + +div.fragment a.code { + color: var(--fragment-link) !important; +} + +div.fragment span.preprocessor { + color: var(--fragment-preprocessor); +} + +div.fragment span.lineno { + display: inline-block; + width: 27px; + border-right: none; + background: var(--fragment-linenumber-background); + color: var(--fragment-linenumber-color); +} + +div.fragment span.lineno a { + background: none; + color: var(--fragment-link) !important; +} + +div.fragment > .line:first-child .lineno { + box-shadow: -999999px 0px 0 999999px var(--fragment-linenumber-background), -999998px 0px 0 999999px var(--fragment-linenumber-border); + background-color: var(--fragment-linenumber-background) !important; +} + +div.line { + border-radius: var(--border-radius-small); +} + +div.line.glow { + background-color: var(--primary-light-color); + box-shadow: none; +} + +/* + dl warning, attention, note, deprecated, bug, ... + */ + +dl.bug dt a, dl.deprecated dt a, dl.todo dt a { + font-weight: bold !important; +} + +dl.warning, dl.attention, dl.note, dl.deprecated, dl.bug, dl.invariant, dl.pre, dl.post, dl.todo, dl.remark { + padding: var(--spacing-medium); + margin: var(--spacing-medium) 0; + color: var(--page-background-color); + overflow: hidden; + margin-left: 0; + border-radius: var(--border-radius-small); +} + +dl.section dd { + margin-bottom: 2px; +} + +dl.warning, dl.attention { + background: var(--warning-color); + border-left: 8px solid var(--warning-color-dark); + color: var(--warning-color-darker); +} + +dl.warning dt, dl.attention dt { + color: var(--warning-color-dark); +} + +dl.note, dl.remark { + background: var(--note-color); + border-left: 8px solid var(--note-color-dark); + color: var(--note-color-darker); +} + +dl.note dt, dl.remark dt { + color: var(--note-color-dark); +} + +dl.todo { + background: var(--todo-color); + border-left: 8px solid var(--todo-color-dark); + color: var(--todo-color-darker); +} + +dl.todo dt a { + color: var(--todo-color-dark) !important; +} + +dl.bug dt a { + color: var(--todo-color-dark) !important; +} + +dl.bug { + background: var(--bug-color); + border-left: 8px solid var(--bug-color-dark); + color: var(--bug-color-darker); +} + +dl.bug dt a { + color: var(--bug-color-dark) !important; +} + +dl.deprecated { + background: var(--deprecated-color); + border-left: 8px solid var(--deprecated-color-dark); + color: var(--deprecated-color-darker); +} + +dl.deprecated dt a { + color: var(--deprecated-color-dark) !important; +} + +dl.section dd, dl.bug dd, dl.deprecated dd, dl.todo dd { + margin-inline-start: 0px; +} + +dl.invariant, dl.pre, dl.post { + background: var(--invariant-color); + border-left: 8px solid var(--invariant-color-dark); + color: var(--invariant-color-darker); +} + +dl.invariant dt, dl.pre dt, dl.post dt { + color: var(--invariant-color-dark); +} + +/* + memitem + */ + +div.memdoc, div.memproto, h2.memtitle { + box-shadow: none; + background-image: none; + border: none; +} + +div.memdoc { + padding: 0 var(--spacing-medium); + background: var(--page-background-color); +} + +h2.memtitle, div.memitem { + border: 1px solid var(--separator-color); + box-shadow: var(--box-shadow); +} + +h2.memtitle { + box-shadow: 0px var(--spacing-medium) 0 -1px var(--fragment-background), var(--box-shadow); +} + +div.memitem { + transition: none; +} + +div.memproto, h2.memtitle { + background: var(--fragment-background); +} + +h2.memtitle { + font-weight: 500; + font-size: var(--memtitle-font-size); + font-family: var(--font-family-monospace); + border-bottom: none; + border-top-left-radius: var(--border-radius-medium); + border-top-right-radius: var(--border-radius-medium); + word-break: break-all; + position: relative; +} + +h2.memtitle:after { + content: ""; + display: block; + background: var(--fragment-background); + height: var(--spacing-medium); + bottom: calc(0px - var(--spacing-medium)); + left: 0; + right: -14px; + position: absolute; + border-top-right-radius: var(--border-radius-medium); +} + +h2.memtitle > span.permalink { + font-size: inherit; +} + +h2.memtitle > span.permalink > a { + text-decoration: none; + padding-left: 3px; + margin-right: -4px; + user-select: none; + display: inline-block; + margin-top: -6px; +} + +h2.memtitle > span.permalink > a:hover { + color: var(--primary-dark-color) !important; +} + +a:target + h2.memtitle, a:target + h2.memtitle + div.memitem { + border-color: var(--primary-light-color); +} + +div.memitem { + border-top-right-radius: var(--border-radius-medium); + border-bottom-right-radius: var(--border-radius-medium); + border-bottom-left-radius: var(--border-radius-medium); + overflow: hidden; + display: block !important; +} + +div.memdoc { + border-radius: 0; +} + +div.memproto { + border-radius: 0 var(--border-radius-small) 0 0; + overflow: auto; + border-bottom: 1px solid var(--separator-color); + padding: var(--spacing-medium); + margin-bottom: -1px; +} + +div.memtitle { + border-top-right-radius: var(--border-radius-medium); + border-top-left-radius: var(--border-radius-medium); +} + +div.memproto table.memname { + font-family: var(--font-family-monospace); + color: var(--page-foreground-color); + font-size: var(--memname-font-size); + text-shadow: none; +} + +div.memproto div.memtemplate { + font-family: var(--font-family-monospace); + color: var(--primary-dark-color); + font-size: var(--memname-font-size); + margin-left: 2px; + text-shadow: none; +} + +table.mlabels, table.mlabels > tbody { + display: block; +} + +td.mlabels-left { + width: auto; +} + +td.mlabels-right { + margin-top: 3px; + position: sticky; + left: 0; +} + +table.mlabels > tbody > tr:first-child { + display: flex; + justify-content: space-between; + flex-wrap: wrap; +} + +.memname, .memitem span.mlabels { + margin: 0 +} + +/* + reflist + */ + +dl.reflist { + box-shadow: var(--box-shadow); + border-radius: var(--border-radius-medium); + border: 1px solid var(--separator-color); + overflow: hidden; + padding: 0; +} + + +dl.reflist dt, dl.reflist dd { + box-shadow: none; + text-shadow: none; + background-image: none; + border: none; + padding: 12px; +} + + +dl.reflist dt { + font-weight: 500; + border-radius: 0; + background: var(--code-background); + border-bottom: 1px solid var(--separator-color); + color: var(--page-foreground-color) +} + + +dl.reflist dd { + background: none; +} + +/* + Table + */ + +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname), +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody { + display: inline-block; + max-width: 100%; +} + +.contents > table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname):not(.classindex) { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + max-width: calc(100% + 2 * var(--spacing-large)); +} + +table.fieldtable, +table.markdownTable tbody, +table.doxtable tbody { + border: none; + margin: var(--spacing-medium) 0; + box-shadow: 0 0 0 1px var(--separator-color); + border-radius: var(--border-radius-small); +} + +table.markdownTable, table.doxtable, table.fieldtable { + padding: 1px; +} + +table.doxtable caption { + display: block; +} + +table.fieldtable { + border-collapse: collapse; + width: 100%; +} + +th.markdownTableHeadLeft, +th.markdownTableHeadRight, +th.markdownTableHeadCenter, +th.markdownTableHeadNone, +table.doxtable th { + background: var(--tablehead-background); + color: var(--tablehead-foreground); + font-weight: 600; + font-size: var(--page-font-size); +} + +th.markdownTableHeadLeft:first-child, +th.markdownTableHeadRight:first-child, +th.markdownTableHeadCenter:first-child, +th.markdownTableHeadNone:first-child, +table.doxtable tr th:first-child { + border-top-left-radius: var(--border-radius-small); +} + +th.markdownTableHeadLeft:last-child, +th.markdownTableHeadRight:last-child, +th.markdownTableHeadCenter:last-child, +th.markdownTableHeadNone:last-child, +table.doxtable tr th:last-child { + border-top-right-radius: var(--border-radius-small); +} + +table.markdownTable td, +table.markdownTable th, +table.fieldtable td, +table.fieldtable th, +table.doxtable td, +table.doxtable th { + border: 1px solid var(--separator-color); + padding: var(--spacing-small) var(--spacing-medium); +} + +table.markdownTable td:last-child, +table.markdownTable th:last-child, +table.fieldtable td:last-child, +table.fieldtable th:last-child, +table.doxtable td:last-child, +table.doxtable th:last-child { + border-right: none; +} + +table.markdownTable td:first-child, +table.markdownTable th:first-child, +table.fieldtable td:first-child, +table.fieldtable th:first-child, +table.doxtable td:first-child, +table.doxtable th:first-child { + border-left: none; +} + +table.markdownTable tr:first-child td, +table.markdownTable tr:first-child th, +table.fieldtable tr:first-child td, +table.fieldtable tr:first-child th, +table.doxtable tr:first-child td, +table.doxtable tr:first-child th { + border-top: none; +} + +table.markdownTable tr:last-child td, +table.markdownTable tr:last-child th, +table.fieldtable tr:last-child td, +table.fieldtable tr:last-child th, +table.doxtable tr:last-child td, +table.doxtable tr:last-child th { + border-bottom: none; +} + +table.markdownTable tr, table.doxtable tr { + border-bottom: 1px solid var(--separator-color); +} + +table.markdownTable tr:last-child, table.doxtable tr:last-child { + border-bottom: none; +} + +.full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) { + display: block; +} + +.full_width_table table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody { + display: table; + width: 100%; +} + +table.fieldtable th { + font-size: var(--page-font-size); + font-weight: 600; + background-image: none; + background-color: var(--tablehead-background); + color: var(--tablehead-foreground); +} + +table.fieldtable td.fieldtype, .fieldtable td.fieldname, .fieldtable td.fielddoc, .fieldtable th { + border-bottom: 1px solid var(--separator-color); + border-right: 1px solid var(--separator-color); +} + +table.fieldtable tr:last-child td:first-child { + border-bottom-left-radius: var(--border-radius-small); +} + +table.fieldtable tr:last-child td:last-child { + border-bottom-right-radius: var(--border-radius-small); +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--primary-light-color); + box-shadow: none; +} + +table.memberdecls { + display: block; + -webkit-tap-highlight-color: transparent; +} + +table.memberdecls tr[class^='memitem'] { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); +} + +table.memberdecls tr[class^='memitem'] .memTemplParams { + font-family: var(--font-family-monospace); + font-size: var(--code-font-size); + color: var(--primary-dark-color); + white-space: normal; +} + +table.memberdecls .memItemLeft, +table.memberdecls .memItemRight, +table.memberdecls .memTemplItemLeft, +table.memberdecls .memTemplItemRight, +table.memberdecls .memTemplParams { + transition: none; + padding-top: var(--spacing-small); + padding-bottom: var(--spacing-small); + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + background-color: var(--fragment-background); +} + +table.memberdecls .memTemplItemLeft, +table.memberdecls .memTemplItemRight { + padding-top: 2px; +} + +table.memberdecls .memTemplParams { + border-bottom: 0; + border-left: 1px solid var(--separator-color); + border-right: 1px solid var(--separator-color); + border-radius: var(--border-radius-small) var(--border-radius-small) 0 0; + padding-bottom: var(--spacing-small); +} + +table.memberdecls .memTemplItemLeft { + border-radius: 0 0 0 var(--border-radius-small); + border-left: 1px solid var(--separator-color); + border-top: 0; +} + +table.memberdecls .memTemplItemRight { + border-radius: 0 0 var(--border-radius-small) 0; + border-right: 1px solid var(--separator-color); + padding-left: 0; + border-top: 0; +} + +table.memberdecls .memItemLeft { + border-radius: var(--border-radius-small) 0 0 var(--border-radius-small); + border-left: 1px solid var(--separator-color); + padding-left: var(--spacing-medium); + padding-right: 0; +} + +table.memberdecls .memItemRight { + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; + border-right: 1px solid var(--separator-color); + padding-right: var(--spacing-medium); + padding-left: 0; + +} + +table.memberdecls .mdescLeft, table.memberdecls .mdescRight { + background: none; + color: var(--page-foreground-color); + padding: var(--spacing-small) 0; +} + +table.memberdecls .memItemLeft, +table.memberdecls .memTemplItemLeft { + padding-right: var(--spacing-medium); +} + +table.memberdecls .memSeparator { + background: var(--page-background-color); + height: var(--spacing-large); + border: 0; + transition: none; +} + +table.memberdecls .groupheader { + margin-bottom: var(--spacing-large); +} + +table.memberdecls .inherit_header td { + padding: 0 0 var(--spacing-medium) 0; + text-indent: -12px; + color: var(--page-secondary-foreground-color); +} + +table.memberdecls img[src="closed.png"], +table.memberdecls img[src="open.png"], +div.dynheader img[src="open.png"], +div.dynheader img[src="closed.png"] { + width: 0; + height: 0; + border-left: 4px solid transparent; + border-right: 4px solid transparent; + border-top: 5px solid var(--primary-color); + margin-top: 8px; + display: block; + float: left; + margin-left: -10px; + transition: transform var(--animation-duration) ease-out; +} + +table.memberdecls img { + margin-right: 10px; +} + +table.memberdecls img[src="closed.png"], +div.dynheader img[src="closed.png"] { + transform: rotate(-90deg); + +} + +.compoundTemplParams { + font-family: var(--font-family-monospace); + color: var(--primary-dark-color); + font-size: var(--code-font-size); +} + +@media screen and (max-width: 767px) { + + table.memberdecls .memItemLeft, + table.memberdecls .memItemRight, + table.memberdecls .mdescLeft, + table.memberdecls .mdescRight, + table.memberdecls .memTemplItemLeft, + table.memberdecls .memTemplItemRight, + table.memberdecls .memTemplParams { + display: block; + text-align: left; + padding-left: var(--spacing-large); + margin: 0 calc(0px - var(--spacing-large)) 0 calc(0px - var(--spacing-large)); + border-right: none; + border-left: none; + border-radius: 0; + white-space: normal; + } + + table.memberdecls .memItemLeft, + table.memberdecls .mdescLeft, + table.memberdecls .memTemplItemLeft { + border-bottom: 0; + padding-bottom: 0; + } + + table.memberdecls .memTemplItemLeft { + padding-top: 0; + } + + table.memberdecls .mdescLeft { + margin-bottom: calc(0px - var(--page-font-size)); + } + + table.memberdecls .memItemRight, + table.memberdecls .mdescRight, + table.memberdecls .memTemplItemRight { + border-top: 0; + padding-top: 0; + padding-right: var(--spacing-large); + overflow-x: auto; + } + + table.memberdecls tr[class^='memitem']:not(.inherit) { + display: block; + width: calc(100vw - 2 * var(--spacing-large)); + } + + table.memberdecls .mdescRight { + color: var(--page-foreground-color); + } + + table.memberdecls tr.inherit { + visibility: hidden; + } + + table.memberdecls tr[style="display: table-row;"] { + display: block !important; + visibility: visible; + width: calc(100vw - 2 * var(--spacing-large)); + animation: fade .5s; + } + + @keyframes fade { + 0% { + opacity: 0; + max-height: 0; + } + + 100% { + opacity: 1; + max-height: 200px; + } + } +} + + +/* + Horizontal Rule + */ + +hr { + margin-top: var(--spacing-large); + margin-bottom: var(--spacing-large); + height: 1px; + background-color: var(--separator-color); + border: 0; +} + +.contents hr { + box-shadow: 100px 0 0 var(--separator-color), + -100px 0 0 var(--separator-color), + 500px 0 0 var(--separator-color), + -500px 0 0 var(--separator-color), + 1500px 0 0 var(--separator-color), + -1500px 0 0 var(--separator-color), + 2000px 0 0 var(--separator-color), + -2000px 0 0 var(--separator-color); +} + +.contents img, .contents .center, .contents center, .contents div.image object { + max-width: 100%; + overflow: auto; +} + +@media screen and (max-width: 767px) { + .contents .dyncontent > .center, .contents > center { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + max-width: calc(100% + 2 * var(--spacing-large)); + } +} + +/* + Directories + */ +div.directory { + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + width: auto; +} + +table.directory { + font-family: var(--font-family); + font-size: var(--page-font-size); + font-weight: normal; + width: 100%; +} + +table.directory td.entry, table.directory td.desc { + padding: calc(var(--spacing-small) / 2) var(--spacing-small); + line-height: var(--table-line-height); +} + +table.directory tr.even td:last-child { + border-radius: 0 var(--border-radius-small) var(--border-radius-small) 0; +} + +table.directory tr.even td:first-child { + border-radius: var(--border-radius-small) 0 0 var(--border-radius-small); +} + +table.directory tr.even:last-child td:last-child { + border-radius: 0 var(--border-radius-small) 0 0; +} + +table.directory tr.even:last-child td:first-child { + border-radius: var(--border-radius-small) 0 0 0; +} + +table.directory td.desc { + min-width: 250px; +} + +table.directory tr.even { + background-color: var(--odd-color); +} + +table.directory tr.odd { + background-color: transparent; +} + +.icona { + width: auto; + height: auto; + margin: 0 var(--spacing-small); +} + +.icon { + background: var(--primary-color); + border-radius: var(--border-radius-small); + font-size: var(--page-font-size); + padding: calc(var(--page-font-size) / 5); + line-height: var(--page-font-size); + transform: scale(0.8); + height: auto; + width: var(--page-font-size); + user-select: none; +} + +.iconfopen, .icondoc, .iconfclosed { + background-position: center; + margin-bottom: 0; + height: var(--table-line-height); +} + +.icondoc { + filter: saturate(0.2); +} + +@media screen and (max-width: 767px) { + div.directory { + margin-left: calc(0px - var(--spacing-large)); + margin-right: calc(0px - var(--spacing-large)); + } +} + +@media (prefers-color-scheme: dark) { + html:not(.light-mode) .iconfopen, html:not(.light-mode) .iconfclosed { + filter: hue-rotate(180deg) invert(); + } +} + +html.dark-mode .iconfopen, html.dark-mode .iconfclosed { + filter: hue-rotate(180deg) invert(); +} + +/* + Class list + */ + +.classindex dl.odd { + background: var(--odd-color); + border-radius: var(--border-radius-small); +} + +.classindex dl.even { + background-color: transparent; +} + +/* + Class Index Doxygen 1.8 +*/ + +table.classindex { + margin-left: 0; + margin-right: 0; + width: 100%; +} + +table.classindex table div.ah { + background-image: none; + background-color: initial; + border-color: var(--separator-color); + color: var(--page-foreground-color); + box-shadow: var(--box-shadow); + border-radius: var(--border-radius-large); + padding: var(--spacing-small); +} + +div.qindex { + background-color: var(--odd-color); + border-radius: var(--border-radius-small); + border: 1px solid var(--separator-color); + padding: var(--spacing-small) 0; +} + +/* + Footer and nav-path + */ + +#nav-path { + width: 100%; +} + +#nav-path ul { + background-image: none; + background: var(--page-background-color); + border: none; + border-top: 1px solid var(--separator-color); + border-bottom: 1px solid var(--separator-color); + border-bottom: 0; + box-shadow: 0 0.75px 0 var(--separator-color); + font-size: var(--navigation-font-size); +} + +img.footer { + width: 60px; +} + +.navpath li.footer { + color: var(--page-secondary-foreground-color); +} + +address.footer { + color: var(--page-secondary-foreground-color); + margin-bottom: var(--spacing-large); +} + +#nav-path li.navelem { + background-image: none; + display: flex; + align-items: center; +} + +.navpath li.navelem a { + text-shadow: none; + display: inline-block; + color: var(--primary-color) !important; +} + +.navpath li.navelem b { + color: var(--primary-dark-color); + font-weight: 500; +} + +li.navelem { + padding: 0; + margin-left: -8px; +} + +li.navelem:first-child { + margin-left: var(--spacing-large); +} + +li.navelem:first-child:before { + display: none; +} + +#nav-path li.navelem:after { + content: ''; + border: 5px solid var(--page-background-color); + border-bottom-color: transparent; + border-right-color: transparent; + border-top-color: transparent; + transform: translateY(-1px) scaleY(4.2); + z-index: 10; + margin-left: 6px; +} + +#nav-path li.navelem:before { + content: ''; + border: 5px solid var(--separator-color); + border-bottom-color: transparent; + border-right-color: transparent; + border-top-color: transparent; + transform: translateY(-1px) scaleY(3.2); + margin-right: var(--spacing-small); +} + +.navpath li.navelem a:hover { + color: var(--primary-color); +} + +/* + Scrollbars for Webkit +*/ + +#nav-tree::-webkit-scrollbar, +div.fragment::-webkit-scrollbar, +pre.fragment::-webkit-scrollbar, +div.memproto::-webkit-scrollbar, +.contents center::-webkit-scrollbar, +.contents .center::-webkit-scrollbar, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar, +div.contents .toc::-webkit-scrollbar, +.contents .dotgraph::-webkit-scrollbar, +.contents .tabs-overview-container::-webkit-scrollbar { + background: transparent; + width: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); + height: calc(var(--webkit-scrollbar-size) + var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); +} + +#nav-tree::-webkit-scrollbar-thumb, +div.fragment::-webkit-scrollbar-thumb, +pre.fragment::-webkit-scrollbar-thumb, +div.memproto::-webkit-scrollbar-thumb, +.contents center::-webkit-scrollbar-thumb, +.contents .center::-webkit-scrollbar-thumb, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-thumb, +div.contents .toc::-webkit-scrollbar-thumb, +.contents .dotgraph::-webkit-scrollbar-thumb, +.contents .tabs-overview-container::-webkit-scrollbar-thumb { + background-color: transparent; + border: var(--webkit-scrollbar-padding) solid transparent; + border-radius: calc(var(--webkit-scrollbar-padding) + var(--webkit-scrollbar-padding)); + background-clip: padding-box; +} + +#nav-tree:hover::-webkit-scrollbar-thumb, +div.fragment:hover::-webkit-scrollbar-thumb, +pre.fragment:hover::-webkit-scrollbar-thumb, +div.memproto:hover::-webkit-scrollbar-thumb, +.contents center:hover::-webkit-scrollbar-thumb, +.contents .center:hover::-webkit-scrollbar-thumb, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody:hover::-webkit-scrollbar-thumb, +div.contents .toc:hover::-webkit-scrollbar-thumb, +.contents .dotgraph:hover::-webkit-scrollbar-thumb, +.contents .tabs-overview-container:hover::-webkit-scrollbar-thumb { + background-color: var(--webkit-scrollbar-color); +} + +#nav-tree::-webkit-scrollbar-track, +div.fragment::-webkit-scrollbar-track, +pre.fragment::-webkit-scrollbar-track, +div.memproto::-webkit-scrollbar-track, +.contents center::-webkit-scrollbar-track, +.contents .center::-webkit-scrollbar-track, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody::-webkit-scrollbar-track, +div.contents .toc::-webkit-scrollbar-track, +.contents .dotgraph::-webkit-scrollbar-track, +.contents .tabs-overview-container::-webkit-scrollbar-track { + background: transparent; +} + +#nav-tree::-webkit-scrollbar-corner { + background-color: var(--side-nav-background); +} + +#nav-tree, +div.fragment, +pre.fragment, +div.memproto, +.contents center, +.contents .center, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody, +div.contents .toc { + overflow-x: auto; + overflow-x: overlay; +} + +#nav-tree { + overflow-x: auto; + overflow-y: auto; + overflow-y: overlay; +} + +/* + Scrollbars for Firefox +*/ + +#nav-tree, +div.fragment, +pre.fragment, +div.memproto, +.contents center, +.contents .center, +.contents table:not(.memberdecls):not(.mlabels):not(.fieldtable):not(.memname) tbody, +div.contents .toc, +.contents .dotgraph, +.contents .tabs-overview-container { + scrollbar-width: thin; +} + +/* + Optional Dark mode toggle button +*/ + +doxygen-awesome-dark-mode-toggle { + display: inline-block; + margin: 0 0 0 var(--spacing-small); + padding: 0; + width: var(--searchbar-height); + height: var(--searchbar-height); + background: none; + border: none; + border-radius: var(--searchbar-height); + vertical-align: middle; + text-align: center; + line-height: var(--searchbar-height); + font-size: 22px; + display: flex; + align-items: center; + justify-content: center; + user-select: none; + cursor: pointer; +} + +doxygen-awesome-dark-mode-toggle > svg { + transition: transform var(--animation-duration) ease-in-out; +} + +doxygen-awesome-dark-mode-toggle:active > svg { + transform: scale(.5); +} + +doxygen-awesome-dark-mode-toggle:hover { + background-color: rgba(0,0,0,.03); +} + +html.dark-mode doxygen-awesome-dark-mode-toggle:hover { + background-color: rgba(0,0,0,.18); +} + +/* + Optional fragment copy button +*/ +.doxygen-awesome-fragment-wrapper { + position: relative; +} + +doxygen-awesome-fragment-copy-button { + opacity: 0; + background: var(--fragment-background); + width: 28px; + height: 28px; + position: absolute; + right: calc(var(--spacing-large) - (var(--spacing-large) / 2.5)); + top: calc(var(--spacing-large) - (var(--spacing-large) / 2.5)); + border: 1px solid var(--fragment-foreground); + cursor: pointer; + border-radius: var(--border-radius-small); + display: flex; + justify-content: center; + align-items: center; +} + +.doxygen-awesome-fragment-wrapper:hover doxygen-awesome-fragment-copy-button, doxygen-awesome-fragment-copy-button.success { + opacity: .28; +} + +doxygen-awesome-fragment-copy-button:hover, doxygen-awesome-fragment-copy-button.success { + opacity: 1 !important; +} + +doxygen-awesome-fragment-copy-button:active:not([class~=success]) svg { + transform: scale(.91); +} + +doxygen-awesome-fragment-copy-button svg { + fill: var(--fragment-foreground); + width: 18px; + height: 18px; +} + +doxygen-awesome-fragment-copy-button.success svg { + fill: rgb(14, 168, 14); +} + +doxygen-awesome-fragment-copy-button.success { + border-color: rgb(14, 168, 14); +} + +@media screen and (max-width: 767px) { + .textblock > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .textblock li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .memdoc li > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + .memdoc > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button, + dl dd > .doxygen-awesome-fragment-wrapper > doxygen-awesome-fragment-copy-button { + right: 0; + } +} + +/* + Optional paragraph link button +*/ + +a.anchorlink { + font-size: 90%; + margin-left: var(--spacing-small); + color: var(--page-foreground-color) !important; + text-decoration: none; + opacity: .15; + display: none; + transition: opacity var(--animation-duration) ease-in-out, color var(--animation-duration) ease-in-out; +} + +a.anchorlink svg { + fill: var(--page-foreground-color); +} + +h3 a.anchorlink svg, h4 a.anchorlink svg { + margin-bottom: -3px; + margin-top: -4px; +} + +a.anchorlink:hover { + opacity: .45; +} + +h2:hover a.anchorlink, h1:hover a.anchorlink, h3:hover a.anchorlink, h4:hover a.anchorlink { + display: inline-block; +} + +/* + Optional tab feature +*/ + +.tabbed ul { + padding-inline-start: 0px; + margin: 0; + padding: var(--spacing-small) 0; +} + +.tabbed li { + display: none; +} + +.tabbed li.selected { + display: block; +} + +.tabs-overview-container { + overflow-x: auto; + display: block; + overflow-y: visible; +} + +.tabs-overview { + border-bottom: 1px solid var(--separator-color); + display: flex; + flex-direction: row; +} + +@media screen and (max-width: 767px) { + .tabs-overview-container { + margin: 0 calc(0px - var(--spacing-large)); + } + .tabs-overview { + padding: 0 var(--spacing-large) + } +} + +.tabs-overview button.tab-button { + color: var(--page-foreground-color); + margin: 0; + border: none; + background: transparent; + padding: calc(var(--spacing-large) / 2) 0; + display: inline-block; + font-size: var(--page-font-size); + cursor: pointer; + box-shadow: 0 1px 0 0 var(--separator-color); + position: relative; + + -webkit-tap-highlight-color: transparent; +} + +.tabs-overview button.tab-button .tab-title::before { + display: block; + content: attr(title); + font-weight: 600; + height: 0; + overflow: hidden; + visibility: hidden; +} + +.tabs-overview button.tab-button .tab-title { + float: left; + white-space: nowrap; + font-weight: normal; + padding: calc(var(--spacing-large) / 2) var(--spacing-large); + border-radius: var(--border-radius-medium); + transition: background-color var(--animation-duration) ease-in-out, font-weight var(--animation-duration) ease-in-out; +} + +.tabs-overview button.tab-button:not(:last-child) .tab-title { + box-shadow: 8px 0 0 -7px var(--separator-color); +} + +.tabs-overview button.tab-button:hover .tab-title { + background: var(--separator-color); + box-shadow: none; +} + +.tabs-overview button.tab-button.active .tab-title { + font-weight: 600; +} + +.tabs-overview button.tab-button::after { + content: ''; + display: block; + position: absolute; + left: 0; + bottom: 0; + right: 0; + height: 0; + width: 0%; + margin: 0 auto; + border-radius: var(--border-radius-small) var(--border-radius-small) 0 0; + background-color: var(--primary-color); + transition: width var(--animation-duration) ease-in-out, height var(--animation-duration) ease-in-out; +} + +.tabs-overview button.tab-button.active::after { + width: 100%; + box-sizing: border-box; + height: 3px; +} + + +/* + Navigation Buttons +*/ + +.section_buttons:not(:empty) { + margin-top: calc(var(--spacing-large) * 3); +} + +.section_buttons table.markdownTable { + display: block; + width: 100%; +} + +.section_buttons table.markdownTable tbody { + display: table !important; + width: 100%; + box-shadow: none; + border-spacing: 10px; +} + +.section_buttons table.markdownTable td { + padding: 0; +} + +.section_buttons table.markdownTable th { + display: none; +} + +.section_buttons table.markdownTable tr.markdownTableHead { + border: none; +} + +.section_buttons tr th, .section_buttons tr td { + background: none; + border: none; + padding: var(--spacing-large) 0 var(--spacing-small); +} + +.section_buttons a { + display: inline-block; + border: 1px solid var(--separator-color); + border-radius: var(--border-radius-medium); + color: var(--page-secondary-foreground-color) !important; + text-decoration: none; + transition: color var(--animation-duration) ease-in-out, background-color var(--animation-duration) ease-in-out; +} + +.section_buttons a:hover { + color: var(--page-foreground-color) !important; + background-color: var(--odd-color); +} + +.section_buttons tr td.markdownTableBodyLeft a { + padding: var(--spacing-medium) var(--spacing-large) var(--spacing-medium) calc(var(--spacing-large) / 2); +} + +.section_buttons tr td.markdownTableBodyRight a { + padding: var(--spacing-medium) calc(var(--spacing-large) / 2) var(--spacing-medium) var(--spacing-large); +} + +.section_buttons tr td.markdownTableBodyLeft a::before, +.section_buttons tr td.markdownTableBodyRight a::after { + color: var(--page-secondary-foreground-color) !important; + display: inline-block; + transition: color .08s ease-in-out, transform .09s ease-in-out; +} + +.section_buttons tr td.markdownTableBodyLeft a::before { + content: '〈'; + padding-right: var(--spacing-large); +} + + +.section_buttons tr td.markdownTableBodyRight a::after { + content: '〉'; + padding-left: var(--spacing-large); +} + + +.section_buttons tr td.markdownTableBodyLeft a:hover::before { + color: var(--page-foreground-color) !important; + transform: translateX(-3px); +} + +.section_buttons tr td.markdownTableBodyRight a:hover::after { + color: var(--page-foreground-color) !important; + transform: translateX(3px); +} + +@media screen and (max-width: 450px) { + .section_buttons a { + width: 100%; + box-sizing: border-box; + } + + .section_buttons tr td:nth-of-type(1).markdownTableBodyLeft a { + border-radius: var(--border-radius-medium) 0 0 var(--border-radius-medium); + border-right: none; + } + + .section_buttons tr td:nth-of-type(2).markdownTableBodyRight a { + border-radius: 0 var(--border-radius-medium) var(--border-radius-medium) 0; + } +} diff --git a/doxygen.css b/doxygen.css new file mode 100644 index 00000000..72f1567d --- /dev/null +++ b/doxygen.css @@ -0,0 +1,1999 @@ +/* The standard CSS for doxygen 1.9.7*/ + +html { +/* page base colors */ +--page-background-color: white; +--page-foreground-color: black; +--page-link-color: #2B2B48; +--page-visited-link-color: #36365B; + +/* index */ +--index-odd-item-bg-color: #F5F5F9; +--index-even-item-bg-color: white; +--index-header-color: black; +--index-separator-color: #A0A0A0; + +/* header */ +--header-background-color: #F7F7FA; +--header-separator-color: #AFAFCF; +--header-gradient-image: url('nav_h.png'); +--group-header-separator-color: #6565A3; +--group-header-color: #23233A; +--inherit-header-color: gray; + +--footer-foreground-color: #181828; +--footer-logo-width: 104px; +--citation-label-color: #202036; +--glow-color: cyan; + +--title-background-color: white; +--title-separator-color: #42426F; +--directory-separator-color: #7D7DB1; +--separator-color: #3B3B62; + +--blockquote-background-color: #F3F3F8; +--blockquote-border-color: #7D7DB1; + +--scrollbar-thumb-color: #7D7DB1; +--scrollbar-background-color: #F7F7FA; + +--icon-background-color: #55558E; +--icon-foreground-color: white; +--icon-doc-image: url('doc.svg'); +--icon-folder-open-image: url('folderopen.svg'); +--icon-folder-closed-image: url('folderclosed.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #F7F7FA; +--memdecl-separator-color: #D1D1E3; +--memdecl-foreground-color: #555; +--memdecl-template-color: #36365B; + +/* detailed member list */ +--memdef-border-color: #8C8CBA; +--memdef-title-background-color: #D7D7E7; +--memdef-title-gradient-image: url('nav_f.png'); +--memdef-proto-background-color: #D2D2E4; +--memdef-proto-text-color: #131320; +--memdef-proto-text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--memdef-doc-background-color: white; +--memdef-param-name-color: #602020; +--memdef-template-color: #36365B; + +/* tables */ +--table-cell-border-color: #1A1A2C; +--table-header-background-color: #25253E; +--table-header-foreground-color: #FFFFFF; + +/* labels */ +--label-background-color: #55558E; +--label-left-top-border-color: #42426F; +--label-right-bottom-border-color: #AFAFCF; +--label-foreground-color: white; + +/** navigation bar/tree/menu */ +--nav-background-color: #F7F7FA; +--nav-foreground-color: #23233B; +--nav-gradient-image: url('tab_b.png'); +--nav-gradient-hover-image: url('tab_h.png'); +--nav-gradient-active-image: url('tab_a.png'); +--nav-gradient-active-image-parent: url("../tab_a.png"); +--nav-separator-image: url('tab_s.png'); +--nav-breadcrumb-image: url('bc_s.png'); +--nav-breadcrumb-border-color: #ACACCD; +--nav-splitbar-image: url('splitbar.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #161625; +--nav-text-hover-color: white; +--nav-text-active-color: white; +--nav-text-normal-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #23233B; +--nav-menu-background-color: white; +--nav-menu-foreground-color: #555555; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.5); +--nav-arrow-color: #7D7DB1; +--nav-arrow-selected-color: #7D7DB1; + +/* table of contents */ +--toc-background-color: #F0F0F6; +--toc-border-color: #C9C9DF; +--toc-header-color: #36365B; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: white; +--search-foreground-color: #909090; +--search-magnification-image: url('mag.svg'); +--search-magnification-select-image: url('mag_sel.svg'); +--search-active-color: black; +--search-filter-background-color: #F7F7FA; +--search-filter-foreground-color: black; +--search-filter-border-color: #6F6FA9; +--search-filter-highlight-text-color: white; +--search-filter-highlight-bg-color: #2B2B48; +--search-results-foreground-color: #303051; +--search-results-background-color: #E7E7F0; +--search-results-border-color: black; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #555; + +/** code fragments */ +--code-keyword-color: #008000; +--code-type-keyword-color: #604020; +--code-flow-keyword-color: #E08000; +--code-comment-color: #800000; +--code-preprocessor-color: #806020; +--code-string-literal-color: #002080; +--code-char-literal-color: #008080; +--code-xml-cdata-color: black; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #36365B; +--code-external-link-color: #36365B; +--fragment-foreground-color: black; +--fragment-background-color: #FAFAFC; +--fragment-border-color: #AFAFCF; +--fragment-lineno-border-color: #00FF00; +--fragment-lineno-background-color: #E8E8E8; +--fragment-lineno-foreground-color: black; +--fragment-lineno-link-fg-color: #36365B; +--fragment-lineno-link-bg-color: #D8D8D8; +--fragment-lineno-link-hover-fg-color: #36365B; +--fragment-lineno-link-hover-bg-color: #C8C8C8; +--tooltip-foreground-color: black; +--tooltip-background-color: white; +--tooltip-border-color: gray; +--tooltip-doc-color: grey; +--tooltip-declaration-color: #006318; +--tooltip-link-color: #36365B; +--tooltip-shadow: 1px 1px 7px gray; + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +} + +@media (prefers-color-scheme: dark) { + html:not(.dark-mode) { + color-scheme: dark; + +/* page base colors */ +--page-background-color: black; +--page-foreground-color: #C9D1D9; +--page-link-color: #6F6FA9; +--page-visited-link-color: #8686B6; + +/* index */ +--index-odd-item-bg-color: #030305; +--index-even-item-bg-color: black; +--index-header-color: #AFAFCF; +--index-separator-color: #202036; + +/* header */ +--header-background-color: #010102; +--header-separator-color: #07070C; +--header-gradient-image: url('nav_hd.png'); +--group-header-separator-color: #161625; +--group-header-color: #6F6FA9; +--inherit-header-color: #A0A0A0; + +--footer-foreground-color: #474776; +--footer-logo-width: 60px; +--citation-label-color: #6F6FA9; +--glow-color: cyan; + +--title-background-color: #020203; +--title-separator-color: #222239; +--directory-separator-color: #161625; +--separator-color: #161625; + +--blockquote-background-color: #050509; +--blockquote-border-color: #161625; + +--scrollbar-thumb-color: #161625; +--scrollbar-background-color: #010102; + +--icon-background-color: #202036; +--icon-foreground-color: #AFAFCF; +--icon-doc-image: url('docd.svg'); +--icon-folder-open-image: url('folderopend.svg'); +--icon-folder-closed-image: url('folderclosedd.svg'); + +/* brief member declaration list */ +--memdecl-background-color: #030305; +--memdecl-separator-color: #19192A; +--memdecl-foreground-color: #BBB; +--memdecl-template-color: #5B5B99; + +/* detailed member list */ +--memdef-border-color: #11111D; +--memdef-title-background-color: #0C0C14; +--memdef-title-gradient-image: url('nav_fd.png'); +--memdef-proto-background-color: #0A0A12; +--memdef-proto-text-color: #7F7FB2; +--memdef-proto-text-shadow: 0px 1px 1px rgba(0, 0, 0, 0.9); +--memdef-doc-background-color: black; +--memdef-param-name-color: #D28757; +--memdef-template-color: #5B5B99; + +/* tables */ +--table-cell-border-color: #161625; +--table-header-background-color: #161625; +--table-header-foreground-color: #AFAFCF; + +/* labels */ +--label-background-color: #23233A; +--label-left-top-border-color: #36365B; +--label-right-bottom-border-color: #161625; +--label-foreground-color: #CCCCCC; + +/** navigation bar/tree/menu */ +--nav-background-color: #050509; +--nav-foreground-color: #23233B; +--nav-gradient-image: url('tab_bd.png'); +--nav-gradient-hover-image: url('tab_hd.png'); +--nav-gradient-active-image: url('tab_ad.png'); +--nav-gradient-active-image-parent: url("../tab_ad.png"); +--nav-separator-image: url('tab_sd.png'); +--nav-breadcrumb-image: url('bc_sd.png'); +--nav-breadcrumb-border-color: #181828; +--nav-splitbar-image: url('splitbard.png'); +--nav-font-size-level1: 13px; +--nav-font-size-level2: 10px; +--nav-font-size-level3: 9px; +--nav-text-normal-color: #9D9DC4; +--nav-text-hover-color: #CECEE1; +--nav-text-active-color: #CECEE1; +--nav-text-normal-shadow: 0px 1px 1px black; +--nav-text-hover-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-text-active-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +--nav-menu-button-color: #9D9DC4; +--nav-menu-background-color: #000001; +--nav-menu-foreground-color: #BBBBBB; +--nav-menu-toggle-color: rgba(255, 255, 255, 0.2); +--nav-arrow-color: #202036; +--nav-arrow-selected-color: #6F6FA9; + +/* table of contents */ +--toc-background-color: #07070D; +--toc-border-color: #0F0F1A; +--toc-header-color: #8686B6; +--toc-down-arrow-image: url("data:image/svg+xml;utf8,&%238595;"); + +/** search field */ +--search-background-color: black; +--search-foreground-color: #C5C5C5; +--search-magnification-image: url('mag_d.svg'); +--search-magnification-select-image: url('mag_seld.svg'); +--search-active-color: #C5C5C5; +--search-filter-background-color: #050509; +--search-filter-foreground-color: #6F6FA9; +--search-filter-border-color: #5B5B99; +--search-filter-highlight-text-color: #A5A5C9; +--search-filter-highlight-bg-color: #161625; +--search-results-background-color: #050509; +--search-results-foreground-color: #6F6FA9; +--search-results-border-color: #5B5B99; +--search-box-shadow: inset 0.5px 0.5px 3px 0px #1C1C2F; + +/** code fragments */ +--code-keyword-color: #CC99CD; +--code-type-keyword-color: #AB99CD; +--code-flow-keyword-color: #E08000; +--code-comment-color: #717790; +--code-preprocessor-color: #65CABE; +--code-string-literal-color: #7EC699; +--code-char-literal-color: #00E0F0; +--code-xml-cdata-color: #C9D1D9; +--code-vhdl-digit-color: #FF00FF; +--code-vhdl-char-color: #000000; +--code-vhdl-keyword-color: #700070; +--code-vhdl-logic-color: #FF0000; +--code-link-color: #79C0FF; +--code-external-link-color: #79C0FF; +--fragment-foreground-color: #C9D1D9; +--fragment-background-color: black; +--fragment-border-color: #30363D; +--fragment-lineno-border-color: #30363D; +--fragment-lineno-background-color: black; +--fragment-lineno-foreground-color: #6E7681; +--fragment-lineno-link-fg-color: #6E7681; +--fragment-lineno-link-bg-color: #303030; +--fragment-lineno-link-hover-fg-color: #8E96A1; +--fragment-lineno-link-hover-bg-color: #505050; +--tooltip-foreground-color: #C9D1D9; +--tooltip-background-color: #202020; +--tooltip-border-color: #C9D1D9; +--tooltip-doc-color: #D9E1E9; +--tooltip-declaration-color: #20C348; +--tooltip-link-color: #79C0FF; +--tooltip-shadow: none; + +/** font-family */ +--font-family-normal: Roboto,sans-serif; +--font-family-monospace: 'JetBrains Mono',Consolas,Monaco,'Andale Mono','Ubuntu Mono',monospace,fixed; +--font-family-nav: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; +--font-family-title: Tahoma,Arial,sans-serif; +--font-family-toc: Verdana,'DejaVu Sans',Geneva,sans-serif; +--font-family-search: Arial,Verdana,sans-serif; +--font-family-icon: Arial,Helvetica; +--font-family-tooltip: Roboto,sans-serif; + +}} +body { + background-color: var(--page-background-color); + color: var(--page-foreground-color); +} + +body, table, div, p, dl { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 22px; +} + +/* @group Heading Levels */ + +.title { + font-weight: 400; + font-size: 14px; + font-family: var(--font-family-normal); + line-height: 28px; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h1.groupheader { + font-size: 150%; +} + +h2.groupheader { + border-bottom: 1px solid var(--group-header-separator-color); + color: var(--group-header-color); + font-size: 150%; + font-weight: normal; + margin-top: 1.75em; + padding-top: 8px; + padding-bottom: 4px; + width: 100%; +} + +h3.groupheader { + font-size: 100%; +} + +h1, h2, h3, h4, h5, h6 { + -webkit-transition: text-shadow 0.5s linear; + -moz-transition: text-shadow 0.5s linear; + -ms-transition: text-shadow 0.5s linear; + -o-transition: text-shadow 0.5s linear; + transition: text-shadow 0.5s linear; + margin-right: 15px; +} + +h1.glow, h2.glow, h3.glow, h4.glow, h5.glow, h6.glow { + text-shadow: 0 0 15px var(--glow-color); +} + +dt { + font-weight: bold; +} + +p.startli, p.startdd { + margin-top: 2px; +} + +th p.starttd, th p.intertd, th p.endtd { + font-size: 100%; + font-weight: 700; +} + +p.starttd { + margin-top: 0px; +} + +p.endli { + margin-bottom: 0px; +} + +p.enddd { + margin-bottom: 4px; +} + +p.endtd { + margin-bottom: 2px; +} + +p.interli { +} + +p.interdd { +} + +p.intertd { +} + +/* @end */ + +caption { + font-weight: bold; +} + +span.legend { + font-size: 70%; + text-align: center; +} + +h3.version { + font-size: 90%; + text-align: center; +} + +div.navtab { + padding-right: 15px; + text-align: right; + line-height: 110%; +} + +div.navtab table { + border-spacing: 0; +} + +td.navtab { + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL { + background-image: var(--nav-gradient-active-image); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: var(--index-separator-color); +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: var(--index-header-color); +} + +.alphachar a:hover, .alphachar a:visited{ + text-decoration: none; +} + +.classindex dl { + padding: 25px; + column-count:1 +} + +.classindex dd { + display:inline-block; + margin-left: 50px; + width: 90%; + line-height: 1.15em; +} + +.classindex dl.even { + background-color: var(--index-even-item-bg-color); +} + +.classindex dl.odd { + background-color: var(--index-odd-item-bg-color); +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: var(--page-link-color); + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: var(--page-visited-link-color); +} + +a:hover { + text-decoration: underline; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: var(--code-link-color); +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: var(--code-external-link-color); +} + +a.code.hl_class { /* style for links to class names in code snippets */ } +a.code.hl_struct { /* style for links to struct names in code snippets */ } +a.code.hl_union { /* style for links to union names in code snippets */ } +a.code.hl_interface { /* style for links to interface names in code snippets */ } +a.code.hl_protocol { /* style for links to protocol names in code snippets */ } +a.code.hl_category { /* style for links to category names in code snippets */ } +a.code.hl_exception { /* style for links to exception names in code snippets */ } +a.code.hl_service { /* style for links to service names in code snippets */ } +a.code.hl_singleton { /* style for links to singleton names in code snippets */ } +a.code.hl_concept { /* style for links to concept names in code snippets */ } +a.code.hl_namespace { /* style for links to namespace names in code snippets */ } +a.code.hl_package { /* style for links to package names in code snippets */ } +a.code.hl_define { /* style for links to macro names in code snippets */ } +a.code.hl_function { /* style for links to function names in code snippets */ } +a.code.hl_variable { /* style for links to variable names in code snippets */ } +a.code.hl_typedef { /* style for links to typedef names in code snippets */ } +a.code.hl_enumvalue { /* style for links to enum value names in code snippets */ } +a.code.hl_enumeration { /* style for links to enumeration names in code snippets */ } +a.code.hl_signal { /* style for links to Qt signal names in code snippets */ } +a.code.hl_slot { /* style for links to Qt slot names in code snippets */ } +a.code.hl_friend { /* style for links to friend names in code snippets */ } +a.code.hl_dcop { /* style for links to KDE3 DCOP names in code snippets */ } +a.code.hl_property { /* style for links to property names in code snippets */ } +a.code.hl_event { /* style for links to event names in code snippets */ } +a.code.hl_sequence { /* style for links to sequence names in code snippets */ } +a.code.hl_dictionary { /* style for links to dictionary names in code snippets */ } + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: visible; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; + list-style-type: none; +} + +#side-nav ul { + overflow: visible; /* reset ul rule for scroll bar in GENERATE_TREEVIEW window */ +} + +#main-nav ul { + overflow: visible; /* reset ul rule for the navigation bar drop down lists */ +} + +.fragment { + text-align: left; + direction: ltr; + overflow-x: auto; /*Fixed: fragment lines overlap floating elements*/ + overflow-y: hidden; +} + +pre.fragment { + border: 1px solid var(--fragment-border-color); + background-color: var(--fragment-background-color); + color: var(--fragment-foreground-color); + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: var(--font-family-monospace); + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + color: var(--fragment-foreground-color); + background-color: var(--fragment-background-color); + border: 1px solid var(--fragment-border-color); +} + +div.line { + font-family: var(--font-family-monospace); + font-size: 13px; + min-height: 13px; + line-height: 1.2; + text-wrap: unrestricted; + white-space: -moz-pre-wrap; /* Moz */ + white-space: -pre-wrap; /* Opera 4-6 */ + white-space: -o-pre-wrap; /* Opera 7 */ + white-space: pre-wrap; /* CSS3 */ + word-wrap: break-word; /* IE 5.5+ */ + text-indent: -53px; + padding-left: 53px; + padding-bottom: 0px; + margin: 0px; + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +div.line:after { + content:"\000A"; + white-space: pre; +} + +div.line.glow { + background-color: var(--glow-color); + box-shadow: 0 0 10px var(--glow-color); +} + + +span.lineno { + padding-right: 4px; + margin-right: 9px; + text-align: right; + border-right: 2px solid var(--fragment-lineno-border-color); + color: var(--fragment-lineno-foreground-color); + background-color: var(--fragment-lineno-background-color); + white-space: pre; +} +span.lineno a, span.lineno a:visited { + color: var(--fragment-lineno-link-fg-color); + background-color: var(--fragment-lineno-link-bg-color); +} + +span.lineno a:hover { + color: var(--fragment-lineno-link-hover-fg-color); + background-color: var(--fragment-lineno-link-hover-bg-color); +} + +.lineno { + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +div.classindex ul { + list-style: none; + padding-left: 0; +} + +div.classindex span.ai { + display: inline-block; +} + +div.groupHeader { + margin-left: 16px; + margin-top: 12px; + font-weight: bold; +} + +div.groupText { + margin-left: 16px; + font-style: italic; +} + +body { + color: var(--page-foreground-color); + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +p.formulaDsp { + text-align: center; +} + +img.dark-mode-visible { + display: none; +} +img.light-mode-visible { + display: none; +} + +img.formulaDsp { + +} + +img.formulaInl, img.inline { + vertical-align: middle; +} + +div.center { + text-align: center; + margin-top: 0px; + margin-bottom: 0px; + padding: 0px; +} + +div.center img { + border: 0px; +} + +address.footer { + text-align: right; + padding-right: 12px; +} + +img.footer { + border: 0px; + vertical-align: middle; + width: var(--footer-logo-width); +} + +.compoundTemplParams { + color: var(--memdecl-template-color); + font-size: 80%; + line-height: 120%; +} + +/* @group Code Colorization */ + +span.keyword { + color: var(--code-keyword-color); +} + +span.keywordtype { + color: var(--code-type-keyword-color); +} + +span.keywordflow { + color: var(--code-flow-keyword-color); +} + +span.comment { + color: var(--code-comment-color); +} + +span.preprocessor { + color: var(--code-preprocessor-color); +} + +span.stringliteral { + color: var(--code-string-literal-color); +} + +span.charliteral { + color: var(--code-char-literal-color); +} + +span.xmlcdata { + color: var(--code-xml-cdata-color); +} + +span.vhdldigit { + color: var(--code-vhdl-digit-color); +} + +span.vhdlchar { + color: var(--code-vhdl-char-color); +} + +span.vhdlkeyword { + color: var(--code-vhdl-keyword-color); +} + +span.vhdllogic { + color: var(--code-vhdl-logic-color); +} + +blockquote { + background-color: var(--blockquote-background-color); + border-left: 2px solid var(--blockquote-border-color); + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +/* @end */ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid var(--table-cell-border-color); +} + +th.dirtab { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid var(--separator-color); +} + +hr.footer { + height: 1px; +} + +/* @group Member Descriptions */ + +table.memberdecls { + border-spacing: 0px; + padding: 0px; +} + +.memberdecls td, .fieldtable tr { + -webkit-transition-property: background-color, box-shadow; + -webkit-transition-duration: 0.5s; + -moz-transition-property: background-color, box-shadow; + -moz-transition-duration: 0.5s; + -ms-transition-property: background-color, box-shadow; + -ms-transition-duration: 0.5s; + -o-transition-property: background-color, box-shadow; + -o-transition-duration: 0.5s; + transition-property: background-color, box-shadow; + transition-duration: 0.5s; +} + +.memberdecls td.glow, .fieldtable tr.glow { + background-color: var(--glow-color); + box-shadow: 0 0 15px var(--glow-color); +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: var(--memdecl-background-color); + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: var(--memdecl-foreground-color); +} + +.memSeparator { + border-bottom: 1px solid var(--memdecl-separator-color); + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: var(--memdecl-template-color); + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: var(--memdef-title-gradient-image); + background-repeat: repeat-x; + background-color: var(--memdef-title-background-color); + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: var(--memdef-template-color); + font-weight: normal; + margin-left: 9px; +} + +.mempage { + width: 100%; +} + +.memitem { + padding: 0; + margin-bottom: 10px; + margin-right: 5px; + -webkit-transition: box-shadow 0.5s linear; + -moz-transition: box-shadow 0.5s linear; + -ms-transition: box-shadow 0.5s linear; + -o-transition: box-shadow 0.5s linear; + transition: box-shadow 0.5s linear; + display: table !important; + width: 100%; +} + +.memitem.glow { + box-shadow: 0 0 15px var(--glow-color); +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 0px 6px 0px; + color: var(--memdef-proto-text-color); + font-weight: bold; + text-shadow: var(--memdef-proto-text-shadow); + background-color: var(--memdef-proto-background-color); + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; +} + +.overload { + font-family: var(--font-family-monospace); + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid var(--memdef-border-color); + border-left: 1px solid var(--memdef-border-color); + border-right: 1px solid var(--memdef-border-color); + padding: 6px 10px 2px 10px; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: var(--memdef-doc-background-color); + /* opera specific markup */ + border-bottom-left-radius: 4px; + border-bottom-right-radius: 4px; + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + /* firefox specific markup */ + -moz-border-radius-bottomleft: 4px; + -moz-border-radius-bottomright: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + /* webkit specific markup */ + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +dl.reflist dt { + padding: 5px; +} + +dl.reflist dd { + margin: 0px 0px 10px 0px; + padding: 5px; +} + +.paramkey { + text-align: right; +} + +.paramtype { + white-space: nowrap; +} + +.paramname { + color: var(--memdef-param-name-color); + white-space: nowrap; +} +.paramname em { + font-style: normal; +} +.paramname code { + line-height: 14px; +} + +.params, .retval, .exception, .tparams { + margin-left: 0px; + padding-left: 0px; +} + +.params .paramname, .retval .paramname, .tparams .paramname, .exception .paramname { + font-weight: bold; + vertical-align: top; +} + +.params .paramtype, .tparams .paramtype { + font-style: italic; + vertical-align: top; +} + +.params .paramdir, .tparams .paramdir { + font-family: var(--font-family-monospace); + vertical-align: top; +} + +table.mlabels { + border-spacing: 0px; +} + +td.mlabels-left { + width: 100%; + padding: 0px; +} + +td.mlabels-right { + vertical-align: bottom; + padding: 0px; + white-space: nowrap; +} + +span.mlabels { + margin-left: 8px; +} + +span.mlabel { + background-color: var(--label-background-color); + border-top:1px solid var(--label-left-top-border-color); + border-left:1px solid var(--label-left-top-border-color); + border-right:1px solid var(--label-right-bottom-border-color); + border-bottom:1px solid var(--label-right-bottom-border-color); + text-shadow: none; + color: var(--label-foreground-color); + margin-right: 4px; + padding: 2px 3px; + border-radius: 3px; + font-size: 7pt; + white-space: nowrap; + vertical-align: middle; +} + + + +/* @end */ + +/* these are for tree view inside a (index) page */ + +div.directory { + margin: 10px 0px; + border-top: 1px solid var(--directory-separator-color); + border-bottom: 1px solid var(--directory-separator-color); + width: 100%; +} + +.directory table { + border-collapse:collapse; +} + +.directory td { + margin: 0px; + padding: 0px; + vertical-align: top; +} + +.directory td.entry { + white-space: nowrap; + padding-right: 6px; + padding-top: 3px; +} + +.directory td.entry a { + outline:none; +} + +.directory td.entry a img { + border: none; +} + +.directory td.desc { + width: 100%; + padding-left: 6px; + padding-right: 6px; + padding-top: 3px; + border-left: 1px solid rgba(0,0,0,0.05); +} + +.directory tr.odd { + padding-left: 6px; + background-color: var(--index-odd-item-bg-color); +} + +.directory tr.even { + padding-left: 6px; + background-color: var(--index-even-item-bg-color); +} + +.directory img { + vertical-align: -30%; +} + +.directory .levels { + white-space: nowrap; + width: 100%; + text-align: right; + font-size: 9pt; +} + +.directory .levels span { + cursor: pointer; + padding-left: 2px; + padding-right: 2px; + color: var(--page-link-color); +} + +.arrow { + color: var(--nav-arrow-color); + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; + cursor: pointer; + font-size: 80%; + display: inline-block; + width: 16px; + height: 22px; +} + +.icon { + font-family: var(--font-family-icon); + line-height: normal; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: var(--icon-background-color); + color: var(--icon-foreground-color); + text-align: center; + border-radius: 4px; + margin-left: 2px; + margin-right: 2px; +} + +.icona { + width: 24px; + height: 22px; + display: inline-block; +} + +.iconfopen { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-open-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-folder-closed-image); + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:var(--icon-doc-image); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +/* @end */ + +div.dynheader { + margin-top: 8px; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +address { + font-style: normal; + color: var(--footer-foreground-color); +} + +table.doxtable caption { + caption-side: top; +} + +table.doxtable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.doxtable td, table.doxtable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + margin-bottom: 10px; + border: 1px solid var(--memdef-border-color); + border-spacing: 0px; + border-radius: 4px; + box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); +} + +.fieldtable td, .fieldtable th { + padding: 3px 7px 2px; +} + +.fieldtable td.fieldtype, .fieldtable td.fieldname { + white-space: nowrap; + border-right: 1px solid var(--memdef-border-color); + border-bottom: 1px solid var(--memdef-border-color); + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid var(--memdef-border-color); +} + +.fieldtable td.fielddoc p:first-child { + margin-top: 0px; +} + +.fieldtable td.fielddoc p:last-child { + margin-bottom: 2px; +} + +.fieldtable tr:last-child td { + border-bottom: none; +} + +.fieldtable th { + background-image: var(--memdef-title-gradient-image); + background-repeat:repeat-x; + background-color: var(--memdef-title-background-color); + font-size: 90%; + color: var(--memdef-proto-text-color); + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid var(--memdef-border-color); +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: var(--nav-gradient-image); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image: var(--nav-gradient-image); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:var(--nav-text-normal-color); + border:solid 1px var(--nav-breadcrumb-border-color); + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:var(--nav-breadcrumb-image); + background-repeat:no-repeat; + background-position:right; + color: var(--nav-foreground-color); +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: var(--nav-text-normal-color); + font-family: var(--font-family-nav); + text-shadow: var(--nav-text-normal-shadow); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color: var(--nav-text-hover-color); + text-shadow: var(--nav-text-hover-shadow); +} + +.navpath li.footer +{ + list-style-type:none; + float:right; + padding-left:10px; + padding-right:15px; + background-image:none; + background-repeat:no-repeat; + background-position:right; + color: var(--footer-foreground-color); + font-size: 8pt; +} + + +div.summary +{ + float: right; + font-size: 8pt; + padding-right: 5px; + width: 50%; + text-align: right; +} + +div.summary a +{ + white-space: nowrap; +} + +table.classindex +{ + margin: 10px; + white-space: nowrap; + margin-left: 3%; + margin-right: 3%; + width: 94%; + border: 0; + border-spacing: 0; + padding: 0; +} + +div.ingroups +{ + font-size: 8pt; + width: 50%; + text-align: left; +} + +div.ingroups a +{ + white-space: nowrap; +} + +div.header +{ + background-image: var(--header-gradient-image); + background-repeat:repeat-x; + background-color: var(--header-background-color); + margin: 0px; + border-bottom: 1px solid var(--header-separator-color); +} + +div.headertitle +{ + padding: 5px 5px 5px 10px; +} + +.PageDocRTL-title div.headertitle { + text-align: right; + direction: rtl; +} + +dl { + padding: 0 0 0 0; +} + +/* dl.note, dl.warning, dl.attention, dl.pre, dl.post, dl.invariant, dl.deprecated, dl.todo, dl.test, dl.bug, dl.examples */ +dl.section { + margin-left: 0px; + padding-left: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.pre, dl.post, dl.invariant { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectrow +{ + height: 56px; +} + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; + padding-left: 0.5em; +} + +#projectname +{ + font-size: 200%; + font-family: var(--font-family-title); + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font-size: 90%; + font-family: var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font-size: 50%; + font-family: 50% var(--font-family-title); + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid var(--title-separator-color); + background-color: var(--title-background-color); +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:var(--citation-label-color); + float:left; + font-weight:bold; + margin-right:10px; + padding:5px; + text-align:right; + width:52px; +} + +dl.citelist dd { + margin:2px 0 2px 72px; + padding:5px 0; +} + +div.toc { + padding: 14px 25px; + background-color: var(--toc-background-color); + border: 1px solid var(--toc-border-color); + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +div.toc li { + background: var(--toc-down-arrow-image) no-repeat scroll 0 5px transparent; + font: 10px/1.2 var(--font-family-toc); + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +div.toc h3 { + font: bold 12px/1.2 var(--font-family-toc); + color: var(--toc-header-color); + border-bottom: 0 none; + margin: 0; +} + +div.toc ul { + list-style: none outside none; + border: medium none; + padding: 0px; +} + +div.toc li.level1 { + margin-left: 0px; +} + +div.toc li.level2 { + margin-left: 15px; +} + +div.toc li.level3 { + margin-left: 15px; +} + +div.toc li.level4 { + margin-left: 15px; +} + +span.emoji { + /* font family used at the site: https://unicode.org/emoji/charts/full-emoji-list.html + * font-family: "Noto Color Emoji", "Apple Color Emoji", "Segoe UI Emoji", Times, Symbola, Aegyptus, Code2000, Code2001, Code2002, Musica, serif, LastResort; + */ +} + +span.obfuscator { + display: none; +} + +.inherit_header { + font-weight: bold; + color: var(--inherit-header-color); + cursor: pointer; + -webkit-touch-callout: none; + -webkit-user-select: none; + -khtml-user-select: none; + -moz-user-select: none; + -ms-user-select: none; + user-select: none; +} + +.inherit_header td { + padding: 6px 0px 2px 5px; +} + +.inherit { + display: none; +} + +tr.heading h2 { + margin-top: 12px; + margin-bottom: 4px; +} + +/* tooltip related style info */ + +.ttc { + position: absolute; + display: none; +} + +#powerTip { + cursor: default; + /*white-space: nowrap;*/ + color: var(--tooltip-foreground-color); + background-color: var(--tooltip-background-color); + border: 1px solid var(--tooltip-border-color); + border-radius: 4px 4px 4px 4px; + box-shadow: var(--tooltip-shadow); + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: var(--tooltip-doc-color); + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip a { + color: var(--tooltip-link-color); +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: var(--tooltip-declaration-color); +} + +#powerTip div { + margin: 0px; + padding: 0px; + font-size: 12px; + font-family: var(--font-family-tooltip); + line-height: 16px; +} + +#powerTip:before, #powerTip:after { + content: ""; + position: absolute; + margin: 0px; +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.s:after, #powerTip.s:before, +#powerTip.w:after, #powerTip.w:before, +#powerTip.e:after, #powerTip.e:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.nw:after, #powerTip.nw:before, +#powerTip.sw:after, #powerTip.sw:before { + border: solid transparent; + content: " "; + height: 0; + width: 0; + position: absolute; +} + +#powerTip.n:after, #powerTip.s:after, +#powerTip.w:after, #powerTip.e:after, +#powerTip.nw:after, #powerTip.ne:after, +#powerTip.sw:after, #powerTip.se:after { + border-color: rgba(255, 255, 255, 0); +} + +#powerTip.n:before, #powerTip.s:before, +#powerTip.w:before, #powerTip.e:before, +#powerTip.nw:before, #powerTip.ne:before, +#powerTip.sw:before, #powerTip.se:before { + border-color: rgba(128, 128, 128, 0); +} + +#powerTip.n:after, #powerTip.n:before, +#powerTip.ne:after, #powerTip.ne:before, +#powerTip.nw:after, #powerTip.nw:before { + top: 100%; +} + +#powerTip.n:after, #powerTip.ne:after, #powerTip.nw:after { + border-top-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before, #powerTip.ne:before, #powerTip.nw:before { + border-top-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} +#powerTip.n:after, #powerTip.n:before { + left: 50%; +} + +#powerTip.nw:after, #powerTip.nw:before { + right: 14px; +} + +#powerTip.ne:after, #powerTip.ne:before { + left: 14px; +} + +#powerTip.s:after, #powerTip.s:before, +#powerTip.se:after, #powerTip.se:before, +#powerTip.sw:after, #powerTip.sw:before { + bottom: 100%; +} + +#powerTip.s:after, #powerTip.se:after, #powerTip.sw:after { + border-bottom-color: var(--tooltip-background-color); + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: var(--tooltip-border-color); + border-width: 11px; + margin: 0px -11px; +} + +#powerTip.s:after, #powerTip.s:before { + left: 50%; +} + +#powerTip.sw:after, #powerTip.sw:before { + right: 14px; +} + +#powerTip.se:after, #powerTip.se:before { + left: 14px; +} + +#powerTip.e:after, #powerTip.e:before { + left: 100%; +} +#powerTip.e:after { + border-left-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: var(--tooltip-border-color); + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: var(--tooltip-border-color); + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +@media print +{ + #top { display: none; } + #side-nav { display: none; } + #nav-path { display: none; } + body { overflow:visible; } + h1, h2, h3, h4, h5, h6 { page-break-after: avoid; } + .summary { display: none; } + .memitem { page-break-inside: avoid; } + #doc-content + { + margin-left:0 !important; + height:auto !important; + width:auto !important; + overflow:inherit; + display:inline; + } +} + +/* @group Markdown */ + +table.markdownTable { + border-collapse:collapse; + margin-top: 4px; + margin-bottom: 4px; +} + +table.markdownTable td, table.markdownTable th { + border: 1px solid var(--table-cell-border-color); + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: var(--table-header-background-color); + color: var(--table-header-foreground-color); + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +th.markdownTableHeadLeft, td.markdownTableBodyLeft { + text-align: left +} + +th.markdownTableHeadRight, td.markdownTableBodyRight { + text-align: right +} + +th.markdownTableHeadCenter, td.markdownTableBodyCenter { + text-align: center +} + +tt, code, kbd, samp +{ + display: inline-block; +} +/* @end */ + +u { + text-decoration: underline; +} + +details>summary { + list-style-type: none; +} + +details > summary::-webkit-details-marker { + display: none; +} + +details>summary::before { + content: "\25ba"; + padding-right:4px; + font-size: 80%; +} + +details[open]>summary::before { + content: "\25bc"; + padding-right:4px; + font-size: 80%; +} + diff --git a/doxygen.svg b/doxygen.svg new file mode 100644 index 00000000..cf740522 --- /dev/null +++ b/doxygen.svg @@ -0,0 +1,28 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/dynsections.js b/dynsections.js new file mode 100644 index 00000000..1f4cd14a --- /dev/null +++ b/dynsections.js @@ -0,0 +1,130 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + 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 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function toggleVisibility(linkObj) +{ + var base = $(linkObj).attr('id'); + var summary = $('#'+base+'-summary'); + var content = $('#'+base+'-content'); + var trigger = $('#'+base+'-trigger'); + var src=$(trigger).attr('src'); + if (content.is(':visible')===true) { + content.hide(); + summary.show(); + $(linkObj).addClass('closed').removeClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-8)+'closed.png'); + } else { + content.show(); + summary.hide(); + $(linkObj).removeClass('closed').addClass('opened'); + $(trigger).attr('src',src.substring(0,src.length-10)+'open.png'); + } + return false; +} + +function updateStripes() +{ + $('table.directory tr'). + removeClass('even').filter(':visible:even').addClass('even'); + $('table.directory tr'). + removeClass('odd').filter(':visible:odd').addClass('odd'); +} + +function toggleLevel(level) +{ + $('table.directory tr').each(function() { + var l = this.id.split('_').length-1; + var i = $('#img'+this.id.substring(3)); + var a = $('#arr'+this.id.substring(3)); + if (l + + + + + + +Arax: File List + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
File List
+
+ +
+ + + + diff --git a/files_dup.js b/files_dup.js new file mode 100644 index 00000000..89e9042f --- /dev/null +++ b/files_dup.js @@ -0,0 +1,5 @@ +var files_dup = +[ + [ "include", "dir_d44c64559bbebec7f509842c48db8b23.html", "dir_d44c64559bbebec7f509842c48db8b23" ], + [ "src", "dir_68267d1309a1af8e8297ef4c3efbcdba.html", "dir_68267d1309a1af8e8297ef4c3efbcdba" ] +]; \ No newline at end of file diff --git a/folderclosed.svg b/folderclosed.svg new file mode 100644 index 00000000..fa2bb612 --- /dev/null +++ b/folderclosed.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/folderclosedd.svg b/folderclosedd.svg new file mode 100644 index 00000000..1436ddf0 --- /dev/null +++ b/folderclosedd.svg @@ -0,0 +1,11 @@ + + + + + + + + + + diff --git a/folderopen.svg b/folderopen.svg new file mode 100644 index 00000000..befd999f --- /dev/null +++ b/folderopen.svg @@ -0,0 +1,17 @@ + + + + + + + + + + diff --git a/folderopend.svg b/folderopend.svg new file mode 100644 index 00000000..50afdf95 --- /dev/null +++ b/folderopend.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + diff --git a/functions.html b/functions.html new file mode 100644 index 00000000..c1fa0eb1 --- /dev/null +++ b/functions.html @@ -0,0 +1,339 @@ + + + + + + + +Arax: Data Fields + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all struct and union fields with links to the structures/unions they belong to:
+ +

- _ -

    +
  • __attribute__() : queue
  • +
+ + +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- k -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- q -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- v -

+
+
+ + + + diff --git a/functions_func.html b/functions_func.html new file mode 100644 index 00000000..ab716454 --- /dev/null +++ b/functions_func.html @@ -0,0 +1,107 @@ + + + + + + + +Arax: Data Fields - Functions + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the structures/unions they belong to:
    +
  • __attribute__() : queue
  • +
+
+
+ + + + diff --git a/functions_vars.html b/functions_vars.html new file mode 100644 index 00000000..7fee1eba --- /dev/null +++ b/functions_vars.html @@ -0,0 +1,334 @@ + + + + + + + +Arax: Data Fields - Variables + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the structures/unions they belong to:
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- d -

+ + +

- e -

+ + +

- f -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- k -

+ + +

- l -

+ + +

- m -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- q -

+ + +

- r -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+ + +

- v -

+
+
+ + + + diff --git a/globals.html b/globals.html new file mode 100644 index 00000000..5cb29bcc --- /dev/null +++ b/globals.html @@ -0,0 +1,119 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- _ -

+
+
+ + + + diff --git a/globals_a.html b/globals_a.html new file mode 100644 index 00000000..b2099b26 --- /dev/null +++ b/globals_a.html @@ -0,0 +1,329 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- a -

+
+
+ + + + diff --git a/globals_b.html b/globals_b.html new file mode 100644 index 00000000..2d236048 --- /dev/null +++ b/globals_b.html @@ -0,0 +1,116 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- b -

+
+
+ + + + diff --git a/globals_c.html b/globals_c.html new file mode 100644 index 00000000..6e198eca --- /dev/null +++ b/globals_c.html @@ -0,0 +1,145 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- c -

+
+
+ + + + diff --git a/globals_d.html b/globals_d.html new file mode 100644 index 00000000..a4a08b4c --- /dev/null +++ b/globals_d.html @@ -0,0 +1,143 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- d -

+
+
+ + + + diff --git a/globals_defs.html b/globals_defs.html new file mode 100644 index 00000000..d9348007 --- /dev/null +++ b/globals_defs.html @@ -0,0 +1,109 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- _ -

+
+
+ + + + diff --git a/globals_defs.js b/globals_defs.js new file mode 100644 index 00000000..5469c2f3 --- /dev/null +++ b/globals_defs.js @@ -0,0 +1,23 @@ +var globals_defs = +[ + [ "_", "globals_defs.html", null ], + [ "a", "globals_defs_a.html", null ], + [ "b", "globals_defs_b.html", null ], + [ "c", "globals_defs_c.html", null ], + [ "d", "globals_defs_d.html", null ], + [ "e", "globals_defs_e.html", null ], + [ "f", "globals_defs_f.html", null ], + [ "g", "globals_defs_g.html", null ], + [ "h", "globals_defs_h.html", null ], + [ "i", "globals_defs_i.html", null ], + [ "l", "globals_defs_l.html", null ], + [ "m", "globals_defs_m.html", null ], + [ "n", "globals_defs_n.html", null ], + [ "o", "globals_defs_o.html", null ], + [ "p", "globals_defs_p.html", null ], + [ "r", "globals_defs_r.html", null ], + [ "s", "globals_defs_s.html", null ], + [ "t", "globals_defs_t.html", null ], + [ "u", "globals_defs_u.html", null ], + [ "v", "globals_defs_v.html", null ] +]; \ No newline at end of file diff --git a/globals_defs_a.html b/globals_defs_a.html new file mode 100644 index 00000000..7486e2ee --- /dev/null +++ b/globals_defs_a.html @@ -0,0 +1,137 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- a -

+
+
+ + + + diff --git a/globals_defs_b.html b/globals_defs_b.html new file mode 100644 index 00000000..c26521e6 --- /dev/null +++ b/globals_defs_b.html @@ -0,0 +1,113 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- b -

+
+
+ + + + diff --git a/globals_defs_c.html b/globals_defs_c.html new file mode 100644 index 00000000..8b701bd3 --- /dev/null +++ b/globals_defs_c.html @@ -0,0 +1,137 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- c -

+
+
+ + + + diff --git a/globals_defs_d.html b/globals_defs_d.html new file mode 100644 index 00000000..3a66bbc6 --- /dev/null +++ b/globals_defs_d.html @@ -0,0 +1,141 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- d -

+
+
+ + + + diff --git a/globals_defs_e.html b/globals_defs_e.html new file mode 100644 index 00000000..78eab8b9 --- /dev/null +++ b/globals_defs_e.html @@ -0,0 +1,112 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- e -

+
+
+ + + + diff --git a/globals_defs_f.html b/globals_defs_f.html new file mode 100644 index 00000000..e27f1b4f --- /dev/null +++ b/globals_defs_f.html @@ -0,0 +1,117 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- f -

+
+
+ + + + diff --git a/globals_defs_g.html b/globals_defs_g.html new file mode 100644 index 00000000..d51ad465 --- /dev/null +++ b/globals_defs_g.html @@ -0,0 +1,112 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- g -

+
+
+ + + + diff --git a/globals_defs_h.html b/globals_defs_h.html new file mode 100644 index 00000000..eb7e10b8 --- /dev/null +++ b/globals_defs_h.html @@ -0,0 +1,112 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- h -

+
+
+ + + + diff --git a/globals_defs_i.html b/globals_defs_i.html new file mode 100644 index 00000000..a9f3cf19 --- /dev/null +++ b/globals_defs_i.html @@ -0,0 +1,127 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- i -

+
+
+ + + + diff --git a/globals_defs_l.html b/globals_defs_l.html new file mode 100644 index 00000000..b757dc9a --- /dev/null +++ b/globals_defs_l.html @@ -0,0 +1,114 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- l -

+
+
+ + + + diff --git a/globals_defs_m.html b/globals_defs_m.html new file mode 100644 index 00000000..0a84ea95 --- /dev/null +++ b/globals_defs_m.html @@ -0,0 +1,142 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- m -

+
+
+ + + + diff --git a/globals_defs_n.html b/globals_defs_n.html new file mode 100644 index 00000000..2946cb38 --- /dev/null +++ b/globals_defs_n.html @@ -0,0 +1,116 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- n -

+
+
+ + + + diff --git a/globals_defs_o.html b/globals_defs_o.html new file mode 100644 index 00000000..48cad5f5 --- /dev/null +++ b/globals_defs_o.html @@ -0,0 +1,116 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- o -

+
+
+ + + + diff --git a/globals_defs_p.html b/globals_defs_p.html new file mode 100644 index 00000000..ebfc19f2 --- /dev/null +++ b/globals_defs_p.html @@ -0,0 +1,121 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- p -

+
+
+ + + + diff --git a/globals_defs_r.html b/globals_defs_r.html new file mode 100644 index 00000000..1eb00c07 --- /dev/null +++ b/globals_defs_r.html @@ -0,0 +1,112 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- r -

+
+
+ + + + diff --git a/globals_defs_s.html b/globals_defs_s.html new file mode 100644 index 00000000..baa2af6b --- /dev/null +++ b/globals_defs_s.html @@ -0,0 +1,134 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- s -

+
+
+ + + + diff --git a/globals_defs_t.html b/globals_defs_t.html new file mode 100644 index 00000000..fa608be9 --- /dev/null +++ b/globals_defs_t.html @@ -0,0 +1,114 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- t -

+
+
+ + + + diff --git a/globals_defs_u.html b/globals_defs_u.html new file mode 100644 index 00000000..76712c6d --- /dev/null +++ b/globals_defs_u.html @@ -0,0 +1,144 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- u -

+
+
+ + + + diff --git a/globals_defs_v.html b/globals_defs_v.html new file mode 100644 index 00000000..bbb94846 --- /dev/null +++ b/globals_defs_v.html @@ -0,0 +1,110 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all macros with links to the files they belong to:
+ +

- v -

+
+
+ + + + diff --git a/globals_dup.js b/globals_dup.js new file mode 100644 index 00000000..6a85f55e --- /dev/null +++ b/globals_dup.js @@ -0,0 +1,24 @@ +var globals_dup = +[ + [ "_", "globals.html", null ], + [ "a", "globals_a.html", null ], + [ "b", "globals_b.html", null ], + [ "c", "globals_c.html", null ], + [ "d", "globals_d.html", null ], + [ "e", "globals_e.html", null ], + [ "f", "globals_f.html", null ], + [ "g", "globals_g.html", null ], + [ "h", "globals_h.html", null ], + [ "i", "globals_i.html", null ], + [ "l", "globals_l.html", null ], + [ "m", "globals_m.html", null ], + [ "n", "globals_n.html", null ], + [ "o", "globals_o.html", null ], + [ "p", "globals_p.html", null ], + [ "r", "globals_r.html", null ], + [ "s", "globals_s.html", null ], + [ "t", "globals_t.html", null ], + [ "u", "globals_u.html", null ], + [ "v", "globals_v.html", null ], + [ "w", "globals_w.html", null ] +]; \ No newline at end of file diff --git a/globals_e.html b/globals_e.html new file mode 100644 index 00000000..2102ef9a --- /dev/null +++ b/globals_e.html @@ -0,0 +1,113 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- e -

+
+
+ + + + diff --git a/globals_enum.html b/globals_enum.html new file mode 100644 index 00000000..46f6cd09 --- /dev/null +++ b/globals_enum.html @@ -0,0 +1,114 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all enums with links to the files they belong to:
+
+
+ + + + diff --git a/globals_eval.html b/globals_eval.html new file mode 100644 index 00000000..29b6b29d --- /dev/null +++ b/globals_eval.html @@ -0,0 +1,183 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all enum values with links to the files they belong to:
+ +

- a -

+ + +

- b -

+ + +

- c -

+ + +

- g -

+ + +

- h -

+ + +

- i -

+ + +

- n -

+ + +

- o -

+ + +

- p -

+ + +

- s -

+ + +

- t -

+ + +

- v -

+
+
+ + + + diff --git a/globals_f.html b/globals_f.html new file mode 100644 index 00000000..bf207338 --- /dev/null +++ b/globals_f.html @@ -0,0 +1,124 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- f -

+
+
+ + + + diff --git a/globals_func.html b/globals_func.html new file mode 100644 index 00000000..ab99ae2f --- /dev/null +++ b/globals_func.html @@ -0,0 +1,116 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- _ -

+
+
+ + + + diff --git a/globals_func.js b/globals_func.js new file mode 100644 index 00000000..f8c001eb --- /dev/null +++ b/globals_func.js @@ -0,0 +1,18 @@ +var globals_func = +[ + [ "_", "globals_func.html", null ], + [ "a", "globals_func_a.html", null ], + [ "c", "globals_func_c.html", null ], + [ "d", "globals_func_d.html", null ], + [ "f", "globals_func_f.html", null ], + [ "g", "globals_func_g.html", null ], + [ "h", "globals_func_h.html", null ], + [ "i", "globals_func_i.html", null ], + [ "m", "globals_func_m.html", null ], + [ "p", "globals_func_p.html", null ], + [ "r", "globals_func_r.html", null ], + [ "s", "globals_func_s.html", null ], + [ "t", "globals_func_t.html", null ], + [ "u", "globals_func_u.html", null ], + [ "w", "globals_func_w.html", null ] +]; \ No newline at end of file diff --git a/globals_func_a.html b/globals_func_a.html new file mode 100644 index 00000000..807ec63b --- /dev/null +++ b/globals_func_a.html @@ -0,0 +1,259 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- a -

+
+
+ + + + diff --git a/globals_func_c.html b/globals_func_c.html new file mode 100644 index 00000000..d40d0b64 --- /dev/null +++ b/globals_func_c.html @@ -0,0 +1,112 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- c -

+
+
+ + + + diff --git a/globals_func_d.html b/globals_func_d.html new file mode 100644 index 00000000..43c34bed --- /dev/null +++ b/globals_func_d.html @@ -0,0 +1,126 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- d -

+
+
+ + + + diff --git a/globals_func_f.html b/globals_func_f.html new file mode 100644 index 00000000..17144d20 --- /dev/null +++ b/globals_func_f.html @@ -0,0 +1,113 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- f -

+
+
+ + + + diff --git a/globals_func_g.html b/globals_func_g.html new file mode 100644 index 00000000..f487d676 --- /dev/null +++ b/globals_func_g.html @@ -0,0 +1,109 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- g -

+
+
+ + + + diff --git a/globals_func_h.html b/globals_func_h.html new file mode 100644 index 00000000..9c08dea1 --- /dev/null +++ b/globals_func_h.html @@ -0,0 +1,109 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- h -

+
+
+ + + + diff --git a/globals_func_i.html b/globals_func_i.html new file mode 100644 index 00000000..ef85b694 --- /dev/null +++ b/globals_func_i.html @@ -0,0 +1,117 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- i -

+
+
+ + + + diff --git a/globals_func_m.html b/globals_func_m.html new file mode 100644 index 00000000..90ddcef9 --- /dev/null +++ b/globals_func_m.html @@ -0,0 +1,111 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- m -

+
+
+ + + + diff --git a/globals_func_p.html b/globals_func_p.html new file mode 100644 index 00000000..ce08070e --- /dev/null +++ b/globals_func_p.html @@ -0,0 +1,109 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- p -

+
+
+ + + + diff --git a/globals_func_r.html b/globals_func_r.html new file mode 100644 index 00000000..565b0ea8 --- /dev/null +++ b/globals_func_r.html @@ -0,0 +1,109 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- r -

    +
  • release_unused_segments() : malloc.c
  • +
+
+
+ + + + diff --git a/globals_func_s.html b/globals_func_s.html new file mode 100644 index 00000000..8da7b34a --- /dev/null +++ b/globals_func_s.html @@ -0,0 +1,120 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- s -

+
+
+ + + + diff --git a/globals_func_t.html b/globals_func_t.html new file mode 100644 index 00000000..4ee8a9fd --- /dev/null +++ b/globals_func_t.html @@ -0,0 +1,111 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- t -

+
+
+ + + + diff --git a/globals_func_u.html b/globals_func_u.html new file mode 100644 index 00000000..765164e3 --- /dev/null +++ b/globals_func_u.html @@ -0,0 +1,146 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- u -

+
+
+ + + + diff --git a/globals_func_w.html b/globals_func_w.html new file mode 100644 index 00000000..083a3ccf --- /dev/null +++ b/globals_func_w.html @@ -0,0 +1,109 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions with links to the files they belong to:
+ +

- w -

+
+
+ + + + diff --git a/globals_g.html b/globals_g.html new file mode 100644 index 00000000..7ce46ea5 --- /dev/null +++ b/globals_g.html @@ -0,0 +1,116 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- g -

+
+
+ + + + diff --git a/globals_h.html b/globals_h.html new file mode 100644 index 00000000..ac2d574e --- /dev/null +++ b/globals_h.html @@ -0,0 +1,114 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- h -

+
+
+ + + + diff --git a/globals_i.html b/globals_i.html new file mode 100644 index 00000000..ceea01b0 --- /dev/null +++ b/globals_i.html @@ -0,0 +1,142 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- i -

+
+
+ + + + diff --git a/globals_l.html b/globals_l.html new file mode 100644 index 00000000..cd54bdbf --- /dev/null +++ b/globals_l.html @@ -0,0 +1,114 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- l -

+
+
+ + + + diff --git a/globals_m.html b/globals_m.html new file mode 100644 index 00000000..115ced11 --- /dev/null +++ b/globals_m.html @@ -0,0 +1,151 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- m -

+
+
+ + + + diff --git a/globals_n.html b/globals_n.html new file mode 100644 index 00000000..bfe02b8e --- /dev/null +++ b/globals_n.html @@ -0,0 +1,118 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- n -

+
+
+ + + + diff --git a/globals_o.html b/globals_o.html new file mode 100644 index 00000000..3dcf68a7 --- /dev/null +++ b/globals_o.html @@ -0,0 +1,118 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- o -

+
+
+ + + + diff --git a/globals_p.html b/globals_p.html new file mode 100644 index 00000000..7db3b359 --- /dev/null +++ b/globals_p.html @@ -0,0 +1,125 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- p -

+
+
+ + + + diff --git a/globals_r.html b/globals_r.html new file mode 100644 index 00000000..50622640 --- /dev/null +++ b/globals_r.html @@ -0,0 +1,115 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- r -

+
+
+ + + + diff --git a/globals_s.html b/globals_s.html new file mode 100644 index 00000000..cd45f618 --- /dev/null +++ b/globals_s.html @@ -0,0 +1,150 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- s -

+
+
+ + + + diff --git a/globals_t.html b/globals_t.html new file mode 100644 index 00000000..35d57e19 --- /dev/null +++ b/globals_t.html @@ -0,0 +1,127 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- t -

+
+
+ + + + diff --git a/globals_type.html b/globals_type.html new file mode 100644 index 00000000..315cef52 --- /dev/null +++ b/globals_type.html @@ -0,0 +1,181 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all typedefs with links to the files they belong to:
+ +

- a -

+ + +

- b -

+ + +

- f -

+ + +

- i -

+ + +

- m -

+ + +

- s -

+ + +

- t -

+ + +

- u -

+
+
+ + + + diff --git a/globals_u.html b/globals_u.html new file mode 100644 index 00000000..49580d5e --- /dev/null +++ b/globals_u.html @@ -0,0 +1,185 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- u -

+
+
+ + + + diff --git a/globals_v.html b/globals_v.html new file mode 100644 index 00000000..8bed91d8 --- /dev/null +++ b/globals_v.html @@ -0,0 +1,112 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- v -

+
+
+ + + + diff --git a/globals_vars.html b/globals_vars.html new file mode 100644 index 00000000..979c3a3d --- /dev/null +++ b/globals_vars.html @@ -0,0 +1,128 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all variables with links to the files they belong to:
+
+
+ + + + diff --git a/globals_w.html b/globals_w.html new file mode 100644 index 00000000..1ffb818f --- /dev/null +++ b/globals_w.html @@ -0,0 +1,109 @@ + + + + + + + +Arax: Globals + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Here is a list of all functions, variables, defines, enums, and typedefs with links to the files they belong to:
+ +

- w -

+
+
+ + + + diff --git a/graph_legend.html b/graph_legend.html new file mode 100644 index 00000000..ab6f9e9c --- /dev/null +++ b/graph_legend.html @@ -0,0 +1,167 @@ + + + + + + + +Arax: Graph Legend + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Graph Legend
+
+
+

This page explains how to interpret the graphs that are generated by doxygen.

+

Consider the following example:

/*! Invisible class because of truncation */
+
class Invisible { };
+
+
/*! Truncated class, inheritance relation is hidden */
+
class Truncated : public Invisible { };
+
+
/* Class not documented with doxygen comments */
+
class Undocumented { };
+
+
/*! Class that is inherited using public inheritance */
+
class PublicBase : public Truncated { };
+
+
/*! A template class */
+
template<class T> class Templ { };
+
+
/*! Class that is inherited using protected inheritance */
+
class ProtectedBase { };
+
+
/*! Class that is inherited using private inheritance */
+
class PrivateBase { };
+
+
/*! Class that is used by the Inherited class */
+
class Used { };
+
+
/*! Super class that inherits a number of other classes */
+
class Inherited : public PublicBase,
+
protected ProtectedBase,
+
private PrivateBase,
+
public Undocumented,
+
public Templ<int>
+
{
+
private:
+
Used *m_usedClass;
+
};
+

This will result in the following graph:

+

The boxes in the above graph have the following meaning:

+
    +
  • +A filled gray box represents the struct or class for which the graph is generated.
  • +
  • +A box with a black border denotes a documented struct or class.
  • +
  • +A box with a gray border denotes an undocumented struct or class.
  • +
  • +A box with a red border denotes a documented struct or class forwhich not all inheritance/containment relations are shown. A graph is truncated if it does not fit within the specified boundaries.
  • +
+

The arrows have the following meaning:

+
    +
  • +A blue arrow is used to visualize a public inheritance relation between two classes.
  • +
  • +A dark green arrow is used for protected inheritance.
  • +
  • +A dark red arrow is used for private inheritance.
  • +
  • +A purple dashed arrow is used if a class is contained or used by another class. The arrow is labelled with the variable(s) through which the pointed class or struct is accessible.
  • +
  • +A yellow dashed arrow denotes a relation between a template instance and the template class it was instantiated from. The arrow is labelled with the template parameters of the instance.
  • +
+
+
+ + + + diff --git a/graph_legend.md5 b/graph_legend.md5 new file mode 100644 index 00000000..da515da9 --- /dev/null +++ b/graph_legend.md5 @@ -0,0 +1 @@ +f74606a252eb303675caf37987d0b7af \ No newline at end of file diff --git a/graph_legend.svg b/graph_legend.svg new file mode 100644 index 00000000..9ea6b16a --- /dev/null +++ b/graph_legend.svg @@ -0,0 +1,167 @@ + + + + + + +Graph Legend + + +Node9 + + +Inherited + + + + + +Node10 + + +PublicBase + + + + + +Node10->Node9 + + + + + + + + +Node11 + + +Truncated + + + + + +Node11->Node10 + + + + + + + + +Node13 + + +ProtectedBase + + + + + +Node13->Node9 + + + + + + + + +Node14 + + +PrivateBase + + + + + +Node14->Node9 + + + + + + + + +Node15 + + +Undocumented + + + + + +Node15->Node9 + + + + + + + + +Node16 + + +Templ< int > + + + + + +Node16->Node9 + + + + + + + + +Node17 + + +Templ< T > + + + + + +Node17->Node16 + + + + + +< int > + + + +Node18 + + +Used + + + + + +Node18->Node9 + + + + + +m_usedClass + + + diff --git a/index.html b/index.html new file mode 100644 index 00000000..d7b508e1 --- /dev/null +++ b/index.html @@ -0,0 +1,334 @@ + + + + + + + +Arax: Arax + + + + + + + + + + + + + + +
+
+ + + + + + + +
+
Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
+
A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+
+
+
+
+
Loading...
+
Searching...
+
No Matches
+
+
+
+
+ +
+
Arax
+
+
+

+

This library aims to implement the main communication layer between the Application VMs and the Appliance VMs.

+

+ pipeline status coverage report

+

+Requirements

+

Arax requires the following packages:

+
    +
  • cmake
  • +
  • make
  • +
  • gcc + g++
  • +
+

Optionaly:

+
    +
  • ccmake (configuration ui)
  • +
  • libpoco (vdf tool)
  • +
  • libncurses (vtop)
  • +
  • doxygen (documentation)
  • +
+

+ArchLinux

+
sudo pacman -S cmake # poco ncurses doxygen 
+

+CentOS

+
sudo yum install cmake # poco-devel poco-foundation poco-net ncurses-devel doxygen
+

+Ubuntu

+
sudo apt-get install cmake # cmake-curses-gui libpoco-dev libncursesw5-dev libncurses-dev doxygen
+

+Folder layout

+
    +
  • controller - Controller source code
  • +
  • misc - Miscellaneous files
  • +
  • Java - Java wrappers for Arax
  • +
  • 3rdparty - Third-party libraries
  • +
  • include - Header files that expose the public interface
  • +
  • noop - No-op kernel/application used in testing
  • +
  • src - Source code
      +
    • core - The core implementation of the program/library
    • +
    • arch - The architectural specific implementations
    • +
    • utils: Contains helper modules, such as data structures, wrappers to external libraries, etc
    • +
    +
  • +
  • tests - Contain the tests that should be run with make test
  • +
  • tools - Scripts related to testing and releasing Arax
  • +
  • vdf - Visual Data Free, http dashboard, showing Arax state
  • +
  • araxtop - Similar to htop but for arax
  • +
  • araxgrind - CLI Memory checker tool
  • +
+

+API Documentation

+

To generate documentation see the Build doxygen documentation section below.

+

+Building

+

Arax is built as a shared library(libarax.so), using cmake and make:

+

First build and navigate to your build folder:

mkdir build;cd build
+

You must then configure your build using ccmake or cmake directly:

+

+Configure with CCMake

+

Run ccmake .. in your build folder and press c once:

+
+ +
+ccmake screenshot
+

Every line corresponds to a build option(see below for option descriptions). To change/set an option press enter, this will toggle a Boolean flag or allow you to edit a string option. For string press enter again to end string input. Pressing t will toggle Advanced options.

+

Once you have configured your build, press c followed by g.

+

+Configure with CMake

+

To configure using cmake, on the build folder type:

cmake [Configuration Options] ..
+

+Configuration Options

+

+Basic Options

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Option Type Description Defaut Value
ALLOC_STATS BOOL Enable allocator statistics OFF
BUILD_DOCS BOOL Build documentation ON
BUILD_TESTS BOOL Build unit tests ON
COVERAGE BOOL Enable coverage reports OFF
ENABLE_Cpu BOOL Enable Cpu backend. ON
ENABLE_Cuda BOOL Enable Cuda backend. OFF
ENABLE_ROCm BOOL Enable ROCm backend. OFF
ENABLE_Sda BOOL Enable Sda backend. OFF
ERROR_CHECKING BOOL Enable error checking. OFF
JAVA_WRAPS BOOL Build java Arax wrappers ON
MIGRATION BOOL Enable migration accross heterogenous accelerators. OFF
SHM_ALLOCATOR STRING Shared Memory allocator dlmalloc
async_architecture STRING Mechanism used for async API mutex
+

+Advanced Options

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Option Type Description Defaut Value
ARAX_CONFIG_FILE STRING Arax configuration file ~/.arax
ARAX_DATA_ANNOTATE BOOL Annotate arax_data for leak detection OFF
ARAX_DATA_TRACK BOOL Track where arax_data objects are allocated OFF
ARAX_KV_CAP STRING Capacity of utils_kv_s instances 32
ARAX_PROC_MAP_SIZE STRING Number of processes that can use Arax 1024
ARAX_REF_DEBUG BOOL Enable reference inc/dec prints OFF
ARAX_THROTTLE_DEBUG BOOL Enable Throttle inc/dec prints OFF
ARAX_THROTTLE_ENFORCE BOOL Enforce Throttle Limits OFF
BUILTINS_PATH STRING Set folder containing builtins AUTODETECTED
CONF_ARAX_MMAP_BASE STRING Non zero values set shared segment mmap address 0
CONF_CACHE_LINE STRING CPU Cacheline size 64
MMAP_POPULATE BOOL Populate mmap(good for many/larg tasks) OFF
UTILS_QUEUE_CAPACITY STRING Maximum number tasks in a task queue (Up to 65536), MUST BE power of 2 256U
UTILS_QUEUE_MPMC BOOL Add lock to allow multimple producers ON
target_architecture STRING Target architecture (shm) shm
+

+Build with Make

+

After configuring, run make

+

+Build doxygen documentation

+

After configuring, run make doc The path to the generated documentation will be printed at completion.

+

+Testing

+

After building with tests enabled, you can run tests with make test.

+

+Install

+

Arax can be 'installed' in two ways. System Wide install is the recomened method if deploying on a dedicated machine and have root/sudo access. User Specific installation is recomended if deploying in a shared machine with multiple users and dont have root/sudo access.

+

+System Wide Install

+

After a successful build, run make install, with root privileges.

+

+User Specific Install

+

You can use the LD_LIBRARY_PATH eviroment variable to load Arax from the build path.

export LD_LIBRARY_PATH=<Arax build path>
+

To find the apropriate Arax build path, run:

make AraxBuildPath
+

+Using the Arax Library

+

After a successful build your build directory will have a libarax.so file as well as an include folder. Add your build path as a library path and link with Arax -larax. Also add the build/includes folder to your gcc include paths -Ibuild/includes.

+

+Configuration

+

In order to configure the arax_pipe endpoints, the user must provide architecture specific options.

+

These configuration options are stored at ~/.arax and follow the format specified in utils/config.h.

+

The sections bellow specify the required keys for each supported Arax architecture:

+

+Vdf

+

Vdf is a program located at the examples folder, allowing run time inspection of allocator statistics and breakdowns(and more to come). To be built it requires the Poco framework to be installed.

+

After running it spawns a web server at localhost:8888. The web ui allows inspection of allocator statistics and breakdowns.

+

+shm

+

Shm implements the Arax API/protocol over a shared segment (POSIX or ivshmem).

+

+Required Configuration Keys

+ + + + + + + +
Option Description
shm_file A file path specifying the shared segments file.
shm_size The size of the shared segment in bytes.
+

+Optional Configuration Keys

+ + + + + + + + + +
Option Description
shm_trunc A boolean (0,1) setting if the shm_file should be truncated during initialization.
shm_off Start mmap from the given byte offset instead from 0.Can be used to split a single shm to multiple arax_pipe instances.
shm_ivshmem Boolean , set to 1 if running inside a Vm with ivshmem.
+

+VDF

+

VDF is a monitoring tool for Arax, exposing statistics through a web interface. It accepts the following arguements:

+ + + + + + + + + + + + + + + +
Arguement Description
embed Skips html and head tags from output, allowing output to be embeded
noconf Dont show configuration section
nosize Dont show struct sizes section
noalloc Dont show allocation statistics
noobj Dont show object statistics
nobreak Dont show breakdowns
+

+Debuging and Core dumps

+

As Arax uses shared segments for its state it is usefull to capture their state for post-mortem analysis.

+

To do this run:

+

echo 0xf > /proc/self/coredump_filter

+

This will result in big coredumps as they will include the contents of the shared segment at the time of crash. As such it is recomended to use the smallest possible shm_size posible.

+

+Acknowledgements

+

We thankfully acknowledge the support of the European Commission and the Greek General Secretariat for Research and Innovation under the EuroHPC Programme through projects EUPILOT (GA-101034126) and DEEP-SEA (GA-955606). National contributions from the involved state members (including the Greek General Secretariat for Research and Innovation) match the EuroHPC funding.

+
+
+
+ + + + diff --git a/jquery.js b/jquery.js new file mode 100644 index 00000000..1dffb65b --- /dev/null +++ b/jquery.js @@ -0,0 +1,34 @@ +/*! jQuery v3.6.0 | (c) OpenJS Foundation and other contributors | jquery.org/license */ +!function(e,t){"use strict";"object"==typeof module&&"object"==typeof module.exports?module.exports=e.document?t(e,!0):function(e){if(!e.document)throw new Error("jQuery requires a window with a document");return t(e)}:t(e)}("undefined"!=typeof window?window:this,function(C,e){"use strict";var t=[],r=Object.getPrototypeOf,s=t.slice,g=t.flat?function(e){return t.flat.call(e)}:function(e){return t.concat.apply([],e)},u=t.push,i=t.indexOf,n={},o=n.toString,v=n.hasOwnProperty,a=v.toString,l=a.call(Object),y={},m=function(e){return"function"==typeof e&&"number"!=typeof e.nodeType&&"function"!=typeof e.item},x=function(e){return null!=e&&e===e.window},E=C.document,c={type:!0,src:!0,nonce:!0,noModule:!0};function b(e,t,n){var r,i,o=(n=n||E).createElement("script");if(o.text=e,t)for(r in c)(i=t[r]||t.getAttribute&&t.getAttribute(r))&&o.setAttribute(r,i);n.head.appendChild(o).parentNode.removeChild(o)}function w(e){return null==e?e+"":"object"==typeof e||"function"==typeof e?n[o.call(e)]||"object":typeof e}var f="3.6.0",S=function(e,t){return new S.fn.init(e,t)};function p(e){var t=!!e&&"length"in e&&e.length,n=w(e);return!m(e)&&!x(e)&&("array"===n||0===t||"number"==typeof t&&0+~]|"+M+")"+M+"*"),U=new RegExp(M+"|>"),X=new RegExp(F),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+F),CHILD:new RegExp("^:(only|first|last|nth|nth-last)-(child|of-type)(?:\\("+M+"*(even|odd|(([+-]|)(\\d*)n|)"+M+"*(?:([+-]|)"+M+"*(\\d+)|))"+M+"*\\)|)","i"),bool:new RegExp("^(?:"+R+")$","i"),needsContext:new RegExp("^"+M+"*[>+~]|:(even|odd|eq|gt|lt|nth|first|last)(?:\\("+M+"*((?:-\\d)?\\d*)"+M+"*\\)|)(?=[^-]|$)","i")},Y=/HTML$/i,Q=/^(?:input|select|textarea|button)$/i,J=/^h\d$/i,K=/^[^{]+\{\s*\[native \w/,Z=/^(?:#([\w-]+)|(\w+)|\.([\w-]+))$/,ee=/[+~]/,te=new RegExp("\\\\[\\da-fA-F]{1,6}"+M+"?|\\\\([^\\r\\n\\f])","g"),ne=function(e,t){var n="0x"+e.slice(1)-65536;return t||(n<0?String.fromCharCode(n+65536):String.fromCharCode(n>>10|55296,1023&n|56320))},re=/([\0-\x1f\x7f]|^-?\d)|^-$|[^\0-\x1f\x7f-\uFFFF\w-]/g,ie=function(e,t){return t?"\0"===e?"\ufffd":e.slice(0,-1)+"\\"+e.charCodeAt(e.length-1).toString(16)+" ":"\\"+e},oe=function(){T()},ae=be(function(e){return!0===e.disabled&&"fieldset"===e.nodeName.toLowerCase()},{dir:"parentNode",next:"legend"});try{H.apply(t=O.call(p.childNodes),p.childNodes),t[p.childNodes.length].nodeType}catch(e){H={apply:t.length?function(e,t){L.apply(e,O.call(t))}:function(e,t){var n=e.length,r=0;while(e[n++]=t[r++]);e.length=n-1}}}function se(t,e,n,r){var i,o,a,s,u,l,c,f=e&&e.ownerDocument,p=e?e.nodeType:9;if(n=n||[],"string"!=typeof t||!t||1!==p&&9!==p&&11!==p)return n;if(!r&&(T(e),e=e||C,E)){if(11!==p&&(u=Z.exec(t)))if(i=u[1]){if(9===p){if(!(a=e.getElementById(i)))return n;if(a.id===i)return n.push(a),n}else if(f&&(a=f.getElementById(i))&&y(e,a)&&a.id===i)return n.push(a),n}else{if(u[2])return H.apply(n,e.getElementsByTagName(t)),n;if((i=u[3])&&d.getElementsByClassName&&e.getElementsByClassName)return H.apply(n,e.getElementsByClassName(i)),n}if(d.qsa&&!N[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&(U.test(t)||z.test(t))){(f=ee.test(t)&&ye(e.parentNode)||e)===e&&d.scope||((s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=S)),o=(l=h(t)).length;while(o--)l[o]=(s?"#"+s:":scope")+" "+xe(l[o]);c=l.join(",")}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){N(t,!0)}finally{s===S&&e.removeAttribute("id")}}}return g(t.replace($,"$1"),e,n,r)}function ue(){var r=[];return function e(t,n){return r.push(t+" ")>b.cacheLength&&delete e[r.shift()],e[t+" "]=n}}function le(e){return e[S]=!0,e}function ce(e){var t=C.createElement("fieldset");try{return!!e(t)}catch(e){return!1}finally{t.parentNode&&t.parentNode.removeChild(t),t=null}}function fe(e,t){var n=e.split("|"),r=n.length;while(r--)b.attrHandle[n[r]]=t}function pe(e,t){var n=t&&e,r=n&&1===e.nodeType&&1===t.nodeType&&e.sourceIndex-t.sourceIndex;if(r)return r;if(n)while(n=n.nextSibling)if(n===t)return-1;return e?1:-1}function de(t){return function(e){return"input"===e.nodeName.toLowerCase()&&e.type===t}}function he(n){return function(e){var t=e.nodeName.toLowerCase();return("input"===t||"button"===t)&&e.type===n}}function ge(t){return function(e){return"form"in e?e.parentNode&&!1===e.disabled?"label"in e?"label"in e.parentNode?e.parentNode.disabled===t:e.disabled===t:e.isDisabled===t||e.isDisabled!==!t&&ae(e)===t:e.disabled===t:"label"in e&&e.disabled===t}}function ve(a){return le(function(o){return o=+o,le(function(e,t){var n,r=a([],e.length,o),i=r.length;while(i--)e[n=r[i]]&&(e[n]=!(t[n]=e[n]))})})}function ye(e){return e&&"undefined"!=typeof e.getElementsByTagName&&e}for(e in d=se.support={},i=se.isXML=function(e){var t=e&&e.namespaceURI,n=e&&(e.ownerDocument||e).documentElement;return!Y.test(t||n&&n.nodeName||"HTML")},T=se.setDocument=function(e){var t,n,r=e?e.ownerDocument||e:p;return r!=C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),p!=C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),d.scope=ce(function(e){return a.appendChild(e).appendChild(C.createElement("div")),"undefined"!=typeof e.querySelectorAll&&!e.querySelectorAll(":scope fieldset div").length}),d.attributes=ce(function(e){return e.className="i",!e.getAttribute("className")}),d.getElementsByTagName=ce(function(e){return e.appendChild(C.createComment("")),!e.getElementsByTagName("*").length}),d.getElementsByClassName=K.test(C.getElementsByClassName),d.getById=ce(function(e){return a.appendChild(e).id=S,!C.getElementsByName||!C.getElementsByName(S).length}),d.getById?(b.filter.ID=function(e){var t=e.replace(te,ne);return function(e){return e.getAttribute("id")===t}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n=t.getElementById(e);return n?[n]:[]}}):(b.filter.ID=function(e){var n=e.replace(te,ne);return function(e){var t="undefined"!=typeof e.getAttributeNode&&e.getAttributeNode("id");return t&&t.value===n}},b.find.ID=function(e,t){if("undefined"!=typeof t.getElementById&&E){var n,r,i,o=t.getElementById(e);if(o){if((n=o.getAttributeNode("id"))&&n.value===e)return[o];i=t.getElementsByName(e),r=0;while(o=i[r++])if((n=o.getAttributeNode("id"))&&n.value===e)return[o]}return[]}}),b.find.TAG=d.getElementsByTagName?function(e,t){return"undefined"!=typeof t.getElementsByTagName?t.getElementsByTagName(e):d.qsa?t.querySelectorAll(e):void 0}:function(e,t){var n,r=[],i=0,o=t.getElementsByTagName(e);if("*"===e){while(n=o[i++])1===n.nodeType&&r.push(n);return r}return o},b.find.CLASS=d.getElementsByClassName&&function(e,t){if("undefined"!=typeof t.getElementsByClassName&&E)return t.getElementsByClassName(e)},s=[],v=[],(d.qsa=K.test(C.querySelectorAll))&&(ce(function(e){var t;a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+S+"-]").length||v.push("~="),(t=C.createElement("input")).setAttribute("name",""),e.appendChild(t),e.querySelectorAll("[name='']").length||v.push("\\["+M+"*name"+M+"*="+M+"*(?:''|\"\")"),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+S+"+*").length||v.push(".#.+[+~]"),e.querySelectorAll("\\\f"),v.push("[\\r\\n\\f]")}),ce(function(e){e.innerHTML="";var t=C.createElement("input");t.setAttribute("type","hidden"),e.appendChild(t).setAttribute("name","D"),e.querySelectorAll("[name=d]").length&&v.push("name"+M+"*[*^$|!~]?="),2!==e.querySelectorAll(":enabled").length&&v.push(":enabled",":disabled"),a.appendChild(e).disabled=!0,2!==e.querySelectorAll(":disabled").length&&v.push(":enabled",":disabled"),e.querySelectorAll("*,:x"),v.push(",.*:")})),(d.matchesSelector=K.test(c=a.matches||a.webkitMatchesSelector||a.mozMatchesSelector||a.oMatchesSelector||a.msMatchesSelector))&&ce(function(e){d.disconnectedMatch=c.call(e,"*"),c.call(e,"[s!='']:x"),s.push("!=",F)}),v=v.length&&new RegExp(v.join("|")),s=s.length&&new RegExp(s.join("|")),t=K.test(a.compareDocumentPosition),y=t||K.test(a.contains)?function(e,t){var n=9===e.nodeType?e.documentElement:e,r=t&&t.parentNode;return e===r||!(!r||1!==r.nodeType||!(n.contains?n.contains(r):e.compareDocumentPosition&&16&e.compareDocumentPosition(r)))}:function(e,t){if(t)while(t=t.parentNode)if(t===e)return!0;return!1},j=t?function(e,t){if(e===t)return l=!0,0;var n=!e.compareDocumentPosition-!t.compareDocumentPosition;return n||(1&(n=(e.ownerDocument||e)==(t.ownerDocument||t)?e.compareDocumentPosition(t):1)||!d.sortDetached&&t.compareDocumentPosition(e)===n?e==C||e.ownerDocument==p&&y(p,e)?-1:t==C||t.ownerDocument==p&&y(p,t)?1:u?P(u,e)-P(u,t):0:4&n?-1:1)}:function(e,t){if(e===t)return l=!0,0;var n,r=0,i=e.parentNode,o=t.parentNode,a=[e],s=[t];if(!i||!o)return e==C?-1:t==C?1:i?-1:o?1:u?P(u,e)-P(u,t):0;if(i===o)return pe(e,t);n=e;while(n=n.parentNode)a.unshift(n);n=t;while(n=n.parentNode)s.unshift(n);while(a[r]===s[r])r++;return r?pe(a[r],s[r]):a[r]==p?-1:s[r]==p?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if(T(e),d.matchesSelector&&E&&!N[t+" "]&&(!s||!s.test(t))&&(!v||!v.test(t)))try{var n=c.call(e,t);if(n||d.disconnectedMatch||e.document&&11!==e.document.nodeType)return n}catch(e){N(t,!0)}return 0":{dir:"parentNode",first:!0}," ":{dir:"parentNode"},"+":{dir:"previousSibling",first:!0},"~":{dir:"previousSibling"}},preFilter:{ATTR:function(e){return e[1]=e[1].replace(te,ne),e[3]=(e[3]||e[4]||e[5]||"").replace(te,ne),"~="===e[2]&&(e[3]=" "+e[3]+" "),e.slice(0,4)},CHILD:function(e){return e[1]=e[1].toLowerCase(),"nth"===e[1].slice(0,3)?(e[3]||se.error(e[0]),e[4]=+(e[4]?e[5]+(e[6]||1):2*("even"===e[3]||"odd"===e[3])),e[5]=+(e[7]+e[8]||"odd"===e[3])):e[3]&&se.error(e[0]),e},PSEUDO:function(e){var t,n=!e[6]&&e[2];return G.CHILD.test(e[0])?null:(e[3]?e[2]=e[4]||e[5]||"":n&&X.test(n)&&(t=h(n,!0))&&(t=n.indexOf(")",n.length-t)-n.length)&&(e[0]=e[0].slice(0,t),e[2]=n.slice(0,t)),e.slice(0,3))}},filter:{TAG:function(e){var t=e.replace(te,ne).toLowerCase();return"*"===e?function(){return!0}:function(e){return e.nodeName&&e.nodeName.toLowerCase()===t}},CLASS:function(e){var t=m[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&m(e,function(e){return t.test("string"==typeof e.className&&e.className||"undefined"!=typeof e.getAttribute&&e.getAttribute("class")||"")})},ATTR:function(n,r,i){return function(e){var t=se.attr(e,n);return null==t?"!="===r:!r||(t+="","="===r?t===i:"!="===r?t!==i:"^="===r?i&&0===t.indexOf(i):"*="===r?i&&-1:\x20\t\r\n\f]*)[\x20\t\r\n\f]*\/?>(?:<\/\1>|)$/i;function j(e,n,r){return m(n)?S.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?S.grep(e,function(e){return e===n!==r}):"string"!=typeof n?S.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(S.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||D,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:q.exec(e))||!r[1]&&t)return!t||t.jquery?(t||n).find(e):this.constructor(t).find(e);if(r[1]){if(t=t instanceof S?t[0]:t,S.merge(this,S.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),N.test(r[1])&&S.isPlainObject(t))for(r in t)m(this[r])?this[r](t[r]):this.attr(r,t[r]);return this}return(i=E.getElementById(r[2]))&&(this[0]=i,this.length=1),this}return e.nodeType?(this[0]=e,this.length=1,this):m(e)?void 0!==n.ready?n.ready(e):e(S):S.makeArray(e,this)}).prototype=S.fn,D=S(E);var L=/^(?:parents|prev(?:Until|All))/,H={children:!0,contents:!0,next:!0,prev:!0};function O(e,t){while((e=e[t])&&1!==e.nodeType);return e}S.fn.extend({has:function(e){var t=S(e,this),n=t.length;return this.filter(function(){for(var e=0;e\x20\t\r\n\f]*)/i,he=/^$|^module$|\/(?:java|ecma)script/i;ce=E.createDocumentFragment().appendChild(E.createElement("div")),(fe=E.createElement("input")).setAttribute("type","radio"),fe.setAttribute("checked","checked"),fe.setAttribute("name","t"),ce.appendChild(fe),y.checkClone=ce.cloneNode(!0).cloneNode(!0).lastChild.checked,ce.innerHTML="",y.noCloneChecked=!!ce.cloneNode(!0).lastChild.defaultValue,ce.innerHTML="",y.option=!!ce.lastChild;var ge={thead:[1,"","
"],col:[2,"","
"],tr:[2,"","
"],td:[3,"","
"],_default:[0,"",""]};function ve(e,t){var n;return n="undefined"!=typeof e.getElementsByTagName?e.getElementsByTagName(t||"*"):"undefined"!=typeof e.querySelectorAll?e.querySelectorAll(t||"*"):[],void 0===t||t&&A(e,t)?S.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;n",""]);var me=/<|&#?\w+;/;function xe(e,t,n,r,i){for(var o,a,s,u,l,c,f=t.createDocumentFragment(),p=[],d=0,h=e.length;d\s*$/g;function je(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&S(e).children("tbody")[0]||e}function De(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function qe(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Le(e,t){var n,r,i,o,a,s;if(1===t.nodeType){if(Y.hasData(e)&&(s=Y.get(e).events))for(i in Y.remove(t,"handle events"),s)for(n=0,r=s[i].length;n").attr(n.scriptAttrs||{}).prop({charset:n.scriptCharset,src:n.url}).on("load error",i=function(e){r.remove(),i=null,e&&t("error"===e.type?404:200,e.type)}),E.head.appendChild(r[0])},abort:function(){i&&i()}}});var _t,zt=[],Ut=/(=)\?(?=&|$)|\?\?/;S.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=zt.pop()||S.expando+"_"+wt.guid++;return this[e]=!0,e}}),S.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Ut.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Ut.test(e.data)&&"data");if(a||"jsonp"===e.dataTypes[0])return r=e.jsonpCallback=m(e.jsonpCallback)?e.jsonpCallback():e.jsonpCallback,a?e[a]=e[a].replace(Ut,"$1"+r):!1!==e.jsonp&&(e.url+=(Tt.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||S.error(r+" was not called"),o[0]},e.dataTypes[0]="json",i=C[r],C[r]=function(){o=arguments},n.always(function(){void 0===i?S(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,zt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((_t=E.implementation.createHTMLDocument("").body).innerHTML="
",2===_t.childNodes.length),S.parseHTML=function(e,t,n){return"string"!=typeof e?[]:("boolean"==typeof t&&(n=t,t=!1),t||(y.createHTMLDocument?((r=(t=E.implementation.createHTMLDocument("")).createElement("base")).href=E.location.href,t.head.appendChild(r)):t=E),o=!n&&[],(i=N.exec(e))?[t.createElement(i[1])]:(i=xe([e],t,o),o&&o.length&&S(o).remove(),S.merge([],i.childNodes)));var r,i,o},S.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(S.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},S.expr.pseudos.animated=function(t){return S.grep(S.timers,function(e){return t===e.elem}).length},S.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=S.css(e,"position"),c=S(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=S.css(e,"top"),u=S.css(e,"left"),("absolute"===l||"fixed"===l)&&-1<(o+u).indexOf("auto")?(a=(r=c.position()).top,i=r.left):(a=parseFloat(o)||0,i=parseFloat(u)||0),m(t)&&(t=t.call(e,n,S.extend({},s))),null!=t.top&&(f.top=t.top-s.top+a),null!=t.left&&(f.left=t.left-s.left+i),"using"in t?t.using.call(e,f):c.css(f)}},S.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){S.offset.setOffset(this,t,e)});var e,n,r=this[0];return r?r.getClientRects().length?(e=r.getBoundingClientRect(),n=r.ownerDocument.defaultView,{top:e.top+n.pageYOffset,left:e.left+n.pageXOffset}):{top:0,left:0}:void 0},position:function(){if(this[0]){var e,t,n,r=this[0],i={top:0,left:0};if("fixed"===S.css(r,"position"))t=r.getBoundingClientRect();else{t=this.offset(),n=r.ownerDocument,e=r.offsetParent||n.documentElement;while(e&&(e===n.body||e===n.documentElement)&&"static"===S.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=S(e).offset()).top+=S.css(e,"borderTopWidth",!0),i.left+=S.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-S.css(r,"marginTop",!0),left:t.left-i.left-S.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===S.css(e,"position"))e=e.offsetParent;return e||re})}}),S.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;S.fn[t]=function(e){return $(this,function(e,t,n){var r;if(x(e)?r=e:9===e.nodeType&&(r=e.defaultView),void 0===n)return r?r[i]:e[t];r?r.scrollTo(o?r.pageXOffset:n,o?n:r.pageYOffset):e[t]=n},t,e,arguments.length)}}),S.each(["top","left"],function(e,n){S.cssHooks[n]=Fe(y.pixelPosition,function(e,t){if(t)return t=We(e,n),Pe.test(t)?S(e).position()[n]+"px":t})}),S.each({Height:"height",Width:"width"},function(a,s){S.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){S.fn[o]=function(e,t){var n=arguments.length&&(r||"boolean"!=typeof e),i=r||(!0===e||!0===t?"margin":"border");return $(this,function(e,t,n){var r;return x(e)?0===o.indexOf("outer")?e["inner"+a]:e.document.documentElement["client"+a]:9===e.nodeType?(r=e.documentElement,Math.max(e.body["scroll"+a],r["scroll"+a],e.body["offset"+a],r["offset"+a],r["client"+a])):void 0===n?S.css(e,t,i):S.style(e,t,n,i)},s,n?e:void 0,n)}})}),S.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){S.fn[t]=function(e){return this.on(t,e)}}),S.fn.extend({bind:function(e,t,n){return this.on(e,null,t,n)},unbind:function(e,t){return this.off(e,null,t)},delegate:function(e,t,n,r){return this.on(t,e,n,r)},undelegate:function(e,t,n){return 1===arguments.length?this.off(e,"**"):this.off(t,e||"**",n)},hover:function(e,t){return this.mouseenter(e).mouseleave(t||e)}}),S.each("blur focus focusin focusout resize scroll click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup contextmenu".split(" "),function(e,n){S.fn[n]=function(e,t){return 0",options:{classes:{},disabled:!1,create:null},_createWidget:function(t,e){e=y(e||this.defaultElement||this)[0],this.element=y(e),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=y(),this.hoverable=y(),this.focusable=y(),this.classesElementLookup={},e!==this&&(y.data(e,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===e&&this.destroy()}}),this.document=y(e.style?e.ownerDocument:e.document||e),this.window=y(this.document[0].defaultView||this.document[0].parentWindow)),this.options=y.widget.extend({},this.options,this._getCreateOptions(),t),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:y.noop,_create:y.noop,_init:y.noop,destroy:function(){var i=this;this._destroy(),y.each(this.classesElementLookup,function(t,e){i._removeClass(e,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:y.noop,widget:function(){return this.element},option:function(t,e){var i,s,n,o=t;if(0===arguments.length)return y.widget.extend({},this.options);if("string"==typeof t)if(o={},t=(i=t.split(".")).shift(),i.length){for(s=o[t]=y.widget.extend({},this.options[t]),n=0;n
"),i=e.children()[0];return y("body").append(e),t=i.offsetWidth,e.css("overflow","scroll"),t===(i=i.offsetWidth)&&(i=e[0].clientWidth),e.remove(),s=t-i},getScrollInfo:function(t){var e=t.isWindow||t.isDocument?"":t.element.css("overflow-x"),i=t.isWindow||t.isDocument?"":t.element.css("overflow-y"),e="scroll"===e||"auto"===e&&t.widthx(D(s),D(n))?o.important="horizontal":o.important="vertical",p.using.call(this,t,o)}),h.offset(y.extend(l,{using:t}))})},y.ui.position={fit:{left:function(t,e){var i=e.within,s=i.isWindow?i.scrollLeft:i.offset.left,n=i.width,o=t.left-e.collisionPosition.marginLeft,h=s-o,a=o+e.collisionWidth-n-s;e.collisionWidth>n?0n?0=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),y.ui.plugin={add:function(t,e,i){var s,n=y.ui[t].prototype;for(s in i)n.plugins[s]=n.plugins[s]||[],n.plugins[s].push([e,i[s]])},call:function(t,e,i,s){var n,o=t.plugins[e];if(o&&(s||t.element[0].parentNode&&11!==t.element[0].parentNode.nodeType))for(n=0;n").css({overflow:"hidden",position:this.element.css("position"),width:this.element.outerWidth(),height:this.element.outerHeight(),top:this.element.css("top"),left:this.element.css("left")})),this.element=this.element.parent().data("ui-resizable",this.element.resizable("instance")),this.elementIsWrapper=!0,t={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(t),this.originalElement.css("margin",0),this.originalResizeStyle=this.originalElement.css("resize"),this.originalElement.css("resize","none"),this._proportionallyResizeElements.push(this.originalElement.css({position:"static",zoom:1,display:"block"})),this.originalElement.css(t),this._proportionallyResize()),this._setupHandles(),e.autoHide&&y(this.element).on("mouseenter",function(){e.disabled||(i._removeClass("ui-resizable-autohide"),i._handles.show())}).on("mouseleave",function(){e.disabled||i.resizing||(i._addClass("ui-resizable-autohide"),i._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy(),this._addedHandles.remove();function t(t){y(t).removeData("resizable").removeData("ui-resizable").off(".resizable")}var e;return this.elementIsWrapper&&(t(this.element),e=this.element,this.originalElement.css({position:e.css("position"),width:e.outerWidth(),height:e.outerHeight(),top:e.css("top"),left:e.css("left")}).insertAfter(e),e.remove()),this.originalElement.css("resize",this.originalResizeStyle),t(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;case"aspectRatio":this._aspectRatio=!!e}},_setupHandles:function(){var t,e,i,s,n,o=this.options,h=this;if(this.handles=o.handles||(y(".ui-resizable-handle",this.element).length?{n:".ui-resizable-n",e:".ui-resizable-e",s:".ui-resizable-s",w:".ui-resizable-w",se:".ui-resizable-se",sw:".ui-resizable-sw",ne:".ui-resizable-ne",nw:".ui-resizable-nw"}:"e,s,se"),this._handles=y(),this._addedHandles=y(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),i=this.handles.split(","),this.handles={},e=0;e"),this._addClass(n,"ui-resizable-handle "+s),n.css({zIndex:o.zIndex}),this.handles[t]=".ui-resizable-"+t,this.element.children(this.handles[t]).length||(this.element.append(n),this._addedHandles=this._addedHandles.add(n));this._renderAxis=function(t){var e,i,s;for(e in t=t||this.element,this.handles)this.handles[e].constructor===String?this.handles[e]=this.element.children(this.handles[e]).first().show():(this.handles[e].jquery||this.handles[e].nodeType)&&(this.handles[e]=y(this.handles[e]),this._on(this.handles[e],{mousedown:h._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(i=y(this.handles[e],this.element),s=/sw|ne|nw|se|n|s/.test(e)?i.outerHeight():i.outerWidth(),i=["padding",/ne|nw|n/.test(e)?"Top":/se|sw|s/.test(e)?"Bottom":/^e$/.test(e)?"Right":"Left"].join(""),t.css(i,s),this._proportionallyResize()),this._handles=this._handles.add(this.handles[e])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){h.resizing||(this.className&&(n=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),h.axis=n&&n[1]?n[1]:"se")}),o.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._addedHandles.remove()},_mouseCapture:function(t){var e,i,s=!1;for(e in this.handles)(i=y(this.handles[e])[0])!==t.target&&!y.contains(i,t.target)||(s=!0);return!this.options.disabled&&s},_mouseStart:function(t){var e,i,s=this.options,n=this.element;return this.resizing=!0,this._renderProxy(),e=this._num(this.helper.css("left")),i=this._num(this.helper.css("top")),s.containment&&(e+=y(s.containment).scrollLeft()||0,i+=y(s.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:e,top:i},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:n.width(),height:n.height()},this.originalSize=this._helper?{width:n.outerWidth(),height:n.outerHeight()}:{width:n.width(),height:n.height()},this.sizeDiff={width:n.outerWidth()-n.width(),height:n.outerHeight()-n.height()},this.originalPosition={left:e,top:i},this.originalMousePosition={left:t.pageX,top:t.pageY},this.aspectRatio="number"==typeof s.aspectRatio?s.aspectRatio:this.originalSize.width/this.originalSize.height||1,s=y(".ui-resizable-"+this.axis).css("cursor"),y("body").css("cursor","auto"===s?this.axis+"-resize":s),this._addClass("ui-resizable-resizing"),this._propagate("start",t),!0},_mouseDrag:function(t){var e=this.originalMousePosition,i=this.axis,s=t.pageX-e.left||0,e=t.pageY-e.top||0,i=this._change[i];return this._updatePrevProperties(),i&&(e=i.apply(this,[t,s,e]),this._updateVirtualBoundaries(t.shiftKey),(this._aspectRatio||t.shiftKey)&&(e=this._updateRatio(e,t)),e=this._respectSize(e,t),this._updateCache(e),this._propagate("resize",t),e=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),y.isEmptyObject(e)||(this._updatePrevProperties(),this._trigger("resize",t,this.ui()),this._applyChanges())),!1},_mouseStop:function(t){this.resizing=!1;var e,i,s,n=this.options,o=this;return this._helper&&(s=(e=(i=this._proportionallyResizeElements).length&&/textarea/i.test(i[0].nodeName))&&this._hasScroll(i[0],"left")?0:o.sizeDiff.height,i=e?0:o.sizeDiff.width,e={width:o.helper.width()-i,height:o.helper.height()-s},i=parseFloat(o.element.css("left"))+(o.position.left-o.originalPosition.left)||null,s=parseFloat(o.element.css("top"))+(o.position.top-o.originalPosition.top)||null,n.animate||this.element.css(y.extend(e,{top:s,left:i})),o.helper.height(o.size.height),o.helper.width(o.size.width),this._helper&&!n.animate&&this._proportionallyResize()),y("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",t),this._helper&&this.helper.remove(),!1},_updatePrevProperties:function(){this.prevPosition={top:this.position.top,left:this.position.left},this.prevSize={width:this.size.width,height:this.size.height}},_applyChanges:function(){var t={};return this.position.top!==this.prevPosition.top&&(t.top=this.position.top+"px"),this.position.left!==this.prevPosition.left&&(t.left=this.position.left+"px"),this.size.width!==this.prevSize.width&&(t.width=this.size.width+"px"),this.size.height!==this.prevSize.height&&(t.height=this.size.height+"px"),this.helper.css(t),t},_updateVirtualBoundaries:function(t){var e,i,s=this.options,n={minWidth:this._isNumber(s.minWidth)?s.minWidth:0,maxWidth:this._isNumber(s.maxWidth)?s.maxWidth:1/0,minHeight:this._isNumber(s.minHeight)?s.minHeight:0,maxHeight:this._isNumber(s.maxHeight)?s.maxHeight:1/0};(this._aspectRatio||t)&&(e=n.minHeight*this.aspectRatio,i=n.minWidth/this.aspectRatio,s=n.maxHeight*this.aspectRatio,t=n.maxWidth/this.aspectRatio,e>n.minWidth&&(n.minWidth=e),i>n.minHeight&&(n.minHeight=i),st.width,h=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,a=this.originalPosition.left+this.originalSize.width,r=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),i=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),h&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=a-e.minWidth),s&&l&&(t.left=a-e.maxWidth),h&&i&&(t.top=r-e.minHeight),n&&i&&(t.top=r-e.maxHeight),t.width||t.height||t.left||!t.top?t.width||t.height||t.top||!t.left||(t.left=null):t.top=null,t},_getPaddingPlusBorderDimensions:function(t){for(var e=0,i=[],s=[t.css("borderTopWidth"),t.css("borderRightWidth"),t.css("borderBottomWidth"),t.css("borderLeftWidth")],n=[t.css("paddingTop"),t.css("paddingRight"),t.css("paddingBottom"),t.css("paddingLeft")];e<4;e++)i[e]=parseFloat(s[e])||0,i[e]+=parseFloat(n[e])||0;return{height:i[0]+i[2],width:i[1]+i[3]}},_proportionallyResize:function(){if(this._proportionallyResizeElements.length)for(var t,e=0,i=this.helper||this.element;e").css({overflow:"hidden"}),this._addClass(this.helper,this._helper),this.helper.css({width:this.element.outerWidth(),height:this.element.outerHeight(),position:"absolute",left:this.elementOffset.left+"px",top:this.elementOffset.top+"px",zIndex:++e.zIndex}),this.helper.appendTo("body").disableSelection()):this.helper=this.element},_change:{e:function(t,e){return{width:this.originalSize.width+e}},w:function(t,e){var i=this.originalSize;return{left:this.originalPosition.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize;return{top:this.originalPosition.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},sw:function(t,e,i){return y.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[t,e,i]))},ne:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[t,e,i]))},nw:function(t,e,i){return y.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[t,e,i]))}},_propagate:function(t,e){y.ui.plugin.call(this,t,[e,this.ui()]),"resize"!==t&&this._trigger(t,e,this.ui())},plugins:{},ui:function(){return{originalElement:this.originalElement,element:this.element,helper:this.helper,position:this.position,size:this.size,originalSize:this.originalSize,originalPosition:this.originalPosition}}}),y.ui.plugin.add("resizable","animate",{stop:function(e){var i=y(this).resizable("instance"),t=i.options,s=i._proportionallyResizeElements,n=s.length&&/textarea/i.test(s[0].nodeName),o=n&&i._hasScroll(s[0],"left")?0:i.sizeDiff.height,h=n?0:i.sizeDiff.width,n={width:i.size.width-h,height:i.size.height-o},h=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,o=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(y.extend(n,o&&h?{top:o,left:h}:{}),{duration:t.animateDuration,easing:t.animateEasing,step:function(){var t={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};s&&s.length&&y(s[0]).css({width:t.width,height:t.height}),i._updateCache(t),i._propagate("resize",e)}})}}),y.ui.plugin.add("resizable","containment",{start:function(){var i,s,n=y(this).resizable("instance"),t=n.options,e=n.element,o=t.containment,h=o instanceof y?o.get(0):/parent/.test(o)?e.parent().get(0):o;h&&(n.containerElement=y(h),/document/.test(o)||o===document?(n.containerOffset={left:0,top:0},n.containerPosition={left:0,top:0},n.parentData={element:y(document),left:0,top:0,width:y(document).width(),height:y(document).height()||document.body.parentNode.scrollHeight}):(i=y(h),s=[],y(["Top","Right","Left","Bottom"]).each(function(t,e){s[t]=n._num(i.css("padding"+e))}),n.containerOffset=i.offset(),n.containerPosition=i.position(),n.containerSize={height:i.innerHeight()-s[3],width:i.innerWidth()-s[1]},t=n.containerOffset,e=n.containerSize.height,o=n.containerSize.width,o=n._hasScroll(h,"left")?h.scrollWidth:o,e=n._hasScroll(h)?h.scrollHeight:e,n.parentData={element:h,left:t.left,top:t.top,width:o,height:e}))},resize:function(t){var e=y(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.position,o=e._aspectRatio||t.shiftKey,h={top:0,left:0},a=e.containerElement,t=!0;a[0]!==document&&/static/.test(a.css("position"))&&(h=s),n.left<(e._helper?s.left:0)&&(e.size.width=e.size.width+(e._helper?e.position.left-s.left:e.position.left-h.left),o&&(e.size.height=e.size.width/e.aspectRatio,t=!1),e.position.left=i.helper?s.left:0),n.top<(e._helper?s.top:0)&&(e.size.height=e.size.height+(e._helper?e.position.top-s.top:e.position.top),o&&(e.size.width=e.size.height*e.aspectRatio,t=!1),e.position.top=e._helper?s.top:0),i=e.containerElement.get(0)===e.element.parent().get(0),n=/relative|absolute/.test(e.containerElement.css("position")),i&&n?(e.offset.left=e.parentData.left+e.position.left,e.offset.top=e.parentData.top+e.position.top):(e.offset.left=e.element.offset().left,e.offset.top=e.element.offset().top),n=Math.abs(e.sizeDiff.width+(e._helper?e.offset.left-h.left:e.offset.left-s.left)),s=Math.abs(e.sizeDiff.height+(e._helper?e.offset.top-h.top:e.offset.top-s.top)),n+e.size.width>=e.parentData.width&&(e.size.width=e.parentData.width-n,o&&(e.size.height=e.size.width/e.aspectRatio,t=!1)),s+e.size.height>=e.parentData.height&&(e.size.height=e.parentData.height-s,o&&(e.size.width=e.size.height*e.aspectRatio,t=!1)),t||(e.position.left=e.prevPosition.left,e.position.top=e.prevPosition.top,e.size.width=e.prevSize.width,e.size.height=e.prevSize.height)},stop:function(){var t=y(this).resizable("instance"),e=t.options,i=t.containerOffset,s=t.containerPosition,n=t.containerElement,o=y(t.helper),h=o.offset(),a=o.outerWidth()-t.sizeDiff.width,o=o.outerHeight()-t.sizeDiff.height;t._helper&&!e.animate&&/relative/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o}),t._helper&&!e.animate&&/static/.test(n.css("position"))&&y(this).css({left:h.left-s.left-i.left,width:a,height:o})}}),y.ui.plugin.add("resizable","alsoResize",{start:function(){var t=y(this).resizable("instance").options;y(t.alsoResize).each(function(){var t=y(this);t.data("ui-resizable-alsoresize",{width:parseFloat(t.width()),height:parseFloat(t.height()),left:parseFloat(t.css("left")),top:parseFloat(t.css("top"))})})},resize:function(t,i){var e=y(this).resizable("instance"),s=e.options,n=e.originalSize,o=e.originalPosition,h={height:e.size.height-n.height||0,width:e.size.width-n.width||0,top:e.position.top-o.top||0,left:e.position.left-o.left||0};y(s.alsoResize).each(function(){var t=y(this),s=y(this).data("ui-resizable-alsoresize"),n={},e=t.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];y.each(e,function(t,e){var i=(s[e]||0)+(h[e]||0);i&&0<=i&&(n[e]=i||null)}),t.css(n)})},stop:function(){y(this).removeData("ui-resizable-alsoresize")}}),y.ui.plugin.add("resizable","ghost",{start:function(){var t=y(this).resizable("instance"),e=t.size;t.ghost=t.originalElement.clone(),t.ghost.css({opacity:.25,display:"block",position:"relative",height:e.height,width:e.width,margin:0,left:0,top:0}),t._addClass(t.ghost,"ui-resizable-ghost"),!1!==y.uiBackCompat&&"string"==typeof t.options.ghost&&t.ghost.addClass(this.options.ghost),t.ghost.appendTo(t.helper)},resize:function(){var t=y(this).resizable("instance");t.ghost&&t.ghost.css({position:"relative",height:t.size.height,width:t.size.width})},stop:function(){var t=y(this).resizable("instance");t.ghost&&t.helper&&t.helper.get(0).removeChild(t.ghost.get(0))}}),y.ui.plugin.add("resizable","grid",{resize:function(){var t,e=y(this).resizable("instance"),i=e.options,s=e.size,n=e.originalSize,o=e.originalPosition,h=e.axis,a="number"==typeof i.grid?[i.grid,i.grid]:i.grid,r=a[0]||1,l=a[1]||1,u=Math.round((s.width-n.width)/r)*r,p=Math.round((s.height-n.height)/l)*l,d=n.width+u,c=n.height+p,f=i.maxWidth&&i.maxWidthd,s=i.minHeight&&i.minHeight>c;i.grid=a,m&&(d+=r),s&&(c+=l),f&&(d-=r),g&&(c-=l),/^(se|s|e)$/.test(h)?(e.size.width=d,e.size.height=c):/^(ne)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.top=o.top-p):/^(sw)$/.test(h)?(e.size.width=d,e.size.height=c,e.position.left=o.left-u):((c-l<=0||d-r<=0)&&(t=e._getPaddingPlusBorderDimensions(this)),0=f[g]?0:Math.min(f[g],n));!a&&1-1){targetElements.on(evt+EVENT_NAMESPACE,function elementToggle(event){$.powerTip.toggle(this,event)})}else{targetElements.on(evt+EVENT_NAMESPACE,function elementOpen(event){$.powerTip.show(this,event)})}});$.each(options.closeEvents,function(idx,evt){if($.inArray(evt,options.openEvents)<0){targetElements.on(evt+EVENT_NAMESPACE,function elementClose(event){$.powerTip.hide(this,!isMouseEvent(event))})}});targetElements.on("keydown"+EVENT_NAMESPACE,function elementKeyDown(event){if(event.keyCode===27){$.powerTip.hide(this,true)}})}return targetElements};$.fn.powerTip.defaults={fadeInTime:200,fadeOutTime:100,followMouse:false,popupId:"powerTip",popupClass:null,intentSensitivity:7,intentPollInterval:100,closeDelay:100,placement:"n",smartPlacement:false,offset:10,mouseOnToPopup:false,manual:false,openEvents:["mouseenter","focus"],closeEvents:["mouseleave","blur"]};$.fn.powerTip.smartPlacementLists={n:["n","ne","nw","s"],e:["e","ne","se","w","nw","sw","n","s","e"],s:["s","se","sw","n"],w:["w","nw","sw","e","ne","se","n","s","w"],nw:["nw","w","sw","n","s","se","nw"],ne:["ne","e","se","n","s","sw","ne"],sw:["sw","w","nw","s","n","ne","sw"],se:["se","e","ne","s","n","nw","se"],"nw-alt":["nw-alt","n","ne-alt","sw-alt","s","se-alt","w","e"],"ne-alt":["ne-alt","n","nw-alt","se-alt","s","sw-alt","e","w"],"sw-alt":["sw-alt","s","se-alt","nw-alt","n","ne-alt","w","e"],"se-alt":["se-alt","s","sw-alt","ne-alt","n","nw-alt","e","w"]};$.powerTip={show:function apiShowTip(element,event){if(isMouseEvent(event)){trackMouse(event);session.previousX=event.pageX;session.previousY=event.pageY;$(element).data(DATA_DISPLAYCONTROLLER).show()}else{$(element).first().data(DATA_DISPLAYCONTROLLER).show(true,true)}return element},reposition:function apiResetPosition(element){$(element).first().data(DATA_DISPLAYCONTROLLER).resetPosition();return element},hide:function apiCloseTip(element,immediate){var displayController;immediate=element?immediate:true;if(element){displayController=$(element).first().data(DATA_DISPLAYCONTROLLER)}else if(session.activeHover){displayController=session.activeHover.data(DATA_DISPLAYCONTROLLER)}if(displayController){displayController.hide(immediate)}return element},toggle:function apiToggle(element,event){if(session.activeHover&&session.activeHover.is(element)){$.powerTip.hide(element,!isMouseEvent(event))}else{$.powerTip.show(element,event)}return element}};$.powerTip.showTip=$.powerTip.show;$.powerTip.closeTip=$.powerTip.hide;function CSSCoordinates(){var me=this;me.top="auto";me.left="auto";me.right="auto";me.bottom="auto";me.set=function(property,value){if($.isNumeric(value)){me[property]=Math.round(value)}}}function DisplayController(element,options,tipController){var hoverTimer=null,myCloseDelay=null;function openTooltip(immediate,forceOpen){cancelTimer();if(!element.data(DATA_HASACTIVEHOVER)){if(!immediate){session.tipOpenImminent=true;hoverTimer=setTimeout(function intentDelay(){hoverTimer=null;checkForIntent()},options.intentPollInterval)}else{if(forceOpen){element.data(DATA_FORCEDOPEN,true)}closeAnyDelayed();tipController.showTip(element)}}else{cancelClose()}}function closeTooltip(disableDelay){if(myCloseDelay){myCloseDelay=session.closeDelayTimeout=clearTimeout(myCloseDelay);session.delayInProgress=false}cancelTimer();session.tipOpenImminent=false;if(element.data(DATA_HASACTIVEHOVER)){element.data(DATA_FORCEDOPEN,false);if(!disableDelay){session.delayInProgress=true;session.closeDelayTimeout=setTimeout(function closeDelay(){session.closeDelayTimeout=null;tipController.hideTip(element);session.delayInProgress=false;myCloseDelay=null},options.closeDelay);myCloseDelay=session.closeDelayTimeout}else{tipController.hideTip(element)}}}function checkForIntent(){var xDifference=Math.abs(session.previousX-session.currentX),yDifference=Math.abs(session.previousY-session.currentY),totalDifference=xDifference+yDifference;if(totalDifference",{id:options.popupId});if($body.length===0){$body=$("body")}$body.append(tipElement);session.tooltips=session.tooltips?session.tooltips.add(tipElement):tipElement}if(options.followMouse){if(!tipElement.data(DATA_HASMOUSEMOVE)){$document.on("mousemove"+EVENT_NAMESPACE,positionTipOnCursor);$window.on("scroll"+EVENT_NAMESPACE,positionTipOnCursor);tipElement.data(DATA_HASMOUSEMOVE,true)}}function beginShowTip(element){element.data(DATA_HASACTIVEHOVER,true);tipElement.queue(function queueTipInit(next){showTip(element);next()})}function showTip(element){var tipContent;if(!element.data(DATA_HASACTIVEHOVER)){return}if(session.isTipOpen){if(!session.isClosing){hideTip(session.activeHover)}tipElement.delay(100).queue(function queueTipAgain(next){showTip(element);next()});return}element.trigger("powerTipPreRender");tipContent=getTooltipContent(element);if(tipContent){tipElement.empty().append(tipContent)}else{return}element.trigger("powerTipRender");session.activeHover=element;session.isTipOpen=true;tipElement.data(DATA_MOUSEONTOTIP,options.mouseOnToPopup);tipElement.addClass(options.popupClass);if(!options.followMouse||element.data(DATA_FORCEDOPEN)){positionTipOnElement(element);session.isFixedTipOpen=true}else{positionTipOnCursor()}if(!element.data(DATA_FORCEDOPEN)&&!options.followMouse){$document.on("click"+EVENT_NAMESPACE,function documentClick(event){var target=event.target;if(target!==element[0]){if(options.mouseOnToPopup){if(target!==tipElement[0]&&!$.contains(tipElement[0],target)){$.powerTip.hide()}}else{$.powerTip.hide()}}})}if(options.mouseOnToPopup&&!options.manual){tipElement.on("mouseenter"+EVENT_NAMESPACE,function tipMouseEnter(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).cancel()}});tipElement.on("mouseleave"+EVENT_NAMESPACE,function tipMouseLeave(){if(session.activeHover){session.activeHover.data(DATA_DISPLAYCONTROLLER).hide()}})}tipElement.fadeIn(options.fadeInTime,function fadeInCallback(){if(!session.desyncTimeout){session.desyncTimeout=setInterval(closeDesyncedTip,500)}element.trigger("powerTipOpen")})}function hideTip(element){session.isClosing=true;session.isTipOpen=false;session.desyncTimeout=clearInterval(session.desyncTimeout);element.data(DATA_HASACTIVEHOVER,false);element.data(DATA_FORCEDOPEN,false);$document.off("click"+EVENT_NAMESPACE);tipElement.off(EVENT_NAMESPACE);tipElement.fadeOut(options.fadeOutTime,function fadeOutCallback(){var coords=new CSSCoordinates;session.activeHover=null;session.isClosing=false;session.isFixedTipOpen=false;tipElement.removeClass();coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);tipElement.css(coords);element.trigger("powerTipClose")})}function positionTipOnCursor(){var tipWidth,tipHeight,coords,collisions,collisionCount;if(!session.isFixedTipOpen&&(session.isTipOpen||session.tipOpenImminent&&tipElement.data(DATA_HASMOUSEMOVE))){tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=new CSSCoordinates;coords.set("top",session.currentY+options.offset);coords.set("left",session.currentX+options.offset);collisions=getViewportCollisions(coords,tipWidth,tipHeight);if(collisions!==Collision.none){collisionCount=countFlags(collisions);if(collisionCount===1){if(collisions===Collision.right){coords.set("left",session.scrollLeft+session.windowWidth-tipWidth)}else if(collisions===Collision.bottom){coords.set("top",session.scrollTop+session.windowHeight-tipHeight)}}else{coords.set("left",session.currentX-tipWidth-options.offset);coords.set("top",session.currentY-tipHeight-options.offset)}}tipElement.css(coords)}}function positionTipOnElement(element){var priorityList,finalPlacement;if(options.smartPlacement||options.followMouse&&element.data(DATA_FORCEDOPEN)){priorityList=$.fn.powerTip.smartPlacementLists[options.placement];$.each(priorityList,function(idx,pos){var collisions=getViewportCollisions(placeTooltip(element,pos),tipElement.outerWidth(),tipElement.outerHeight());finalPlacement=pos;return collisions!==Collision.none})}else{placeTooltip(element,options.placement);finalPlacement=options.placement}tipElement.removeClass("w nw sw e ne se n s w se-alt sw-alt ne-alt nw-alt");tipElement.addClass(finalPlacement)}function placeTooltip(element,placement){var iterationCount=0,tipWidth,tipHeight,coords=new CSSCoordinates;coords.set("top",0);coords.set("left",0);tipElement.css(coords);do{tipWidth=tipElement.outerWidth();tipHeight=tipElement.outerHeight();coords=placementCalculator.compute(element,placement,tipWidth,tipHeight,options.offset);tipElement.css(coords)}while(++iterationCount<=5&&(tipWidth!==tipElement.outerWidth()||tipHeight!==tipElement.outerHeight()));return coords}function closeDesyncedTip(){var isDesynced=false,hasDesyncableCloseEvent=$.grep(["mouseleave","mouseout","blur","focusout"],function(eventType){return $.inArray(eventType,options.closeEvents)!==-1}).length>0;if(session.isTipOpen&&!session.isClosing&&!session.delayInProgress&&hasDesyncableCloseEvent){if(session.activeHover.data(DATA_HASACTIVEHOVER)===false||session.activeHover.is(":disabled")){isDesynced=true}else if(!isMouseOver(session.activeHover)&&!session.activeHover.is(":focus")&&!session.activeHover.data(DATA_FORCEDOPEN)){if(tipElement.data(DATA_MOUSEONTOTIP)){if(!isMouseOver(tipElement)){isDesynced=true}}else{isDesynced=true}}if(isDesynced){hideTip(session.activeHover)}}}this.showTip=beginShowTip;this.hideTip=hideTip;this.resetPosition=positionTipOnElement}function isSvgElement(element){return Boolean(window.SVGElement&&element[0]instanceof SVGElement)}function isMouseEvent(event){return Boolean(event&&$.inArray(event.type,MOUSE_EVENTS)>-1&&typeof event.pageX==="number")}function initTracking(){if(!session.mouseTrackingActive){session.mouseTrackingActive=true;getViewportDimensions();$(getViewportDimensions);$document.on("mousemove"+EVENT_NAMESPACE,trackMouse);$window.on("resize"+EVENT_NAMESPACE,trackResize);$window.on("scroll"+EVENT_NAMESPACE,trackScroll)}}function getViewportDimensions(){session.scrollLeft=$window.scrollLeft();session.scrollTop=$window.scrollTop();session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackResize(){session.windowWidth=$window.width();session.windowHeight=$window.height()}function trackScroll(){var x=$window.scrollLeft(),y=$window.scrollTop();if(x!==session.scrollLeft){session.currentX+=x-session.scrollLeft;session.scrollLeft=x}if(y!==session.scrollTop){session.currentY+=y-session.scrollTop;session.scrollTop=y}}function trackMouse(event){session.currentX=event.pageX;session.currentY=event.pageY}function isMouseOver(element){var elementPosition=element.offset(),elementBox=element[0].getBoundingClientRect(),elementWidth=elementBox.right-elementBox.left,elementHeight=elementBox.bottom-elementBox.top;return session.currentX>=elementPosition.left&&session.currentX<=elementPosition.left+elementWidth&&session.currentY>=elementPosition.top&&session.currentY<=elementPosition.top+elementHeight}function getTooltipContent(element){var tipText=element.data(DATA_POWERTIP),tipObject=element.data(DATA_POWERTIPJQ),tipTarget=element.data(DATA_POWERTIPTARGET),targetElement,content;if(tipText){if($.isFunction(tipText)){tipText=tipText.call(element[0])}content=tipText}else if(tipObject){if($.isFunction(tipObject)){tipObject=tipObject.call(element[0])}if(tipObject.length>0){content=tipObject.clone(true,true)}}else if(tipTarget){targetElement=$("#"+tipTarget);if(targetElement.length>0){content=targetElement.html()}}return content}function getViewportCollisions(coords,elementWidth,elementHeight){var viewportTop=session.scrollTop,viewportLeft=session.scrollLeft,viewportBottom=viewportTop+session.windowHeight,viewportRight=viewportLeft+session.windowWidth,collisions=Collision.none;if(coords.topviewportBottom||Math.abs(coords.bottom-session.windowHeight)>viewportBottom){collisions|=Collision.bottom}if(coords.leftviewportRight){collisions|=Collision.left}if(coords.left+elementWidth>viewportRight||coords.right1)){a.preventDefault();var c=a.originalEvent.changedTouches[0],d=document.createEvent("MouseEvents");d.initMouseEvent(b,!0,!0,window,1,c.screenX,c.screenY,c.clientX,c.clientY,!1,!1,!1,!1,0,null),a.target.dispatchEvent(d)}}if(a.support.touch="ontouchend"in document,a.support.touch){var e,b=a.ui.mouse.prototype,c=b._mouseInit,d=b._mouseDestroy;b._touchStart=function(a){var b=this;!e&&b._mouseCapture(a.originalEvent.changedTouches[0])&&(e=!0,b._touchMoved=!1,f(a,"mouseover"),f(a,"mousemove"),f(a,"mousedown"))},b._touchMove=function(a){e&&(this._touchMoved=!0,f(a,"mousemove"))},b._touchEnd=function(a){e&&(f(a,"mouseup"),f(a,"mouseout"),this._touchMoved||f(a,"click"),e=!1)},b._mouseInit=function(){var b=this;b.element.bind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),c.call(b)},b._mouseDestroy=function(){var b=this;b.element.unbind({touchstart:a.proxy(b,"_touchStart"),touchmove:a.proxy(b,"_touchMove"),touchend:a.proxy(b,"_touchEnd")}),d.call(b)}}}(jQuery);/*! SmartMenus jQuery Plugin - v1.1.0 - September 17, 2017 + * http://www.smartmenus.org/ + * Copyright Vasil Dinkov, Vadikom Web Ltd. http://vadikom.com; Licensed MIT */(function(t){"function"==typeof define&&define.amd?define(["jquery"],t):"object"==typeof module&&"object"==typeof module.exports?module.exports=t(require("jquery")):t(jQuery)})(function($){function initMouseDetection(t){var e=".smartmenus_mouse";if(mouseDetectionEnabled||t)mouseDetectionEnabled&&t&&($(document).off(e),mouseDetectionEnabled=!1);else{var i=!0,s=null,o={mousemove:function(t){var e={x:t.pageX,y:t.pageY,timeStamp:(new Date).getTime()};if(s){var o=Math.abs(s.x-e.x),a=Math.abs(s.y-e.y);if((o>0||a>0)&&2>=o&&2>=a&&300>=e.timeStamp-s.timeStamp&&(mouse=!0,i)){var n=$(t.target).closest("a");n.is("a")&&$.each(menuTrees,function(){return $.contains(this.$root[0],n[0])?(this.itemEnter({currentTarget:n[0]}),!1):void 0}),i=!1}}s=e}};o[touchEvents?"touchstart":"pointerover pointermove pointerout MSPointerOver MSPointerMove MSPointerOut"]=function(t){isTouchEvent(t.originalEvent)&&(mouse=!1)},$(document).on(getEventsNS(o,e)),mouseDetectionEnabled=!0}}function isTouchEvent(t){return!/^(4|mouse)$/.test(t.pointerType)}function getEventsNS(t,e){e||(e="");var i={};for(var s in t)i[s.split(" ").join(e+" ")+e]=t[s];return i}var menuTrees=[],mouse=!1,touchEvents="ontouchstart"in window,mouseDetectionEnabled=!1,requestAnimationFrame=window.requestAnimationFrame||function(t){return setTimeout(t,1e3/60)},cancelAnimationFrame=window.cancelAnimationFrame||function(t){clearTimeout(t)},canAnimate=!!$.fn.animate;return $.SmartMenus=function(t,e){this.$root=$(t),this.opts=e,this.rootId="",this.accessIdPrefix="",this.$subArrow=null,this.activatedItems=[],this.visibleSubMenus=[],this.showTimeout=0,this.hideTimeout=0,this.scrollTimeout=0,this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.idInc=0,this.$firstLink=null,this.$firstSub=null,this.disabled=!1,this.$disableOverlay=null,this.$touchScrollingSub=null,this.cssTransforms3d="perspective"in t.style||"webkitPerspective"in t.style,this.wasCollapsible=!1,this.init()},$.extend($.SmartMenus,{hideAll:function(){$.each(menuTrees,function(){this.menuHideAll()})},destroy:function(){for(;menuTrees.length;)menuTrees[0].destroy();initMouseDetection(!0)},prototype:{init:function(t){var e=this;if(!t){menuTrees.push(this),this.rootId=((new Date).getTime()+Math.random()+"").replace(/\D/g,""),this.accessIdPrefix="sm-"+this.rootId+"-",this.$root.hasClass("sm-rtl")&&(this.opts.rightToLeftSubMenus=!0);var i=".smartmenus";this.$root.data("smartmenus",this).attr("data-smartmenus-id",this.rootId).dataSM("level",1).on(getEventsNS({"mouseover focusin":$.proxy(this.rootOver,this),"mouseout focusout":$.proxy(this.rootOut,this),keydown:$.proxy(this.rootKeyDown,this)},i)).on(getEventsNS({mouseenter:$.proxy(this.itemEnter,this),mouseleave:$.proxy(this.itemLeave,this),mousedown:$.proxy(this.itemDown,this),focus:$.proxy(this.itemFocus,this),blur:$.proxy(this.itemBlur,this),click:$.proxy(this.itemClick,this)},i),"a"),i+=this.rootId,this.opts.hideOnClick&&$(document).on(getEventsNS({touchstart:$.proxy(this.docTouchStart,this),touchmove:$.proxy(this.docTouchMove,this),touchend:$.proxy(this.docTouchEnd,this),click:$.proxy(this.docClick,this)},i)),$(window).on(getEventsNS({"resize orientationchange":$.proxy(this.winResize,this)},i)),this.opts.subIndicators&&(this.$subArrow=$("").addClass("sub-arrow"),this.opts.subIndicatorsText&&this.$subArrow.html(this.opts.subIndicatorsText)),initMouseDetection()}if(this.$firstSub=this.$root.find("ul").each(function(){e.menuInit($(this))}).eq(0),this.$firstLink=this.$root.find("a").eq(0),this.opts.markCurrentItem){var s=/(index|default)\.[^#\?\/]*/i,o=/#.*/,a=window.location.href.replace(s,""),n=a.replace(o,"");this.$root.find("a").each(function(){var t=this.href.replace(s,""),i=$(this);(t==a||t==n)&&(i.addClass("current"),e.opts.markCurrentTree&&i.parentsUntil("[data-smartmenus-id]","ul").each(function(){$(this).dataSM("parent-a").addClass("current")}))})}this.wasCollapsible=this.isCollapsible()},destroy:function(t){if(!t){var e=".smartmenus";this.$root.removeData("smartmenus").removeAttr("data-smartmenus-id").removeDataSM("level").off(e),e+=this.rootId,$(document).off(e),$(window).off(e),this.opts.subIndicators&&(this.$subArrow=null)}this.menuHideAll();var i=this;this.$root.find("ul").each(function(){var t=$(this);t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.dataSM("shown-before")&&((i.opts.subMenusMinWidth||i.opts.subMenusMaxWidth)&&t.css({width:"",minWidth:"",maxWidth:""}).removeClass("sm-nowrap"),t.dataSM("scroll-arrows")&&t.dataSM("scroll-arrows").remove(),t.css({zIndex:"",top:"",left:"",marginLeft:"",marginTop:"",display:""})),0==(t.attr("id")||"").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeDataSM("in-mega").removeDataSM("shown-before").removeDataSM("scroll-arrows").removeDataSM("parent-a").removeDataSM("level").removeDataSM("beforefirstshowfired").removeAttr("role").removeAttr("aria-hidden").removeAttr("aria-labelledby").removeAttr("aria-expanded"),this.$root.find("a.has-submenu").each(function(){var t=$(this);0==t.attr("id").indexOf(i.accessIdPrefix)&&t.removeAttr("id")}).removeClass("has-submenu").removeDataSM("sub").removeAttr("aria-haspopup").removeAttr("aria-controls").removeAttr("aria-expanded").closest("li").removeDataSM("sub"),this.opts.subIndicators&&this.$root.find("span.sub-arrow").remove(),this.opts.markCurrentItem&&this.$root.find("a.current").removeClass("current"),t||(this.$root=null,this.$firstLink=null,this.$firstSub=null,this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),menuTrees.splice($.inArray(this,menuTrees),1))},disable:function(t){if(!this.disabled){if(this.menuHideAll(),!t&&!this.opts.isPopup&&this.$root.is(":visible")){var e=this.$root.offset();this.$disableOverlay=$('
').css({position:"absolute",top:e.top,left:e.left,width:this.$root.outerWidth(),height:this.$root.outerHeight(),zIndex:this.getStartZIndex(!0),opacity:0}).appendTo(document.body)}this.disabled=!0}},docClick:function(t){return this.$touchScrollingSub?(this.$touchScrollingSub=null,void 0):((this.visibleSubMenus.length&&!$.contains(this.$root[0],t.target)||$(t.target).closest("a").length)&&this.menuHideAll(),void 0)},docTouchEnd:function(){if(this.lastTouch){if(!(!this.visibleSubMenus.length||void 0!==this.lastTouch.x2&&this.lastTouch.x1!=this.lastTouch.x2||void 0!==this.lastTouch.y2&&this.lastTouch.y1!=this.lastTouch.y2||this.lastTouch.target&&$.contains(this.$root[0],this.lastTouch.target))){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var t=this;this.hideTimeout=setTimeout(function(){t.menuHideAll()},350)}this.lastTouch=null}},docTouchMove:function(t){if(this.lastTouch){var e=t.originalEvent.touches[0];this.lastTouch.x2=e.pageX,this.lastTouch.y2=e.pageY}},docTouchStart:function(t){var e=t.originalEvent.touches[0];this.lastTouch={x1:e.pageX,y1:e.pageY,target:e.target}},enable:function(){this.disabled&&(this.$disableOverlay&&(this.$disableOverlay.remove(),this.$disableOverlay=null),this.disabled=!1)},getClosestMenu:function(t){for(var e=$(t).closest("ul");e.dataSM("in-mega");)e=e.parent().closest("ul");return e[0]||null},getHeight:function(t){return this.getOffset(t,!0)},getOffset:function(t,e){var i;"none"==t.css("display")&&(i={position:t[0].style.position,visibility:t[0].style.visibility},t.css({position:"absolute",visibility:"hidden"}).show());var s=t[0].getBoundingClientRect&&t[0].getBoundingClientRect(),o=s&&(e?s.height||s.bottom-s.top:s.width||s.right-s.left);return o||0===o||(o=e?t[0].offsetHeight:t[0].offsetWidth),i&&t.hide().css(i),o},getStartZIndex:function(t){var e=parseInt(this[t?"$root":"$firstSub"].css("z-index"));return!t&&isNaN(e)&&(e=parseInt(this.$root.css("z-index"))),isNaN(e)?1:e},getTouchPoint:function(t){return t.touches&&t.touches[0]||t.changedTouches&&t.changedTouches[0]||t},getViewport:function(t){var e=t?"Height":"Width",i=document.documentElement["client"+e],s=window["inner"+e];return s&&(i=Math.min(i,s)),i},getViewportHeight:function(){return this.getViewport(!0)},getViewportWidth:function(){return this.getViewport()},getWidth:function(t){return this.getOffset(t)},handleEvents:function(){return!this.disabled&&this.isCSSOn()},handleItemEvents:function(t){return this.handleEvents()&&!this.isLinkInMegaMenu(t)},isCollapsible:function(){return"static"==this.$firstSub.css("position")},isCSSOn:function(){return"inline"!=this.$firstLink.css("display")},isFixed:function(){var t="fixed"==this.$root.css("position");return t||this.$root.parentsUntil("body").each(function(){return"fixed"==$(this).css("position")?(t=!0,!1):void 0}),t},isLinkInMegaMenu:function(t){return $(this.getClosestMenu(t[0])).hasClass("mega-menu")},isTouchMode:function(){return!mouse||this.opts.noMouseOver||this.isCollapsible()},itemActivate:function(t,e){var i=t.closest("ul"),s=i.dataSM("level");if(s>1&&(!this.activatedItems[s-2]||this.activatedItems[s-2][0]!=i.dataSM("parent-a")[0])){var o=this;$(i.parentsUntil("[data-smartmenus-id]","ul").get().reverse()).add(i).each(function(){o.itemActivate($(this).dataSM("parent-a"))})}if((!this.isCollapsible()||e)&&this.menuHideSubMenus(this.activatedItems[s-1]&&this.activatedItems[s-1][0]==t[0]?s:s-1),this.activatedItems[s-1]=t,this.$root.triggerHandler("activate.smapi",t[0])!==!1){var a=t.dataSM("sub");a&&(this.isTouchMode()||!this.opts.showOnClick||this.clickActivated)&&this.menuShow(a)}},itemBlur:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&this.$root.triggerHandler("blur.smapi",e[0])},itemClick:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(this.$touchScrollingSub&&this.$touchScrollingSub[0]==e.closest("ul")[0])return this.$touchScrollingSub=null,t.stopPropagation(),!1;if(this.$root.triggerHandler("click.smapi",e[0])===!1)return!1;var i=$(t.target).is(".sub-arrow"),s=e.dataSM("sub"),o=s?2==s.dataSM("level"):!1,a=this.isCollapsible(),n=/toggle$/.test(this.opts.collapsibleBehavior),r=/link$/.test(this.opts.collapsibleBehavior),h=/^accordion/.test(this.opts.collapsibleBehavior);if(s&&!s.is(":visible")){if((!r||!a||i)&&(this.opts.showOnClick&&o&&(this.clickActivated=!0),this.itemActivate(e,h),s.is(":visible")))return this.focusActivated=!0,!1}else if(a&&(n||i))return this.itemActivate(e,h),this.menuHide(s),n&&(this.focusActivated=!1),!1;return this.opts.showOnClick&&o||e.hasClass("disabled")||this.$root.triggerHandler("select.smapi",e[0])===!1?!1:void 0}},itemDown:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&e.dataSM("mousedown",!0)},itemEnter:function(t){var e=$(t.currentTarget);if(this.handleItemEvents(e)){if(!this.isTouchMode()){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);var i=this;this.showTimeout=setTimeout(function(){i.itemActivate(e)},this.opts.showOnClick&&1==e.closest("ul").dataSM("level")?1:this.opts.showTimeout)}this.$root.triggerHandler("mouseenter.smapi",e[0])}},itemFocus:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(!this.focusActivated||this.isTouchMode()&&e.dataSM("mousedown")||this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0]==e[0]||this.itemActivate(e,!0),this.$root.triggerHandler("focus.smapi",e[0]))},itemLeave:function(t){var e=$(t.currentTarget);this.handleItemEvents(e)&&(this.isTouchMode()||(e[0].blur(),this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0)),e.removeDataSM("mousedown"),this.$root.triggerHandler("mouseleave.smapi",e[0]))},menuHide:function(t){if(this.$root.triggerHandler("beforehide.smapi",t[0])!==!1&&(canAnimate&&t.stop(!0,!0),"none"!=t.css("display"))){var e=function(){t.css("z-index","")};this.isCollapsible()?canAnimate&&this.opts.collapsibleHideFunction?this.opts.collapsibleHideFunction.call(this,t,e):t.hide(this.opts.collapsibleHideDuration,e):canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,t,e):t.hide(this.opts.hideDuration,e),t.dataSM("scroll")&&(this.menuScrollStop(t),t.css({"touch-action":"","-ms-touch-action":"","-webkit-transform":"",transform:""}).off(".smartmenus_scroll").removeDataSM("scroll").dataSM("scroll-arrows").hide()),t.dataSM("parent-a").removeClass("highlighted").attr("aria-expanded","false"),t.attr({"aria-expanded":"false","aria-hidden":"true"});var i=t.dataSM("level");this.activatedItems.splice(i-1,1),this.visibleSubMenus.splice($.inArray(t,this.visibleSubMenus),1),this.$root.triggerHandler("hide.smapi",t[0])}},menuHideAll:function(){this.showTimeout&&(clearTimeout(this.showTimeout),this.showTimeout=0);for(var t=this.opts.isPopup?1:0,e=this.visibleSubMenus.length-1;e>=t;e--)this.menuHide(this.visibleSubMenus[e]);this.opts.isPopup&&(canAnimate&&this.$root.stop(!0,!0),this.$root.is(":visible")&&(canAnimate&&this.opts.hideFunction?this.opts.hideFunction.call(this,this.$root):this.$root.hide(this.opts.hideDuration))),this.activatedItems=[],this.visibleSubMenus=[],this.clickActivated=!1,this.focusActivated=!1,this.zIndexInc=0,this.$root.triggerHandler("hideAll.smapi")},menuHideSubMenus:function(t){for(var e=this.activatedItems.length-1;e>=t;e--){var i=this.activatedItems[e].dataSM("sub");i&&this.menuHide(i)}},menuInit:function(t){if(!t.dataSM("in-mega")){t.hasClass("mega-menu")&&t.find("ul").dataSM("in-mega",!0);for(var e=2,i=t[0];(i=i.parentNode.parentNode)!=this.$root[0];)e++;var s=t.prevAll("a").eq(-1);s.length||(s=t.prevAll().find("a").eq(-1)),s.addClass("has-submenu").dataSM("sub",t),t.dataSM("parent-a",s).dataSM("level",e).parent().dataSM("sub",t);var o=s.attr("id")||this.accessIdPrefix+ ++this.idInc,a=t.attr("id")||this.accessIdPrefix+ ++this.idInc;s.attr({id:o,"aria-haspopup":"true","aria-controls":a,"aria-expanded":"false"}),t.attr({id:a,role:"group","aria-hidden":"true","aria-labelledby":o,"aria-expanded":"false"}),this.opts.subIndicators&&s[this.opts.subIndicatorsPos](this.$subArrow.clone())}},menuPosition:function(t){var e,i,s=t.dataSM("parent-a"),o=s.closest("li"),a=o.parent(),n=t.dataSM("level"),r=this.getWidth(t),h=this.getHeight(t),u=s.offset(),l=u.left,c=u.top,d=this.getWidth(s),m=this.getHeight(s),p=$(window),f=p.scrollLeft(),v=p.scrollTop(),b=this.getViewportWidth(),S=this.getViewportHeight(),g=a.parent().is("[data-sm-horizontal-sub]")||2==n&&!a.hasClass("sm-vertical"),M=this.opts.rightToLeftSubMenus&&!o.is("[data-sm-reverse]")||!this.opts.rightToLeftSubMenus&&o.is("[data-sm-reverse]"),w=2==n?this.opts.mainMenuSubOffsetX:this.opts.subMenusSubOffsetX,T=2==n?this.opts.mainMenuSubOffsetY:this.opts.subMenusSubOffsetY;if(g?(e=M?d-r-w:w,i=this.opts.bottomToTopSubMenus?-h-T:m+T):(e=M?w-r:d-w,i=this.opts.bottomToTopSubMenus?m-T-h:T),this.opts.keepInViewport){var y=l+e,I=c+i;if(M&&f>y?e=g?f-y+e:d-w:!M&&y+r>f+b&&(e=g?f+b-r-y+e:w-r),g||(S>h&&I+h>v+S?i+=v+S-h-I:(h>=S||v>I)&&(i+=v-I)),g&&(I+h>v+S+.49||v>I)||!g&&h>S+.49){var x=this;t.dataSM("scroll-arrows")||t.dataSM("scroll-arrows",$([$('')[0],$('')[0]]).on({mouseenter:function(){t.dataSM("scroll").up=$(this).hasClass("scroll-up"),x.menuScroll(t)},mouseleave:function(e){x.menuScrollStop(t),x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(t){t.preventDefault()}}).insertAfter(t));var A=".smartmenus_scroll";if(t.dataSM("scroll",{y:this.cssTransforms3d?0:i-m,step:1,itemH:m,subH:h,arrowDownH:this.getHeight(t.dataSM("scroll-arrows").eq(1))}).on(getEventsNS({mouseover:function(e){x.menuScrollOver(t,e)},mouseout:function(e){x.menuScrollOut(t,e)},"mousewheel DOMMouseScroll":function(e){x.menuScrollMousewheel(t,e)}},A)).dataSM("scroll-arrows").css({top:"auto",left:"0",marginLeft:e+(parseInt(t.css("border-left-width"))||0),width:r-(parseInt(t.css("border-left-width"))||0)-(parseInt(t.css("border-right-width"))||0),zIndex:t.css("z-index")}).eq(g&&this.opts.bottomToTopSubMenus?0:1).show(),this.isFixed()){var C={};C[touchEvents?"touchstart touchmove touchend":"pointerdown pointermove pointerup MSPointerDown MSPointerMove MSPointerUp"]=function(e){x.menuScrollTouch(t,e)},t.css({"touch-action":"none","-ms-touch-action":"none"}).on(getEventsNS(C,A))}}}t.css({top:"auto",left:"0",marginLeft:e,marginTop:i-m})},menuScroll:function(t,e,i){var s,o=t.dataSM("scroll"),a=t.dataSM("scroll-arrows"),n=o.up?o.upEnd:o.downEnd;if(!e&&o.momentum){if(o.momentum*=.92,s=o.momentum,.5>s)return this.menuScrollStop(t),void 0}else s=i||(e||!this.opts.scrollAccelerate?this.opts.scrollStep:Math.floor(o.step));var r=t.dataSM("level");if(this.activatedItems[r-1]&&this.activatedItems[r-1].dataSM("sub")&&this.activatedItems[r-1].dataSM("sub").is(":visible")&&this.menuHideSubMenus(r-1),o.y=o.up&&o.y>=n||!o.up&&n>=o.y?o.y:Math.abs(n-o.y)>s?o.y+(o.up?s:-s):n,t.css(this.cssTransforms3d?{"-webkit-transform":"translate3d(0, "+o.y+"px, 0)",transform:"translate3d(0, "+o.y+"px, 0)"}:{marginTop:o.y}),mouse&&(o.up&&o.y>o.downEnd||!o.up&&o.y0;t.dataSM("scroll-arrows").eq(i?0:1).is(":visible")&&(t.dataSM("scroll").up=i,this.menuScroll(t,!0))}e.preventDefault()},menuScrollOut:function(t,e){mouse&&(/^scroll-(up|down)/.test((e.relatedTarget||"").className)||(t[0]==e.relatedTarget||$.contains(t[0],e.relatedTarget))&&this.getClosestMenu(e.relatedTarget)==t[0]||t.dataSM("scroll-arrows").css("visibility","hidden"))},menuScrollOver:function(t,e){if(mouse&&!/^scroll-(up|down)/.test(e.target.className)&&this.getClosestMenu(e.target)==t[0]){this.menuScrollRefreshData(t);var i=t.dataSM("scroll"),s=$(window).scrollTop()-t.dataSM("parent-a").offset().top-i.itemH;t.dataSM("scroll-arrows").eq(0).css("margin-top",s).end().eq(1).css("margin-top",s+this.getViewportHeight()-i.arrowDownH).end().css("visibility","visible")}},menuScrollRefreshData:function(t){var e=t.dataSM("scroll"),i=$(window).scrollTop()-t.dataSM("parent-a").offset().top-e.itemH;this.cssTransforms3d&&(i=-(parseFloat(t.css("margin-top"))-i)),$.extend(e,{upEnd:i,downEnd:i+this.getViewportHeight()-e.subH})},menuScrollStop:function(t){return this.scrollTimeout?(cancelAnimationFrame(this.scrollTimeout),this.scrollTimeout=0,t.dataSM("scroll").step=1,!0):void 0},menuScrollTouch:function(t,e){if(e=e.originalEvent,isTouchEvent(e)){var i=this.getTouchPoint(e);if(this.getClosestMenu(i.target)==t[0]){var s=t.dataSM("scroll");if(/(start|down)$/i.test(e.type))this.menuScrollStop(t)?(e.preventDefault(),this.$touchScrollingSub=t):this.$touchScrollingSub=null,this.menuScrollRefreshData(t),$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp});else if(/move$/i.test(e.type)){var o=void 0!==s.touchY?s.touchY:s.touchStartY;if(void 0!==o&&o!=i.pageY){this.$touchScrollingSub=t;var a=i.pageY>o;void 0!==s.up&&s.up!=a&&$.extend(s,{touchStartY:i.pageY,touchStartTime:e.timeStamp}),$.extend(s,{up:a,touchY:i.pageY}),this.menuScroll(t,!0,Math.abs(i.pageY-o))}e.preventDefault()}else void 0!==s.touchY&&((s.momentum=15*Math.pow(Math.abs(i.pageY-s.touchStartY)/(e.timeStamp-s.touchStartTime),2))&&(this.menuScrollStop(t),this.menuScroll(t),e.preventDefault()),delete s.touchY)}}},menuShow:function(t){if((t.dataSM("beforefirstshowfired")||(t.dataSM("beforefirstshowfired",!0),this.$root.triggerHandler("beforefirstshow.smapi",t[0])!==!1))&&this.$root.triggerHandler("beforeshow.smapi",t[0])!==!1&&(t.dataSM("shown-before",!0),canAnimate&&t.stop(!0,!0),!t.is(":visible"))){var e=t.dataSM("parent-a"),i=this.isCollapsible();if((this.opts.keepHighlighted||i)&&e.addClass("highlighted"),i)t.removeClass("sm-nowrap").css({zIndex:"",width:"auto",minWidth:"",maxWidth:"",top:"",left:"",marginLeft:"",marginTop:""});else{if(t.css("z-index",this.zIndexInc=(this.zIndexInc||this.getStartZIndex())+1),(this.opts.subMenusMinWidth||this.opts.subMenusMaxWidth)&&(t.css({width:"auto",minWidth:"",maxWidth:""}).addClass("sm-nowrap"),this.opts.subMenusMinWidth&&t.css("min-width",this.opts.subMenusMinWidth),this.opts.subMenusMaxWidth)){var s=this.getWidth(t);t.css("max-width",this.opts.subMenusMaxWidth),s>this.getWidth(t)&&t.removeClass("sm-nowrap").css("width",this.opts.subMenusMaxWidth)}this.menuPosition(t)}var o=function(){t.css("overflow","")};i?canAnimate&&this.opts.collapsibleShowFunction?this.opts.collapsibleShowFunction.call(this,t,o):t.show(this.opts.collapsibleShowDuration,o):canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,t,o):t.show(this.opts.showDuration,o),e.attr("aria-expanded","true"),t.attr({"aria-expanded":"true","aria-hidden":"false"}),this.visibleSubMenus.push(t),this.$root.triggerHandler("show.smapi",t[0])}},popupHide:function(t){this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0);var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},t?1:this.opts.hideTimeout)},popupShow:function(t,e){if(!this.opts.isPopup)return alert('SmartMenus jQuery Error:\n\nIf you want to show this menu via the "popupShow" method, set the isPopup:true option.'),void 0;if(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),this.$root.dataSM("shown-before",!0),canAnimate&&this.$root.stop(!0,!0),!this.$root.is(":visible")){this.$root.css({left:t,top:e});var i=this,s=function(){i.$root.css("overflow","")};canAnimate&&this.opts.showFunction?this.opts.showFunction.call(this,this.$root,s):this.$root.show(this.opts.showDuration,s),this.visibleSubMenus[0]=this.$root}},refresh:function(){this.destroy(!0),this.init(!0)},rootKeyDown:function(t){if(this.handleEvents())switch(t.keyCode){case 27:var e=this.activatedItems[0];if(e){this.menuHideAll(),e[0].focus();var i=e.dataSM("sub");i&&this.menuHide(i)}break;case 32:var s=$(t.target);if(s.is("a")&&this.handleItemEvents(s)){var i=s.dataSM("sub");i&&!i.is(":visible")&&(this.itemClick({currentTarget:t.target}),t.preventDefault())}}},rootOut:function(t){if(this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&(this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0),!this.opts.showOnClick||!this.opts.hideOnClick)){var e=this;this.hideTimeout=setTimeout(function(){e.menuHideAll()},this.opts.hideTimeout)}},rootOver:function(t){this.handleEvents()&&!this.isTouchMode()&&t.target!=this.$root[0]&&this.hideTimeout&&(clearTimeout(this.hideTimeout),this.hideTimeout=0)},winResize:function(t){if(this.handleEvents()){if(!("onorientationchange"in window)||"orientationchange"==t.type){var e=this.isCollapsible();this.wasCollapsible&&e||(this.activatedItems.length&&this.activatedItems[this.activatedItems.length-1][0].blur(),this.menuHideAll()),this.wasCollapsible=e}}else if(this.$disableOverlay){var i=this.$root.offset();this.$disableOverlay.css({top:i.top,left:i.left,width:this.$root.outerWidth(),height:this.$root.outerHeight()})}}}}),$.fn.dataSM=function(t,e){return e?this.data(t+"_smartmenus",e):this.data(t+"_smartmenus")},$.fn.removeDataSM=function(t){return this.removeData(t+"_smartmenus")},$.fn.smartmenus=function(options){if("string"==typeof options){var args=arguments,method=options;return Array.prototype.shift.call(args),this.each(function(){var t=$(this).data("smartmenus");t&&t[method]&&t[method].apply(t,args)})}return this.each(function(){var dataOpts=$(this).data("sm-options")||null;if(dataOpts)try{dataOpts=eval("("+dataOpts+")")}catch(e){dataOpts=null,alert('ERROR\n\nSmartMenus jQuery init:\nInvalid "data-sm-options" attribute value syntax.')}new $.SmartMenus(this,$.extend({},$.fn.smartmenus.defaults,options,dataOpts))})},$.fn.smartmenus.defaults={isPopup:!1,mainMenuSubOffsetX:0,mainMenuSubOffsetY:0,subMenusSubOffsetX:0,subMenusSubOffsetY:0,subMenusMinWidth:"10em",subMenusMaxWidth:"20em",subIndicators:!0,subIndicatorsPos:"append",subIndicatorsText:"",scrollStep:30,scrollAccelerate:!0,showTimeout:250,hideTimeout:500,showDuration:0,showFunction:null,hideDuration:0,hideFunction:function(t,e){t.fadeOut(200,e)},collapsibleShowDuration:0,collapsibleShowFunction:function(t,e){t.slideDown(200,e)},collapsibleHideDuration:0,collapsibleHideFunction:function(t,e){t.slideUp(200,e)},showOnClick:!1,hideOnClick:!0,noMouseOver:!1,keepInViewport:!0,keepHighlighted:!0,markCurrentItem:!1,markCurrentTree:!0,rightToLeftSubMenus:!1,bottomToTopSubMenus:!1,collapsibleBehavior:"default"},$}); \ No newline at end of file diff --git a/logo.png b/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..6a5c0e97904818678869a3445f39af657600c2a5 GIT binary patch literal 29051 zcmZ^}1yo$k(k_f^aCe8`5?ls?ySqC926qo0+}(l&cXxMp1_0j{Q#el<` zaFJi>$cy24C6(-*p-dTmL9dej{^cVC1HH$iiHeov<}Z<&*0k<*a#o&jQ{nRfvbd-_ z*E;C}Q+(AFHlkyI6-p-+!8|_s9uXZ@xRnhF_Z7lp6N(gDhru)`2nwQqf4^%b)Ju}x z*loPX>Fwp_!wP}0G8G97Gt?eJVq9LN83`{RnEMqHY@W5hs*P8KdqNM6K0Foz?cFCm z!Tf25oo1XRogV{(_&AIO35-8&0G$e4h*RXXUe*;oK9v7&VBya`9Ma6FYWj?!ZBlP+ zqq_R~TT5c`Wwz$8tYX@ z)`($-NpD1bbLZYD4%`H(1cXKdf~b0&#t+8(r&tuWaaf0dH5R9YPMZ4QvkfIO5C`0G z7k!EQBZeVUtQx08oI`oHibwikcd3&uW>R((HiQc&XhA&RDh>;w$)YjwY_|ELsuT0dYRn-+nf&T zUhpt@Wdcjrr&yIAfB6#oyxRfBO=Bt}npOw6y(NJ`^=DAdrJIIo?S@OGXaGT4Y(}e| zpagv9{sm4CMsO*FkLtfbN&tlM_ziXn<|Twz3>Nwwi5poyz}y~N7fPc?ZW`LNhhiEf zq??`v2Jlk~F2EiYI#0MX7P|l?O?VNN$T7G*SLiEdxc_!8r6ictZ{QC^RWK|OGes&@ z#5brce!%4T3u+8 zz>Lj^OSxv8^H77Hov%O1a}$+TzB*wN?S&zT59FaMk-Pl-+ ziW=!lG%RH;V%1>jNF^JGWxy_rmzZwGg17Q>kbQnc>wDi4mJ!*j+bFgn^&i@?nLhij68(v?*T|Xi3b9*|6DU@uJ7Y z(;U;N(}>fSYN51zv_ei1Knx&skV8Udgrkb_XP=qBmQakVD_hX9#;|U5X}QxQ2#<=H5YNEQ;A;HSsJj~2 z_;6P2`rTFMY~`$Tg>O0Hl;Bi?@Ro3!=$`L(2J49IR`{7iA~HX8M|`L*Iw$iqi!D>0 z_iYP!p1G}iz~8=X&+2v+HxS6g%fyf(o#LyJZry%Dw&crY!iGHJOPN#>jw{85TBqmxRUZG7ykOu|IDS@aX%W7R_!p%5}0;#Wj>>>ub~5r9Ymfv?#bkYY6qK#x&|rrsfR2C`@lWGF(de48ex)!{fJ47ii{|a z%KUX5P8WR~qmS7Ecs7sJ{v!B?3LA$2Plt%FbKDD*Z6@O2>fqt?KE{TPR-0`Dbfxdu|dA6N)xq>?r-ndbTb2 zPcOgG2VIexmwHqfgy@2?WV`NKeD1Gb1v=;yBX05jvP*cae8V1iz8s30Am{ZO8v|*N?cVOqg%)Cr)(jYwlwn zv~Qp{6mn=#xT&0Px^-?W9E|LST|YPS+EqLfzX^Q2Oxkd+-rKw+PmOdb8EPpiUlzvd zx$nT1kx2Wcu4FfN)D3qYZX%x|_e6W~{dHZ$9K*4|LODlRS*Xuwv4`b?g!EMZGLM*sTgW{B-(#@cX4F1R*LsAbcwHG4x#H zS)Ef2Pc?~fka&{+^;L2=E}G;>a8bQX4M){afR1~`07KiUWihw0QNE+Hn7A@!K87%Y zZ_#D##9b!PL&PlK(WD37Uf6MaPvJ`NFCU(L?HlHsYTwke;Dw-^K-LBnM}-Z(^*+Z# zQ-8g4&XwTY`th3QGfsp-boK&3$5;MHcgAD;Y3)V@r6UZN-iAuWR$) z*}dh3m5$~Y?--q_0X}`V%5}5#4p3V`(~Ew8$BU1H&)WmfLnuiB!2O2hW@|TJE`~Mc zCTCcH)}!>j{+MfL1OMghWeUk1Y0VS+{&a@a>vG{@d!y^i9-xSy*(3KZ&vn`J@$}b} zIG&MXQ}N9-2!QEs2vD|5JKKUH4SQmTpkqX zeK*?{B{%`;7MP2sC(6ooh}2U|;{L4iQBg^lP*E``i!&yHn7%hspHs*nycTdMUKjsC;d+`GdbzMM4YV!$Tj5@Nk!}&%}6>%?$9A;J~7Uut(nzN<( z|3mE`&cD_E)vte>KQ1mzn>A^FIy!x2BqtnWKoE z&8MO>;D5&IKg$1``Ttk^mr2e4G0D!(@xM*}FV6qc{HF`N3XYba){Oq~A%K;i`Tr>U zk32u~KMww14*&OP{;TwJH~|R!%>O+#00?57rfXneLSRy&-&Nhg&-9?Xi3euZaZ%Cp zBx7+a!Nd8W!lBU%0z_uE>m_HvdT4V8!c(@D3koq&z=f-~ZRNi92)Lv7zD<2=t8=^_ zeds8>wc~tR*Gcm+ceQo1voos{fw8dSrgklkTL&t0=(|YQ@vlf5Fn)KDX4JPCQ;XJ& zQp-|~HZ@sIE+ec-(%e;y(#TR~(qb$xC2ZI!qbim!iCS)*w}LNKv2w7Z)Clz?l4OL5 zD&!y+H<7F;N+;7vT^MH)+=4x`U=iWp2+^Pb5mTDIgU0IHZihTsewC6U7i&> zM@z)p-z!RG)txa^r)@`|k5&c_ZWW7pb+{Mi!o(T5jZrHaNr{sYD6{hhi0wol!9a$%?M>qB4udB~6a3L{p;vxoYwDXGn=f z;S^d1lOk>~Z#HU&fs+zmY6Q&eNBI#LT8Pcz1&efcsbyT%Pf9q_y2_$2AWX_7q`YZBpGTa%q$40qqZ7^GOxhBp&9*o96_PI$b})vEYs0&4r1M3- zcf*HEPg3ypQsm~L>*KHY+uagp=l!SyF`!7*{wA0yelf~Yf=8xCCrV?qAS&)druM0} zvB;5Iz^k0|SRkij!QJEaK4_Iz=TK;c42thd>w1T08XARos$iy9<r& z@0<&AjL1oqAof_kJ)M~=ukH;;pOW9L?nB|S>w0Ts_s!C+C_*jtx=*thZ+6%T%FKf0 z!<3U@ot?~|Y5JqRCwoPJn6y(^%Mmi)$<@S0T#;DurAxqJueO1xCds{`-#AP=Y)QIY z+|;@mvP5sMVwq4+Hv6??ZOzuXY#gG!BX}A|LLr~wlhUa#A zBb95zbIz4~gG2w6Simb?DPKHI$F^m_`(}d6UGDghFRwN_s7l&(zLy}$HlFOw?b^ap za%p81w8E-*=0$pJb6m9GF2`CWvStPPrx6ULx&O4tO0+Rv1DA7uzu!<~_s8Z0*9N-; zp+iub(`3u|%SBhjQVM|0!4qVbGIBD}zhofs`eNSw6Pzvl@vtvuT$;WD=y{u3F?j+< z2?2PzOgfY)zXvv*HSX6<333tMvDhYSnP0IpG$%rMq$)_z5%K-5Gs5R(h+@`d6r1C< zCmd-dVp{OQw}LHS5cdL$GI)xmG zNJfO7jlQ2@2RO2K-SBa9dc7LT z;Mq@wwAAe=A;zT5(XoBX06EWXb(Ry@wa0->VhqwPB#6LnzyO!-miL&Gb zr0{7s{hxBU*J7RGKN8#VR@$=>jG!wVY(fku>az#E2yeW(X)y4eRggvA`{h0+2W7MQ zc~;$*Sscec+f1#&KfcF1C;QFpP!gC~VYWSF9j%MPd)fV^3J_4{4v&G83h-%ttZcjI z9cfxNjxc+BzPo9DIqNdGU(~TPo9oKT7Pz^c1Hsc|#v`pWuxc zJXZw?Y^NA#?&D(pKy*PBd7eGY7@nK)Zx#Yxx5F^VxTFrNc1=F6w=)ti&e!Jvod@6~ z&%t>0bHY{Q%E^l5AE}12pNPF zn<%N2RmMvNI|pV2Ny(!KQ|6>rl-NBVW`$4&z6~RZ9!AF(8&t}$$t{=jZsR((@xc^T zD=|f^mBOTlfK;yz8z40eT=zIg;`e*qA*r+Tm(W-UV|kyDN~m46>(avq)bO+#6%EJ> zd)%GPNxWKDG^lerXXOI2k3RdNz`3OBG?KIhiOfyk*oLr}F9cyL%mThUC~O37S6S0Ebr-nx-{J z!FVjfeJ%T*U{i=Bncml(5N`Qb?5sT*P-61ZK3@#^bz~|Y{-fQz&&*-E}qH>yOJol!?L= zeJf9+`m2EygK+-DFiZaBhs{8gbQ}Zk8Rr4?3$E@V)5;#vay)={Gstm_aYB&zB^2ac zH&GbL+ikWw z%@rCxlsZ;1xIS&=LFWL#4!thTz-G&#uM%7$^4dkILqE2{fQ>KNwsw1TulK7AN5`%X z31s0O6~1yQCNXBf@zz zUN=lQ5ii4-RM9cXE8O+!IA$UEeif6@jv{znJqK@KUV}9uckFw&r-651dB0&NsL(aU z{4o4E|Fe{NRtuMP&CB+5P1^!I`n{X=Hkq7sSXa}lzNbNV`tTngR4Sm!5ELIF<}MS= zHGxRJFZC6Rm0EgRHLV_9AMeBnG9g(vf;@lMOr8>?xl+2b&^SC*7oKd=aM`tAiPI3^ z*F5K8rT3u->RvwIpN$>(22}8mRldEf%3JjzagDpKSxV&CeY`zP>3bd(N|Gd(xst{R zz6TXiotG44$NStZqzDVX@wN36ex{5KU!;W5j~?N{UzHbskzUuv56p8$P+U4o=g$Lr zjA-IXe>%TxP>J56mEkFZISI^e*fI1KP67g!S*s{@E*|dHGz?N zjYSQUqCT+wFfW2~BQJu9ZV8dOoz&~)tm*Z-YW*M+AG+>xhpxORN}#4IHV!Sj`;Ykd zJFB9iXJuTuDg;F5*;I%&Z++v$0r*DhLpAchF+&O%9GC_R7j*}B`xu)g-D>C&SY*i_ zR7@Qo<5P#fbjjwdOMvMzRh%;T(ni;03iOYAwF_ccvCZlfp~qteV~XrCDdbAxykT?~ z=Rkr*DMdT)|b|b4Hg0v#_}0cWXYk8cyx;c$LY0Ns zE88e=#VCn^llK+dan-Mq@uC409Q@LTgUB>9W{1(WD8BI!*j}hW1i}xywpA{rA!@>E>frCMu#bWM*=wOV63v zF~%^R*t9`v^kT^51bHU_j-&;!ot!^ zD6{EGGY|%;)^`=b+k3oBDjlk9e7f(J6G zsu{!wr5LO%;Z3L%s_7&aOK9|ZWA;697uxhSpna9u`RW7X-Y#gSiBl?%hmnOc8blHEuB#>O?*-U73^|C=~$6d7vC2`<)+$sxp@nEi|16)WK1> zL&=Z}-m&VR&OMQ&)A+Hn1L!y6i#BcCF!H+jT&CdXziDn4_T*{kdkmB}t$U&`nKTkZ zbMgm@G!0r=8&-{0>^~D!a!HT~%$B$8r~e_?&ExUMs)p*=k>^VTRSO0&-JYV~CNE@r zUrW`|ejy(@MppM~?vFrn3Q1mU*1ioDeC;tLZ+s`lUHZF>Y|v&uCgXdf^yOfO+;M|( z$f3~JtIz5?ZE~SQA^?(qT>&N+f^vq{PD7mp>$A&nV{^$Kgfjo`HH|(x6FA~_3MF}I ztUheDP)^?^h$t5&r5aX>{Wk;Zyfi)PH}a|4_$G99bWH|{KkdEZY}AtL_+aT}L8AH1 zs-sINtxVjRgO7v?Qr5enLw62~V#w`AW&F`sB=khxFoy-pHTEN^(fl{jN6r_W50zTR zVN|<6Nl>0E>Sxc)ccQpB>zt2F<$0b=>n3?m;D}najz}pteO0NL+aCk^4f{>r@2dRZ ziMS?>Ld!trt2Uz4>2{~{Bc%yMawTQImPv*AqJ}Co^pmS=kPJFuWFp!wIJC<^!{yu=ppe2T-xDE?dsXYRRbO-zpH7=0 zSNSMa|A>M<;^#QWe_;~hxxQ*?pJ#m^*5Q@Y)grd--LZrJ35IQmM<1so4LBw7LyN+Q zVY?*ZV;K!_laCvtT8)^3iK((fgU-{^f7jB3i1Y7nsTMy`yTtu1L6H#2^ppL?ptqE7 zvIbsZd~b_L@-h6KoB^|Jg@=dnfY1n?GPp3jN7SqP_m@0D8c0h_6~jl29WlkqlY5@j zl*yF12k0~{K~zf&=m_68Cw(aw_DO|V?vR;WNHp^I{@JJD5P?(vTbDrb#MM1g#(j)x zsZ&IMp0oOyeWX+OhNQ97&*(&Z`-wN#VKhcsWk=j1%jJ*9=lq}ytD@%yT2!`QOM|`+ z4jT`^@oom4`#fyWc(ep25zIHQHej4~+@Elzw7g!AAth(*-HF+He;-iw?8YE{qK!Z- zSsWTo9E49M&{O21B;8mtvJS4&HV^@<=B~i>5XiSqquO8%_t5cqQNe!%ef?9gL8GZX z_+vmK1gE;^Jj-qUE{m5B-9d^obfkH>W~;WH0mWv_Fe2_T@RYLA!{w)1sWwTP$}p|P2}`bS^6Gv638HIJxZ%__`8T?xMFSOitF6p0krvafRlE=YPS(dlW*X&rz;dZQY6H6Aigr`fv#Oro2pH@}!fs%SwbJ>Xr8MJO6;c58l+W z@vSQdjsEQi8+ zOrH`_Q^WAE;b#C7;iGks#%IR0X5S&WIU*oV3xSxo?Ad_UToIA zafhYQ=WGizac~2bL_GGZ!vK&2L zOn#kGesqHS^3MqoGQwNs_`}&T%Vjc|0i(UR41T>{R%DI#Wvw4+3!UL14wYZqwnyn} zhi2gA-^b4#;Gb-G8UnD)3U&8tX+w_T^W~kVQz8gcr|+*%+b%jmL17p~9)~RKf>r*0 z$y;zDuAf=O%PRw{M%Vm6J-&u370o#Txj@xCg;~_iw@5Ud#!vslcYP0pq4FMi`2>N+ z&Rb6^fxSWSQu^0l+|?ymIp=m@(yV4?5Tov#?vO)<1^j@Fs2`vB4gC5CWhNuyunL2e zajB=~^`@J!_a_p8r@txy7<2uMpv}0ulBf5_PCPUQxsV$b}~n z0)_l03UNb~I#<>doHX`!$1a`c# z0AT;o`kjbXm?>(3ey&tS>JD^}Gh(~boWFe-PocRIwG|k^+h1*9ntP6|`y=;Mh@YE# z+bsVDT>>BdKvVu{KLdEWT(hjJ=~CZ=K6n>N;VOXNGm$b+G@s`(Qawp4x! zzFuIWQAwKO#+^3idCn#3MkhTEKikC#`Cd83)WHy_1_*ZZ7_H&p>`ZnhRm0M$^U&W` zA~VWSy;oJ7et&~Cz53Qm7_>{%7d5*-m8Y zz`j|bC@H1T81GgV1)|vqr8{JpH(<~gPgP8??9}qP$BOl!-YL1`4 zwqD6~D;P(5022{tDD%|P)-)#jmrWa(PtTYzy)p@zFa$z791k1w;m}(XfpmgJmjIqjT^pvf-5Q>LEUeMWdN6-C^crEvn77BZf?BmdTN0=a(gJcgNDve2r4oPMTt`u z#y%&%@AWe-VdU2&t{|w%Uea`$IDI~;N?GC=2_i|!0z^43vFon*7x2t}vHYqyTa8NX z$F|IcWyI%tOh{yE{T+529|q_S2cQ=IRv!C1w}a9MAaKnkL=VMBOw@77LP#wlW=}`k zIpS?0cv4;m72^T=>TGL9_8__-?oVaZbtmwH?7lF)6ieE%h3_Gy>s@Vk*}e~{onM={ zv$jTM^F*ujMiF112X<&smO_C+&;`fNmtsP}_gMumEz@Zd)O)ZQh#Y>alBj)mx0qpP z)^^rdwws3IIXmIP>h}!$<&c@(yJ7DwuWz?d*8}bfcTHl}p?{^w&KYiQBFS>7YZqOF z?G)VcNu`BS+1`djA$=3$$4}>2?Y*xC%wM;NwU2v(TP0R6DL-;RU&GcAh$nL!r^siP|#uC4i;%;zMqmlbO z_AsPT7AMx-TyxJN=*@P^rhFd$(!9&N<0E&&m7SF9nGpwxX!{^2QGCaMmMcWtBninU zlQQcK|9Q!G@p@Bxg%X((ZPS0bgtkuT7BSV@(>+=Rx1|No(;+i8NDwV9Q=-A*I4C?{7HInktoPxs;hXvry>L{Rt`W|VROK6U=751Tzx&94ow z%>D7n*s_idDB_KLnw|0*dIl5G7v}o$4&7hLl8Z${7q)}Tltd&+YB^3b(IcRh`uVRv z$Mk=cAEzN*^g{?A!TF=FDS_twEclX{6}qW%7At~`2K1t9a)-p^$_DNoBmA|<@u4OP znyq%Ur_6_aPS){l0dDt)346W5yE+%vw?_kP>T?)1f)O411lt9+uxVi;8O$<+);`Cg zT?WI{C;W4Hgwc5Gm0Iu3J4G{LN z2IRNag1-vuN6jtN)uiU+nb1t3UFUqf9sna4ITar5RYzVXy@+}HO4%G#0|cE{P6>J9 zl?3=dG6fzj`8HHN2=5%OGp6(ug+i^{h0{e%hbR_CA)_#apl2XHLWaa_Xvos!?4wrpCuR z`rEjKUzc_D$4*r6(pgg|)p^qumcL0fKzy4|qy4@NxgMj1ke(AeMK>{_T0UT{Rmf*D zhRS!*%V$7?pXjWbVqWamC-kKKQ`I&!T|cOBZ}ro?1Ll%xP64(8vcGFkpTY;5&EM;{ z`n>b(>SF-L8a}`Bt2m|atsvc13^&x(_N_6 zKBa=^N`@Yj0uQ=rf`;v`OzELj_L<}PCE(HH+t(>4ls>g|6Q6;9n$LN%XHwVoG%T7N z{pBUu-j+1xorrH~RjS*16-GI}f{9`#qWeo$Q=Lr{NZo!rOhDbX;;`LdrHAl2L!=Ic z)kB8Hk-D@AykWxeuZth{T1w5S!qALWCy;RAuiwWTC^wWSov{s=nt2}alLFL4Btj8)1IFA+nUbS zE-$gaUc+O&g|RTchVd256lEndeq#N2jkk!fmD67@n!gzl@@3Yfj%}guZAUQDePXMe z3og38gIDmSMBg49rjMYC)KSACeTPN3iUp$VE^bdPX#g&T(jHG`URKt72EM_2buX+r zm~B!C>%*?gMzC=z7j>hf-YX+n*Q+XT{TyQ%-0&;hjDfaRK_D5jyC?$FdA-Pb<(@!^75&Qc)5`k* zP7Y!vW2jlN%l0JS*`Lmqp99Dr1qlk*X2zgjeI7K|Gc%k`M$-dqQleWln3b)N@a(~- zQKCP-pNm|``}4dWYc_tvvh=L8(o=JQHA)haBl10Qjc_yz_IQFSQ}!m#5K+Z7VVXW! z8~O}84BjjCsxFZZE5OkOXE&88%}BnPN7~;ft^2cNc5SJ2rp3#pvXJd4rg(sAuCoMG zeaoCU>ib&~iddVzA6!u-zJzH9&t~0(It5A8%!bCvyFKLAEU4?Li8F=ck4?g>pNTqC z=E>YM^cCXPJPPn1ik9g~W`uZ9p4U8%DEP+vTp!WIi|v{JO#CwB5P2|+ckfu2 z-r@BS&vq>N^I9=Qn?{1j3wS?)*_LTt6Y!;9<-lVvK1nd=9Y@!`^HP~8R^zemhS{l& zr%_Buv5&(36rN~q^uRv z$SQaaLW5GK-j#G`FbV^_1l0#tWhRCo$^L!cmc4kAv00awilAz3o70HyS4t=&WN=2)Xw|5ikq&+D{-@ z-gGfeV?4#z*Dp+?a`Z|j(wR>1ZOy36y&3H962sK82nW|T|tC03!JQQ1LR@Wo+55Z2+~HsuFt~4V|ia0 z%mMazPSr=9DYib+FlB!<&llt{F_&a`1*;m2TA1=kBS*Pm{>%qS=O_}dkUB|Ja8Z4a zPRf4Hxa-aJktSdW%Eo-A>xyLv2@Oul90jW;;eO3idA8cd4<^o>7qee}o&+9dotw(f z-1>)vB!g4%b4Vf~3{;_y)BaGi=p+RDnJ8ux0r?LJuS7Tm*nOgY)O_tjAxNxWn(pkdn>u)Mx{i-hiX!?(RCv-Ywg6}j z42jIC$@RP1p@TGD3f-4VlN302ZAD}>QnXEgBh@ao+9M_%c~mx%98(7^HQ3g|Gzkd6 zTfc9{vat?$Chm95XH+TtBqO%uo+W*2#;rMG> z4cy;b4uSv^DpUl}PP^x$hz3qm+&f=@bSH5gRS8v8RYK`WxO78L2LlwS?eR}D6+TJR zXv0WL8>EpfY4MXLQp0bLY$<<)bLPtm->_e}#G~-3S`(KjFU2g(Tuw|k*S^F=Ug{s8 z&^S5uYF=DqxviKvwP+w``evC@3rGa8QIQ_))xr}ce5HVlqj$C2)ZdSl$YV8S``lxU z>nTVGDlC$SKa0v5icj~tXq)=XMROISzDZ%Zx)h zXbEMLN4boDpc_(YQt!ZpsgL?T&*k6)Wic3NGrY!|$w8}!$^s%jm`}gvcM>{6S%jRA z(XCRbQ+`ET78jf6_}sG|F7HZB(PXcoNTiI4E0QE2^eQ5+Vu)U)ulBMOuyP76ds%ca zkxy}rntuz5)Xp*Xc&s<$$B*hc5TDp)fhsJ&qpivh?Uo+G?{>We+Bo+g&zIzDnI)-> z)8zP?XM2pU)GrX~^ScAFFKV8MkRjbW-L=SLrfCht!p!QRAV~F-Hir06Tt)@i75kJ} z)#qi0(s(ms1fPe;`RB$ z=C<7|N8OMpnE8CEJt+#B$y=NlTv%1#fTs+E(RyBc9Dy@+MI0v0Ycam2)wPf}zZ&Pd zJHZ3x#FU>3W^29epUA~olYh?`#K4MzFX$w~c29`$5`Vc4Z@3aCh+wir2}V{xH%L1b zfsgB-TNKI5bUJmc8TjoZ_w)BGdaBG%3gPbvMmDUK!0%d=BQveKxgyiDlB6=2=|~12 z-WG?$v$fiK&LK0_^i~O}Jt0BK_jtp__Eo!Q~Zr^1`3UU=?aiDkj zc|gx#IAZns3CZQ)}b8lFGP|))+U~T z)$5T)yQTZ>PM^n2&s!s$$-PHEXtMZw$iVgycW+QLkXQRpTgNJm4U!xquM z5nEoHtpeJVgMOW7-ngD{mT5W942;_$^Ym|0R(RYsXcWe|6hJe=(YLy~35+tL@Ai4r zS3#= zoP^-(em1@XiMEL>x51nSGz=KjTe8qT{-RP;KBKJ=_VGQYP&*?Cz9?%vH(w6s~A@#5S!9&(5& zcR&cXv)k`}I?1o>O4?uL6>Ax;hw20yM&`!xtyp4?lO+aXToSB&_TgyMEu|vbL|PJ* z^vX}fX_S^i_0X<=t7M03xTx`FQ)yeDHSE4mtk|gQ77kE9e3Q*1rnFCQLf{LlnpIP4 zA0xbRhsvST11DJKbwkcLZtOP_;zxaxH`yy048;X>^_Z=(gpJCXVpT@BKk3qacok;| zemtq?O}QIHHsY|GOYLY858BjkiFe9|#~E@_N%(BDK!88w<;yNc4TY8pX1oR;ak&YG zbu)>29D|5;OGc{-wkYWkOsgFRUXPbx5y(>H5Id}RL|uThMCu89DnC{eKk-$PZwi2` zAfm<51VXp(p1a=2{5g-R-+8z}G=A>Sbtz0mQwK4q@4E@|oZLg?Aq5qcca0%0II&q%3;ZFcd3OGJS8znfV+}A< zgJ_Uu3vY~3P3=#J3t?>^?+)fw9rq!=#C4K|evB85O}n7;jHzdOC~9#-|yg ztF}!QvclGHw0*YxOlYnA1h{IvXFb$Aw+28)1j*&gy1*u2p>vWD)Ay8^>8I*7N5CJ( zv8wUa@UAq9GD`_!7t?zfajoNdO5#3;r}r?7Xg3ol^om%458>xqW`gMXi@qe2W;((1 zul?aDtiYSD67 z+O$C>%ulqqpdx=SM1qv-kc~-#w80Dm+)+@Cr=E~x=Ml^;QCXhIvY&TQM8wte+qp9C z3c3b#`VJAShrvxHZh~_4QiZej&msrmm|lkzYK1Sy*y|GZsZsJ%#HtW2Py;3d`lefA zPzfiXLp3uQ9$2s%IMy$(jbXnW<>I^I>Vsy;aL1gH6*S z4swz7eLBUf`{L;4iZoaH5fL}DV+VI)1eGD1B`%X9>g+%IZm);jZUpj~kFEVzYBl$O zSR`rQ*gW89f|)AM4syZqu)7X#th9h~`KSP*QA{5_b60%D4ln2NrG?-N4>ID4$)z^( z`Kmi|)z7ZCGt1BFdP%1ytD`?1PeR!V)Zrnh*no|9CJonjRm(c&D6FZmOmAe&PBiEF z(IxtYY;Pr;I9A7Tq_7qqg9f2`onkDwIlMw6!#JNqzDicbPix8e<`c(H4|^DS{;-c$ zGyQlfmxK7bGUjGqF;13(AX-8|>-iqWQcoyS31Q*J_*s;Sp| z^Iq0H%4G+hpR^_lCR$1n?nSr58#60}Vi8PmD&WU7>BdeO;i>LnePnu-J(d|%N3kt~ z-j7uN(yDg%LRx^WbrA*1TisK+%hl@T)@4Q0`rt`Oh_lvA+J^qzQ95~ zLQQRnwtO1o44R}b1>Vzkl`E_<57y%zMP9Y%T`BMMAg9N55vb9Y@3Hs%yO_+0^BNmd zYaf3yFMv|t=Z*tp|L4JJjInY25}a-3uPnEF$(3gmU+l@7I2-Xa{alvgHV3myCbqKP z9Arb`0i;;P&30G?Vtl{71C_5q8aWYOyW z^X$g3=$grgJA>B?qxCMeD!7`{dopQxgNUSXE9Xy~Y`>lp38aq8WN(GGY%dn;93Ew$!JtW#E`ZNrv8pQkWWZ90-{ zUfFE}V+i4^rj>L|1ZjDzGb@u255B)U&KXcL+vpfND!w{smGPp|XOJi9DW&Q5)e#M+ z2iRyB3B%@P{W{Kqg*XDP7YirXR43-nwz4ok)yiZhgx(M`P#7@pXZGPs<9o~xUy3q~ z$Vn~3Tc`cv`i$vnU?dpyYVr-n5?x7+ko!lmKhP&y^VS?>8GT46k}jm(dbJg11|Jf9 zIsBR*057KOOmamYWd*4C8MtqQwFA5gJ14HB-VZA%5_y(jDKw8?cd1fz$s~BVKOnblWy7QU zSr5c;baa2*-XMAUh9b#ruqHLhn_p3~q{tk(=PTbyJ7eKP`EjEeC{VQ&R2-f5&tDeMdrd~EH zTfAlkp20yu62LIf;8Ox}`VaC;9EN$ak<4y*;Ub`2+T{0Qxtz%D?)ZY7eD)ERq~$C2 zq$MUXFmY;la+7|+1T4?8U?d`+pj>jvCFP^nuwzjA;p`w~eIHM8a_N{d@3hlS1`Xbz za!C{F3OQiz&8$0gs5$1Cqs{HN-Dd zQ_41iu&GAL z{dLVX*F*z7#;m>e+EN&~F_4rz)X&a>osJ&9gUNfz&+Y1MajXcK7!^6OG$-eAFoX^r zp}U#nPui(drkMxFk2eoJ_>gp3_|A>6NWh}vxfUC5ash8lj*IZ+kUTTOrmj9-|+$4!GX=lFp{0n;q0x_^IZdh69pt1^w1p7avds^=a zY4mB$V2w|ll}+&2P%E-)7T*Rvpr%w@$*utFB8v$*kRV%}fRnpsdDaO?Ox=*bTx1(tIRX)6(6EAIR4hR@NIEt&OxB4XJ2<7$ zuY;#JJCDV1fR1NN=wQhSwjzcY*qk&&k&b-}63>FGP@)9zVCQtg3CGKM6cWK&m?%s# zH2K30flqIq9HxyBZvDn9itjuuf5<>NT#JNtC$r7A+nTSZd@Z9Rvb+Wz13u_uR#;&L z={&RpB{n;rWl%QSUKoWD+O^kSEoXC>&y6kUt#nqSA^GX2pECG-gq&FB(~}xf*?K`Y zER%G$UUMOD(Wlx~E_y9eGKQO&^UmieB>9w(#nDjaTF&PzB}1em;KkGC0ONS=d^tMA zN4JC$ue~yw?TAyjbohLOVVpXfKSt4%R$c33S5inqc`90=2>8PD&r3bw#!Q$!@O3qo zp7lgV%!tI-2=SqE`$2lVp2TEr@H2mkQQd(!I$J4h05(L0DYnjncCU3ifkHK*Yg zI(%2etg-qUE^bK~t#J1$CU@ju9rlh0U0fFB(X(eS99_1<_AYqEX^ZQGe0b-R#>^d@ z&pi8#!S_exyZ{xejWUm|J8XOR>Wz`rERwt;j`^>>_BsZ$`Vxi_UBSV-r-bK1xmLyD zy901u;nxQq1d{-b%gi>U^6+NgbfX=8VDi}D!`}7@?K(GX&=P*Rd*|ZP8_LKKqb*gh zHjDpt(TyIQi@e^~dm5p?&hlnnU(zneh)p{js2_Mv3?vTaYjPEEn-guZCnB%K| zr%q|TBLe28WCTu=8rTvb_)_;HIRgJEGV*FVqa@nBHfp?FQHkq1om6`1<(CvoRx$W# z17hoP8EsnflLzm;|DJr_?>&6Om8Q~2qqD}Che$Rpae{}Fhjg(q6t&mMyp8^0WFQ~@ zAwBm|#1mOM(Uvc)FPk&kGthmLbRB%!a^l2^p8WF5t$k6IMJG|8dip7$nd(gL`3zN_ zXqHN4(sHxRECYF<5_p5h{PZIor)Z%rKdot56en(F=?;lC&%)sCF_}b73(YGKrobJxbXqs^GNc^ysrhgySM>-4QmE6X_UwJ<0#IF}Zb#;XK45i!5TWU0BYZSZq5Y;HZJ_ zrI%im>->WUi){l5)cDEw)qHa6=zy;Q`k+DOs~CAu=ho>Y>3qvz9PXImH4GLINqOq z_PLCzWTb}2R|*lmI5_&0peTvt7uJ?Psz-6iK_VekZkD!)7G*6X(d@_=C)>8@&{S?0 zj7k*P=`hL3Br+ovpRvTm>D@y2)mNA_WjYvfGLi1nPd}D3Li9(XJ-?nSQ+K`S48J7&L;_C$xo!GnjMG&S*96QFZ!6}osC7li@o#SI|kc> zVfkoTv(LW!iXk5KmeP=TgR%4^+&TY2$B9BZd{kJB0MR}rc#;fhv6sR&Zl6It_K+V#wE9KMPOGfCni+=Sq0aZn zN)rh93WmKS<}YH0@@4}=zruDZ8$1E^>ytLs*nN&YEUnIDbJ0ex++!c8okMd;r1O zbQRcMElNEs3Stp#=ib5KbD{>HIThTEhixo#hMe2cBmA6;#P$PUE|*>A0kJXDV9%4m z_I^p1`4oyMMBd}`3X|xEWQymbot{cM5Fr&hs|K4zZ`evJtt1in$gsgz(8RyZ)?1sw zg9eG8mC^s9LD10{$~IeXgUOsXCH%w_Px=)N8oQ;%s2{;H*zeEyy-axVsiNwa3{CuS z6ass#vc!7C5l6@=){j5=*!H~cmIh6+tSF@`@|K%#DJwzv?yYoSzG0CB3gb!$dwQB? z96o$FY%p9YX5&aF`T-rCyVyX*FRf3I4j)z$V@o8{6T+Hh+SF;{edOVXy}pEx-XdkB zSD^-lrYlhHS|=H8&{Cw;ytI3;$O@Rqkz-m2GLvRde*RVzsC|UXqW1g+2xnXNS5;{aeWPKAlwH5cRzv{ z3S`M$r(e>6qyi|ARv$L>70`)b(~dkbnZESW%h;zUMjvRYiK3WJVZU)}@(jlWKVJXG z2J<8mi_KI1NV-I{@rU~#_+;W9k2B9Y%baueIp!;jbflqM9XVuMRuvg%9^|zJ2kfL6 zF?*Yrjnn=yZL6PeWtKtN>1@R-*PReVKO%yY<8!>8!1%4~JK<9#b~w*qW|?^wa}Sot z-+Jq9Ns{|elMOrY7$w%W#w$Uh3{8x#N{6T#q}=;JSA#^-)1L?%mA>)3QuUp_jd^3z z8v;wcu(7D)ePY9-dkG^v>Qe8a($u}iB2~DKcmMz+QAtEWR0^@>T`QlKqmY%EG*XH5 zS^_9ZE*+o0G&tZVRHIH9Wfq5FDLR&suio6dw9vwfh@mcBgb)Jv!>tH?F@iqfgcHm- zm^ToY=Pk0SfN^f?*E+>){8P%34kVAP0JzBznD!YDgHN?ow90Pv#1^?jv4^XJ^6cOTf{75I}c4I#AYI`zo?A$+ZK%_S4oW-45IDV3u8aS@H8ht969(;=|o$lTC)nGyxy-UL@zihv5x( zvGRLL__()i3sja@r_Uky#UJQ~BzZC@Ea$=!O)ddJn}&T0+2&hpPS)~uvpMFp=F|ob z8kAjj`Q;g`KH=+FPh@xBeOHFhBnaKY3ok6!4K~;y;~5P)F0~S)ckez}zO<(Z8E(}d zZj85G!oz>lzg0UL)n&BHS=H$xcf3d)|1t<%+fWZ zZI%4JV-+o1#iS0522GELK|L;dbh?>@Z?yeSLq&G5R)Dl20-cM_4pQl}hwdtTyoogY?x?QW$9Y=e zr_$6k08jhUX(RIrlUN(Cjaumfts`pVMfK*hBSLxcqd+Vx56_iaXTt*%lea>%)RIeP z{17#r=9d8QR91G*#~yR6*SFOphd!Y)i66L02a?|hBEb6NN)Q!9`QLuqZGz2xG1&c? z^5MfCd|{SP;<41PfVSdBcs?O&b|EghTP&-iVVMub7v))=J~%vwCvwVP%G@F2$FE6q z;RP28B=ZS|7AyMD)FXKKExd>|cEvpGz(rqz6?B+%Adx|#(jvKn=so)So3FEtHrh~d zv1K9KVaFZhqhYVT_D_Ehl38da4(1Gn4#z>lp-p-C1Wt;J*Wv7lBMujOzbD4YtsS55 z%yF>sb7#5E-pha&Y1`_HzetWLBmqB7bs&P{dMFI3MbN>62g#L6=EthpA@ss=cQytd z$yeoXk4EGwsWgvX6K&UY5l5VSEswuuuaim6G>zvB+uXF57$ zh1YnwqH)u@75(XHTstyyw>c`Y7hdAD5uXm@HN=>Ep1D(e#3?_$$NkYs-gfJ)UVf># z5v(tdlqs+dB*CYt*n1>=`obVpp^Q!jj&3>1r996)|D0siMx&d{7{+#ZFY~Iat(I*F z1I5gfjI5wH#+7v--*V&tbonca>PHo{7DtQ)7hKTuV;HNj+4096m)&^NjdEgq?AWnB zo!{xD6H}YwOMh&6vh2kdUX(oS&=a|VFK=(rsQluKFZLk$Hem0COD>cpL^Rlegbd0E z@4eYFOIz#eYJ;Fl=Pntxc4sT$xbccBtdMOsVub8iy$w57an?iZQ}mm2E-4_7NV9+( zebA3B_LI~?sTsnoXq5o-?Y&}05vQEBN^cBhskj-~-0c;EpsZ^vHzCfFN|hn8`k z#{EHW`8+DiM<0C%tJ^;pIm?V4Y5Cb1t0k&C@4Qpsw9+u}D9lT)4&5s~&GON#-z?5b zn3^bHB~lvhRAi^mFzvF?Nh5H*hpj}#GAQ2(6DDLhtt|P=N0Fh^!pUdPmzK5onnkBP zR38#q^M~@F`*Jeg3M*`spLMWv=kUPNGU`?9=+9x=5St8zgPJ|yZrZcXKHJN;CO*}P z1Eb!wf^^>6acG@HSfA!JA*mL?s2lBERYuVuel&dCamNcU+IyL`>#Xw7

l;lf4Wy z`8lBf06bLe&Ql$^hgXiAk|KPyT-Fa3_q6=+mF*N~ge2|OzuUG!G|HzkT68T*j+YN& zX4d}qVm#?I4>Pl>hM_fuIA4zGAa zwL!#%D;>t`O>5$+jd3d&=V9kS_bqH-#wyWZYZwhkv-FNrz;mQc#YRRs- z=2|g$%sAewz}Zo;PN49ZG@=;;ZG~&nDrM6aid3{mW{b*44$mt2%I)$)x&MK+qsXq z=9*I`c{!g_Y-GIu#d2r^={IM;?2bEbm-qgcFj~Ur7eo%MHei(SvE|DSqr|BkeDa@k z(#evq);ye+SLX(PkB@iLYWwcH?e*?fWJlD+xU(@@uU*nWG-v&bR~W#P3+A0I`gl^sacO^YE!SVzb?kt?sb z(hFTCEE@&Bt(#%{x^I-k)6u{iZ%oP-TF@@{>P^n$Xd{Y8DSVI2(`h*WwT!~Ktk@?K4PkZNXd`jJowOq z*^M{el>H7*C=QGHv70;Zx>JV6*x=*=*?8i-Ob8P|_6b#1;K5k>V*D@gO%_g&>c@lF z>9DtD=fe2}HV8Hx`neBf;J`s%Ns8NzmDn{JR&4E&*?CNyI8kKP$u~YVjKxXKlyk3x8Hs%yBbULLzWsM7(GxS!)Pir4wai%P7G_K+ZqPDRo`}BgK8*Z zTJYM=lF>ZszS?T5C*{7?Uz7!rXW zEfZIZbQF?y>=v6HfX*{;+5Fvi-w_DrR}4m|tej)uT#L%Z`lt1_1MfBdc%PWghv_u8 z`7y>426cXvo-2tboN%JxshrB&Uc*=Ie)X#ZvUei+Q2^l*|N4SB{w?T0(vnc{co?Xu zdXrR-MS?Z0D8FHJp3yx!L8I2tEDu z(eizlU3c9jTOSj)x_L@F49&+Y&dtb(Wzj_z6&d($j_uG+i9vELQ(Ldvb;O8z!}-ZY zwI&`nY(6=)^E~XZ!@OnrbQGt^Rx-up2<6mM>=2(%O21r=2BwW-0qjY5_~D0rku-07 zpL}A8NAIsD@iP=V|Kb<^UdFGIT(Z}BgR?Q&s7tz92NWZ{+Okn+vEE3dZGSrEE^y>s zcJ72ECuiS!nM>)ZwR>MXE;o$Jv~kGL#@Huhui%BL$kQvZumDoeTY z6@jZODj!#f`1;Bv)>*J8it)O%Ze?UaV~8Z+6XRIjp~?wqe!_&9T)@zg2-|>mD%_jJ zX8Xtc6 zL3Z#V2MY#u$&OU_3Gj>V`rR3}Mk@!vi09#xfbcK;FbjswS`IFspL^c9zAPO5#hv1{ z*Iw&il~m4%VF5lLVMTMlPIr9uI`-J3g(qM2*hsYQthe5}s3Ug23$awr7}vsBOqN|~ zxRbd@PdiV*PK5WQv)e;+#+hgOCGcY7v*>zHi04F=32IvP)8ihzzuNJQJo;!%>bi%Q zW^iJ~@_K&|*+5dx7;&ftX2|UwM|LMRAFIEfs2~-`iq*x)OsChl}!S=^L{xMr(ar<2& z;@)+at#?*V%}K1-AFw4QNeTfiE5C=t$#LTABE@OgNvtC$rAtwxP=NH2)g6c@`S*CV zu~1R*4S}_3Kg42uJbTQE*eWN(Mn5TQOUhq8lr-thNuCc6NX$=;|uh=W3rPzDK$bVI%BI(X%{3mY6c-S(c*mbC}9XKVZK8*%`k-LporO=^J#4 z*Vd5oWPXn1xT3Yj8f(f(Q88m0jcd`!o1xJ4WxF zjC5LDX`*9#Tacp;q?o-JBdmm>{FD>8^f)p0hwSQOg=S~5=wgdT2kY!twsckG+H0@z z?`Be1_Y_gT#ftbiuPTnc{Bp}LCwzGBg#7rFr{j|&9%1N{gf|s-B@56tqUyKmMigZ$ zM+lXQ={z@qk5+k7TOMLHis!TX%E}ndwBsneBRM9m5=hC z2JqaIfH(a73+$W*4}awr zRQf=YO5y^VFJe*c&GF0=`eg43OnsF1FpV-%jf(22u?D2gdnh)mzlzDtDp$P_s@JPlI zQcdTRorjNcaq!qE@3HYdgQLq`urY@nm>6)uT!>hXrct4pW|~D8uSxKizjm@83w^&)u> z(#ePFQeaJE7=F$7*+_uV?^*sDE_hKk|PYD!m1$*(}+|42yo9c zotMo9Eu)A|qr;V}kj^=emCee|dyOjV3ZP6hL%4bj%E#ysQ7K!Xa~z>0@+;Gy;;C#w zU5IhK0$z|yL~*z*hv?GZjG#9!WSo_N4%=U&bh*F8=0DMsOAI2(eW%P-vPE!#h4N&K zU@^j44HPVuU+56S$TBCyE+HaIJCL%BWpR#4ESn|sF=e?*d(;!EY0X+T!aGSYX3{TZR}Cg@p$TSSB3Rg z#@n<~3b60Mt!lhCDvDlR$$e1Tj6=c2$9rDRgEUe}I)9vphLy|nILtgwM9k`?!47Cd z6*=+<|K6}PW~ViNlZBsU7&K^*Gm}XBpi||;-ODe(ylwbi!;Q(M_*eoqZ^889lCUGm z4yxVG-1lFGRUYt`T|- zNX3|tCccOu^5%$Ku#6y%^M3E~IC+(%yz}(=aMYNYF-i{J;PXslPib-#8GGRmx6dWG z0?6o--9SVivnlw6j-w;nxoNhj8!cq{UL)A+YG1b1)?1kqPdL$Fd$N2axEDS*Nq5UF zw}`DzOWT}yijTbru%y0pYdQ~#pj~l8;#gun;pyZz&L8^~uW~eDF_g?-WC9E-5Gp?Z z%A9smRq17U{*!SmQCgB>Oe~*GtxXft$NskEiV@(CK}sLjIr_?A3=|Vp#Vbv{bVt`9 znWDDls!a9T8q^ep*mP;Fv2pgdIqoIYQB-aOqReA<->;tyn-gFBBK@()jxyMpCtnuB zHeV6sRD3X-uOX!4B&$x6F_B*^kKcLOS;P-y(lFnDOXnf-@+WcC6@z3pwKh!x7X{ju zD*~W52C3-8b2%!4F;GlW6|Xe)(j8rcWQy9Ft1{JVYfw`ZV%Ns6otmPRVnqPC4kSv+ z;k2@AsfWc*fE~l&!GjGB6p18k^f>%xuDkA9d6i)#mU(@L!Or59S6-2M5^T%$d02<* z@e^YA(+q8#ugc#_yjEgS-d5vP>7Xs~t(L8oc&)^0^?mrhW&6Rs!iYlA8L$Ik2fg>%7D$Yx|~1kc~7JaI0Z3)YfNOIu2#k&WOrDw|@~x;nkJ zOtxn3gOiKAOF9shT18XM*szAYE|k3Nst{#qi1Sz+dZ1I_JO(}iVGh`DKl3U+Ef_o4 zEs)RlF|JSFJ~ENY-KFp1ySp&0C!}Q88=o@7wsm|Ydw@9v-|&S+GMfhc#N~oX8UmD! zPRQ!e211_$9xa{CtRbPT_ml8T0?3)e%O{s%dm8nqG&!uYyfxz#Pld+{%K-8g4*(k9h*sz9D+KP}uR3sCNPRQ!e211_$9+jrH zY`IBPfs!8;Ag{%OEP*g&&iSfH6id_Zyz4GA4D%P-c?=mc#K5SnpyBAgS?|X`Hj5(s z@kbvUzN+9b5LRNsw{(farCiu+z?aBRH24yk-&>-~w>i;#N0E=GY${(qtyWmelF!`` zR>aAk=!;&qPCJmt^RfW(()*vZhMR{s@1IrX44OK7> znS}*|xhRPzRzr9~9ex5M<0E(0E`?t(%_Q?W|?J{!8Z5F2HzBsl^BjLa7^1V!4fXSzFCj?oBj6N zw{;uG+E?5}HVL#6ua#I7u4Q;F0}A>Bq#t#M*f#k73uJ4hh%M8bRdowGkT%@2k}Ou+FQd-W9qvvM+5BFnz>&u`Yp zCijOz>y%+NslH1GrIK+-Oj8^pMT8#{Io+$hFZ z6m}+D)*U)@sBAQYeFNESw(!D>m>X}n-pq_Ay|XYMkL6vvuS?zv!5k#-)o@N zdTS+KE3v55R^zquM*T0z*2=OriB-J{)AnhNn$@6MK6D!q&(L8+k%DYH7p8MARc`l$}DT5t6sJVhj1EAd)_<%Mif zzZ8`RAFc~42k zim1{o8mU*Cmm$38NPr^^&WlW)I>o&7;>%{qrIxglu1t@IH6FryELbDIWm!CanwW+v z!1F{t>^(kXF~%oZPZ>cgWy`UPgJrDa^jzQIa<^pY$tvM!bq;9WlN&dVHjcGTADCt1r#EbLfW%J<% zu!z$jSwn>Nu>RAs)soN47Av=gKaW+JKTlYKNfP|U5aAVuiE&Cv{)VGkiAAQZ#A_wi zze6@+&bSZMLUXQ__qCN+EJZ8vT8Y&H*}@3KS6WKgPUo>|;WWX=<28||inYh8B4B(I zd^}#QJhjpyIf&H|UX-Vnx0P7r(@H##RjU9E>a7*B#jF~Vt(M%mG>;cE$'+ + data.children[i].text+''+ + makeTree(data.children[i],relPath)+''; + } + result+=''; + } + return result; + } + var searchBoxHtml; + if (searchEnabled) { + if (serverSide) { + searchBoxHtml='

'+ + '
'+ + '
 '+ + ''+ + '
'+ + '
'+ + '
'+ + '
'; + } else { + searchBoxHtml='
'+ + ''+ + ' '+ + ''+ + ''+ + ''+ + ''+ + ''+ + '
'; + } + } + + $('#main-nav').before('
'+ + ''+ + ''+ + '
'); + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchBoxHtml) { + $('#main-menu').append('
  • '); + } + var $mainMenuState = $('#main-menu-state'); + var prevWidth = 0; + if ($mainMenuState.length) { + function initResizableIfExists() { + if (typeof initResizable==='function') initResizable(); + } + // animate mobile menu + $mainMenuState.change(function(e) { + var $menu = $('#main-menu'); + var options = { duration: 250, step: initResizableIfExists }; + if (this.checked) { + options['complete'] = function() { $menu.css('display', 'block') }; + $menu.hide().slideDown(options); + } else { + options['complete'] = function() { $menu.css('display', 'none') }; + $menu.show().slideUp(options); + } + }); + // set default menu visibility + function resetState() { + var $menu = $('#main-menu'); + var $mainMenuState = $('#main-menu-state'); + var newWidth = $(window).outerWidth(); + if (newWidth!=prevWidth) { + if ($(window).outerWidth()<768) { + $mainMenuState.prop('checked',false); $menu.hide(); + $('#searchBoxPos1').html(searchBoxHtml); + $('#searchBoxPos2').hide(); + } else { + $menu.show(); + $('#searchBoxPos1').empty(); + $('#searchBoxPos2').html(searchBoxHtml); + $('#searchBoxPos2').show(); + } + if (typeof searchBox!=='undefined') { + searchBox.CloseResultsWindow(); + } + prevWidth = newWidth; + } + } + $(window).ready(function() { resetState(); initResizableIfExists(); }); + $(window).resize(resetState); + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/menudata.js b/menudata.js new file mode 100644 index 00000000..f02d929e --- /dev/null +++ b/menudata.js @@ -0,0 +1,163 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + 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 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file +*/ +var menudata={children:[ +{text:"Main Page",url:"index.html"}, +{text:"Modules",url:"modules.html"}, +{text:"Data Structures",url:"annotated.html",children:[ +{text:"Data Structures",url:"annotated.html"}, +{text:"Data Structure Index",url:"classes.html"}, +{text:"Data Fields",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{text:"_",url:"functions.html#index__5F"}, +{text:"a",url:"functions.html#index_a"}, +{text:"b",url:"functions.html#index_b"}, +{text:"c",url:"functions.html#index_c"}, +{text:"d",url:"functions.html#index_d"}, +{text:"e",url:"functions.html#index_e"}, +{text:"f",url:"functions.html#index_f"}, +{text:"g",url:"functions.html#index_g"}, +{text:"h",url:"functions.html#index_h"}, +{text:"i",url:"functions.html#index_i"}, +{text:"k",url:"functions.html#index_k"}, +{text:"l",url:"functions.html#index_l"}, +{text:"m",url:"functions.html#index_m"}, +{text:"n",url:"functions.html#index_n"}, +{text:"o",url:"functions.html#index_o"}, +{text:"p",url:"functions.html#index_p"}, +{text:"q",url:"functions.html#index_q"}, +{text:"r",url:"functions.html#index_r"}, +{text:"s",url:"functions.html#index_s"}, +{text:"t",url:"functions.html#index_t"}, +{text:"u",url:"functions.html#index_u"}, +{text:"v",url:"functions.html#index_v"}]}, +{text:"Functions",url:"functions_func.html"}, +{text:"Variables",url:"functions_vars.html",children:[ +{text:"a",url:"functions_vars.html#index_a"}, +{text:"b",url:"functions_vars.html#index_b"}, +{text:"c",url:"functions_vars.html#index_c"}, +{text:"d",url:"functions_vars.html#index_d"}, +{text:"e",url:"functions_vars.html#index_e"}, +{text:"f",url:"functions_vars.html#index_f"}, +{text:"g",url:"functions_vars.html#index_g"}, +{text:"h",url:"functions_vars.html#index_h"}, +{text:"i",url:"functions_vars.html#index_i"}, +{text:"k",url:"functions_vars.html#index_k"}, +{text:"l",url:"functions_vars.html#index_l"}, +{text:"m",url:"functions_vars.html#index_m"}, +{text:"n",url:"functions_vars.html#index_n"}, +{text:"o",url:"functions_vars.html#index_o"}, +{text:"p",url:"functions_vars.html#index_p"}, +{text:"q",url:"functions_vars.html#index_q"}, +{text:"r",url:"functions_vars.html#index_r"}, +{text:"s",url:"functions_vars.html#index_s"}, +{text:"t",url:"functions_vars.html#index_t"}, +{text:"u",url:"functions_vars.html#index_u"}, +{text:"v",url:"functions_vars.html#index_v"}]}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}, +{text:"Globals",url:"globals.html",children:[ +{text:"All",url:"globals.html",children:[ +{text:"_",url:"globals.html#index__5F"}, +{text:"a",url:"globals_a.html#index_a"}, +{text:"b",url:"globals_b.html#index_b"}, +{text:"c",url:"globals_c.html#index_c"}, +{text:"d",url:"globals_d.html#index_d"}, +{text:"e",url:"globals_e.html#index_e"}, +{text:"f",url:"globals_f.html#index_f"}, +{text:"g",url:"globals_g.html#index_g"}, +{text:"h",url:"globals_h.html#index_h"}, +{text:"i",url:"globals_i.html#index_i"}, +{text:"l",url:"globals_l.html#index_l"}, +{text:"m",url:"globals_m.html#index_m"}, +{text:"n",url:"globals_n.html#index_n"}, +{text:"o",url:"globals_o.html#index_o"}, +{text:"p",url:"globals_p.html#index_p"}, +{text:"r",url:"globals_r.html#index_r"}, +{text:"s",url:"globals_s.html#index_s"}, +{text:"t",url:"globals_t.html#index_t"}, +{text:"u",url:"globals_u.html#index_u"}, +{text:"v",url:"globals_v.html#index_v"}, +{text:"w",url:"globals_w.html#index_w"}]}, +{text:"Functions",url:"globals_func.html",children:[ +{text:"_",url:"globals_func.html#index__5F"}, +{text:"a",url:"globals_func_a.html#index_a"}, +{text:"c",url:"globals_func_c.html#index_c"}, +{text:"d",url:"globals_func_d.html#index_d"}, +{text:"f",url:"globals_func_f.html#index_f"}, +{text:"g",url:"globals_func_g.html#index_g"}, +{text:"h",url:"globals_func_h.html#index_h"}, +{text:"i",url:"globals_func_i.html#index_i"}, +{text:"m",url:"globals_func_m.html#index_m"}, +{text:"p",url:"globals_func_p.html#index_p"}, +{text:"r",url:"globals_func_r.html#index_r"}, +{text:"s",url:"globals_func_s.html#index_s"}, +{text:"t",url:"globals_func_t.html#index_t"}, +{text:"u",url:"globals_func_u.html#index_u"}, +{text:"w",url:"globals_func_w.html#index_w"}]}, +{text:"Variables",url:"globals_vars.html"}, +{text:"Typedefs",url:"globals_type.html",children:[ +{text:"a",url:"globals_type.html#index_a"}, +{text:"b",url:"globals_type.html#index_b"}, +{text:"f",url:"globals_type.html#index_f"}, +{text:"i",url:"globals_type.html#index_i"}, +{text:"m",url:"globals_type.html#index_m"}, +{text:"s",url:"globals_type.html#index_s"}, +{text:"t",url:"globals_type.html#index_t"}, +{text:"u",url:"globals_type.html#index_u"}]}, +{text:"Enumerations",url:"globals_enum.html"}, +{text:"Enumerator",url:"globals_eval.html",children:[ +{text:"a",url:"globals_eval.html#index_a"}, +{text:"b",url:"globals_eval.html#index_b"}, +{text:"c",url:"globals_eval.html#index_c"}, +{text:"g",url:"globals_eval.html#index_g"}, +{text:"h",url:"globals_eval.html#index_h"}, +{text:"i",url:"globals_eval.html#index_i"}, +{text:"n",url:"globals_eval.html#index_n"}, +{text:"o",url:"globals_eval.html#index_o"}, +{text:"p",url:"globals_eval.html#index_p"}, +{text:"s",url:"globals_eval.html#index_s"}, +{text:"t",url:"globals_eval.html#index_t"}, +{text:"v",url:"globals_eval.html#index_v"}]}, +{text:"Macros",url:"globals_defs.html",children:[ +{text:"_",url:"globals_defs.html#index__5F"}, +{text:"a",url:"globals_defs_a.html#index_a"}, +{text:"b",url:"globals_defs_b.html#index_b"}, +{text:"c",url:"globals_defs_c.html#index_c"}, +{text:"d",url:"globals_defs_d.html#index_d"}, +{text:"e",url:"globals_defs_e.html#index_e"}, +{text:"f",url:"globals_defs_f.html#index_f"}, +{text:"g",url:"globals_defs_g.html#index_g"}, +{text:"h",url:"globals_defs_h.html#index_h"}, +{text:"i",url:"globals_defs_i.html#index_i"}, +{text:"l",url:"globals_defs_l.html#index_l"}, +{text:"m",url:"globals_defs_m.html#index_m"}, +{text:"n",url:"globals_defs_n.html#index_n"}, +{text:"o",url:"globals_defs_o.html#index_o"}, +{text:"p",url:"globals_defs_p.html#index_p"}, +{text:"r",url:"globals_defs_r.html#index_r"}, +{text:"s",url:"globals_defs_s.html#index_s"}, +{text:"t",url:"globals_defs_t.html#index_t"}, +{text:"u",url:"globals_defs_u.html#index_u"}, +{text:"v",url:"globals_defs_v.html#index_v"}]}]}]}]} diff --git a/modules.html b/modules.html new file mode 100644 index 00000000..d3df6a18 --- /dev/null +++ b/modules.html @@ -0,0 +1,116 @@ + + + + + + + +Arax: Modules + + + + + + + + + + + + + + +
    +
    + + + + + + + +
    +
    Arax -2eef1b7f162685be3f89380e791eff98a662fb12 +
    +
    A Runtime Framework for Decoupling Applications from Heterogeneous Accelerators
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    +
    +
    +
    +
    +
    Loading...
    +
    Searching...
    +
    No Matches
    +
    +
    +
    +
    + +
    +
    Modules
    +
    + +
    + + + + diff --git a/modules.js b/modules.js new file mode 100644 index 00000000..eadb6677 --- /dev/null +++ b/modules.js @@ -0,0 +1,8 @@ +var modules = +[ + [ "Initialization/Cleanup", "a02174.html", "a02174" ], + [ "Public Accelerator user API", "a02175.html", "a02175" ], + [ "Public Procedure user API", "a02176.html", "a02176" ], + [ "Public Task user API", "a02177.html", "a02177" ], + [ "Public Buffer user API", "a02178.html", "a02178" ] +]; \ No newline at end of file diff --git a/nav_f.png b/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..d0877929cdf4a673a0b6fe7fbd9b7352ed255fb0 GIT binary patch literal 145 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQW2gmjv*C{Z|@ok9S{&{d3gL@ zh$Ne{Kv9nGsUzO56Hf~6do=&9bHID?EZe|S7bX-tdrduBu|a_Av)$pH)3G!C1;-TM1ES(jJh2_I~Y7&{an^LB{Ts5$D}lA literal 0 HcmV?d00001 diff --git a/nav_fd.png b/nav_fd.png new file mode 100644 index 0000000000000000000000000000000000000000..b3f62e51975f6f68a4be18dae462331d6dbfdc53 GIT binary patch literal 141 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQX!r$jv*C{Z|{2ZH5hQP1ZXsF z`%!*Ty5hfbmhr__ogViYdlt4@2V}SJc;ETrP2PrUThkr&Q}@kHIM=^;2JeeBzEEwE qi!Ltv51o0ad#>>L-}8Ses~P9r;TB)?SM3APdQGNonB4bo=m)X{NG=@9eIAnEI#H{eXl^;JYD@<);T3K0RY==0 ? varName.substring(i+1) : varName; + return eval(n.replace(/\-/g,'_')); +} + +function stripPath(uri) +{ + return uri.substring(uri.lastIndexOf('/')+1); +} + +function stripPath2(uri) +{ + var i = uri.lastIndexOf('/'); + var s = uri.substring(i+1); + var m = uri.substring(0,i+1).match(/\/d\w\/d\w\w\/$/); + return m ? uri.substring(i-6) : s; +} + +function hashValue() +{ + return $(location).attr('hash').substring(1).replace(/[^\w\-]/g,''); +} + +function hashUrl() +{ + return '#'+hashValue(); +} + +function pathName() +{ + return $(location).attr('pathname').replace(/[^-A-Za-z0-9+&@#/%?=~_|!:,.;\(\)]/g, ''); +} + +function localStorageSupported() +{ + try { + return 'localStorage' in window && window['localStorage'] !== null && window.localStorage.getItem; + } + catch(e) { + return false; + } +} + +function storeLink(link) +{ + if (!$("#nav-sync").hasClass('sync') && localStorageSupported()) { + window.localStorage.setItem('navpath',link); + } +} + +function deleteLink() +{ + if (localStorageSupported()) { + window.localStorage.setItem('navpath',''); + } +} + +function cachedLink() +{ + if (localStorageSupported()) { + return window.localStorage.getItem('navpath'); + } else { + return ''; + } +} + +function getScript(scriptName,func,show) +{ + var head = document.getElementsByTagName("head")[0]; + var script = document.createElement('script'); + script.id = scriptName; + script.type = 'text/javascript'; + script.onload = func; + script.src = scriptName+'.js'; + head.appendChild(script); +} + +function createIndent(o,domNode,node,level) +{ + var level=-1; + var n = node; + while (n.parentNode) { level++; n=n.parentNode; } + if (node.childrenData) { + var imgNode = document.createElement("span"); + imgNode.className = 'arrow'; + imgNode.style.paddingLeft=(16*level).toString()+'px'; + imgNode.innerHTML=arrowRight; + node.plus_img = imgNode; + node.expandToggle = document.createElement("a"); + node.expandToggle.href = "javascript:void(0)"; + node.expandToggle.onclick = function() { + if (node.expanded) { + $(node.getChildrenUL()).slideUp("fast"); + node.plus_img.innerHTML=arrowRight; + node.expanded = false; + } else { + expandNode(o, node, false, false); + } + } + node.expandToggle.appendChild(imgNode); + domNode.appendChild(node.expandToggle); + } else { + var span = document.createElement("span"); + span.className = 'arrow'; + span.style.width = 16*(level+1)+'px'; + span.innerHTML = ' '; + domNode.appendChild(span); + } +} + +var animationInProgress = false; + +function gotoAnchor(anchor,aname,updateLocation) +{ + var pos, docContent = $('#doc-content'); + var ancParent = $(anchor.parent()); + if (ancParent.hasClass('memItemLeft') || + ancParent.hasClass('memtitle') || + ancParent.hasClass('fieldname') || + ancParent.hasClass('fieldtype') || + ancParent.is(':header')) + { + pos = ancParent.position().top; + } else if (anchor.position()) { + pos = anchor.position().top; + } + if (pos) { + var dist = Math.abs(Math.min( + pos-docContent.offset().top, + docContent[0].scrollHeight- + docContent.height()-docContent.scrollTop())); + animationInProgress=true; + docContent.animate({ + scrollTop: pos + docContent.scrollTop() - docContent.offset().top + },Math.max(50,Math.min(500,dist)),function(){ + if (updateLocation) window.location.href=aname; + animationInProgress=false; + }); + } +} + +function newNode(o, po, text, link, childrenData, lastNode) +{ + var node = new Object(); + node.children = Array(); + node.childrenData = childrenData; + node.depth = po.depth + 1; + node.relpath = po.relpath; + node.isLast = lastNode; + + node.li = document.createElement("li"); + po.getChildrenUL().appendChild(node.li); + node.parentNode = po; + + node.itemDiv = document.createElement("div"); + node.itemDiv.className = "item"; + + node.labelSpan = document.createElement("span"); + node.labelSpan.className = "label"; + + createIndent(o,node.itemDiv,node,0); + node.itemDiv.appendChild(node.labelSpan); + node.li.appendChild(node.itemDiv); + + var a = document.createElement("a"); + node.labelSpan.appendChild(a); + node.label = document.createTextNode(text); + node.expanded = false; + a.appendChild(node.label); + if (link) { + var url; + if (link.substring(0,1)=='^') { + url = link.substring(1); + link = url; + } else { + url = node.relpath+link; + } + a.className = stripPath(link.replace('#',':')); + if (link.indexOf('#')!=-1) { + var aname = '#'+link.split('#')[1]; + var srcPage = stripPath(pathName()); + var targetPage = stripPath(link.split('#')[0]); + a.href = srcPage!=targetPage ? url : "javascript:void(0)"; + a.onclick = function(){ + storeLink(link); + if (!$(a).parent().parent().hasClass('selected')) + { + $('.item').removeClass('selected'); + $('.item').removeAttr('id'); + $(a).parent().parent().addClass('selected'); + $(a).parent().parent().attr('id','selected'); + } + var anchor = $(aname); + gotoAnchor(anchor,aname,true); + }; + } else { + a.href = url; + a.onclick = function() { storeLink(link); } + } + } else { + if (childrenData != null) + { + a.className = "nolink"; + a.href = "javascript:void(0)"; + a.onclick = node.expandToggle.onclick; + } + } + + node.childrenUL = null; + node.getChildrenUL = function() { + if (!node.childrenUL) { + node.childrenUL = document.createElement("ul"); + node.childrenUL.className = "children_ul"; + node.childrenUL.style.display = "none"; + node.li.appendChild(node.childrenUL); + } + return node.childrenUL; + }; + + return node; +} + +function showRoot() +{ + var headerHeight = $("#top").height(); + var footerHeight = $("#nav-path").height(); + var windowHeight = $(window).height() - headerHeight - footerHeight; + (function (){ // retry until we can scroll to the selected item + try { + var navtree=$('#nav-tree'); + navtree.scrollTo('#selected',100,{offset:-windowHeight/2}); + } catch (err) { + setTimeout(arguments.callee, 0); + } + })(); +} + +function expandNode(o, node, imm, showRoot) +{ + if (node.childrenData && !node.expanded) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + expandNode(o, node, imm, showRoot); + }, showRoot); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).slideDown("fast"); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + } + } +} + +function glowEffect(n,duration) +{ + n.addClass('glow').delay(duration).queue(function(next){ + $(this).removeClass('glow');next(); + }); +} + +function highlightAnchor() +{ + var aname = hashUrl(); + var anchor = $(aname); + if (anchor.parent().attr('class')=='memItemLeft'){ + var rows = $('.memberdecls tr[class$="'+hashValue()+'"]'); + glowEffect(rows.children(),300); // member without details + } else if (anchor.parent().attr('class')=='fieldname'){ + glowEffect(anchor.parent().parent(),1000); // enum value + } else if (anchor.parent().attr('class')=='fieldtype'){ + glowEffect(anchor.parent().parent(),1000); // struct field + } else if (anchor.parent().is(":header")) { + glowEffect(anchor.parent(),1000); // section header + } else { + glowEffect(anchor.next(),1000); // normal member + } +} + +function selectAndHighlight(hash,n) +{ + var a; + if (hash) { + var link=stripPath(pathName())+':'+hash.substring(1); + a=$('.item a[class$="'+link+'"]'); + } + if (a && a.length) { + a.parent().parent().addClass('selected'); + a.parent().parent().attr('id','selected'); + highlightAnchor(); + } else if (n) { + $(n.itemDiv).addClass('selected'); + $(n.itemDiv).attr('id','selected'); + } + var topOffset=5; + if (typeof page_layout!=='undefined' && page_layout==1) { + topOffset+=$('#top').outerHeight(); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + topOffset+=25; + } + $('#nav-sync').css('top',topOffset+'px'); + showRoot(); +} + +function showNode(o, node, index, hash) +{ + if (node && node.childrenData) { + if (typeof(node.childrenData)==='string') { + var varName = node.childrenData; + getScript(node.relpath+varName,function(){ + node.childrenData = getData(varName); + showNode(o,node,index,hash); + },true); + } else { + if (!node.childrenVisited) { + getNode(o, node); + } + $(node.getChildrenUL()).css({'display':'block'}); + node.plus_img.innerHTML = arrowDown; + node.expanded = true; + var n = node.children[o.breadcrumbs[index]]; + if (index+11) hash = '#'+parts[1].replace(/[^\w\-]/g,''); + else hash=''; + } + if (hash.match(/^#l\d+$/)) { + var anchor=$('a[name='+hash.substring(1)+']'); + glowEffect(anchor.parent(),1000); // line number + hash=''; // strip line number anchors + } + var url=root+hash; + var i=-1; + while (NAVTREEINDEX[i+1]<=url) i++; + if (i==-1) { i=0; root=NAVTREE[0][1]; } // fallback: show index + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath) + } else { + getScript(relpath+'navtreeindex'+i,function(){ + navTreeSubIndices[i] = eval('NAVTREEINDEX'+i); + if (navTreeSubIndices[i]) { + gotoNode(o,i,root,hash,relpath); + } + },true); + } +} + +function showSyncOff(n,relpath) +{ + n.html(''); +} + +function showSyncOn(n,relpath) +{ + n.html(''); +} + +function toggleSyncButton(relpath) +{ + var navSync = $('#nav-sync'); + if (navSync.hasClass('sync')) { + navSync.removeClass('sync'); + showSyncOff(navSync,relpath); + storeLink(stripPath2(pathName())+hashUrl()); + } else { + navSync.addClass('sync'); + showSyncOn(navSync,relpath); + deleteLink(); + } +} + +var loadTriggered = false; +var readyTriggered = false; +var loadObject,loadToRoot,loadUrl,loadRelPath; + +$(window).on('load',function(){ + if (readyTriggered) { // ready first + navTo(loadObject,loadToRoot,loadUrl,loadRelPath); + showRoot(); + } + loadTriggered=true; +}); + +function initNavTree(toroot,relpath) +{ + var o = new Object(); + o.toroot = toroot; + o.node = new Object(); + o.node.li = document.getElementById("nav-tree-contents"); + o.node.childrenData = NAVTREE; + o.node.children = new Array(); + o.node.childrenUL = document.createElement("ul"); + o.node.getChildrenUL = function() { return o.node.childrenUL; }; + o.node.li.appendChild(o.node.childrenUL); + o.node.depth = 0; + o.node.relpath = relpath; + o.node.expanded = false; + o.node.isLast = true; + o.node.plus_img = document.createElement("span"); + o.node.plus_img.className = 'arrow'; + o.node.plus_img.innerHTML = arrowRight; + + if (localStorageSupported()) { + var navSync = $('#nav-sync'); + if (cachedLink()) { + showSyncOff(navSync,relpath); + navSync.removeClass('sync'); + } else { + showSyncOn(navSync,relpath); + } + navSync.click(function(){ toggleSyncButton(relpath); }); + } + + if (loadTriggered) { // load before ready + navTo(o,toroot,hashUrl(),relpath); + showRoot(); + } else { // ready before load + loadObject = o; + loadToRoot = toroot; + loadUrl = hashUrl(); + loadRelPath = relpath; + readyTriggered=true; + } + + $(window).bind('hashchange', function(){ + if (window.location.hash && window.location.hash.length>1){ + var a; + if ($(location).attr('hash')){ + var clslink=stripPath(pathName())+':'+hashValue(); + a=$('.item a[class$="'+clslink.replace(/1|%O$WD@{VHl8kyAr*{o=N{x`P~c!*-*=LO z?+M46l?VGf1@HZ{@R-eQ%@%nyl=0E|qlWl$N QKyw&8UHx3vIVCg!02}ip*Z=?k literal 0 HcmV?d00001 diff --git a/resize.js b/resize.js new file mode 100644 index 00000000..aaeb6fc0 --- /dev/null +++ b/resize.js @@ -0,0 +1,155 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + 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 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +var once=1; +function initResizable() +{ + var cookie_namespace = 'doxygen'; + var sidenav,navtree,content,header,barWidth=6,desktop_vp=768,titleHeight; + + function readSetting(cookie) + { + if (window.chrome) { + var val = localStorage.getItem(cookie_namespace+'_width'); + if (val) return val; + } else { + var myCookie = cookie_namespace+"_"+cookie+"="; + if (document.cookie) { + var index = document.cookie.indexOf(myCookie); + if (index != -1) { + var valStart = index + myCookie.length; + var valEnd = document.cookie.indexOf(";", valStart); + if (valEnd == -1) { + valEnd = document.cookie.length; + } + var val = document.cookie.substring(valStart, valEnd); + return val; + } + } + } + return 250; + } + + function writeSetting(cookie, val) + { + if (window.chrome) { + localStorage.setItem(cookie_namespace+"_width",val); + } else { + var date = new Date(); + date.setTime(date.getTime()+(10*365*24*60*60*1000)); // default expiration is one week + expiration = date.toGMTString(); + document.cookie = cookie_namespace + "_" + cookie + "=" + val + "; SameSite=Lax; expires=" + expiration+"; path=/"; + } + } + + function resizeWidth() + { + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(sidenavWidth)+"px"}); + } + writeSetting('width',sidenavWidth-barWidth); + } + + function restoreWidth(navWidth) + { + var windowWidth = $(window).width() + "px"; + content.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + if (typeof page_layout!=='undefined' && page_layout==1) { + footer.css({marginLeft:parseInt(navWidth)+barWidth+"px"}); + } + sidenav.css({width:navWidth + "px"}); + } + + function resizeHeight() + { + var headerHeight = header.outerHeight(); + var footerHeight = footer.outerHeight(); + var windowHeight = $(window).height(); + var contentHeight,navtreeHeight,sideNavHeight; + if (typeof page_layout==='undefined' || page_layout==0) { /* DISABLE_INDEX=NO */ + contentHeight = windowHeight - headerHeight - footerHeight; + navtreeHeight = contentHeight; + sideNavHeight = contentHeight; + } else if (page_layout==1) { /* DISABLE_INDEX=YES */ + contentHeight = windowHeight - footerHeight; + navtreeHeight = windowHeight - headerHeight; + sideNavHeight = windowHeight; + } + content.css({height:contentHeight + "px"}); + navtree.css({height:navtreeHeight + "px"}); + sidenav.css({height:sideNavHeight + "px"}); + if (location.hash.slice(1)) { + (document.getElementById(location.hash.slice(1))||document.body).scrollIntoView(); + } + } + + function collapseExpand() + { + var newWidth; + if (sidenav.width()>0) { + newWidth=0; + } + else { + var width = readSetting('width'); + newWidth = (width>250 && width<$(window).width()) ? width : 250; + } + restoreWidth(newWidth); + var sidenavWidth = $(sidenav).outerWidth(); + writeSetting('width',sidenavWidth-barWidth); + } + + header = $("#top"); + sidenav = $("#side-nav"); + content = $("#doc-content"); + navtree = $("#nav-tree"); + footer = $("#nav-path"); + $(".side-nav-resizable").resizable({resize: function(e, ui) { resizeWidth(); } }); + $(sidenav).resizable({ minWidth: 0 }); + $(window).resize(function() { resizeHeight(); }); + var device = navigator.userAgent.toLowerCase(); + var touch_device = device.match(/(iphone|ipod|ipad|android)/); + if (touch_device) { /* wider split bar for touch only devices */ + $(sidenav).css({ paddingRight:'20px' }); + $('.ui-resizable-e').css({ width:'20px' }); + $('#nav-sync').css({ right:'34px' }); + barWidth=20; + } + var width = readSetting('width'); + if (width) { restoreWidth(width); } else { resizeWidth(); } + resizeHeight(); + var url = location.href; + var i=url.indexOf("#"); + if (i>=0) window.location.hash=url.substr(i); + var _preventDefault = function(evt) { evt.preventDefault(); }; + $("#splitbar").bind("dragstart", _preventDefault).bind("selectstart", _preventDefault); + if (once) { + $(".ui-resizable-handle").dblclick(collapseExpand); + once=0 + } + $(window).on('load',resizeHeight); +} +/* @license-end */ diff --git a/search/all_0.js b/search/all_0.js new file mode 100644 index 00000000..fc9d7cc4 --- /dev/null +++ b/search/all_0.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['_5f_5fattribute_5f_5f_0',['__attribute__',['../a02318.html#a22ce7d1481ed08520fb7502ee9434678',1,'queue::__attribute__()'],['../a01388.html#a22ce7d1481ed08520fb7502ee9434678',1,'__attribute__(): queue.h'],['../a02318.html#a4c166daef0391e2e123926168d60dc01',1,'queue::__attribute__()']]], + ['_5f_5fbacktracestr_1',['__backtraceStr',['../a01964.html#a0116fa31a0c53892cffee8820f76c510',1,'system.c']]], + ['_5fadd_5fcompletion_2',['_add_completion',['../a02346.html#aa459f71b73bbc23f0b4bb342d093dde3',1,'async.c']]], + ['_5farax_5fassert_3',['_arax_assert',['../a01946.html#af26dc0763861425aefd6253b538a289a',1,'_arax_assert(int fail, const char *expr, const char *file, int line): arax_assert.c'],['../a01370.html#a2f4a6e64f2337b6493d4b4b45249290c',1,'_arax_assert(int fail, const char *expr, const char *file, int line): arax_assert.c']]], + ['_5farax_5fassert_5fobj_4',['_arax_assert_obj',['../a01370.html#a27854e7c23d8cf99d4f5044d5a6c54f2',1,'_arax_assert_obj(void *obj, int type): arax_assert.c'],['../a01946.html#a4ee1fea325d2edd421f59ab240dfbe54',1,'_arax_assert_obj(void *obj, int type): arax_assert.c']]], + ['_5farax_5finit_5',['_arax_init',['../a01907.html#a02fd608f651d254148dc74f0ae371dfe',1,'impl.c']]], + ['_5farch_5falloc_5ffree_6',['_arch_alloc_free',['../a01364.html#afc64b9dda94926a3a44b983eb4879f34',1,'_arch_alloc_free(arch_alloc_s *alloc, void *mem): alloc.c'],['../a02340.html#aee3468c272395a101cb7cc10e56fcc76',1,'_arch_alloc_free(arch_alloc_s *_alloc, void *mem): alloc.c'],['../a02343.html#aee3468c272395a101cb7cc10e56fcc76',1,'_arch_alloc_free(arch_alloc_s *_alloc, void *mem): alloc.c']]], + ['_5farch_5falloc_5fmspace_5fmallinfo_7',['_arch_alloc_mspace_mallinfo',['../a02340.html#a714d6d40ed6d39c37c11df8d98fe78a2',1,'alloc.c']]], + ['_5fgm_5f_8',['_gm_',['../a01898.html#a6210dbc9273f3fc1866d4c0394965fd9',1,'malloc.c']]], + ['_5fstruct_5fmallinfo_9',['_STRUCT_MALLINFO',['../a01898.html#afb79410754096e7b3bafb895720f11a7',1,'malloc.c']]], + ['_5futils_5fconfig_5fget_5fstr_10',['_utils_config_get_str',['../a01955.html#a0738274ac3fd171eda6bfb42492bc0d7',1,'config.c']]] +]; diff --git a/search/all_1.js b/search/all_1.js new file mode 100644 index 00000000..90b352c0 --- /dev/null +++ b/search/all_1.js @@ -0,0 +1,280 @@ +var searchData= +[ + ['abort_0',['ABORT',['../a01898.html#a5376571bbf4cdc9782683635f366f89a',1,'malloc.c']]], + ['abort_5fon_5fassert_5ffailure_1',['ABORT_ON_ASSERT_FAILURE',['../a01898.html#afc93c014764c05a1cbdef61482bc36f5',1,'malloc.c']]], + ['accel_2',['accel',['../a02254.html#aac76039ff5a85f955313124fe283fd8d',1,'arax_data_s::accel'],['../a02262.html#a895fba8dd9f82f0dbe615064ba7f2259',1,'arax_object_union::accel'],['../a02282.html#aac76039ff5a85f955313124fe283fd8d',1,'arax_task_msg::accel']]], + ['accel_5fbusy_3',['accel_busy',['../a01361.html#af33a079b704d052f2f4c963aed5f3f2aaa8260a0e6538df7ce7fcf126832fad34',1,'arax_types.h']]], + ['accel_5ffailed_4',['accel_failed',['../a01361.html#af33a079b704d052f2f4c963aed5f3f2aa42ee740d4766d30577fc3538fb098753',1,'arax_types.h']]], + ['accel_5fidle_5',['accel_idle',['../a01361.html#af33a079b704d052f2f4c963aed5f3f2aaff2507424552114cf03aac6762d211a8',1,'arax_types.h']]], + ['accel_5fmeta_6',['accel_meta',['../a02254.html#a0977d418ee33f73ccf82fcc69ef9447a',1,'arax_data_s']]], + ['acquire_5fmalloc_5fglobal_5flock_7',['ACQUIRE_MALLOC_GLOBAL_LOCK',['../a01898.html#aa3c43629ddadadeb43d75494062e5342',1,'malloc.c']]], + ['add_5fsegment_8',['add_segment',['../a01898.html#aecee517bb2a61c5b79a745f3e0b4aa86',1,'malloc.c']]], + ['align_9',['align',['../a02254.html#ab2a8be45758f8c35a4a1574ccb26702d',1,'arax_data_s']]], + ['align_5fas_5fchunk_10',['align_as_chunk',['../a01898.html#a8c0e37f0d02dc9393501b1dc9b9951fd',1,'malloc.c']]], + ['align_5foffset_11',['align_offset',['../a01898.html#a2e22ed02137eff655b87a572b974eb37',1,'malloc.c']]], + ['alloc_12',['alloc',['../a02230.html#a9491197c0fea85ff7b458c8bf4b0c34b',1,'async_meta_s']]], + ['alloc_2eh_13',['alloc.h',['../a01364.html',1,'']]], + ['alloc_5fsize_14',['ALLOC_SIZE',['../a01904.html#af4b82a302bb6293cf6b77464247cb1f8',1,'test.c']]], + ['alloc_5fsize_15',['alloc_size',['../a02274.html#a17be629b5c7f3f19ca40d24c42ec7636',1,'arax_object_s']]], + ['allocator_16',['allocator',['../a02326.html#a28d08d89821adf5b72be5dee86ccd8be',1,'arax_pipe']]], + ['any_17',['ANY',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8aa00374190265e7b6447db44977a7dff1',1,'arax_types.h']]], + ['arax_18',['Arax',['../index.html',1,'']]], + ['arax_2eh_19',['arax.h',['../a01355.html',1,'']]], + ['arax_5faccel_20',['arax_accel',['../a01361.html#a352a55d01f21eaa920c5c470049ba0b1',1,'arax_types.h']]], + ['arax_5faccel_2ec_21',['arax_accel.c',['../a01913.html',1,'']]], + ['arax_5faccel_2eh_22',['arax_accel.h',['../a01400.html',1,'']]], + ['arax_5faccel_5facquire_5fphys_23',['arax_accel_acquire_phys',['../a02175.html#gaf8a10ab4e51e59c464ab3ab473e4a0f7',1,'arax_accel_acquire_phys(arax_accel **accel): impl.c'],['../a02175.html#gaf8a10ab4e51e59c464ab3ab473e4a0f7',1,'arax_accel_acquire_phys(arax_accel **accel): impl.c']]], + ['arax_5faccel_5facquire_5ftype_24',['arax_accel_acquire_type',['../a02175.html#ga008252bb9afc2990fa2c5f4b980c9f27',1,'arax_accel_acquire_type(arax_accel_type_e type): impl.c'],['../a02175.html#ga008252bb9afc2990fa2c5f4b980c9f27',1,'arax_accel_acquire_type(arax_accel_type_e type): impl.c']]], + ['arax_5faccel_5fadd_5ftask_25',['arax_accel_add_task',['../a01913.html#ab6afd8cc035237c811ce6a1b7727acc3',1,'arax_accel_add_task(arax_accel_s *accel): arax_accel.c'],['../a01400.html#ab6afd8cc035237c811ce6a1b7727acc3',1,'arax_accel_add_task(arax_accel_s *accel): arax_accel.c']]], + ['arax_5faccel_5fadd_5fvaccel_26',['arax_accel_add_vaccel',['../a01913.html#af0b933c02a24d69c1efa40179f60288f',1,'arax_accel_add_vaccel(arax_accel_s *accel, arax_vaccel_s *vaccel): arax_accel.c'],['../a01400.html#af0b933c02a24d69c1efa40179f60288f',1,'arax_accel_add_vaccel(arax_accel_s *accel, arax_vaccel_s *vaccel): arax_accel.c']]], + ['arax_5faccel_5fdel_5fvaccel_27',['arax_accel_del_vaccel',['../a01913.html#aa3f384ca4812e46dedce753be42654df',1,'arax_accel_del_vaccel(arax_accel_s *accel, arax_vaccel_s *vaccel): arax_accel.c'],['../a01400.html#aa3f384ca4812e46dedce753be42654df',1,'arax_accel_del_vaccel(arax_accel_s *accel, arax_vaccel_s *vaccel): arax_accel.c']]], + ['arax_5faccel_5fget_5fassigned_5fvaccels_28',['arax_accel_get_assigned_vaccels',['../a01913.html#aa164c99d44fec2d7296a76c8926eb585',1,'arax_accel_get_assigned_vaccels(arax_accel_s *accel, arax_vaccel_s ***vaccel): arax_accel.c'],['../a01400.html#aa164c99d44fec2d7296a76c8926eb585',1,'arax_accel_get_assigned_vaccels(arax_accel_s *accel, arax_vaccel_s ***vaccel): arax_accel.c']]], + ['arax_5faccel_5fget_5favailable_5fsize_29',['arax_accel_get_available_size',['../a01913.html#a40082ae256676bd58f960128433237c1',1,'arax_accel_get_available_size(arax_accel *accel): arax_accel.c'],['../a01400.html#a40082ae256676bd58f960128433237c1',1,'arax_accel_get_available_size(arax_accel *accel): arax_accel.c']]], + ['arax_5faccel_5fget_5fname_30',['arax_accel_get_name',['../a01400.html#a800ddc33d183998387064192c52d7ca5',1,'arax_accel_get_name(arax_accel_s *accel): arax_accel.c'],['../a01913.html#a800ddc33d183998387064192c52d7ca5',1,'arax_accel_get_name(arax_accel_s *accel): arax_accel.c']]], + ['arax_5faccel_5fget_5frevision_31',['arax_accel_get_revision',['../a01400.html#ae7bd1c4717b7a98611219be467eec092',1,'arax_accel_get_revision(arax_accel_s *accel): arax_accel.c'],['../a01913.html#ae7bd1c4717b7a98611219be467eec092',1,'arax_accel_get_revision(arax_accel_s *accel): arax_accel.c']]], + ['arax_5faccel_5fget_5fstat_32',['arax_accel_get_stat',['../a01913.html#a73c0d51ef869f0cebc943169142626b6',1,'arax_accel_get_stat(arax_accel_s *accel, arax_accel_stats_s *stat): arax_accel.c'],['../a01400.html#a73c0d51ef869f0cebc943169142626b6',1,'arax_accel_get_stat(arax_accel_s *accel, arax_accel_stats_s *stat): arax_accel.c']]], + ['arax_5faccel_5fget_5ftotal_5fsize_33',['arax_accel_get_total_size',['../a01913.html#a1c89dce1734d8093f7a443d71a5ebb94',1,'arax_accel_get_total_size(arax_accel *accel): arax_accel.c'],['../a01400.html#a1c89dce1734d8093f7a443d71a5ebb94',1,'arax_accel_get_total_size(arax_accel *accel): arax_accel.c']]], + ['arax_5faccel_5finc_5frevision_34',['arax_accel_inc_revision',['../a01913.html#aed864d2fab73a39a8c98356f7bca1304',1,'arax_accel_inc_revision(arax_accel_s *accel): arax_accel.c'],['../a01400.html#aed864d2fab73a39a8c98356f7bca1304',1,'arax_accel_inc_revision(arax_accel_s *accel): arax_accel.c']]], + ['arax_5faccel_5finit_35',['arax_accel_init',['../a01913.html#a0706a66a62ca8710342ac1c097b703ed',1,'arax_accel_init(arax_pipe_s *pipe, const char *name, arax_accel_type_e type, size_t size, size_t capacity): arax_accel.c'],['../a01400.html#a0706a66a62ca8710342ac1c097b703ed',1,'arax_accel_init(arax_pipe_s *pipe, const char *name, arax_accel_type_e type, size_t size, size_t capacity): arax_accel.c']]], + ['arax_5faccel_5flist_36',['arax_accel_list',['../a02175.html#ga7f1598b99463c5ef533a457f225b4c0b',1,'arax_accel_list(arax_accel_type_e type, int physical, arax_accel ***accels): impl.c'],['../a02175.html#ga7f1598b99463c5ef533a457f225b4c0b',1,'arax_accel_list(arax_accel_type_e type, int physical, arax_accel ***accels): impl.c']]], + ['arax_5faccel_5flist_5ffree_37',['arax_accel_list_free',['../a02175.html#ga41bcefd54b929d1a638d174da051130f',1,'arax_accel_list_free(arax_accel **accels): impl.c'],['../a02175.html#ga41bcefd54b929d1a638d174da051130f',1,'arax_accel_list_free(arax_accel **accels): impl.c']]], + ['arax_5faccel_5flist_5ffree_5fpre_5flocked_38',['arax_accel_list_free_pre_locked',['../a01907.html#a4cb362223e9e7a76f4c5695080db2755',1,'impl.c']]], + ['arax_5faccel_5fordering_5fe_39',['arax_accel_ordering_e',['../a01427.html#a50bb2106b29f1ab7b8ae19440fb49d86',1,'arax_accel_ordering_e: arax_vaccel.h'],['../a01427.html#a523978f4ff7295e0ed7b51c2a12645c4',1,'arax_accel_ordering_e: arax_vaccel.h']]], + ['arax_5faccel_5fpending_5ftasks_40',['arax_accel_pending_tasks',['../a01913.html#a213d2b8f851f79eb9216a34098da41b5',1,'arax_accel_pending_tasks(arax_accel_s *accel): arax_accel.c'],['../a01400.html#a213d2b8f851f79eb9216a34098da41b5',1,'arax_accel_pending_tasks(arax_accel_s *accel): arax_accel.c']]], + ['arax_5faccel_5frelease_41',['arax_accel_release',['../a02175.html#ga497b17905d4c7ee2f5ee831d367ece92',1,'arax_accel_release(arax_accel **accel): impl.c'],['../a02175.html#ga497b17905d4c7ee2f5ee831d367ece92',1,'arax_accel_release(arax_accel **accel): impl.c']]], + ['arax_5faccel_5fs_42',['arax_accel_s',['../a02246.html',1,'arax_accel_s'],['../a01400.html#a4d4e7f4befbde59dd89d2da3b59c88b0',1,'arax_accel_s: arax_accel.h']]], + ['arax_5faccel_5fset_5fphysical_43',['arax_accel_set_physical',['../a02175.html#ga30b30e50de286842c7942a7e3e163578',1,'arax_accel_set_physical(arax_accel *vaccel, arax_accel *phys): impl.c'],['../a02175.html#ga30b30e50de286842c7942a7e3e163578',1,'arax_accel_set_physical(arax_accel *vaccel, arax_accel *phys): impl.c']]], + ['arax_5faccel_5fsize_5fdec_44',['arax_accel_size_dec',['../a01913.html#a503b6bc6d5be49fd8715f62c7174c28e',1,'arax_accel_size_dec(arax_accel *accel, size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS): arax_accel.c'],['../a01400.html#a503b6bc6d5be49fd8715f62c7174c28e',1,'arax_accel_size_dec(arax_accel *accel, size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS): arax_accel.c']]], + ['arax_5faccel_5fsize_5finc_45',['arax_accel_size_inc',['../a01913.html#a9443355ad3d09b08427e538d75cab254',1,'arax_accel_size_inc(arax_accel *accel, size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS): arax_accel.c'],['../a01400.html#a9443355ad3d09b08427e538d75cab254',1,'arax_accel_size_inc(arax_accel *accel, size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS): arax_accel.c']]], + ['arax_5faccel_5fstat_46',['arax_accel_stat',['../a02175.html#gadd7613438ee9db973f6abf9259956bd5',1,'arax_accel_stat(arax_accel *accel, arax_accel_stats_s *stat): impl.c'],['../a02175.html#gadd7613438ee9db973f6abf9259956bd5',1,'arax_accel_stat(arax_accel *accel, arax_accel_stats_s *stat): impl.c']]], + ['arax_5faccel_5fstate_47',['arax_accel_state',['../a01361.html#af33a079b704d052f2f4c963aed5f3f2a',1,'arax_types.h']]], + ['arax_5faccel_5fstate_5fe_48',['arax_accel_state_e',['../a01361.html#a177507f1b0de9d2b2d42d87bbb2701c6',1,'arax_types.h']]], + ['arax_5faccel_5fstats_49',['arax_accel_stats',['../a02330.html',1,'']]], + ['arax_5faccel_5fstats_5fs_50',['arax_accel_stats_s',['../a01361.html#aade6fd6997075a04875ad57c660d1f15',1,'arax_types.h']]], + ['arax_5faccel_5ftype_51',['arax_accel_type',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8',1,'arax_accel_type: arax_types.h'],['../a02175.html#ga03cf4cdda8950d49fb9cb2e766d7a162',1,'arax_accel_type(arax_accel *accel): impl.c'],['../a02175.html#ga03cf4cdda8950d49fb9cb2e766d7a162',1,'arax_accel_type(arax_accel *accel): impl.c']]], + ['arax_5faccel_5ftype_5fe_52',['arax_accel_type_e',['../a01361.html#a3dbbefe5d80673f62dfcbaf639e3c302',1,'arax_types.h']]], + ['arax_5faccel_5ftype_5ffrom_5fstr_53',['arax_accel_type_from_str',['../a01916.html#ac8636df4c6e6f00739caad9910698f3c',1,'arax_accel_type_from_str(const char *type): arax_accel_types.c'],['../a01403.html#ac8636df4c6e6f00739caad9910698f3c',1,'arax_accel_type_from_str(const char *type): arax_accel_types.c']]], + ['arax_5faccel_5ftype_5fmap_54',['arax_accel_type_map',['../a02250.html',1,'']]], + ['arax_5faccel_5ftype_5fto_5fstr_55',['arax_accel_type_to_str',['../a01403.html#aadc678cace81fa112fa6baad1c190539',1,'arax_accel_type_to_str(arax_accel_type_e type): arax_accel_types.c'],['../a01916.html#aadc678cace81fa112fa6baad1c190539',1,'arax_accel_type_to_str(arax_accel_type_e type): arax_accel_types.c']]], + ['arax_5faccel_5ftypes_56',['ARAX_ACCEL_TYPES',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8a76fbff26f938893b47e2b7f113fdf19b',1,'arax_types.h']]], + ['arax_5faccel_5ftypes_2ec_57',['arax_accel_types.c',['../a01916.html',1,'']]], + ['arax_5faccel_5ftypes_2eh_58',['arax_accel_types.h',['../a01403.html',1,'']]], + ['arax_5faccel_5fvalid_5ftype_59',['arax_accel_valid_type',['../a01916.html#a18229452e0f07cdd4b0b06fbdc2a5d61',1,'arax_accel_valid_type(arax_accel_type_e type): arax_accel_types.c'],['../a01403.html#a18229452e0f07cdd4b0b06fbdc2a5d61',1,'arax_accel_valid_type(arax_accel_type_e type): arax_accel_types.c']]], + ['arax_5faccel_5fwait_5ffor_5ftask_60',['arax_accel_wait_for_task',['../a01913.html#a415e79d6e82e45f24bcd1742c146a0da',1,'arax_accel_wait_for_task(arax_accel_s *accel): arax_accel.c'],['../a01400.html#a415e79d6e82e45f24bcd1742c146a0da',1,'arax_accel_wait_for_task(arax_accel_s *accel): arax_accel.c']]], + ['arax_5fassert_61',['arax_assert',['../a01370.html#a785994e2de62bf69795161fb28a4f750',1,'arax_assert.h']]], + ['arax_5fassert_2ec_62',['arax_assert.c',['../a01946.html',1,'']]], + ['arax_5fassert_2eh_63',['arax_assert.h',['../a01370.html',1,'']]], + ['arax_5fassert_5fobj_64',['arax_assert_obj',['../a01370.html#a8bb6786a4ea2ff74f4b9e4381ac8a686',1,'arax_assert.h']]], + ['arax_5fbuff_5falloc_5fsize_65',['ARAX_BUFF_ALLOC_SIZE',['../a01406.html#a4ec860605b4f22db15821234f03aaca9',1,'arax_data.h']]], + ['arax_5fbuffer_66',['ARAX_BUFFER',['../a02178.html#ga9260ad2dd766aec3274c518e2e312b1f',1,'ARAX_BUFFER(size_t size): impl.c'],['../a02178.html#ga9260ad2dd766aec3274c518e2e312b1f',1,'ARAX_BUFFER(size_t size): impl.c']]], + ['arax_5fbuffer_5fs_67',['arax_buffer_s',['../a01361.html#afd85be399ac9f7ee20fd2b3184740deb',1,'arax_types.h']]], + ['arax_5fclean_68',['arax_clean',['../a02174.html#ga4bae55e86ffc384b3c1d2da3580f5c42',1,'arax_clean(): impl.c'],['../a02174.html#ga4bae55e86ffc384b3c1d2da3580f5c42',1,'arax_clean(): impl.c']]], + ['arax_5fcontroller_5finit_5fdone_69',['arax_controller_init_done',['../a01907.html#a57a9203f163a9c8c78e22bde5fa4efbc',1,'arax_controller_init_done(): impl.c'],['../a01358.html#a57a9203f163a9c8c78e22bde5fa4efbc',1,'arax_controller_init_done(): impl.c']]], + ['arax_5fcontroller_5finit_5fstart_70',['arax_controller_init_start',['../a01907.html#aa6e4832b06bd5757be4502d2de7b3026',1,'arax_controller_init_start(): impl.c'],['../a01358.html#aa6e4832b06bd5757be4502d2de7b3026',1,'arax_controller_init_start(): impl.c']]], + ['arax_5fcpp_71',['ARAX_CPP',['../a01379.html#a561daf1af853037d6dfd17c56251bb38',1,'compat.h']]], + ['arax_5fdata_72',['arax_data',['../a01361.html#aff9a6f6af3314d4e400a0279ce708701',1,'arax_types.h']]], + ['arax_5fdata_2ec_73',['arax_data.c',['../a01919.html',1,'']]], + ['arax_5fdata_2eh_74',['arax_data.h',['../a01406.html',1,'']]], + ['arax_5fdata_5falloc_5fsize_75',['ARAX_DATA_ALLOC_SIZE',['../a01406.html#ac7f1c7bb862980e737a78cc91063fba2',1,'arax_data.h']]], + ['arax_5fdata_5fallocate_5fremote_76',['arax_data_allocate_remote',['../a01919.html#af8ede6fc8d207004035f45d945688d2c',1,'arax_data_allocate_remote(arax_data_s *data, arax_accel *accel): arax_data.c'],['../a01409.html#af8ede6fc8d207004035f45d945688d2c',1,'arax_data_allocate_remote(arax_data_s *data, arax_accel *accel): arax_data.c']]], + ['arax_5fdata_5fannotate_77',['arax_data_annotate',['../a01406.html#a8d5dc5b9cf973b9caf8358852c87dab3',1,'arax_data.h']]], + ['arax_5fdata_5farg_5finit_78',['arax_data_arg_init',['../a01919.html#a113a3c52b0c3b4f3b390921ee4c5022e',1,'arax_data_arg_init(arax_data_s *data, arax_accel *accel): arax_data.c'],['../a01406.html#a113a3c52b0c3b4f3b390921ee4c5022e',1,'arax_data_arg_init(arax_data_s *data, arax_accel *accel): arax_data.c']]], + ['arax_5fdata_5fderef_79',['arax_data_deref',['../a01919.html#a1c74d47b5c2c866aa3a61bec0dde4e0d',1,'arax_data_deref(arax_data *data): arax_data.c'],['../a01409.html#a1c74d47b5c2c866aa3a61bec0dde4e0d',1,'arax_data_deref(arax_data *data): arax_data.c']]], + ['arax_5fdata_5fdtr_80',['arax_data_dtr',['../a01406.html#a44b9d6945066a3282c399e79df572f19',1,'arax_data_dtr: arax_data.h'],['../a02258.html',1,'arax_data_dtr']]], + ['arax_5fdata_5fflags_81',['arax_data_flags',['../a01406.html#a0268385e5173da0946f2c426484cb783',1,'arax_data.h']]], + ['arax_5fdata_5fflags_5fe_82',['arax_data_flags_e',['../a01406.html#ae350a1d92282cad3ea15ab5801eea195',1,'arax_data.h']]], + ['arax_5fdata_5ffree_83',['arax_data_free',['../a01919.html#a96e0520e5569748ce1172bafca24fafe',1,'arax_data_free(arax_data *data): arax_data.c'],['../a01406.html#a96e0520e5569748ce1172bafca24fafe',1,'arax_data_free(arax_data *data): arax_data.c']]], + ['arax_5fdata_5fget_84',['arax_data_get',['../a01919.html#a696bc4319d0f6c6baa7d797a8df6b56f',1,'arax_data_get(arax_data *data, void *user): arax_data.c'],['../a01406.html#a696bc4319d0f6c6baa7d797a8df6b56f',1,'arax_data_get(arax_data *data, void *user): arax_data.c']]], + ['arax_5fdata_5fhas_5fremote_85',['arax_data_has_remote',['../a01919.html#a63f5c3c2031eba8a556afffda63f1528',1,'arax_data_has_remote(arax_data *data): arax_data.c'],['../a01409.html#a63f5c3c2031eba8a556afffda63f1528',1,'arax_data_has_remote(arax_data *data): arax_data.c']]], + ['arax_5fdata_5finit_86',['arax_data_init',['../a01919.html#aeefe449d4a278e9fc4b9c5f7e31000a1',1,'arax_data_init(arax_pipe_s *vpipe, size_t size): arax_data.c'],['../a01406.html#aeefe449d4a278e9fc4b9c5f7e31000a1',1,'arax_data_init(arax_pipe_s *vpipe, size_t size): arax_data.c']]], + ['arax_5fdata_5finit_5faligned_87',['arax_data_init_aligned',['../a01919.html#a526989df37e605824d846b7ba54b43ea',1,'arax_data_init_aligned(arax_pipe_s *vpipe, size_t size, size_t align): arax_data.c'],['../a01406.html#a526989df37e605824d846b7ba54b43ea',1,'arax_data_init_aligned(arax_pipe_s *vpipe, size_t size, size_t align): arax_data.c']]], + ['arax_5fdata_5finput_5finit_88',['arax_data_input_init',['../a01406.html#a1dc669466d6f52d5be8af2d991512ac2',1,'arax_data_input_init(arax_data_s *data, arax_accel *accel): arax_data.c'],['../a01919.html#a1dc669466d6f52d5be8af2d991512ac2',1,'arax_data_input_init(arax_data_s *data, arax_accel *accel): arax_data.c']]], + ['arax_5fdata_5fmemcpy_89',['arax_data_memcpy',['../a01919.html#a7d8356bd5c8b6a8d7dffc6ba94cc22e5',1,'arax_data_memcpy(arax_accel *accel, arax_data_s *dst, arax_data_s *src, int block): arax_data.c'],['../a01406.html#a7d8356bd5c8b6a8d7dffc6ba94cc22e5',1,'arax_data_memcpy(arax_accel *accel, arax_data_s *dst, arax_data_s *src, int block): arax_data.c']]], + ['arax_5fdata_5fmigrate_5faccel_90',['arax_data_migrate_accel',['../a01919.html#a4b65f90a821aca384f0ca1cff7bd1846',1,'arax_data_migrate_accel(arax_data_s *data, arax_accel *accel): arax_data.c'],['../a01409.html#a4b65f90a821aca384f0ca1cff7bd1846',1,'arax_data_migrate_accel(arax_data_s *data, arax_accel *accel): arax_data.c']]], + ['arax_5fdata_5foutput_5finit_91',['arax_data_output_init',['../a01919.html#a18d07d808917e0b971d46332e9e64da4',1,'arax_data_output_init(arax_data_s *data, arax_accel *accel): arax_data.c'],['../a01406.html#a18d07d808917e0b971d46332e9e64da4',1,'arax_data_output_init(arax_data_s *data, arax_accel *accel): arax_data.c']]], + ['arax_5fdata_5fprivate_2eh_92',['arax_data_private.h',['../a01409.html',1,'']]], + ['arax_5fdata_5fref_93',['arax_data_ref',['../a01919.html#afeaab7d93372f0752d59c70d9c5940e7',1,'arax_data_ref(void *data): arax_data.c'],['../a01409.html#afeaab7d93372f0752d59c70d9c5940e7',1,'arax_data_ref(void *data): arax_data.c']]], + ['arax_5fdata_5fref_5foffset_94',['arax_data_ref_offset',['../a01919.html#ac1f7fb20b3a23b388bea24f1b46a33a8',1,'arax_data_ref_offset(arax_pipe_s *vpipe, void *data): arax_data.c'],['../a01409.html#ac1f7fb20b3a23b388bea24f1b46a33a8',1,'arax_data_ref_offset(arax_pipe_s *vpipe, void *data): arax_data.c']]], + ['arax_5fdata_5fs_95',['arax_data_s',['../a02254.html',1,'arax_data_s'],['../a01406.html#ac4d9e4d43b25ad5d153d6628df1ece77',1,'arax_data_s: arax_data.h']]], + ['arax_5fdata_5fset_96',['arax_data_set',['../a01919.html#a8995f71dba475975efc37756783cfce9',1,'arax_data_set(arax_data *data, arax_accel *accel, const void *user): arax_data.c'],['../a01406.html#a8995f71dba475975efc37756783cfce9',1,'arax_data_set(arax_data *data, arax_accel *accel, const void *user): arax_data.c']]], + ['arax_5fdata_5fset_5faccel_97',['arax_data_set_accel',['../a01919.html#ad4f10e1a58d989e93ad8d6318f9d4162',1,'arax_data_set_accel(arax_data_s *data, arax_accel *accel): arax_data.c'],['../a01406.html#ad4f10e1a58d989e93ad8d6318f9d4162',1,'arax_data_set_accel(arax_data_s *data, arax_accel *accel): arax_data.c']]], + ['arax_5fdata_5fset_5fremote_98',['arax_data_set_remote',['../a01919.html#aca0dcc5fe70fd3aa9aa77ee4b8b9aac1',1,'arax_data_set_remote(arax_data_s *data, arax_accel *accel, void *remt): arax_data.c'],['../a01406.html#aca0dcc5fe70fd3aa9aa77ee4b8b9aac1',1,'arax_data_set_remote(arax_data_s *data, arax_accel *accel, void *remt): arax_data.c']]], + ['arax_5fdata_5fshm_5fsync_99',['arax_data_shm_sync',['../a01409.html#a0c926f777113efda665dddaa5185474b',1,'arax_data_private.h']]], + ['arax_5fdata_5fsize_100',['arax_data_size',['../a01919.html#a369e660e3e344bc697d98174059ead3c',1,'arax_data_size(arax_data *data): arax_data.c'],['../a01406.html#a369e660e3e344bc697d98174059ead3c',1,'arax_data_size(arax_data *data): arax_data.c']]], + ['arax_5fdata_5fstat_101',['arax_data_stat',['../a01406.html#a3a9bbde83a12e6b20bb9614ec1e1e6ea',1,'arax_data_stat: arax_data.h'],['../a01919.html#a6c43ea323f2de1675b00e48330a12e2a',1,'arax_data_stat(arax_data *data, const char *file, size_t line): arax_data.c'],['../a01406.html#a6c43ea323f2de1675b00e48330a12e2a',1,'arax_data_stat(arax_data *data, const char *file, size_t line): arax_data.c']]], + ['arax_5fdata_5fsync_5ffn_102',['arax_data_sync_fn',['../a01406.html#ad1ae99a2dc4af447f066237dc4cba5ab',1,'arax_data.h']]], + ['arax_5fexit_103',['arax_exit',['../a02174.html#ga8ac7e88ed7b8a1e2ff8aa435ac6b58ec',1,'arax_exit(): impl.c'],['../a02174.html#ga8ac7e88ed7b8a1e2ff8aa435ac6b58ec',1,'arax_exit(): impl.c']]], + ['arax_5ffile_5fprefix_5flen_104',['ARAX_FILE_PREFIX_LEN',['../a01946.html#a4d01598bfe08831f18b456af3cb173bc',1,'arax_assert.c']]], + ['arax_5fhandler_105',['ARAX_HANDLER',['../a01355.html#a2042c802da0a6319dfa7387b56c5ea1d',1,'arax.h']]], + ['arax_5fhandler_5fex_106',['ARAX_HANDLER_EX',['../a01355.html#abc7977aebe6e5c8503679e8ee436c581',1,'arax.h']]], + ['arax_5finit_107',['arax_init',['../a02174.html#gae1d371a2840849690acce147e7a205da',1,'arax_init(): impl.c'],['../a02174.html#gae1d371a2840849690acce147e7a205da',1,'arax_init(): impl.c']]], + ['arax_5finstance_5fuid_108',['arax_instance_uid',['../a01907.html#a4720c7ee3ec8423a6cca1b4d4346c488',1,'impl.c']]], + ['arax_5fmmap_109',['arax_mmap',['../a01364.html#a645f029b25098d24aca61b20beabe1bf',1,'arax_mmap(size_t s): alloc.c'],['../a02340.html#a645f029b25098d24aca61b20beabe1bf',1,'arax_mmap(size_t s): alloc.c'],['../a02343.html#a645f029b25098d24aca61b20beabe1bf',1,'arax_mmap(size_t s): alloc.c']]], + ['arax_5fobj_5fdtor_5fdecl_110',['ARAX_OBJ_DTOR_DECL',['../a01934.html#a5eb16d4196838d10a2b57715f2eddee7',1,'ARAX_OBJ_DTOR_DECL(arax_task_msg_s): arax_task.c'],['../a01922.html#a871ba8da471f464d7e10b13d5db07101',1,'ARAX_OBJ_DTOR_DECL(arax_accel_s): arax_accel.c'],['../a01928.html#a6f9d28b33cd0a625a238e122e45c7bf8',1,'ARAX_OBJ_DTOR_DECL(arax_proc_s): arax_proc.c'],['../a01940.html#a5920cc4cd90589f3c5ac8686a72bcfc0',1,'ARAX_OBJ_DTOR_DECL(arax_vaccel_s): arax_vaccel.c'],['../a01412.html#af9661fe34e3c0d9e8f8f8a775c5037fc',1,'ARAX_OBJ_DTOR_DECL: arax_object.h'],['../a01913.html#a871ba8da471f464d7e10b13d5db07101',1,'ARAX_OBJ_DTOR_DECL(arax_accel_s): arax_accel.c'],['../a01919.html#af735744d0f8bec04394639a841d2ba0f',1,'ARAX_OBJ_DTOR_DECL(arax_data_s): arax_data.c'],['../a01922.html#af735744d0f8bec04394639a841d2ba0f',1,'ARAX_OBJ_DTOR_DECL(arax_data_s): arax_data.c'],['../a01922.html#a5eb16d4196838d10a2b57715f2eddee7',1,'ARAX_OBJ_DTOR_DECL(arax_task_msg_s): arax_task.c'],['../a01922.html#a6f9d28b33cd0a625a238e122e45c7bf8',1,'ARAX_OBJ_DTOR_DECL(arax_proc_s): arax_proc.c'],['../a01922.html#a5920cc4cd90589f3c5ac8686a72bcfc0',1,'ARAX_OBJ_DTOR_DECL(arax_vaccel_s): arax_vaccel.c']]], + ['arax_5fobj_5fdtor_5fuse_111',['ARAX_OBJ_DTOR_USE',['../a01412.html#acda98fecf80b82bd01409193d3f86dda',1,'arax_object.h']]], + ['arax_5fobject_2ec_112',['arax_object.c',['../a01922.html',1,'']]], + ['arax_5fobject_2eh_113',['arax_object.h',['../a01412.html',1,'']]], + ['arax_5fobject_5fdtor_114',['arax_object_dtor',['../a01922.html#aedae27fa3c302a9f4119851be84bf2ff',1,'arax_object.c']]], + ['arax_5fobject_5flist_5flock_115',['arax_object_list_lock',['../a01412.html#aa750d1c54fe430c1294b9c8a9d3e1466',1,'arax_object_list_lock(arax_object_repo_s *repo, arax_object_type_e type): arax_object.c'],['../a01922.html#aa750d1c54fe430c1294b9c8a9d3e1466',1,'arax_object_list_lock(arax_object_repo_s *repo, arax_object_type_e type): arax_object.c']]], + ['arax_5fobject_5flist_5funlock_116',['arax_object_list_unlock',['../a01922.html#abb03d3cde2d1354544cd082482c3f185',1,'arax_object_list_unlock(arax_object_repo_s *repo, arax_object_type_e type): arax_object.c'],['../a01412.html#abb03d3cde2d1354544cd082482c3f185',1,'arax_object_list_unlock(arax_object_repo_s *repo, arax_object_type_e type): arax_object.c']]], + ['arax_5fobject_5fref_5fdec_117',['arax_object_ref_dec',['../a01922.html#afe7e4a63c40fbcaae742b8de8693483f',1,'arax_object_ref_dec(arax_object_s *obj): arax_object.c'],['../a01412.html#afe7e4a63c40fbcaae742b8de8693483f',1,'arax_object_ref_dec(arax_object_s *obj): arax_object.c']]], + ['arax_5fobject_5fref_5fdec_5fpre_5flocked_118',['arax_object_ref_dec_pre_locked',['../a01922.html#a0a0b147b7fc892c291afe60cb0fa2c1c',1,'arax_object_ref_dec_pre_locked(arax_object_s *obj): arax_object.c'],['../a01412.html#a0a0b147b7fc892c291afe60cb0fa2c1c',1,'arax_object_ref_dec_pre_locked(arax_object_s *obj): arax_object.c']]], + ['arax_5fobject_5fref_5finc_119',['arax_object_ref_inc',['../a01922.html#a9255b8011e6d7c9b28c7df40065efb28',1,'arax_object_ref_inc(arax_object_s *obj): arax_object.c'],['../a01412.html#a9255b8011e6d7c9b28c7df40065efb28',1,'arax_object_ref_inc(arax_object_s *obj): arax_object.c']]], + ['arax_5fobject_5frefs_120',['arax_object_refs',['../a01922.html#a6d73dfc133ab87bb357df5cd76df556f',1,'arax_object_refs(arax_object_s *obj): arax_object.c'],['../a01412.html#a6d73dfc133ab87bb357df5cd76df556f',1,'arax_object_refs(arax_object_s *obj): arax_object.c']]], + ['arax_5fobject_5fregister_121',['arax_object_register',['../a01922.html#a402bbd6fa197c2c48d527325e5e2cf5b',1,'arax_object_register(arax_object_repo_s *repo, arax_object_type_e type, const char *name, size_t size, const int ref_count): arax_object.c'],['../a01412.html#a402bbd6fa197c2c48d527325e5e2cf5b',1,'arax_object_register(arax_object_repo_s *repo, arax_object_type_e type, const char *name, size_t size, const int ref_count): arax_object.c']]], + ['arax_5fobject_5frename_122',['arax_object_rename',['../a01922.html#a6c73bee66b4cb5a64d949b6fbbd64498',1,'arax_object_rename(arax_object_s *obj, const char *fmt,...): arax_object.c'],['../a01412.html#a6c73bee66b4cb5a64d949b6fbbd64498',1,'arax_object_rename(arax_object_s *obj, const char *fmt,...): arax_object.c']]], + ['arax_5fobject_5frepo_5fexit_123',['arax_object_repo_exit',['../a01922.html#a305682d9ee7b1c993dbf64d4f3de2d9f',1,'arax_object_repo_exit(arax_object_repo_s *repo): arax_object.c'],['../a01412.html#a305682d9ee7b1c993dbf64d4f3de2d9f',1,'arax_object_repo_exit(arax_object_repo_s *repo): arax_object.c']]], + ['arax_5fobject_5frepo_5finit_124',['arax_object_repo_init',['../a01922.html#a86352ba91ba482c6688b7364d10bf956',1,'arax_object_repo_init(arax_object_repo_s *repo, arax_pipe_s *pipe): arax_object.c'],['../a01412.html#a86352ba91ba482c6688b7364d10bf956',1,'arax_object_repo_init(arax_object_repo_s *repo, arax_pipe_s *pipe): arax_object.c']]], + ['arax_5fobject_5frepo_5fs_125',['arax_object_repo_s',['../a02266.html',1,'']]], + ['arax_5fobject_5fs_126',['arax_object_s',['../a02274.html',1,'']]], + ['arax_5fobject_5ftype_127',['arax_object_type',['../a01412.html#a1e76ab10a5b400f89cb267a6d49da972',1,'arax_object.h']]], + ['arax_5fobject_5ftype_5fe_128',['arax_object_type_e',['../a01412.html#a0e8ae0b95bec3f8515286382c11206a5',1,'arax_object.h']]], + ['arax_5fobject_5ftype_5fto_5fstr_129',['arax_object_type_to_str',['../a01922.html#a668fd893484b6e2d67d8b372b508d14f',1,'arax_object_type_to_str(arax_object_type_e type): arax_object.c'],['../a01412.html#a668fd893484b6e2d67d8b372b508d14f',1,'arax_object_type_to_str(arax_object_type_e type): arax_object.c']]], + ['arax_5fobject_5funion_130',['arax_object_union',['../a02262.html',1,'']]], + ['arax_5fpipe_131',['arax_pipe',['../a02326.html',1,'']]], + ['arax_5fpipe_2ec_132',['arax_pipe.c',['../a01925.html',1,'']]], + ['arax_5fpipe_2eh_133',['arax_pipe.h',['../a01358.html',1,'']]], + ['arax_5fpipe_5fadd_5forphan_5fvaccel_134',['arax_pipe_add_orphan_vaccel',['../a01925.html#aa4461ab1d225a0f76f08d2f37a4a7e0e',1,'arax_pipe_add_orphan_vaccel(arax_pipe_s *pipe, arax_vaccel_s *vac): arax_pipe.c'],['../a01358.html#aa4461ab1d225a0f76f08d2f37a4a7e0e',1,'arax_pipe_add_orphan_vaccel(arax_pipe_s *pipe, arax_vaccel_s *vac): arax_pipe.c']]], + ['arax_5fpipe_5fadd_5fprocess_135',['arax_pipe_add_process',['../a01925.html#a60dde947b05bc69599a6c7d92c38d088',1,'arax_pipe_add_process(arax_pipe_s *pipe): arax_pipe.c'],['../a01358.html#a60dde947b05bc69599a6c7d92c38d088',1,'arax_pipe_add_process(arax_pipe_s *pipe): arax_pipe.c']]], + ['arax_5fpipe_5fdel_5fprocess_136',['arax_pipe_del_process',['../a01925.html#aedd2ffbe2275e3b8c2fc97a003ee7380',1,'arax_pipe_del_process(arax_pipe_s *pipe): arax_pipe.c'],['../a01358.html#aedd2ffbe2275e3b8c2fc97a003ee7380',1,'arax_pipe_del_process(arax_pipe_s *pipe): arax_pipe.c']]], + ['arax_5fpipe_5fdelete_5faccel_137',['arax_pipe_delete_accel',['../a01925.html#aa0862a60d187bfed0cfa11bf27174551',1,'arax_pipe_delete_accel(arax_pipe_s *pipe, arax_accel_s *accel): arax_pipe.c'],['../a01358.html#aa0862a60d187bfed0cfa11bf27174551',1,'arax_pipe_delete_accel(arax_pipe_s *pipe, arax_accel_s *accel): arax_pipe.c']]], + ['arax_5fpipe_5fexit_138',['arax_pipe_exit',['../a01925.html#a79b763e71a5ae1e57f78c008e7c1135c',1,'arax_pipe_exit(arax_pipe_s *pipe): arax_pipe.c'],['../a01358.html#a79b763e71a5ae1e57f78c008e7c1135c',1,'arax_pipe_exit(arax_pipe_s *pipe): arax_pipe.c']]], + ['arax_5fpipe_5ffind_5faccel_139',['arax_pipe_find_accel',['../a01925.html#ac2e1e32dc603394aecede365f454c8c4',1,'arax_pipe_find_accel(arax_pipe_s *pipe, const char *name, arax_accel_type_e type): arax_pipe.c'],['../a01358.html#ac2e1e32dc603394aecede365f454c8c4',1,'arax_pipe_find_accel(arax_pipe_s *pipe, const char *name, arax_accel_type_e type): arax_pipe.c']]], + ['arax_5fpipe_5ffind_5fproc_140',['arax_pipe_find_proc',['../a01925.html#a4c22ae41507232dc3efc725428cbfc7b',1,'arax_pipe_find_proc(arax_pipe_s *pipe, const char *name): arax_pipe.c'],['../a01358.html#a4c22ae41507232dc3efc725428cbfc7b',1,'arax_pipe_find_proc(arax_pipe_s *pipe, const char *name): arax_pipe.c']]], + ['arax_5fpipe_5fget_141',['arax_pipe_get',['../a01907.html#a2bb516831dd4d0d04092f7d82b2b9889',1,'impl.c']]], + ['arax_5fpipe_5fget_5favailable_5fsize_142',['arax_pipe_get_available_size',['../a01925.html#a94ce6437cad359c8523f57fe50be020d',1,'arax_pipe_get_available_size(arax_pipe_s *pipe): arax_pipe.c'],['../a01358.html#a94ce6437cad359c8523f57fe50be020d',1,'arax_pipe_get_available_size(arax_pipe_s *pipe): arax_pipe.c']]], + ['arax_5fpipe_5fget_5forphan_5fvaccel_143',['arax_pipe_get_orphan_vaccel',['../a01358.html#a8ff14a859f9b7a34676c2fcdb762386b',1,'arax_pipe_get_orphan_vaccel(arax_pipe_s *pipe): arax_pipe.c'],['../a01925.html#a8ff14a859f9b7a34676c2fcdb762386b',1,'arax_pipe_get_orphan_vaccel(arax_pipe_s *pipe): arax_pipe.c']]], + ['arax_5fpipe_5fget_5frevision_144',['arax_pipe_get_revision',['../a01925.html#a588019fd47a5925847934e4c6fa6711a',1,'arax_pipe_get_revision(arax_pipe_s *pipe): arax_pipe.c'],['../a01358.html#a588019fd47a5925847934e4c6fa6711a',1,'arax_pipe_get_revision(arax_pipe_s *pipe): arax_pipe.c']]], + ['arax_5fpipe_5fget_5ftotal_5fsize_145',['arax_pipe_get_total_size',['../a01925.html#a59aa16caa6dfcec85af956b42b33a0fa',1,'arax_pipe_get_total_size(arax_pipe_s *pipe): arax_pipe.c'],['../a01358.html#a59aa16caa6dfcec85af956b42b33a0fa',1,'arax_pipe_get_total_size(arax_pipe_s *pipe): arax_pipe.c']]], + ['arax_5fpipe_5fhave_5forphan_5fvaccels_146',['arax_pipe_have_orphan_vaccels',['../a01925.html#a186712b2a923d4bda1be98de189bc0f9',1,'arax_pipe_have_orphan_vaccels(arax_pipe_s *pipe): arax_pipe.c'],['../a01358.html#a186712b2a923d4bda1be98de189bc0f9',1,'arax_pipe_have_orphan_vaccels(arax_pipe_s *pipe): arax_pipe.c']]], + ['arax_5fpipe_5fhave_5fto_5fmmap_147',['arax_pipe_have_to_mmap',['../a01358.html#a5006bea23d2b9964f0f7c12947180e01',1,'arax_pipe_have_to_mmap(arax_pipe_s *pipe, int pid): arax_pipe.c'],['../a01925.html#a5006bea23d2b9964f0f7c12947180e01',1,'arax_pipe_have_to_mmap(arax_pipe_s *pipe, int pid): arax_pipe.c']]], + ['arax_5fpipe_5finit_148',['arax_pipe_init',['../a01925.html#aa6293e9ec7776aa49ecf632fcc4f5e26',1,'arax_pipe_init(void *mem, size_t size, int enforce_version): arax_pipe.c'],['../a01358.html#aa6293e9ec7776aa49ecf632fcc4f5e26',1,'arax_pipe_init(void *mem, size_t size, int enforce_version): arax_pipe.c']]], + ['arax_5fpipe_5fmark_5funmap_149',['arax_pipe_mark_unmap',['../a01925.html#a8b36751c1bdab169e4735143d3712a09',1,'arax_pipe_mark_unmap(arax_pipe_s *pipe, int pid): arax_pipe.c'],['../a01358.html#a8b36751c1bdab169e4735143d3712a09',1,'arax_pipe_mark_unmap(arax_pipe_s *pipe, int pid): arax_pipe.c']]], + ['arax_5fpipe_5fmmap_5faddress_150',['arax_pipe_mmap_address',['../a01925.html#a8d805b003097be6a6328a35c78bf558b',1,'arax_pipe_mmap_address(arax_pipe_s *pipe): arax_pipe.c'],['../a01358.html#a8d805b003097be6a6328a35c78bf558b',1,'arax_pipe_mmap_address(arax_pipe_s *pipe): arax_pipe.c']]], + ['arax_5fpipe_5forphan_5fstop_151',['arax_pipe_orphan_stop',['../a01358.html#a6cb53dd71cfaedb214bc5aef0e572cc2',1,'arax_pipe_orphan_stop(arax_pipe_s *pipe): arax_pipe.c'],['../a01925.html#a6cb53dd71cfaedb214bc5aef0e572cc2',1,'arax_pipe_orphan_stop(arax_pipe_s *pipe): arax_pipe.c']]], + ['arax_5fpipe_5fremove_5forphan_5fvaccel_152',['arax_pipe_remove_orphan_vaccel',['../a01358.html#aa5172b735dddd3f77fbb0265bbcdfc20',1,'arax_pipe_remove_orphan_vaccel(arax_pipe_s *pipe, arax_vaccel_s *vac): arax_pipe.c'],['../a01925.html#aa5172b735dddd3f77fbb0265bbcdfc20',1,'arax_pipe_remove_orphan_vaccel(arax_pipe_s *pipe, arax_vaccel_s *vac): arax_pipe.c']]], + ['arax_5fpipe_5fs_153',['arax_pipe_s',['../a01358.html#ab087accd8311146aa592d3b311608fd7',1,'arax_pipe_s: arax_pipe.h'],['../a01361.html#ab087accd8311146aa592d3b311608fd7',1,'arax_pipe_s: arax_types.h']]], + ['arax_5fpipe_5fsha_5fsize_154',['ARAX_PIPE_SHA_SIZE',['../a01358.html#a51407c606cb30ebfb637f965e9962f16',1,'arax_pipe.h']]], + ['arax_5fpipe_5fsize_5fdec_155',['arax_pipe_size_dec',['../a01925.html#a1cfa2c90268c6e53ce376beb7cce153c',1,'arax_pipe_size_dec(arax_pipe_s *pipe, size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS): arax_pipe.c'],['../a01358.html#a1cfa2c90268c6e53ce376beb7cce153c',1,'arax_pipe_size_dec(arax_pipe_s *pipe, size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS): arax_pipe.c']]], + ['arax_5fpipe_5fsize_5finc_156',['arax_pipe_size_inc',['../a01925.html#a5144f906658718ef853a8d18dda1e724',1,'arax_pipe_size_inc(arax_pipe_s *pipe, size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS): arax_pipe.c'],['../a01358.html#a5144f906658718ef853a8d18dda1e724',1,'arax_pipe_size_inc(arax_pipe_s *pipe, size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS): arax_pipe.c']]], + ['arax_5fpipe_5fthottle_5fdebug_5ffunc_157',['ARAX_PIPE_THOTTLE_DEBUG_FUNC',['../a01358.html#a4a2abf6ac0e06ab4cd033095054aa349',1,'arax_pipe.h']]], + ['arax_5fpipe_5fthottle_5fdebug_5fparams_158',['ARAX_PIPE_THOTTLE_DEBUG_PARAMS',['../a01358.html#a83b6ac47e9c431ef2af1ef4bddd9dea7',1,'arax_pipe.h']]], + ['arax_5fplot_2ec_159',['arax_plot.c',['../a01949.html',1,'']]], + ['arax_5fplot_2eh_160',['arax_plot.h',['../a01373.html',1,'']]], + ['arax_5fplot_5fregister_5fmetric_161',['arax_plot_register_metric',['../a01949.html#a8a99bcb12e2ee55d68a029bfca9b6d51',1,'arax_plot_register_metric(const char *name, uint64_t *metric): arax_plot.c'],['../a01373.html#a8a99bcb12e2ee55d68a029bfca9b6d51',1,'arax_plot_register_metric(const char *name, uint64_t *metric): arax_plot.c']]], + ['arax_5fproc_162',['arax_proc',['../a01361.html#a51457fb1246927196bb92392cea9ba7c',1,'arax_types.h']]], + ['arax_5fproc_2ec_163',['arax_proc.c',['../a01928.html',1,'']]], + ['arax_5fproc_2eh_164',['arax_proc.h',['../a01415.html',1,'']]], + ['arax_5fproc_5fcan_5frun_5fat_165',['arax_proc_can_run_at',['../a01928.html#ab52a257305ef35f9fb9ebc0fdfe4b81c',1,'arax_proc_can_run_at(arax_proc_s *proc, arax_accel_type_e type): arax_proc.c'],['../a01415.html#ab52a257305ef35f9fb9ebc0fdfe4b81c',1,'arax_proc_can_run_at(arax_proc_s *proc, arax_accel_type_e type): arax_proc.c']]], + ['arax_5fproc_5fget_166',['arax_proc_get',['../a02176.html#ga739047efb2b454e6c1ac54138ef2985d',1,'arax_proc_get(const char *func_name): impl.c'],['../a02176.html#ga739047efb2b454e6c1ac54138ef2985d',1,'arax_proc_get(const char *func_name): impl.c']]], + ['arax_5fproc_5fget_5ffunctor_167',['arax_proc_get_functor',['../a01928.html#a30352290ef80c644620afca91f719cfe',1,'arax_proc_get_functor(arax_proc_s *proc, arax_accel_type_e type): arax_proc.c'],['../a01415.html#a30352290ef80c644620afca91f719cfe',1,'arax_proc_get_functor(arax_proc_s *proc, arax_accel_type_e type): arax_proc.c']]], + ['arax_5fproc_5finit_168',['arax_proc_init',['../a01928.html#a86ac572ea8f5f613129192c47d598818',1,'arax_proc_init(arax_object_repo_s *repo, const char *name): arax_proc.c'],['../a01415.html#a86ac572ea8f5f613129192c47d598818',1,'arax_proc_init(arax_object_repo_s *repo, const char *name): arax_proc.c']]], + ['arax_5fproc_5fput_169',['arax_proc_put',['../a02176.html#ga70242aa6d9591e5fa3dbb36f1e27a896',1,'arax_proc_put(arax_proc *func): impl.c'],['../a02176.html#ga70242aa6d9591e5fa3dbb36f1e27a896',1,'arax_proc_put(arax_proc *func): impl.c']]], + ['arax_5fproc_5fregister_170',['arax_proc_register',['../a02176.html#gafad2dafb4a231390f02b7c866295b7d9',1,'arax_proc_register(const char *func_name): impl.c'],['../a02176.html#gafad2dafb4a231390f02b7c866295b7d9',1,'arax_proc_register(const char *func_name): impl.c']]], + ['arax_5fproc_5fs_171',['arax_proc_s',['../a02278.html',1,'']]], + ['arax_5fproc_5fset_5ffunctor_172',['arax_proc_set_functor',['../a01928.html#ae67ebc6d04dedfc104b4a61233d6eab4',1,'arax_proc_set_functor(arax_proc_s *proc, arax_accel_type_e type, AraxFunctor *vfn): arax_proc.c'],['../a01415.html#ae67ebc6d04dedfc104b4a61233d6eab4',1,'arax_proc_set_functor(arax_proc_s *proc, arax_accel_type_e type, AraxFunctor *vfn): arax_proc.c']]], + ['arax_5fprocess_5ftracker_5fs_173',['arax_process_tracker_s',['../a02322.html',1,'']]], + ['arax_5fptr_2ec_174',['arax_ptr.c',['../a01931.html',1,'']]], + ['arax_5fptr_2eh_175',['arax_ptr.h',['../a01418.html',1,'']]], + ['arax_5fptr_5fvalid_176',['arax_ptr_valid',['../a01931.html#a80ab3bf4a8af9bb101b5a53248609771',1,'arax_ptr_valid(const void *ptr): arax_ptr.c'],['../a01418.html#a639e69ccc46ae7f3d6b9992866040bf9',1,'arax_ptr_valid(const void *ptr): arax_ptr.c']]], + ['arax_5fstate_177',['arax_state',['../a01907.html#a8c515f9d7e4c8083b7452515d3e75096',1,'impl.c']]], + ['arax_5ftask_178',['arax_task',['../a01361.html#a138f30a253c72c2db8ad45ed9c172c6f',1,'arax_types.h']]], + ['arax_5ftask_2ec_179',['arax_task.c',['../a01934.html',1,'']]], + ['arax_5ftask_2eh_180',['arax_task.h',['../a01421.html',1,'']]], + ['arax_5ftask_5falloc_181',['arax_task_alloc',['../a01421.html#a27bee94f7a23281c8b2b72ec433f6059',1,'arax_task_alloc(arax_pipe_s *vpipe, arax_accel *accel, arax_proc *proc, size_t host_size, int ins, arax_data **dev_in, int outs, arax_data **dev_out): arax_task.c'],['../a01934.html#a27bee94f7a23281c8b2b72ec433f6059',1,'arax_task_alloc(arax_pipe_s *vpipe, arax_accel *accel, arax_proc *proc, size_t host_size, int ins, arax_data **dev_in, int outs, arax_data **dev_out): arax_task.c']]], + ['arax_5ftask_5ffree_182',['arax_task_free',['../a02177.html#ga55195957c1cde1508257782716aa6db3',1,'arax_task_free(arax_task *task): impl.c'],['../a02177.html#ga55195957c1cde1508257782716aa6db3',1,'arax_task_free(arax_task *task): impl.c']]], + ['arax_5ftask_5fhost_5fdata_183',['arax_task_host_data',['../a01421.html#aa3cb73b347940187fb3399f51b1a55b7',1,'arax_task_host_data(arax_task_msg_s *task, size_t size): arax_task.c'],['../a01934.html#aa3cb73b347940187fb3399f51b1a55b7',1,'arax_task_host_data(arax_task_msg_s *task, size_t size): arax_task.c']]], + ['arax_5ftask_5fissue_184',['arax_task_issue',['../a02177.html#gac9f0f3fbb14da879d3ff09bd367bbb24',1,'arax_task_issue(arax_accel *accel, arax_proc *proc, const void *host_init, size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count, arax_data **dev_out): impl.c'],['../a02177.html#gac9f0f3fbb14da879d3ff09bd367bbb24',1,'arax_task_issue(arax_accel *accel, arax_proc *proc, const void *host_init, size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count, arax_data **dev_out): impl.c']]], + ['arax_5ftask_5fissue_5fsync_185',['arax_task_issue_sync',['../a02177.html#ga1418f4cd7336bf77cce7b955a1bf7077',1,'arax_task_issue_sync(arax_accel *accel, arax_proc *proc, void *host_init, size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count, arax_data **dev_out): impl.c'],['../a02177.html#ga1418f4cd7336bf77cce7b955a1bf7077',1,'arax_task_issue_sync(arax_accel *accel, arax_proc *proc, void *host_init, size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count, arax_data **dev_out): impl.c']]], + ['arax_5ftask_5fmark_5fdone_186',['arax_task_mark_done',['../a01421.html#a46456b4307a70983ebe554fa712d856e',1,'arax_task_mark_done(arax_task_msg_s *msg, arax_task_state_e state): arax_task.c'],['../a01934.html#a46456b4307a70983ebe554fa712d856e',1,'arax_task_mark_done(arax_task_msg_s *msg, arax_task_state_e state): arax_task.c']]], + ['arax_5ftask_5fmsg_187',['arax_task_msg',['../a02282.html',1,'']]], + ['arax_5ftask_5fmsg_5fs_188',['arax_task_msg_s',['../a01421.html#a6085aeac5d5e9a91971f4d9ce80b7d92',1,'arax_task.h']]], + ['arax_5ftask_5fstat_189',['arax_task_stat',['../a02177.html#gafd8ed07de431241d4a3e20ddb1eaede5',1,'arax_task_stat(arax_task *task, arax_task_stats_s *stats): impl.c'],['../a02177.html#gafd8ed07de431241d4a3e20ddb1eaede5',1,'arax_task_stat(arax_task *task, arax_task_stats_s *stats): impl.c']]], + ['arax_5ftask_5fstate_5fe_190',['arax_task_state_e',['../a01361.html#aa2463c047bffe232c661a52a0dc7db8a',1,'arax_task_state_e: arax_types.h'],['../a01361.html#a4831937118354f04bd18cf54e81b7ede',1,'arax_task_state_e: arax_types.h']]], + ['arax_5ftask_5fstats_191',['arax_task_stats',['../a02338.html',1,'']]], + ['arax_5ftask_5fstats_5fs_192',['arax_task_stats_s',['../a01361.html#a6cb02d4d1a7a4c5c82d08a282c136559',1,'arax_types.h']]], + ['arax_5ftask_5fsubmit_193',['arax_task_submit',['../a01934.html#ace08f924cb86d1310099621564536657',1,'arax_task_submit(arax_task_msg_s *task): arax_task.c'],['../a01421.html#ace08f924cb86d1310099621564536657',1,'arax_task_submit(arax_task_msg_s *task): arax_task.c']]], + ['arax_5ftask_5fwait_194',['arax_task_wait',['../a02177.html#gacb098c0a8c3908f3fdd32e7ea7d780bb',1,'arax_task_wait(arax_task *task): impl.c'],['../a02177.html#gacb098c0a8c3908f3fdd32e7ea7d780bb',1,'arax_task_wait(arax_task *task): impl.c']]], + ['arax_5ftask_5fwait_5fdone_195',['arax_task_wait_done',['../a01934.html#a0d3707df989265f8cf380acdef95eb02',1,'arax_task_wait_done(arax_task_msg_s *msg): arax_task.c'],['../a01421.html#a0d3707df989265f8cf380acdef95eb02',1,'arax_task_wait_done(arax_task_msg_s *msg): arax_task.c']]], + ['arax_5fthrottle_2ec_196',['arax_throttle.c',['../a01937.html',1,'']]], + ['arax_5fthrottle_2eh_197',['arax_throttle.h',['../a01424.html',1,'']]], + ['arax_5fthrottle_5fdebug_5faccel_5ffunc_198',['ARAX_THROTTLE_DEBUG_ACCEL_FUNC',['../a01400.html#ae4ce5e52f563dade368db32043faf8eb',1,'arax_accel.h']]], + ['arax_5fthrottle_5fdebug_5faccel_5fparams_199',['ARAX_THROTTLE_DEBUG_ACCEL_PARAMS',['../a01400.html#ab84b3b9e634913cfb92095d873ba0036',1,'arax_accel.h']]], + ['arax_5fthrottle_5fdebug_5ffunc_200',['ARAX_THROTTLE_DEBUG_FUNC',['../a01424.html#a03d585214098784236ffe2d067715c6f',1,'arax_throttle.h']]], + ['arax_5fthrottle_5fdebug_5fparams_201',['ARAX_THROTTLE_DEBUG_PARAMS',['../a01424.html#a5ee93de8a975df710edb61a447632395',1,'arax_throttle.h']]], + ['arax_5fthrottle_5fdebug_5fprint_202',['ARAX_THROTTLE_DEBUG_PRINT',['../a01424.html#a28e98100ac3ad7575db4e647cfe0099a',1,'arax_throttle.h']]], + ['arax_5fthrottle_5fget_5favailable_5fsize_203',['arax_throttle_get_available_size',['../a01937.html#a078da9ec8e2f9a4470f10ee3059bd593',1,'arax_throttle_get_available_size(arax_throttle_s *thr): arax_throttle.c'],['../a01424.html#a078da9ec8e2f9a4470f10ee3059bd593',1,'arax_throttle_get_available_size(arax_throttle_s *thr): arax_throttle.c']]], + ['arax_5fthrottle_5fget_5ftotal_5fsize_204',['arax_throttle_get_total_size',['../a01937.html#af11f2d1dc9f842b2eed7aa7e80607e29',1,'arax_throttle_get_total_size(arax_throttle_s *thr): arax_throttle.c'],['../a01424.html#af11f2d1dc9f842b2eed7aa7e80607e29',1,'arax_throttle_get_total_size(arax_throttle_s *thr): arax_throttle.c']]], + ['arax_5fthrottle_5finit_205',['arax_throttle_init',['../a01937.html#acf84ea82594c4dbe91cf602ee078e04d',1,'arax_throttle_init(async_meta_s *meta, arax_throttle_s *thr, size_t a_sz, size_t t_sz): arax_throttle.c'],['../a01424.html#acf84ea82594c4dbe91cf602ee078e04d',1,'arax_throttle_init(async_meta_s *meta, arax_throttle_s *thr, size_t a_sz, size_t t_sz): arax_throttle.c']]], + ['arax_5fthrottle_5fs_206',['arax_throttle_s',['../a02286.html',1,'arax_throttle_s'],['../a01424.html#a3032390c1304799751ebf5b24417ed79',1,'arax_throttle_s: arax_throttle.h']]], + ['arax_5fthrottle_5fsize_5fdec_207',['arax_throttle_size_dec',['../a01937.html#a8413a3584787f9b629e54b2ef9439f06',1,'arax_throttle_size_dec(arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS): arax_throttle.c'],['../a01424.html#a8413a3584787f9b629e54b2ef9439f06',1,'arax_throttle_size_dec(arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS): arax_throttle.c']]], + ['arax_5fthrottle_5fsize_5finc_208',['arax_throttle_size_inc',['../a01937.html#a22aaf13eb56eb1832e725ef73236116f',1,'arax_throttle_size_inc(arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS): arax_throttle.c'],['../a01424.html#a22aaf13eb56eb1832e725ef73236116f',1,'arax_throttle_size_inc(arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS): arax_throttle.c']]], + ['arax_5ftype_5fcount_209',['ARAX_TYPE_COUNT',['../a01412.html#a1e76ab10a5b400f89cb267a6d49da972a5115924eacbea77a748d1489f148ed47',1,'arax_object.h']]], + ['arax_5ftype_5fdata_210',['ARAX_TYPE_DATA',['../a01412.html#a1e76ab10a5b400f89cb267a6d49da972a4d278fd6dc9fbae63e4bbb3208efe1dd',1,'arax_object.h']]], + ['arax_5ftype_5fphys_5faccel_211',['ARAX_TYPE_PHYS_ACCEL',['../a01412.html#a1e76ab10a5b400f89cb267a6d49da972af95f33c3aea3579c2bdc610c4f5833d2',1,'arax_object.h']]], + ['arax_5ftype_5fproc_212',['ARAX_TYPE_PROC',['../a01412.html#a1e76ab10a5b400f89cb267a6d49da972ab37376a90211399e64589e9958cd26da',1,'arax_object.h']]], + ['arax_5ftype_5ftask_213',['ARAX_TYPE_TASK',['../a01412.html#a1e76ab10a5b400f89cb267a6d49da972af3518fbc60e4e416554725b59a5f4432',1,'arax_object.h']]], + ['arax_5ftype_5fvirt_5faccel_214',['ARAX_TYPE_VIRT_ACCEL',['../a01412.html#a1e76ab10a5b400f89cb267a6d49da972a7aa91e9b9aceac970e886e03c2fbcaf9',1,'arax_object.h']]], + ['arax_5ftypes_2eh_215',['arax_types.h',['../a01361.html',1,'']]], + ['arax_5fummap_216',['arax_ummap',['../a02343.html#a169e798e54b8e0933d5c39960d6c2ad3',1,'arax_ummap(void *a, size_t s): alloc.c'],['../a02340.html#a169e798e54b8e0933d5c39960d6c2ad3',1,'arax_ummap(void *a, size_t s): alloc.c'],['../a01364.html#a169e798e54b8e0933d5c39960d6c2ad3',1,'arax_ummap(void *a, size_t s): alloc.c']]], + ['arax_5fvaccel_2ec_217',['arax_vaccel.c',['../a01940.html',1,'']]], + ['arax_5fvaccel_2eh_218',['arax_vaccel.h',['../a01427.html',1,'']]], + ['arax_5fvaccel_5fadd_5ftask_219',['arax_vaccel_add_task',['../a01427.html#a8b82433bc8c7d7f03683ac521a3679fa',1,'arax_vaccel_add_task(arax_vaccel_s *accel, arax_task *task): arax_vaccel.c'],['../a01940.html#a8b82433bc8c7d7f03683ac521a3679fa',1,'arax_vaccel_add_task(arax_vaccel_s *accel, arax_task *task): arax_vaccel.c']]], + ['arax_5fvaccel_5fget_5fcid_220',['arax_vaccel_get_cid',['../a01427.html#af12d44b99e9b5395769bf76b715be58f',1,'arax_vaccel_get_cid(arax_vaccel_s *vaccel): arax_vaccel.c'],['../a01940.html#af12d44b99e9b5395769bf76b715be58f',1,'arax_vaccel_get_cid(arax_vaccel_s *vaccel): arax_vaccel.c']]], + ['arax_5fvaccel_5fget_5fjob_5fpriority_221',['arax_vaccel_get_job_priority',['../a01940.html#a7eb20e8715e77bf9c5a47e3aa4711314',1,'arax_vaccel_get_job_priority(arax_vaccel_s *vaccel): arax_vaccel.c'],['../a01427.html#a7eb20e8715e77bf9c5a47e3aa4711314',1,'arax_vaccel_get_job_priority(arax_vaccel_s *vaccel): arax_vaccel.c']]], + ['arax_5fvaccel_5fget_5fmeta_222',['arax_vaccel_get_meta',['../a01940.html#accc6582256ba828c8923ee7097794025',1,'arax_vaccel_get_meta(arax_vaccel_s *vaccel): arax_vaccel.c'],['../a01427.html#accc6582256ba828c8923ee7097794025',1,'arax_vaccel_get_meta(arax_vaccel_s *vaccel): arax_vaccel.c']]], + ['arax_5fvaccel_5fget_5fordering_223',['arax_vaccel_get_ordering',['../a01427.html#aefa3f898f78179a031580ba98e5d8e8b',1,'arax_vaccel_get_ordering(arax_accel_s *accel): arax_vaccel.c'],['../a01940.html#aefa3f898f78179a031580ba98e5d8e8b',1,'arax_vaccel_get_ordering(arax_accel_s *accel): arax_vaccel.c']]], + ['arax_5fvaccel_5fget_5fstat_224',['arax_vaccel_get_stat',['../a01427.html#a3e57dc466fca84c701d8fd6a84cb6789',1,'arax_vaccel_get_stat(arax_vaccel_s *accel, arax_accel_stats_s *stat): arax_vaccel.c'],['../a01940.html#a3e57dc466fca84c701d8fd6a84cb6789',1,'arax_vaccel_get_stat(arax_vaccel_s *accel, arax_accel_stats_s *stat): arax_vaccel.c']]], + ['arax_5fvaccel_5finit_225',['arax_vaccel_init',['../a01427.html#a83ddb422946cf774c687c1ab63dcda15',1,'arax_vaccel_init(arax_pipe_s *pipe, const char *name, arax_accel_type_e type, arax_accel_s *accel): arax_vaccel.c'],['../a01940.html#a83ddb422946cf774c687c1ab63dcda15',1,'arax_vaccel_init(arax_pipe_s *pipe, const char *name, arax_accel_type_e type, arax_accel_s *accel): arax_vaccel.c']]], + ['arax_5fvaccel_5fqueue_226',['arax_vaccel_queue',['../a01427.html#afe1eb3edd264c847c36e9456b2598452',1,'arax_vaccel_queue(arax_vaccel_s *vaccel): arax_vaccel.c'],['../a01940.html#afe1eb3edd264c847c36e9456b2598452',1,'arax_vaccel_queue(arax_vaccel_s *vaccel): arax_vaccel.c']]], + ['arax_5fvaccel_5fqueue_5fsize_227',['arax_vaccel_queue_size',['../a01427.html#ab2fa3d6e6c761009b464cc0fbedc6a16',1,'arax_vaccel_queue_size(arax_vaccel_s *vaccel): arax_vaccel.c'],['../a01940.html#ab2fa3d6e6c761009b464cc0fbedc6a16',1,'arax_vaccel_queue_size(arax_vaccel_s *vaccel): arax_vaccel.c']]], + ['arax_5fvaccel_5fs_228',['arax_vaccel_s',['../a01427.html#a057f0fadd202ecab57ef30aca5d4e614',1,'arax_vaccel_s: arax_vaccel.h'],['../a02290.html',1,'arax_vaccel_s']]], + ['arax_5fvaccel_5fset_5fcid_229',['arax_vaccel_set_cid',['../a01940.html#a8db841ad4f66a98cdabb93e225171ef9',1,'arax_vaccel_set_cid(arax_vaccel_s *vaccel, uint64_t cid): arax_vaccel.c'],['../a01427.html#a8db841ad4f66a98cdabb93e225171ef9',1,'arax_vaccel_set_cid(arax_vaccel_s *vaccel, uint64_t cid): arax_vaccel.c']]], + ['arax_5fvaccel_5fset_5fjob_5fpriority_230',['arax_vaccel_set_job_priority',['../a01940.html#af43eab5b91521d30c3a1d6479eaf54ba',1,'arax_vaccel_set_job_priority(arax_vaccel_s *vaccel, uint64_t priority): arax_vaccel.c'],['../a01427.html#af43eab5b91521d30c3a1d6479eaf54ba',1,'arax_vaccel_set_job_priority(arax_vaccel_s *vaccel, uint64_t priority): arax_vaccel.c']]], + ['arax_5fvaccel_5fset_5fmeta_231',['arax_vaccel_set_meta',['../a01940.html#ac1dea15aece3efa7ce132c1a0397c92b',1,'arax_vaccel_set_meta(arax_vaccel_s *vaccel, void *meta): arax_vaccel.c'],['../a01427.html#ac1dea15aece3efa7ce132c1a0397c92b',1,'arax_vaccel_set_meta(arax_vaccel_s *vaccel, void *meta): arax_vaccel.c']]], + ['arax_5fvaccel_5fset_5fordering_232',['arax_vaccel_set_ordering',['../a01940.html#af3b4130b235af37da59a29fd16c0398d',1,'arax_vaccel_set_ordering(arax_accel_s *accel, arax_accel_ordering_e ordering): arax_vaccel.c'],['../a01427.html#af3b4130b235af37da59a29fd16c0398d',1,'arax_vaccel_set_ordering(arax_accel_s *accel, arax_accel_ordering_e ordering): arax_vaccel.c']]], + ['arax_5fversion_233',['arax_version',['../a01907.html#af2c3a9899e643a65fdeed8c95c5ef12d',1,'impl.c']]], + ['araxfunctor_234',['AraxFunctor',['../a01361.html#a219e259fb417ca51a0470201a874ee80',1,'arax_types.h']]], + ['arch_5falloc_5fallocate_235',['arch_alloc_allocate',['../a02343.html#ac9828b5c2758940f6d3c7d4335228de5',1,'arch_alloc_allocate(arch_alloc_s *_alloc, size_t size): alloc.c'],['../a01364.html#a6b7a76d9da9e24d1dd4f8fc768b342b0',1,'arch_alloc_allocate(arch_alloc_s *alloc, size_t size): alloc.c'],['../a02340.html#ac9828b5c2758940f6d3c7d4335228de5',1,'arch_alloc_allocate(arch_alloc_s *_alloc, size_t size): alloc.c']]], + ['arch_5falloc_5fcreate_5fsub_5falloc_236',['arch_alloc_create_sub_alloc',['../a01364.html#a32b9155cb5133ef21023a1ff4653bf04',1,'arch_alloc_create_sub_alloc(arch_alloc_s *parent): alloc.c'],['../a02340.html#a32b9155cb5133ef21023a1ff4653bf04',1,'arch_alloc_create_sub_alloc(arch_alloc_s *parent): alloc.c'],['../a02343.html#a32b9155cb5133ef21023a1ff4653bf04',1,'arch_alloc_create_sub_alloc(arch_alloc_s *parent): alloc.c']]], + ['arch_5falloc_5fexit_237',['arch_alloc_exit',['../a01364.html#aae81034fc3fcc43abca5e10db42a7d81',1,'arch_alloc_exit(arch_alloc_s *alloc): alloc.c'],['../a02340.html#a726fb6388e92c5d82c9d5750fee1a7fb',1,'arch_alloc_exit(arch_alloc_s *_alloc): alloc.c'],['../a02343.html#a726fb6388e92c5d82c9d5750fee1a7fb',1,'arch_alloc_exit(arch_alloc_s *_alloc): alloc.c']]], + ['arch_5falloc_5ffree_238',['arch_alloc_free',['../a01364.html#a143da5e8efe294ade096fed0edc6fc3c',1,'alloc.h']]], + ['arch_5falloc_5fget_5fbitmap_239',['arch_alloc_get_bitmap',['../a01364.html#a4c8fda139857abec3429d4d00f8a725c',1,'arch_alloc_get_bitmap(): alloc.c'],['../a02340.html#a4c8fda139857abec3429d4d00f8a725c',1,'arch_alloc_get_bitmap(): alloc.c'],['../a02343.html#a4c8fda139857abec3429d4d00f8a725c',1,'arch_alloc_get_bitmap(): alloc.c']]], + ['arch_5falloc_5finit_5falways_240',['arch_alloc_init_always',['../a01364.html#a75bfaa5e934f1853fc8fd536ea469ad9',1,'arch_alloc_init_always(arch_alloc_s *alloc): alloc.c'],['../a02340.html#a75bfaa5e934f1853fc8fd536ea469ad9',1,'arch_alloc_init_always(arch_alloc_s *alloc): alloc.c'],['../a02343.html#a75bfaa5e934f1853fc8fd536ea469ad9',1,'arch_alloc_init_always(arch_alloc_s *alloc): alloc.c']]], + ['arch_5falloc_5finit_5fonce_241',['arch_alloc_init_once',['../a01364.html#a3c628cf674eb8ffcf515df963220fb84',1,'arch_alloc_init_once(arch_alloc_s *alloc, size_t size): alloc.c'],['../a02340.html#a44fec37f87bcd49aaacc97696f9e0e7d',1,'arch_alloc_init_once(arch_alloc_s *_alloc, size_t size): alloc.c'],['../a02343.html#a44fec37f87bcd49aaacc97696f9e0e7d',1,'arch_alloc_init_once(arch_alloc_s *_alloc, size_t size): alloc.c']]], + ['arch_5falloc_5finner_5fs_242',['arch_alloc_inner_s',['../a02190.html',1,'']]], + ['arch_5falloc_5finspect_243',['arch_alloc_inspect',['../a01364.html#a786db7497e30f72feef2ebcbc75fb775',1,'arch_alloc_inspect(arch_alloc_s *alloc, void(*inspector)(void *start, void *end, size_t size, void *arg), void *arg): alloc.c'],['../a02340.html#a6f21f41c6c1797ff0b8754fb046f3dbc',1,'arch_alloc_inspect(arch_alloc_s *_alloc, void(*inspector)(void *start, void *end, size_t size, void *arg), void *arg): alloc.c'],['../a02343.html#a6f21f41c6c1797ff0b8754fb046f3dbc',1,'arch_alloc_inspect(arch_alloc_s *_alloc, void(*inspector)(void *start, void *end, size_t size, void *arg), void *arg): alloc.c']]], + ['arch_5falloc_5fs_244',['arch_alloc_s',['../a02182.html',1,'arch_alloc_s'],['../a01361.html#af19de5e770b600186b3da91e0c8f1190',1,'arch_alloc_s: arax_types.h']]], + ['arch_5falloc_5fstate_245',['arch_alloc_state',['../a01364.html#a6cade65ca0ac4f9be553291bfef9daf4',1,'alloc.h']]], + ['arch_5falloc_5fstats_246',['arch_alloc_stats',['../a01364.html#a4a62fff2d911326edc6b805afccbfb6b',1,'arch_alloc_stats(arch_alloc_s *alloc): alloc.c'],['../a02340.html#a687bef36a598f3a197afea8e055e6608',1,'arch_alloc_stats(arch_alloc_s *_alloc): alloc.c'],['../a02343.html#a687bef36a598f3a197afea8e055e6608',1,'arch_alloc_stats(arch_alloc_s *_alloc): alloc.c']]], + ['arch_5falloc_5fstats_5fs_247',['arch_alloc_stats_s',['../a02186.html',1,'']]], + ['arena_248',['arena',['../a02194.html#a79200c7739bcd93e03f760a5cdeeeaa5',1,'mallinfo']]], + ['arg_249',['arg',['../a02218.html#a9ce2ec4812a92cb6ab39f6e81e9173a9',1,'inspect_walker_state']]], + ['ass_5fkv_250',['ass_kv',['../a02326.html#a9e15c094a6cd246495b66cf9064286bf',1,'arax_pipe']]], + ['assert_251',['assert',['../a01898.html#af576bf8ffa22a44e53018c67095ffbf0',1,'malloc.c']]], + ['async_252',['async',['../a02326.html#ab3b4f5fa47d217079fcc159459f09f2a',1,'arax_pipe']]], + ['async_5fapi_2eh_253',['async_api.h',['../a01433.html',1,'']]], + ['async_5fcompletion_5fcheck_254',['async_completion_check',['../a01433.html#ae66ae81847153386c57918f4d91be8a7',1,'async_completion_check(async_completion_s *completion): async.c'],['../a02346.html#ae66ae81847153386c57918f4d91be8a7',1,'async_completion_check(async_completion_s *completion): async.c'],['../a02349.html#ae66ae81847153386c57918f4d91be8a7',1,'async_completion_check(async_completion_s *completion): async.c'],['../a02352.html#ae66ae81847153386c57918f4d91be8a7',1,'async_completion_check(async_completion_s *completion): async.c']]], + ['async_5fcompletion_5fcomplete_255',['async_completion_complete',['../a01433.html#ad1d30ecbf6bff6457b680aa940281072',1,'async_completion_complete(async_completion_s *completion): async.c'],['../a02346.html#ad1d30ecbf6bff6457b680aa940281072',1,'async_completion_complete(async_completion_s *completion): async.c'],['../a02349.html#ad1d30ecbf6bff6457b680aa940281072',1,'async_completion_complete(async_completion_s *completion): async.c'],['../a02352.html#ad1d30ecbf6bff6457b680aa940281072',1,'async_completion_complete(async_completion_s *completion): async.c']]], + ['async_5fcompletion_5finit_256',['async_completion_init',['../a01433.html#ac728117d73179c279de49e01ae905dda',1,'async_completion_init(async_meta_s *meta, async_completion_s *completion): async.c'],['../a02346.html#ac728117d73179c279de49e01ae905dda',1,'async_completion_init(async_meta_s *meta, async_completion_s *completion): async.c'],['../a02349.html#ac728117d73179c279de49e01ae905dda',1,'async_completion_init(async_meta_s *meta, async_completion_s *completion): async.c'],['../a02352.html#ac728117d73179c279de49e01ae905dda',1,'async_completion_init(async_meta_s *meta, async_completion_s *completion): async.c']]], + ['async_5fcompletion_5fs_257',['async_completion_s',['../a02234.html',1,'async_completion_s'],['../a02355.html#a7c7a1e8e0f346cd0dd0827d7f873672a',1,'async_completion_s: async.h']]], + ['async_5fcompletion_5fwait_258',['async_completion_wait',['../a02352.html#aebf9e72bb6cbd8b9e33489d46c25075d',1,'async_completion_wait(async_completion_s *completion): async.c'],['../a02349.html#aebf9e72bb6cbd8b9e33489d46c25075d',1,'async_completion_wait(async_completion_s *completion): async.c'],['../a02346.html#aebf9e72bb6cbd8b9e33489d46c25075d',1,'async_completion_wait(async_completion_s *completion): async.c'],['../a01433.html#aebf9e72bb6cbd8b9e33489d46c25075d',1,'async_completion_wait(async_completion_s *completion): async.c']]], + ['async_5fcondition_5finit_259',['async_condition_init',['../a01433.html#ac7fbf1f43289d3e0e862b315f00e35e2',1,'async_condition_init(async_meta_s *meta, async_condition_s *cond): async.c'],['../a02346.html#ac7fbf1f43289d3e0e862b315f00e35e2',1,'async_condition_init(async_meta_s *meta, async_condition_s *cond): async.c'],['../a02349.html#ac7fbf1f43289d3e0e862b315f00e35e2',1,'async_condition_init(async_meta_s *meta, async_condition_s *cond): async.c'],['../a02352.html#ac7fbf1f43289d3e0e862b315f00e35e2',1,'async_condition_init(async_meta_s *meta, async_condition_s *cond): async.c']]], + ['async_5fcondition_5flock_260',['async_condition_lock',['../a01433.html#aed6af4d83e934e3e654ead541b15f2d9',1,'async_condition_lock(async_condition_s *cond): async.c'],['../a02346.html#aed6af4d83e934e3e654ead541b15f2d9',1,'async_condition_lock(async_condition_s *cond): async.c'],['../a02349.html#aed6af4d83e934e3e654ead541b15f2d9',1,'async_condition_lock(async_condition_s *cond): async.c'],['../a02352.html#aed6af4d83e934e3e654ead541b15f2d9',1,'async_condition_lock(async_condition_s *cond): async.c']]], + ['async_5fcondition_5fnotify_261',['async_condition_notify',['../a01433.html#a45a896fb606c2aa66a5a4c2af59ce494',1,'async_condition_notify(async_condition_s *cond): async.c'],['../a02346.html#a45a896fb606c2aa66a5a4c2af59ce494',1,'async_condition_notify(async_condition_s *cond): async.c'],['../a02349.html#a45a896fb606c2aa66a5a4c2af59ce494',1,'async_condition_notify(async_condition_s *cond): async.c'],['../a02352.html#a45a896fb606c2aa66a5a4c2af59ce494',1,'async_condition_notify(async_condition_s *cond): async.c']]], + ['async_5fcondition_5fs_262',['async_condition_s',['../a02242.html',1,'']]], + ['async_5fcondition_5funlock_263',['async_condition_unlock',['../a01433.html#a3bbcb7c4c024e99d5c4ba52b61dfbbf7',1,'async_condition_unlock(async_condition_s *cond): async.c'],['../a02346.html#a3bbcb7c4c024e99d5c4ba52b61dfbbf7',1,'async_condition_unlock(async_condition_s *cond): async.c'],['../a02349.html#a3bbcb7c4c024e99d5c4ba52b61dfbbf7',1,'async_condition_unlock(async_condition_s *cond): async.c'],['../a02352.html#a3bbcb7c4c024e99d5c4ba52b61dfbbf7',1,'async_condition_unlock(async_condition_s *cond): async.c']]], + ['async_5fcondition_5fwait_264',['async_condition_wait',['../a02349.html#a1bfeaeb9b81855e640d7a67cc9d92b17',1,'async_condition_wait(async_condition_s *cond): async.c'],['../a02352.html#a1bfeaeb9b81855e640d7a67cc9d92b17',1,'async_condition_wait(async_condition_s *cond): async.c'],['../a02346.html#a1bfeaeb9b81855e640d7a67cc9d92b17',1,'async_condition_wait(async_condition_s *cond): async.c'],['../a01433.html#a1bfeaeb9b81855e640d7a67cc9d92b17',1,'async_condition_wait(async_condition_s *cond): async.c']]], + ['async_5fmeta_5fexit_265',['async_meta_exit',['../a01433.html#afe9571a12debd9d75a0f8fb93420e268',1,'async_meta_exit(async_meta_s *meta): async.c'],['../a02346.html#afe9571a12debd9d75a0f8fb93420e268',1,'async_meta_exit(async_meta_s *meta): async.c'],['../a02349.html#afe9571a12debd9d75a0f8fb93420e268',1,'async_meta_exit(async_meta_s *meta): async.c'],['../a02352.html#afe9571a12debd9d75a0f8fb93420e268',1,'async_meta_exit(async_meta_s *meta): async.c']]], + ['async_5fmeta_5finit_5falways_266',['async_meta_init_always',['../a01433.html#adbaa29dfccfdfe6e3fe69a1d001c05b5',1,'async_meta_init_always(async_meta_s *meta): async.c'],['../a02346.html#adbaa29dfccfdfe6e3fe69a1d001c05b5',1,'async_meta_init_always(async_meta_s *meta): async.c'],['../a02349.html#adbaa29dfccfdfe6e3fe69a1d001c05b5',1,'async_meta_init_always(async_meta_s *meta): async.c'],['../a02352.html#adbaa29dfccfdfe6e3fe69a1d001c05b5',1,'async_meta_init_always(async_meta_s *meta): async.c']]], + ['async_5fmeta_5finit_5fonce_267',['async_meta_init_once',['../a02352.html#ab2e422aab2fcfa562795beb2843e8019',1,'async_meta_init_once(async_meta_s *meta, arch_alloc_s *alloc): async.c'],['../a01433.html#ab2e422aab2fcfa562795beb2843e8019',1,'async_meta_init_once(async_meta_s *meta, arch_alloc_s *alloc): async.c'],['../a02346.html#ab2e422aab2fcfa562795beb2843e8019',1,'async_meta_init_once(async_meta_s *meta, arch_alloc_s *alloc): async.c'],['../a02349.html#ab2e422aab2fcfa562795beb2843e8019',1,'async_meta_init_once(async_meta_s *meta, arch_alloc_s *alloc): async.c']]], + ['async_5fmeta_5fs_268',['async_meta_s',['../a01361.html#ad3607c4fe8a2611f206fe3362ee9a19b',1,'async_meta_s: arax_types.h'],['../a02355.html#ad3607c4fe8a2611f206fe3362ee9a19b',1,'async_meta_s: async.h'],['../a02230.html',1,'async_meta_s']]], + ['async_5fsemaphore_5fdec_269',['async_semaphore_dec',['../a01433.html#a7ab7c7fe9cb93434dde72a4e464a7e69',1,'async_semaphore_dec(async_semaphore_s *sem): async.c'],['../a02346.html#a7ab7c7fe9cb93434dde72a4e464a7e69',1,'async_semaphore_dec(async_semaphore_s *sem): async.c'],['../a02349.html#a7ab7c7fe9cb93434dde72a4e464a7e69',1,'async_semaphore_dec(async_semaphore_s *sem): async.c'],['../a02352.html#a7ab7c7fe9cb93434dde72a4e464a7e69',1,'async_semaphore_dec(async_semaphore_s *sem): async.c']]], + ['async_5fsemaphore_5finc_270',['async_semaphore_inc',['../a01433.html#a0fa370eee5160963e617d1daf1c07363',1,'async_semaphore_inc(async_semaphore_s *sem): async.c'],['../a02346.html#a0fa370eee5160963e617d1daf1c07363',1,'async_semaphore_inc(async_semaphore_s *sem): async.c'],['../a02349.html#a0fa370eee5160963e617d1daf1c07363',1,'async_semaphore_inc(async_semaphore_s *sem): async.c'],['../a02352.html#a0fa370eee5160963e617d1daf1c07363',1,'async_semaphore_inc(async_semaphore_s *sem): async.c']]], + ['async_5fsemaphore_5finit_271',['async_semaphore_init',['../a02352.html#a2a7d01fc7720e936a430efc09d094c6c',1,'async_semaphore_init(async_meta_s *meta, async_semaphore_s *sem): async.c'],['../a01433.html#a2a7d01fc7720e936a430efc09d094c6c',1,'async_semaphore_init(async_meta_s *meta, async_semaphore_s *sem): async.c'],['../a02346.html#a2a7d01fc7720e936a430efc09d094c6c',1,'async_semaphore_init(async_meta_s *meta, async_semaphore_s *sem): async.c'],['../a02349.html#a2a7d01fc7720e936a430efc09d094c6c',1,'async_semaphore_init(async_meta_s *meta, async_semaphore_s *sem): async.c']]], + ['async_5fsemaphore_5fs_272',['async_semaphore_s',['../a02238.html',1,'']]], + ['async_5fsemaphore_5fvalue_273',['async_semaphore_value',['../a01433.html#a2ef839f9f321fe47ec15653d08cf4183',1,'async_semaphore_value(async_semaphore_s *sem): async.c'],['../a02346.html#a2ef839f9f321fe47ec15653d08cf4183',1,'async_semaphore_value(async_semaphore_s *sem): async.c'],['../a02349.html#a2ef839f9f321fe47ec15653d08cf4183',1,'async_semaphore_value(async_semaphore_s *sem): async.c'],['../a02352.html#a2ef839f9f321fe47ec15653d08cf4183',1,'async_semaphore_value(async_semaphore_s *sem): async.c']]], + ['async_5fthread_274',['async_thread',['../a02346.html#ab2195e0b081f467f8e058d1406bd4fc7',1,'async.c']]], + ['attr_275',['attr',['../a02234.html#a857e6704f8bd64cf25dd3a6d9608b30c',1,'async_completion_s']]], + ['available_276',['available',['../a02286.html#a39b14fe33027e3b0ddc54570c6d1a067',1,'arax_throttle_s']]] +]; diff --git a/search/all_10.js b/search/all_10.js new file mode 100644 index 00000000..862866ef --- /dev/null +++ b/search/all_10.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['queue_0',['queue',['../a02318.html',1,'queue'],['../a02290.html#aeb168d5887a099188b8ea6f764eec28d',1,'arax_vaccel_s::queue']]], + ['queue_2ec_1',['queue.c',['../a01961.html',1,'']]], + ['queue_2eh_2',['queue.h',['../a01388.html',1,'']]] +]; diff --git a/search/all_11.js b/search/all_11.js new file mode 100644 index 00000000..e85f83eb --- /dev/null +++ b/search/all_11.js @@ -0,0 +1,19 @@ +var searchData= +[ + ['readme_2emd_0',['README.md',['../a00047.html',1,'']]], + ['ready_1',['ready',['../a02286.html#a9e79fa69c4c65224256f073c896d1646',1,'arax_throttle_s']]], + ['ref_5fcount_2',['ref_count',['../a02274.html#a3992dd0defc891eaf99d5fd80f63e633',1,'arax_object_s']]], + ['reg_5ffd_3',['reg_fd',['../a02346.html#aed5abcc580c02a977121dffa3405d3ec',1,'async.c']]], + ['registeroffsets_4',['RegisterOffsets',['../a02346.html#a5c6cef9bc2984aa826698bd328126308',1,'async.c']]], + ['regs_5',['regs',['../a02226.html#ac179a6a7a5851f887c473385a0e679fe',1,'ivshmem::regs'],['../a02230.html#ae7c9d52cb7b08010aa59746f038fc96e',1,'async_meta_s::regs']]], + ['release_5fchecks_6',['release_checks',['../a02210.html#a766f07a23bfc640d0ea9e0d4881c70d1',1,'malloc_state']]], + ['release_5fmalloc_5fglobal_5flock_7',['RELEASE_MALLOC_GLOBAL_LOCK',['../a01898.html#a2f3df62568086e570fba515b493fb8f4',1,'malloc.c']]], + ['release_5funused_5fsegments_8',['release_unused_segments',['../a01898.html#a949111e5f127c26e3b9f11bf26c8038a',1,'malloc.c']]], + ['remote_9',['remote',['../a02258.html#a8a907a1cc7012008d76537db130f4d45',1,'arax_data_dtr::remote'],['../a02254.html#a8a907a1cc7012008d76537db130f4d45',1,'arax_data_s::remote']]], + ['replace_5fdv_10',['replace_dv',['../a01898.html#a374c640361e6a18551c63f548079ad05',1,'malloc.c']]], + ['repo_11',['repo',['../a02274.html#a7d88fc5e96fd0b650cb15f8db8171bad',1,'arax_object_s::repo'],['../a02266.html#a9183e8bc68789d8769857d1bf2eb9a74',1,'arax_object_repo_s::repo']]], + ['request2size_12',['request2size',['../a01898.html#ab5e11e7a52d0c430ee39bfbf1113253a',1,'malloc.c']]], + ['revision_13',['revision',['../a02246.html#ae9204680c5c7da117703c346fb753d5b',1,'arax_accel_s']]], + ['root_14',['root',['../a02190.html#a7877d65cbc19e86dd20e002a9510d8b6',1,'arch_alloc_inner_s::root'],['../a02190.html#afbd7d5930f6ef1eaf064bcb5088deed9',1,'arch_alloc_inner_s::root']]], + ['rtcheck_15',['RTCHECK',['../a01898.html#afe7e6535ba41a91be580eb2bba5890e2',1,'malloc.c']]] +]; diff --git a/search/all_12.js b/search/all_12.js new file mode 100644 index 00000000..e0425986 --- /dev/null +++ b/search/all_12.js @@ -0,0 +1,67 @@ +var searchData= +[ + ['async_2ec_0',['async.c',['../a02352.html',1,'']]], + ['async_2eh_1',['async.h',['../a02361.html',1,'']]], + ['same_5for_5fleft_5fbits_2',['same_or_left_bits',['../a01898.html#ace4a96b1b78fcc4d93372fb9336f899f',1,'malloc.c']]], + ['sbinptr_3',['sbinptr',['../a01898.html#ac42f888c90017483ad23708b9a346798',1,'malloc.c']]], + ['sda_4',['SDA',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8ae21c602fb61dc58e4fa361382cb31403',1,'arax_types.h']]], + ['seg_5',['seg',['../a02210.html#ac3d059568e5fdb458026c9116d593ba7',1,'malloc_state']]], + ['segment_5fholding_6',['segment_holding',['../a01898.html#adc1656892fa59cbd2e3b60a2608dfefc',1,'malloc.c']]], + ['segment_5fholds_7',['segment_holds',['../a01898.html#a3616a6ae475e54f73816dfa69d1483e8',1,'malloc.c']]], + ['self_8',['self',['../a02326.html#add843125b63b1afec9686fbaa3deb708',1,'arax_pipe']]], + ['sem_9',['sem',['../a02238.html#a57e5f989454185402d689672f370a749',1,'async_semaphore_s']]], + ['semaphore_10',['semaphore',['../a02242.html#a732830f0357a2ac025e7b5e04b2886a1',1,'async_condition_s']]], + ['sequential_11',['SEQUENTIAL',['../a01427.html#a50bb2106b29f1ab7b8ae19440fb49d86a6b834d43476553e583e0fde6578c82f0',1,'arax_vaccel.h']]], + ['set_5fflag4_12',['set_flag4',['../a01898.html#ab59038f70c8449bc2efdec7d99e1a372',1,'malloc.c']]], + ['set_5ffoot_13',['set_foot',['../a01898.html#a8429bbf864f878eca1011ec97969535b',1,'malloc.c']]], + ['set_5ffree_5fwith_5fpinuse_14',['set_free_with_pinuse',['../a01898.html#a4533a463f685015d5b56192fc5f42ba7',1,'malloc.c']]], + ['set_5finuse_15',['set_inuse',['../a01898.html#a1e4f613ffb89c72f5686586939b13cf6',1,'malloc.c']]], + ['set_5finuse_5fand_5fpinuse_16',['set_inuse_and_pinuse',['../a01898.html#a6b0498b45088d3b87e6b2daed2f6fa92',1,'malloc.c']]], + ['set_5flock_17',['set_lock',['../a01898.html#aae06e664473337b87ba3d95609fef288',1,'malloc.c']]], + ['set_5fsize_5fand_5fpinuse_5fof_5ffree_5fchunk_18',['set_size_and_pinuse_of_free_chunk',['../a01898.html#a18bad8f70449009a982f57c6e8107d29',1,'malloc.c']]], + ['set_5fsize_5fand_5fpinuse_5fof_5finuse_5fchunk_19',['set_size_and_pinuse_of_inuse_chunk',['../a01898.html#a076ff214648e7d19ddaa7a4d963aae4a',1,'malloc.c']]], + ['sflags_20',['sflags',['../a02206.html#a9b646ca2cdec5a027aaab2177712760f',1,'malloc_segment']]], + ['sha_21',['sha',['../a02326.html#a87b1ac4f5560ca8319632593785d4dcf',1,'arax_pipe']]], + ['shm_5ffile_22',['shm_file',['../a01907.html#a1efb21672d3d03723a3438c024c7e9b8',1,'impl.c']]], + ['shm_5fsize_23',['shm_size',['../a02326.html#a28948fedd958f16682e8465a585f5df5',1,'arax_pipe']]], + ['should_5ftrim_24',['should_trim',['../a01898.html#a8fcca0fe7fd7176c642cb7eaca01e3c8',1,'malloc.c']]], + ['six_5fsize_5ft_5fsizes_25',['SIX_SIZE_T_SIZES',['../a01898.html#ae711f3f963dc01f816b155795e4a7729',1,'malloc.c']]], + ['size_26',['size',['../a02206.html#a854352f53b148adc24983a58a1866d66',1,'malloc_segment::size'],['../a02258.html#a854352f53b148adc24983a58a1866d66',1,'arax_data_dtr::size'],['../a02254.html#a854352f53b148adc24983a58a1866d66',1,'arax_data_s::size']]], + ['size_5fbits_27',['size_bits',['../a02294.html#a6a989035a6bfea6ac1343a9b646e2b88',1,'utils_bitmap']]], + ['size_5ft_5fbitsize_28',['SIZE_T_BITSIZE',['../a01898.html#a9d769150c841cbb7512476c56aaf5617',1,'malloc.c']]], + ['size_5ft_5ffour_29',['SIZE_T_FOUR',['../a01898.html#a9233a87a400d8aaae1b22d1e3cdc42d8',1,'malloc.c']]], + ['size_5ft_5fone_30',['SIZE_T_ONE',['../a01898.html#a1a115588725fa912f1bcaca9f08fb658',1,'malloc.c']]], + ['size_5ft_5fsize_31',['SIZE_T_SIZE',['../a01898.html#a2e3db94c3bfc87e3c7bcbee4973bab02',1,'malloc.c']]], + ['size_5ft_5ftwo_32',['SIZE_T_TWO',['../a01898.html#a7e1ed65ca3ce9fcc21e329a7cea204d1',1,'malloc.c']]], + ['size_5ft_5fzero_33',['SIZE_T_ZERO',['../a01898.html#acd3fa67eabd0de0d56e206fa3a416de9',1,'malloc.c']]], + ['small_5findex_34',['small_index',['../a01898.html#a1f3d4249e522c896509b7999860090ea',1,'malloc.c']]], + ['small_5findex2size_35',['small_index2size',['../a01898.html#a377939ca061c1b170053c2927af26cdc',1,'malloc.c']]], + ['smallbin_5fat_36',['smallbin_at',['../a01898.html#a862c7dc1f319911e1f06b9d99485cc54',1,'malloc.c']]], + ['smallbin_5fshift_37',['SMALLBIN_SHIFT',['../a01898.html#a35c7b74e5fe8c45a869115cc6e154fe9',1,'malloc.c']]], + ['smallbin_5fwidth_38',['SMALLBIN_WIDTH',['../a01898.html#a033008a0cb72328dd6ced48e7f639874',1,'malloc.c']]], + ['smallbins_39',['smallbins',['../a02210.html#a3bb0caf88c843de908e1c9f5abce088d',1,'malloc_state']]], + ['smallmap_40',['smallmap',['../a02210.html#ab56163a714e0775cc6fad5ad6fe1cafd',1,'malloc_state']]], + ['smallmap_5fis_5fmarked_41',['smallmap_is_marked',['../a01898.html#a545357ca2a355288874c27ea94eca166',1,'malloc.c']]], + ['smblks_42',['smblks',['../a02194.html#a3e7598cedb4cf3db48ac2dbdaedba8c3',1,'mallinfo']]], + ['spinlock_2eh_43',['spinlock.h',['../a01391.html',1,'']]], + ['start_44',['start',['../a02334.html#a87659dd781b771019d5936762c0e3604',1,'utils_timer_s::start'],['../a02190.html#a53255b934b07b472175fbb8e847f9b5d',1,'arch_alloc_inner_s::start']]], + ['state_45',['state',['../a02282.html#a934524bb93ea14db8a9df9d44c388749',1,'arax_task_msg::state'],['../a02246.html#a8d0a70f38fa190a80948927823ee208f',1,'arax_accel_s::state']]], + ['stats_46',['stats',['../a02282.html#aff85928b0bb97173be36af219640090a',1,'arax_task_msg::stats'],['../a02246.html#ab7c39f30624eeec7821ca8b4da58a1a3',1,'arax_accel_s::stats']]], + ['stop_47',['stop',['../a02334.html#a0e0b9ddde38b77f2b739eeffac21104e',1,'utils_timer_s']]], + ['str_48',['str',['../a02250.html#af25d6dc49269fa2003ac7c7fa6f13915',1,'arax_accel_type_map']]], + ['struct_5fmallinfo_5fdeclared_49',['STRUCT_MALLINFO_DECLARED',['../a01898.html#a73031e8be1f35c837c74bee1d205a929',1,'STRUCT_MALLINFO_DECLARED: malloc.c'],['../a01901.html#a73031e8be1f35c837c74bee1d205a929',1,'STRUCT_MALLINFO_DECLARED: malloc.h']]], + ['sys_5falloc_50',['sys_alloc',['../a01898.html#a726dbaacf5aca0a8435e3ce4d44844f4',1,'malloc.c']]], + ['sys_5falloc_5fpadding_51',['SYS_ALLOC_PADDING',['../a01898.html#ac40b2081de834d5d7e140d79592cd4df',1,'malloc.c']]], + ['sys_5ftrim_52',['sys_trim',['../a01898.html#a3de256edbbbbd4018cd3563f55ee50ab',1,'malloc.c']]], + ['system_2ec_53',['system.c',['../a01964.html',1,'']]], + ['system_2eh_54',['system.h',['../a01394.html',1,'']]], + ['system_5fbacktrace_55',['system_backtrace',['../a01964.html#a086232272942235166bf349ef7aacf9d',1,'system_backtrace(unsigned int skip): system.c'],['../a01394.html#a086232272942235166bf349ef7aacf9d',1,'system_backtrace(unsigned int skip): system.c']]], + ['system_5fenv_5fvar_56',['system_env_var',['../a01964.html#acde493d3889d6f207d1e122cf4bb1b8c',1,'system_env_var(const char *var): system.c'],['../a01394.html#acde493d3889d6f207d1e122cf4bb1b8c',1,'system_env_var(const char *var): system.c']]], + ['system_5fexec_5fname_57',['system_exec_name',['../a01964.html#a36e65476d70ed717735bbcfa6c09b75d',1,'system_exec_name(): system.c'],['../a01394.html#a36e65476d70ed717735bbcfa6c09b75d',1,'system_exec_name(): system.c']]], + ['system_5ffile_5fsize_58',['system_file_size',['../a01964.html#a86c3bfbf6daaf8172e131aa23dc7393c',1,'system_file_size(const char *file): system.c'],['../a01394.html#a86c3bfbf6daaf8172e131aa23dc7393c',1,'system_file_size(const char *file): system.c']]], + ['system_5fhome_5fpath_59',['system_home_path',['../a01964.html#a0844807fe9679a9a5fbf1bfc9dd78dc6',1,'system_home_path(): system.c'],['../a01394.html#a0844807fe9679a9a5fbf1bfc9dd78dc6',1,'system_home_path(): system.c']]], + ['system_5fmmap_60',['system_mmap',['../a01964.html#ad8ca0aa2e50dbe9c1827c2d4da814cf6',1,'system_mmap(void **base, int *fd, const char *file, size_t shm_size, size_t shm_off, int truncate): system.c'],['../a01394.html#ad8ca0aa2e50dbe9c1827c2d4da814cf6',1,'system_mmap(void **base, int *fd, const char *file, size_t shm_size, size_t shm_off, int truncate): system.c']]], + ['system_5fprocess_5fid_61',['system_process_id',['../a01964.html#a38809d11e47f180968c23903fed321ef',1,'system_process_id(): system.c'],['../a01394.html#a38809d11e47f180968c23903fed321ef',1,'system_process_id(): system.c']]], + ['system_5fthread_5fid_62',['system_thread_id',['../a01964.html#a1fe891ca2eeb8a21c92ce9868d81ef69',1,'system_thread_id(): system.c'],['../a01394.html#a1fe891ca2eeb8a21c92ce9868d81ef69',1,'system_thread_id(): system.c']]], + ['system_5ftotal_5fmemory_63',['system_total_memory',['../a01964.html#a54bd28e423e19877e5abcb1fe3d12c03',1,'system_total_memory(): system.c'],['../a01394.html#a54bd28e423e19877e5abcb1fe3d12c03',1,'system_total_memory(): system.c']]] +]; diff --git a/search/all_13.js b/search/all_13.js new file mode 100644 index 00000000..d6911a8a --- /dev/null +++ b/search/all_13.js @@ -0,0 +1,39 @@ +var searchData= +[ + ['alloc_2ec_0',['alloc.c',['../a02343.html',1,'']]], + ['task_1',['task',['../a02262.html#a345d6434c7ca1b983591d2d8bc9648cf',1,'arax_object_union']]], + ['task_5fcompleted_2',['task_completed',['../a01361.html#aa2463c047bffe232c661a52a0dc7db8aa7a4cbe15f1a1beedac704098e782410f',1,'arax_types.h']]], + ['task_5fduration_3',['task_duration',['../a02338.html#a175afe70429615aa9ff48ed7ff4d4dab',1,'arax_task_stats']]], + ['task_5fduration_5fwithout_5fissue_4',['task_duration_without_issue',['../a02338.html#a7a0abc66690ba30b24b5a312fbccaf6d',1,'arax_task_stats']]], + ['task_5ffailed_5',['task_failed',['../a01361.html#aa2463c047bffe232c661a52a0dc7db8aaea4c704d1c494c1f4cac58eda90716b0',1,'arax_types.h']]], + ['task_5fissued_6',['task_issued',['../a01361.html#aa2463c047bffe232c661a52a0dc7db8aa565ef41fef08f053e44b2fe6cd6758ea',1,'arax_types.h']]], + ['task_5fuid_7',['task_uid',['../a01907.html#a5b9e51ce781e49cf53d0bde45cb37a92',1,'impl.c']]], + ['tasks_8',['tasks',['../a02246.html#a027bd400267a8d114c0ffc4a7f58eb70',1,'arax_accel_s']]], + ['tbinptr_9',['tbinptr',['../a01898.html#a1a975f80818075b2e6dc1e778144d14a',1,'malloc.c']]], + ['tchunk_10',['tchunk',['../a01898.html#a1639705241e61df2983f58d6a2e15d5f',1,'malloc.c']]], + ['tchunkptr_11',['tchunkptr',['../a01898.html#addd456ccc8fb838310e92a3f394fc1b1',1,'malloc.c']]], + ['test_2ec_12',['test.c',['../a01904.html',1,'']]], + ['thread_13',['thread',['../a02230.html#a01f75a9ad916f63a94e06a27635ba278',1,'async_meta_s']]], + ['threads_14',['threads',['../a01907.html#aa94eb0857e9029089299368b1484e851',1,'threads: impl.c'],['../a02322.html#a4f987a98d3e1221916748962e45399fe',1,'arax_process_tracker_s::threads']]], + ['throttle_15',['throttle',['../a02326.html#a1646aa51ec6b87327b5d9bb13e4efb71',1,'arax_pipe::throttle'],['../a02246.html#a1646aa51ec6b87327b5d9bb13e4efb71',1,'arax_accel_s::throttle']]], + ['timer_2eh_16',['timer.h',['../a01397.html',1,'']]], + ['tmalloc_5flarge_17',['tmalloc_large',['../a01898.html#a3b1418d10b9d8c0b0f76f49700dbfcf7',1,'malloc.c']]], + ['tmalloc_5fsmall_18',['tmalloc_small',['../a01898.html#a11496157d710a0e954cca1e11fd1713f',1,'malloc.c']]], + ['top_19',['top',['../a02210.html#ab3d2153aba94814a2c95ec60473349e1',1,'malloc_state']]], + ['top_5ffoot_5fsize_20',['TOP_FOOT_SIZE',['../a01898.html#a3b8c23c29e153672fb62406384791948',1,'malloc.c']]], + ['topsize_21',['topsize',['../a02210.html#a4589d6dbc477b316b19d53681682a11b',1,'malloc_state']]], + ['total_5fbytes_22',['total_bytes',['../a02186.html#a44f6c734c0aa9cad16cdbb25ca6aa471',1,'arch_alloc_stats_s']]], + ['treebin_5fat_23',['treebin_at',['../a01898.html#a9890e7becae3c880548653acb11ef261',1,'malloc.c']]], + ['treebin_5fshift_24',['TREEBIN_SHIFT',['../a01898.html#a84cfe33e7f07c4b874fe1a82ba327c2e',1,'malloc.c']]], + ['treebins_25',['treebins',['../a02210.html#afd1d06df09a882464f21df287e5fe194',1,'malloc_state']]], + ['treemap_26',['treemap',['../a02210.html#a19964ccc0ef0ae2fc26f07d61c0ffaf1',1,'malloc_state']]], + ['treemap_5fis_5fmarked_27',['treemap_is_marked',['../a01898.html#a0a5f672f882ef6645bcc97b6d0e30d7d',1,'malloc.c']]], + ['trim_5fcheck_28',['trim_check',['../a02210.html#aa3e67387da01af088f98c37f455ecab1',1,'malloc_state']]], + ['trim_5fthreshold_29',['trim_threshold',['../a02214.html#afd809f8bd873d7fa33254b3fb1916647',1,'malloc_params']]], + ['try_5frealloc_5fchunk_30',['try_realloc_chunk',['../a01898.html#af8adec320537d6e63bc68e76633a1f0e',1,'malloc.c']]], + ['two_5fsize_5ft_5fsizes_31',['TWO_SIZE_T_SIZES',['../a01898.html#aea099b8fb6bf6975c70b2945de5064d1',1,'malloc.c']]], + ['type_32',['type',['../a02282.html#abc0d19a0f38e8eff06a6023c517bc183',1,'arax_task_msg::type'],['../a02290.html#abc0d19a0f38e8eff06a6023c517bc183',1,'arax_vaccel_s::type'],['../a02274.html#a58fd61e4b715a2ae25b8d8da210ad32e',1,'arax_object_s::type'],['../a02250.html#abc0d19a0f38e8eff06a6023c517bc183',1,'arax_accel_type_map::type'],['../a02246.html#abc0d19a0f38e8eff06a6023c517bc183',1,'arax_accel_s::type']]], + ['type2str_33',['type2str',['../a01922.html#a80f4b2dd70612af76291cf92771f7cc9',1,'arax_object.c']]], + ['type_5fmask_34',['TYPE_MASK',['../a01919.html#a980bfe6b3424f0710fd3268f6fb0b0fd',1,'arax_data.c']]], + ['types_5fmap_35',['types_map',['../a01916.html#a8ed114b6acd463d017e6e0502b5107f2',1,'arax_accel_types.c']]] +]; diff --git a/search/all_14.js b/search/all_14.js new file mode 100644 index 00000000..86cf41bc --- /dev/null +++ b/search/all_14.js @@ -0,0 +1,90 @@ +var searchData= +[ + ['unlikely_0',['UNLIKELY',['../a01961.html#a9bc47b0f2ca95a82343eaf253567b354',1,'queue.c']]], + ['unlink_5fchunk_1',['unlink_chunk',['../a01898.html#ad3e9aeaeefa7e2fc61f84cafffc6a13a',1,'malloc.c']]], + ['unlink_5ffirst_5fsmall_5fchunk_2',['unlink_first_small_chunk',['../a01898.html#a4710edd84badb715ced379a5a7000b61',1,'malloc.c']]], + ['unlink_5flarge_5fchunk_3',['unlink_large_chunk',['../a01898.html#a2af36a6897c8bac0fd68a329cf3b43c9',1,'malloc.c']]], + ['unlink_5fsmall_5fchunk_4',['unlink_small_chunk',['../a01898.html#a6681f6fb034ce0fcee30f1df143fcefc',1,'malloc.c']]], + ['uordblks_5',['uordblks',['../a02194.html#adfae0d223395438424dc280941abd2d8',1,'mallinfo']]], + ['usage_5ferror_5faction_6',['USAGE_ERROR_ACTION',['../a01898.html#ab207e868102874ef0dee095572e35597',1,'malloc.c']]], + ['use_5fbuiltin_5fffs_7',['USE_BUILTIN_FFS',['../a01898.html#a66da830b721a3ea3b57609ba4894da73',1,'malloc.c']]], + ['use_5fdev_5frandom_8',['USE_DEV_RANDOM',['../a01898.html#a3071f613460817c78d1b8002d1093cc6',1,'malloc.c']]], + ['use_5flock_9',['use_lock',['../a01898.html#a7c7ff8add3d9f12d4af529f9f43d7644',1,'malloc.c']]], + ['use_5flock_5fbit_10',['USE_LOCK_BIT',['../a01898.html#a02a456408564b69d6f3de5f8fede4931',1,'malloc.c']]], + ['use_5flocks_11',['USE_LOCKS',['../a01898.html#afc15a339eab4721df5fcd099004f1840',1,'malloc.c']]], + ['use_5fmmap_12',['use_mmap',['../a01898.html#acab9406dcc7caedf7a63038e271d45a5',1,'malloc.c']]], + ['use_5fmmap_5fbit_13',['USE_MMAP_BIT',['../a01898.html#a6792a808878980b064a53729e42a1b55',1,'malloc.c']]], + ['use_5fnoncontiguous_14',['use_noncontiguous',['../a01898.html#a6cbe613595e5001cbb1b85de17ce1c27',1,'malloc.c']]], + ['use_5fnoncontiguous_5fbit_15',['USE_NONCONTIGUOUS_BIT',['../a01898.html#ac7f41c328146bb45481fe3e0c20787d4',1,'malloc.c']]], + ['use_5fspin_5flocks_16',['USE_SPIN_LOCKS',['../a02340.html#a2272cf5f1db0ea5dd0e89d1a3c5028f0',1,'USE_SPIN_LOCKS: alloc.c'],['../a01898.html#a2272cf5f1db0ea5dd0e89d1a3c5028f0',1,'USE_SPIN_LOCKS: malloc.c']]], + ['used_5fbits_17',['used_bits',['../a02294.html#a5d2a0cf45be4611047446c1bf07556ab',1,'utils_bitmap']]], + ['used_5fbytes_18',['used_bytes',['../a02186.html#a5931414ae1520521e029e466278fb642',1,'arch_alloc_stats_s']]], + ['usedslots_19',['usedSlots',['../a02338.html#a7ccc765d17a22afe69777157999cefce',1,'arax_task_stats']]], + ['usmblks_20',['usmblks',['../a02194.html#af6ad0df613ea4a48ade27b83b8ad38ad',1,'mallinfo']]], + ['utils_5fbitmap_21',['utils_bitmap',['../a02294.html',1,'']]], + ['utils_5fbitmap_5falloc_5fbits_22',['utils_bitmap_alloc_bits',['../a01952.html#a306b62b1bc50d56e80ba7b7adb02f961',1,'utils_bitmap_alloc_bits(utils_bitmap_s *bmp, size_t bits): bitmap.c'],['../a01376.html#a306b62b1bc50d56e80ba7b7adb02f961',1,'utils_bitmap_alloc_bits(utils_bitmap_s *bmp, size_t bits): bitmap.c']]], + ['utils_5fbitmap_5fcalc_5fbytes_23',['UTILS_BITMAP_CALC_BYTES',['../a01376.html#ae52d40f9d43ef1bb41eede6788655038',1,'bitmap.h']]], + ['utils_5fbitmap_5fcount_5fallocated_24',['utils_bitmap_count_allocated',['../a01952.html#a9959e03fdd8848c11ffd215dd8f59d14',1,'utils_bitmap_count_allocated(utils_bitmap_s *bmp): bitmap.c'],['../a01376.html#a9959e03fdd8848c11ffd215dd8f59d14',1,'utils_bitmap_count_allocated(utils_bitmap_s *bmp): bitmap.c']]], + ['utils_5fbitmap_5ffree_25',['utils_bitmap_free',['../a01952.html#a84bb16b03a95a60c4748c189dafa8a54',1,'utils_bitmap_free(utils_bitmap_s *bmp): bitmap.c'],['../a01376.html#a84bb16b03a95a60c4748c189dafa8a54',1,'utils_bitmap_free(utils_bitmap_s *bmp): bitmap.c']]], + ['utils_5fbitmap_5ffree_5fbits_26',['utils_bitmap_free_bits',['../a01952.html#a7e0e82902c3c17ef427f5876beb5a04e',1,'utils_bitmap_free_bits(utils_bitmap_s *bmp, size_t start, size_t bits): bitmap.c'],['../a01376.html#a7e0e82902c3c17ef427f5876beb5a04e',1,'utils_bitmap_free_bits(utils_bitmap_s *bmp, size_t start, size_t bits): bitmap.c']]], + ['utils_5fbitmap_5finit_27',['utils_bitmap_init',['../a01952.html#a6699a24a46fb1be57ca21abf8bc61928',1,'utils_bitmap_init(void *mem, size_t size_bits): bitmap.c'],['../a01376.html#a6699a24a46fb1be57ca21abf8bc61928',1,'utils_bitmap_init(void *mem, size_t size_bits): bitmap.c']]], + ['utils_5fbitmap_5fprint_5fbits_28',['utils_bitmap_print_bits',['../a01952.html#af2ac1952df551f3bc3f3b14a3e2ac019',1,'utils_bitmap_print_bits(utils_bitmap_s *bmp): bitmap.c'],['../a01376.html#af2ac1952df551f3bc3f3b14a3e2ac019',1,'utils_bitmap_print_bits(utils_bitmap_s *bmp): bitmap.c']]], + ['utils_5fbitmap_5fs_29',['utils_bitmap_s',['../a01376.html#a1c71fd5d84d31bccd193a226f60dbb3e',1,'bitmap.h']]], + ['utils_5fbitmap_5fsize_30',['utils_bitmap_size',['../a01952.html#aabeb9bb5dd959f679552a4b446a1194f',1,'utils_bitmap_size(utils_bitmap_s *bmp): bitmap.c'],['../a01376.html#aabeb9bb5dd959f679552a4b446a1194f',1,'utils_bitmap_size(utils_bitmap_s *bmp): bitmap.c']]], + ['utils_5fbitmap_5fused_31',['utils_bitmap_used',['../a01952.html#aa705f02ae4c1ab0b9864dda0924dade1',1,'utils_bitmap_used(utils_bitmap_s *bmp): bitmap.c'],['../a01376.html#aa705f02ae4c1ab0b9864dda0924dade1',1,'utils_bitmap_used(utils_bitmap_s *bmp): bitmap.c']]], + ['utils_5fcompat_5fempty_5fs_32',['utils_compat_empty_s',['../a02298.html',1,'']]], + ['utils_5fconfig_5falloc_5fpath_33',['utils_config_alloc_path',['../a01955.html#aff9af0356940583dfe3045e693cc8a45',1,'utils_config_alloc_path(const char *path): config.c'],['../a01382.html#aff9af0356940583dfe3045e693cc8a45',1,'utils_config_alloc_path(const char *path): config.c']]], + ['utils_5fconfig_5ffree_5fpath_34',['utils_config_free_path',['../a01955.html#a84f3886cdcb91a28bf13b07aae8b2285',1,'utils_config_free_path(char *path): config.c'],['../a01382.html#a84f3886cdcb91a28bf13b07aae8b2285',1,'utils_config_free_path(char *path): config.c']]], + ['utils_5fconfig_5fget_5fbool_35',['utils_config_get_bool',['../a01955.html#aa7aa94ad075bf97a566f01f899fcd859',1,'utils_config_get_bool(char *path, const char *key, int *value, int def_val): config.c'],['../a01382.html#aa7aa94ad075bf97a566f01f899fcd859',1,'utils_config_get_bool(char *path, const char *key, int *value, int def_val): config.c']]], + ['utils_5fconfig_5fget_5fint_36',['utils_config_get_int',['../a01955.html#a336fa8eefc3d744aa7248d6786cfee03',1,'utils_config_get_int(char *path, const char *key, int *value, int def_val): config.c'],['../a01382.html#a336fa8eefc3d744aa7248d6786cfee03',1,'utils_config_get_int(char *path, const char *key, int *value, int def_val): config.c']]], + ['utils_5fconfig_5fget_5flong_37',['utils_config_get_long',['../a01955.html#a1a28ba7c7791236d03b1fa9f81aa6a71',1,'utils_config_get_long(char *path, const char *key, long *value, long def_val): config.c'],['../a01382.html#a1a28ba7c7791236d03b1fa9f81aa6a71',1,'utils_config_get_long(char *path, const char *key, long *value, long def_val): config.c']]], + ['utils_5fconfig_5fget_5fsize_38',['utils_config_get_size',['../a01382.html#a4a525d89ade920512dc65409bc8e85d8',1,'utils_config_get_size(char *path, const char *key, size_t *value, size_t def_val): config.c'],['../a01955.html#a4a525d89ade920512dc65409bc8e85d8',1,'utils_config_get_size(char *path, const char *key, size_t *value, size_t def_val): config.c']]], + ['utils_5fconfig_5fget_5fsource_39',['utils_config_get_source',['../a01955.html#a17713c8e9b90065e23b0ec1a225f79ab',1,'utils_config_get_source(): config.c'],['../a01382.html#a17713c8e9b90065e23b0ec1a225f79ab',1,'utils_config_get_source(): config.c']]], + ['utils_5fconfig_5fget_5fstr_40',['utils_config_get_str',['../a01382.html#a1e8deff7c038efae14d1cc98e4ab109f',1,'utils_config_get_str(char *path, const char *key, char *value, size_t value_size, const char *def_val): config.c'],['../a01955.html#a1e8deff7c038efae14d1cc98e4ab109f',1,'utils_config_get_str(char *path, const char *key, char *value, size_t value_size, const char *def_val): config.c']]], + ['utils_5fconfig_5fsource_41',['utils_config_source',['../a01382.html#a4616ac612d0a2a45c511f61d0067c4d1',1,'config.h']]], + ['utils_5fconfig_5fwrite_5flong_42',['utils_config_write_long',['../a01955.html#a88091e179416d4beec1b5681cfb68742',1,'config.c']]], + ['utils_5fconfig_5fwrite_5fstr_43',['utils_config_write_str',['../a01955.html#a4b9cd8f5d0c205ac6c1fd30f77cbf539',1,'config.c']]], + ['utils_5fkv_5fget_44',['utils_kv_get',['../a01943.html#ab3a9ad65d11a3f800b9731cbc30e81ff',1,'utils_kv_get(utils_kv_s *kv, void *key): Kv.c'],['../a01367.html#ab3a9ad65d11a3f800b9731cbc30e81ff',1,'utils_kv_get(utils_kv_s *kv, void *key): Kv.c']]], + ['utils_5fkv_5finit_45',['utils_kv_init',['../a01943.html#a2e86c7792c1e7e0e1bdf1fe1a25dcab0',1,'utils_kv_init(utils_kv_s *kv): Kv.c'],['../a01367.html#a2e86c7792c1e7e0e1bdf1fe1a25dcab0',1,'utils_kv_init(utils_kv_s *kv): Kv.c']]], + ['utils_5fkv_5fs_46',['utils_kv_s',['../a02302.html',1,'']]], + ['utils_5fkv_5fset_47',['utils_kv_set',['../a01943.html#a91805af1bb8178dbb114ff65d491f840',1,'utils_kv_set(utils_kv_s *kv, void *key, void *value): Kv.c'],['../a01367.html#a91805af1bb8178dbb114ff65d491f840',1,'utils_kv_set(utils_kv_s *kv, void *key, void *value): Kv.c']]], + ['utils_5flist_5fadd_48',['utils_list_add',['../a01958.html#ae06a9e78e6a4f6c9c8afcf0f4862ce29',1,'utils_list_add(utils_list_s *list, utils_list_node_s *node): list.c'],['../a01385.html#ae06a9e78e6a4f6c9c8afcf0f4862ce29',1,'utils_list_add(utils_list_s *list, utils_list_node_s *node): list.c']]], + ['utils_5flist_5fdel_49',['utils_list_del',['../a01385.html#a0c85e5516222ab7e7fc354c614760ec5',1,'utils_list_del(utils_list_s *list, utils_list_node_s *node): list.c'],['../a01958.html#a0c85e5516222ab7e7fc354c614760ec5',1,'utils_list_del(utils_list_s *list, utils_list_node_s *node): list.c']]], + ['utils_5flist_5ffor_5feach_50',['utils_list_for_each',['../a01385.html#afd43483bda7bea7f030b6a1cfa490b84',1,'list.h']]], + ['utils_5flist_5ffor_5feach_5freverse_51',['utils_list_for_each_reverse',['../a01385.html#a7ea6a1cb0b132f9485af3724cc193111',1,'list.h']]], + ['utils_5flist_5ffor_5feach_5fsafe_52',['utils_list_for_each_safe',['../a01385.html#ae3c50c2a28a1714b41462bb3a6898248',1,'list.h']]], + ['utils_5flist_5finit_53',['utils_list_init',['../a01958.html#ab36e49d2e694b1da49504a689ed48e4a',1,'utils_list_init(void *mem): list.c'],['../a01385.html#ab36e49d2e694b1da49504a689ed48e4a',1,'utils_list_init(void *mem): list.c']]], + ['utils_5flist_5fnode_54',['utils_list_node',['../a02310.html',1,'']]], + ['utils_5flist_5fnode_5fadd_55',['utils_list_node_add',['../a01958.html#a5c575f52a42e0e0d2fb41bda2d1268ce',1,'list.c']]], + ['utils_5flist_5fnode_5finit_56',['utils_list_node_init',['../a01958.html#a63f2791c9b5c8e2fa15967cfafb7ccbb',1,'utils_list_node_init(utils_list_node_s *node, void *owner): list.c'],['../a01385.html#a63f2791c9b5c8e2fa15967cfafb7ccbb',1,'utils_list_node_init(utils_list_node_s *node, void *owner): list.c']]], + ['utils_5flist_5fnode_5flinked_57',['utils_list_node_linked',['../a01958.html#ab0c44e095ebfd8721de878c42abcbbdc',1,'utils_list_node_linked(utils_list_node_s *node): list.c'],['../a01385.html#ab0c44e095ebfd8721de878c42abcbbdc',1,'utils_list_node_linked(utils_list_node_s *node): list.c']]], + ['utils_5flist_5fnode_5fs_58',['utils_list_node_s',['../a01385.html#a79358272cbe50de37729ac492bc86999',1,'list.h']]], + ['utils_5flist_5fpop_5fhead_59',['utils_list_pop_head',['../a01958.html#a4cace11e17315f11b44dd9e3eabbf72a',1,'utils_list_pop_head(utils_list_s *list): list.c'],['../a01385.html#a4cace11e17315f11b44dd9e3eabbf72a',1,'utils_list_pop_head(utils_list_s *list): list.c']]], + ['utils_5flist_5fpop_5ftail_60',['utils_list_pop_tail',['../a01958.html#a00a9ced40b89f30fa314c4534bfb0922',1,'utils_list_pop_tail(utils_list_s *list): list.c'],['../a01385.html#a00a9ced40b89f30fa314c4534bfb0922',1,'utils_list_pop_tail(utils_list_s *list): list.c']]], + ['utils_5flist_5fs_61',['utils_list_s',['../a02314.html',1,'']]], + ['utils_5flist_5fto_5farray_62',['utils_list_to_array',['../a01385.html#ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d',1,'utils_list_to_array(utils_list_s *list, void **array): list.c'],['../a01958.html#ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d',1,'utils_list_to_array(utils_list_s *list, void **array): list.c']]], + ['utils_5fqueue_5finit_63',['utils_queue_init',['../a01961.html#a49c353188156b1df4463a5fc7f7bc25e',1,'utils_queue_init(void *buff): queue.c'],['../a01388.html#a49c353188156b1df4463a5fc7f7bc25e',1,'utils_queue_init(void *buff): queue.c']]], + ['utils_5fqueue_5fpeek_64',['utils_queue_peek',['../a01961.html#a88a8ed68fcdf9e38ebae44935d735c2d',1,'utils_queue_peek(utils_queue_s *q): queue.c'],['../a01388.html#a88a8ed68fcdf9e38ebae44935d735c2d',1,'utils_queue_peek(utils_queue_s *q): queue.c']]], + ['utils_5fqueue_5fpop_65',['utils_queue_pop',['../a01961.html#a8dee44046246efe133935d48d2cc387e',1,'utils_queue_pop(utils_queue_s *q): queue.c'],['../a01388.html#a8dee44046246efe133935d48d2cc387e',1,'utils_queue_pop(utils_queue_s *q): queue.c']]], + ['utils_5fqueue_5fpush_66',['utils_queue_push',['../a01961.html#a9fae55b169121c4851bb7c0adf4eac47',1,'utils_queue_push(utils_queue_s *q, void *data): queue.c'],['../a01388.html#a9fae55b169121c4851bb7c0adf4eac47',1,'utils_queue_push(utils_queue_s *q, void *data): queue.c']]], + ['utils_5fqueue_5fs_67',['utils_queue_s',['../a01388.html#aeb72b8e73ce63c3fe515c30f9ee51cad',1,'queue.h']]], + ['utils_5fqueue_5fused_5fslots_68',['utils_queue_used_slots',['../a01961.html#a5d84d59bded666fdcf1a8e949cb56a6a',1,'utils_queue_used_slots(utils_queue_s *q): queue.c'],['../a01388.html#a5d84d59bded666fdcf1a8e949cb56a6a',1,'utils_queue_used_slots(utils_queue_s *q): queue.c']]], + ['utils_5fspinlock_69',['utils_spinlock',['../a01391.html#ae6f2d470f2623f5dcb63ce56d50b815e',1,'spinlock.h']]], + ['utils_5fspinlock_5finit_70',['utils_spinlock_init',['../a01961.html#a48dab07b5af9a45ad2324cddca2111d0',1,'utils_spinlock_init: queue.c'],['../a01391.html#a4e53dedb4be075dc9c89468b377998d5',1,'utils_spinlock_init(utils_spinlock *lock): spinlock.h']]], + ['utils_5fspinlock_5flock_71',['utils_spinlock_lock',['../a01961.html#a12384163d480f80d5728efb744aba7c0',1,'utils_spinlock_lock: queue.c'],['../a01391.html#aa44806e01b878d6508fd6d37495d3f78',1,'utils_spinlock_lock(utils_spinlock *lock): spinlock.h']]], + ['utils_5fspinlock_5funlock_72',['utils_spinlock_unlock',['../a01961.html#a8b02b87f20799fecba9a0f2132c2e5bf',1,'utils_spinlock_unlock: queue.c'],['../a01391.html#a7005bc947de55764af4fd5b450d1109d',1,'utils_spinlock_unlock(utils_spinlock *lock): spinlock.h']]], + ['utils_5ftimer_5fget_5fduration_5fns_73',['utils_timer_get_duration_ns',['../a01397.html#a0781a7f43720006bcbb654144b9c3844',1,'timer.h']]], + ['utils_5ftimer_5fget_5fduration_5fus_74',['utils_timer_get_duration_us',['../a01397.html#a2aaf856e9d83a209d5acb56b22853b3e',1,'timer.h']]], + ['utils_5ftimer_5fget_5felapsed_5fns_75',['utils_timer_get_elapsed_ns',['../a01397.html#a78eb4942d27543e9e6e8d4c4d4c3e402',1,'timer.h']]], + ['utils_5ftimer_5fget_5felapsed_5fus_76',['utils_timer_get_elapsed_us',['../a01397.html#a2e0653385a30f5da81834c273ab20319',1,'timer.h']]], + ['utils_5ftimer_5fget_5fraw_77',['utils_timer_get_raw',['../a01397.html#a6003193f669d4324537ac2e71f4b6614',1,'timer.h']]], + ['utils_5ftimer_5fget_5ftime_5fns_78',['utils_timer_get_time_ns',['../a01397.html#a8554e6180aa56a77b9d42ca5ec5cb5fa',1,'timer.h']]], + ['utils_5ftimer_5fget_5ftime_5fus_79',['utils_timer_get_time_us',['../a01397.html#ab76e58716613aa078739a8260eee3812',1,'timer.h']]], + ['utils_5ftimer_5fms_80',['UTILS_TIMER_MS',['../a01397.html#a6a22eb4fb5e9bf3a51091969152ed187',1,'timer.h']]], + ['utils_5ftimer_5fns_81',['UTILS_TIMER_NS',['../a01397.html#adf999eaeac7a34369f6326298d10cf03',1,'timer.h']]], + ['utils_5ftimer_5fs_82',['utils_timer_s',['../a02334.html',1,'utils_timer_s'],['../a01361.html#a4946c289e5f62f87bed7fb3ddc566939',1,'utils_timer_s: arax_types.h']]], + ['utils_5ftimer_5fset_83',['utils_timer_set',['../a01397.html#a2dcc750e82be4d90d85b5bc8e6269ed0',1,'timer.h']]], + ['utils_5ftimer_5fset_5fraw_84',['utils_timer_set_raw',['../a01397.html#a860533d5baf63026c56b45628f61dbb1',1,'timer.h']]], + ['utils_5ftimer_5ftv_5ftime_85',['utils_timer_tv_time',['../a01397.html#a104417bc47f75bae6be9029a3df1df52',1,'timer.h']]], + ['utils_5ftimer_5fus_86',['UTILS_TIMER_US',['../a01397.html#a8bb22df167993baa52787f96864db4b7',1,'timer.h']]] +]; diff --git a/search/all_15.js b/search/all_15.js new file mode 100644 index 00000000..16f081dc --- /dev/null +++ b/search/all_15.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['vaccel_0',['vaccel',['../a02262.html#a0854c3a45b3a05405f7713a09022aeeb',1,'arax_object_union']]], + ['vaccels_1',['vaccels',['../a02246.html#a17a66e8f84a523da90c1201d2ce6c9d1',1,'arax_accel_s::vaccels'],['../a02290.html#ad1f970085318cf558d1b34d4a3284f02',1,'arax_vaccel_s::vaccels']]], + ['value_2',['value',['../a02238.html#a4b66d20bc6c0e165a6bd27620f840caa',1,'async_semaphore_s::value'],['../a02306.html#a0f61d63b009d0880a89c843bd50d8d76',1,'utils_kv_s::Pair::value']]], + ['vd_5fbuff_5fowner_3',['VD_BUFF_OWNER',['../a01919.html#a9cfc4824ef6366d0a0203973fee59cb7',1,'arax_data.c']]], + ['vdflag_4',['VDFLAG',['../a01919.html#a79bcfecb44a55cae834171d418dad602',1,'arax_data.c']]], + ['vm_5fid_5',['vm_id',['../a02234.html#a43b7b681263bcb1b241a120f8b9eafe8',1,'async_completion_s']]], + ['vm_5fid_5freg_6',['VM_ID_REG',['../a02346.html#a5c6cef9bc2984aa826698bd328126308afe84fc01c1e474b531d34e31ea7677dd',1,'async.c']]], + ['vpipe_7',['vpipe',['../a01907.html#a3e33e864e90b18efe53fbac5962d44ea',1,'impl.c']]] +]; diff --git a/search/all_16.js b/search/all_16.js new file mode 100644 index 00000000..f444573a --- /dev/null +++ b/search/all_16.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['wakeupvm_0',['wakeupVm',['../a02346.html#ab5d38a2680290bd159549efaa41b925b',1,'async.c']]] +]; diff --git a/search/all_2.js b/search/all_2.js new file mode 100644 index 00000000..a968a213 --- /dev/null +++ b/search/all_2.js @@ -0,0 +1,18 @@ +var searchData= +[ + ['base_0',['base',['../a02190.html#a4d09c141a8139b5f30b5877cb9de4ec2',1,'arch_alloc_inner_s::base'],['../a02206.html#aaa2fae125feca2b4de4f3f7640c76ce4',1,'malloc_segment::base']]], + ['bell_5freg_1',['BELL_REG',['../a02346.html#a5c6cef9bc2984aa826698bd328126308a613577583c292244ee27da18aea86012',1,'async.c']]], + ['bindex_5ft_2',['bindex_t',['../a01898.html#a4c04048d19db75c080e5f0ab19d45f8f',1,'malloc.c']]], + ['binmap_5ft_3',['binmap_t',['../a01898.html#a2714ff4b4994bc59cce3c3dce1e60c27',1,'malloc.c']]], + ['bit_5fallocator_5fblock_4',['BIT_ALLOCATOR_BLOCK',['../a02340.html#a968206c9e5d9e1333fc7c00766c9620b',1,'alloc.c']]], + ['bit_5fallocator_5fblock_5fmask_5',['BIT_ALLOCATOR_BLOCK_MASK',['../a02340.html#a44449154cfb840851f1546a576113a16',1,'alloc.c']]], + ['bit_5ffor_5ftree_5findex_6',['bit_for_tree_index',['../a01898.html#add9cdad127078283b5143927a1610427',1,'malloc.c']]], + ['bitmap_2ec_7',['bitmap.c',['../a01952.html',1,'']]], + ['bitmap_2eh_8',['bitmap.h',['../a01376.html',1,'']]], + ['bitmap_5fnot_5ffound_9',['BITMAP_NOT_FOUND',['../a01376.html#ad43f6b6827bef2f04fd86c5bc8d73805',1,'bitmap.h']]], + ['bits_10',['bits',['../a02294.html#ad5bb3cdaaa30848e14f53cc84569fc40',1,'utils_bitmap']]], + ['bits_5fper_5fpage_11',['BITS_PER_PAGE',['../a02340.html#a56f9dcbbd13828d582d3ca909596017e',1,'alloc.c']]], + ['bk_12',['bk',['../a02202.html#abe98d6367dd96eb904a24a085b4f38a1',1,'malloc_tree_chunk::bk'],['../a02198.html#a9b61390def3591c51c3eac16f3adb2ee',1,'malloc_chunk::bk']]], + ['bmp_13',['bmp',['../a02190.html#a67dc8652bdc3bc475d07ce02740c879d',1,'arch_alloc_inner_s']]], + ['buffer_14',['buffer',['../a02254.html#a368f7094dc38acca20612bbb392552f4',1,'arax_data_s']]] +]; diff --git a/search/all_3.js b/search/all_3.js new file mode 100644 index 00000000..68b33fe9 --- /dev/null +++ b/search/all_3.js @@ -0,0 +1,53 @@ +var searchData= +[ + ['c_5fattr_0',['c_attr',['../a02242.html#af506bcbb7e47f4be8ce0c712755732d8',1,'async_condition_s']]], + ['call_5fdirect_5fmmap_1',['CALL_DIRECT_MMAP',['../a01898.html#a26980b7eab40770feedf42c2bd73c24f',1,'malloc.c']]], + ['call_5fmmap_2',['CALL_MMAP',['../a01898.html#a2c63dd9bc221c7bba0b8a6b2772ecd81',1,'malloc.c']]], + ['call_5fmorecore_3',['CALL_MORECORE',['../a01898.html#a215ecb242aa62fffb86fce8c6f3cac32',1,'malloc.c']]], + ['call_5fmremap_4',['CALL_MREMAP',['../a01898.html#afde1135b9abf86803f31a6b832ecf2a7',1,'malloc.c']]], + ['call_5fmunmap_5',['CALL_MUNMAP',['../a01898.html#a570315b155b7f2271c9370201cc24ef3',1,'malloc.c']]], + ['calloc_5fmust_5fclear_6',['calloc_must_clear',['../a01898.html#aa961cd887ed571eadb6f6148d0d09e48',1,'malloc.c']]], + ['canrun_7',['canrun',['../a02278.html#a493b9cf53eb6d948c3e9194d1712857c',1,'arax_proc_s']]], + ['capacity_8',['capacity',['../a02286.html#ad721fc6ca6a3d6ba3bc506576622aab0',1,'arax_throttle_s']]], + ['change_5fmparam_9',['change_mparam',['../a01898.html#a99e26c45fc3b7bd05c627138d0d103fc',1,'malloc.c']]], + ['check_5ffree_5fchunk_10',['check_free_chunk',['../a01898.html#a4ee253420495ac1a115acad3a7e2045c',1,'malloc.c']]], + ['check_5finuse_5fchunk_11',['check_inuse_chunk',['../a01898.html#a4a10639890e0474f257429c8aec650bb',1,'malloc.c']]], + ['check_5fmalloc_5fstate_12',['check_malloc_state',['../a01898.html#afa00ceb10e333a5edffe0c4a429207b0',1,'malloc.c']]], + ['check_5fmalloced_5fchunk_13',['check_malloced_chunk',['../a01898.html#ae26652400ab077acf28998ca58aa7bf1',1,'malloc.c']]], + ['check_5fmmapped_5fchunk_14',['check_mmapped_chunk',['../a01898.html#ab4a8a939c748e7bf809ebf9cde15f974',1,'malloc.c']]], + ['check_5fsemantics_15',['check_semantics',['../a01907.html#a226d4d420328a42fd671699ae60c4c3a',1,'impl.c']]], + ['check_5ftop_5fchunk_16',['check_top_chunk',['../a01898.html#a9da830f14086f890cc55fc4172a02eb6',1,'malloc.c']]], + ['child_17',['child',['../a02202.html#a42725ba2abbd10eb7ed652a704933d2b',1,'malloc_tree_chunk']]], + ['chunk2mem_18',['chunk2mem',['../a01898.html#accb5f8e767e1e6ca196937cd24f8a1e2',1,'malloc.c']]], + ['chunk_5falign_5fmask_19',['CHUNK_ALIGN_MASK',['../a01898.html#a46f5899c4a72acfdd20872d893679bb0',1,'malloc.c']]], + ['chunk_5fminus_5foffset_20',['chunk_minus_offset',['../a01898.html#a26cb551063ab1a46db7bd51be271afdd',1,'malloc.c']]], + ['chunk_5foverhead_21',['CHUNK_OVERHEAD',['../a01898.html#ad99e48752cd2b170bdaf90b5a5bbf072',1,'malloc.c']]], + ['chunk_5fplus_5foffset_22',['chunk_plus_offset',['../a01898.html#a2222e8c19fc975b86342ea505eeed358',1,'malloc.c']]], + ['chunksize_23',['chunksize',['../a01898.html#a0bd05b2720a9f79a0c066086c4f7e2fa',1,'malloc.c']]], + ['cid_24',['cid',['../a02290.html#a7799217ab3775472b2c3f62cbaded780',1,'arax_vaccel_s']]], + ['cinuse_25',['cinuse',['../a01898.html#a01d65bf1aca48739daba1789e75731d4',1,'malloc.c']]], + ['cinuse_5fbit_26',['CINUSE_BIT',['../a01898.html#a8f8153cc167dd042af6840f7130b9721',1,'malloc.c']]], + ['clear_5fflag4_27',['clear_flag4',['../a01898.html#aa850a392adbf484a1431ad1f959cbfc5',1,'malloc.c']]], + ['clear_5fpinuse_28',['clear_pinuse',['../a01898.html#ad32c3519a274d707cedb0345f2ebf129',1,'malloc.c']]], + ['clear_5fsmallmap_29',['clear_smallmap',['../a01898.html#a5429f913012abf9059d0bd93940c9e0e',1,'malloc.c']]], + ['clear_5ftreemap_30',['clear_treemap',['../a01898.html#a6c003dab5a3337bde0315d6a58c1a9cd',1,'malloc.c']]], + ['cmfail_31',['CMFAIL',['../a01898.html#aea7448d636880994af54d52aa979e7bd',1,'malloc.c']]], + ['cntrl_5fready_32',['cntrl_ready',['../a02326.html#a8a91cba1e61921c58a95716107ad4c36',1,'arax_pipe']]], + ['cntrl_5fready_5fcond_33',['cntrl_ready_cond',['../a02326.html#ad0090e9831a5037432c1e073bf48b94b',1,'arax_pipe']]], + ['compat_2eh_34',['compat.h',['../a01379.html',1,'']]], + ['compiler_5fbarrier_35',['COMPILER_BARRIER',['../a01961.html#a99ad0e26d85f7be6473a2c23dbfaf4e1',1,'queue.c']]], + ['completed_36',['completed',['../a02234.html#a82dda01b9639dbae2ddcc3825ee09490',1,'async_completion_s']]], + ['compute_5fbit2idx_37',['compute_bit2idx',['../a01898.html#ac8199000024d5b45dbf79400df381dfc',1,'malloc.c']]], + ['compute_5ftree_5findex_38',['compute_tree_index',['../a01898.html#a057276ef94e26754cae354fd9f56bcef',1,'malloc.c']]], + ['condition_39',['condition',['../a02242.html#a2d017047068ee847b500c14427ac4d6b',1,'async_condition_s']]], + ['conf_2eh_40',['conf.h',['../a01436.html',1,'']]], + ['conf_5fget_41',['conf_get',['../a01955.html#a8b687fb4c464903e23504eea3ddc3873',1,'config.c']]], + ['conf_5fset_42',['conf_set',['../a01955.html#ab87e9691e65d65348749f8dc70f24602',1,'config.c']]], + ['config_2ec_43',['config.c',['../a01955.html',1,'']]], + ['config_2eh_44',['config.h',['../a01382.html',1,'']]], + ['config_5fenv_45',['CONFIG_ENV',['../a01382.html#a4616ac612d0a2a45c511f61d0067c4d1ac4f16b8d6c7ae22fa2b62c2163edde95',1,'config.h']]], + ['config_5ffile_46',['CONFIG_FILE',['../a01382.html#a4616ac612d0a2a45c511f61d0067c4d1a412fc1f23a5704f2adcd28372e7d1cae',1,'config.h']]], + ['config_5fpath_47',['config_path',['../a01907.html#a3de5ffd6fd04ae24583c706e938fb46e',1,'impl.c']]], + ['corruption_5ferror_5faction_48',['CORRUPTION_ERROR_ACTION',['../a01898.html#acb20d711da475d4c59ef88569579b4d4',1,'malloc.c']]], + ['cpu_49',['CPU',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8a0035eb0600d18dfc302f6bf7a7cbfa3b',1,'arax_types.h']]] +]; diff --git a/search/all_4.js b/search/all_4.js new file mode 100644 index 00000000..1ca7c2b6 --- /dev/null +++ b/search/all_4.js @@ -0,0 +1,44 @@ +var searchData= +[ + ['alloc_2ec_0',['alloc.c',['../a02340.html',1,'']]], + ['data_1',['data',['../a02262.html#ac74255a77b098e4cb5dfef0876a5dc81',1,'arax_object_union']]], + ['debug_2',['DEBUG',['../a01898.html#ad72dbcf6d0153db1b8d8a58001feed83',1,'malloc.c']]], + ['default_5fgranularity_3',['DEFAULT_GRANULARITY',['../a01898.html#a0919191b14359403f853f75c6fcb5879',1,'malloc.c']]], + ['default_5fmflags_4',['default_mflags',['../a02214.html#ab4bea0fc0d7da4969f30083aa2715e16',1,'malloc_params']]], + ['default_5fmmap_5fthreshold_5',['DEFAULT_MMAP_THRESHOLD',['../a01898.html#a3d78f5f17cc66ad4b567a39a55bb4837',1,'malloc.c']]], + ['default_5ftrim_5fthreshold_6',['DEFAULT_TRIM_THRESHOLD',['../a01898.html#aed027da2fe85e7618851151184d04f49',1,'malloc.c']]], + ['destroy_5flock_7',['DESTROY_LOCK',['../a01898.html#acf7ea24a3875d0b5dbcba8a863a5e2d0',1,'malloc.c']]], + ['direct_5fmmap_8',['DIRECT_MMAP',['../a01898.html#a701e885d119af384b33d724f1e2e7302',1,'DIRECT_MMAP: malloc.c'],['../a01898.html#a701e885d119af384b33d724f1e2e7302',1,'DIRECT_MMAP: malloc.c']]], + ['disable_5fcontiguous_9',['disable_contiguous',['../a01898.html#a1c844cd4da4c0805c2b2e8424513f1fd',1,'malloc.c']]], + ['disable_5flock_10',['disable_lock',['../a01898.html#a349dcd06c8dcf826a592f4d9a7b2949c',1,'malloc.c']]], + ['disable_5fmmap_11',['disable_mmap',['../a01898.html#a73914fa402851f1661c5f8026003be64',1,'malloc.c']]], + ['dispose_5fchunk_12',['dispose_chunk',['../a01898.html#a2d20e33b2d417733503759c0594f882d',1,'malloc.c']]], + ['dlbulk_5ffree_13',['dlbulk_free',['../a01898.html#a6994d926acbbff21ac936e1e100ba801',1,'dlbulk_free: malloc.c'],['../a01901.html#a6994d926acbbff21ac936e1e100ba801',1,'dlbulk_free: malloc.h'],['../a01898.html#a23be60f836a753261abb7405344df378',1,'dlbulk_free(void **, size_t n_elements): malloc.c'],['../a01898.html#a8e02204694aaa24ccc23b1cd2c403b7e',1,'dlbulk_free(void *array[], size_t nelem): malloc.c'],['../a01901.html#a9cd6aaddb8d233052b90826b60b9f346',1,'dlbulk_free(void **, size_t n_elements): malloc.h']]], + ['dlcalloc_14',['dlcalloc',['../a01901.html#aeb507216612dc43759952dd835e7596d',1,'dlcalloc: malloc.h'],['../a01898.html#a557252c43fb14a209ead0e6dfe6216ad',1,'dlcalloc(size_t, size_t): malloc.c'],['../a01901.html#a557252c43fb14a209ead0e6dfe6216ad',1,'dlcalloc(size_t, size_t): malloc.c'],['../a01898.html#aeb507216612dc43759952dd835e7596d',1,'dlcalloc: malloc.c']]], + ['dlfree_15',['dlfree',['../a01898.html#aa2f5410ccf57ee1ae49df754b44be9e3',1,'dlfree: malloc.c'],['../a01901.html#aa2f5410ccf57ee1ae49df754b44be9e3',1,'dlfree: malloc.h'],['../a01898.html#a1b80f9ee2d497077e4741029c8e23700',1,'dlfree(void *): malloc.c'],['../a01901.html#a1b80f9ee2d497077e4741029c8e23700',1,'dlfree(void *): malloc.c']]], + ['dlindependent_5fcalloc_16',['dlindependent_calloc',['../a01898.html#a5c6367328ed688a118d756151de3455d',1,'dlindependent_calloc(size_t n_elements, size_t elem_size, void *chunks[]): malloc.c'],['../a01901.html#a2d0363c74cf96e8d816e1a59613d90a2',1,'dlindependent_calloc(size_t, size_t, void **): malloc.h'],['../a01898.html#a6226db9cd80a3a60c3958ad6d21fd1e4',1,'dlindependent_calloc(size_t, size_t, void **): malloc.c'],['../a01901.html#a17816165d27e812d18ed032f9ced9ad4',1,'dlindependent_calloc: malloc.h'],['../a01898.html#a17816165d27e812d18ed032f9ced9ad4',1,'dlindependent_calloc: malloc.c']]], + ['dlindependent_5fcomalloc_17',['dlindependent_comalloc',['../a01898.html#aa4e5c5d50e0cd7dc44b2defcae6226d7',1,'dlindependent_comalloc: malloc.c'],['../a01901.html#aa4e5c5d50e0cd7dc44b2defcae6226d7',1,'dlindependent_comalloc: malloc.h'],['../a01898.html#a8c093b4615a18804f806e71d4de486dc',1,'dlindependent_comalloc(size_t, size_t *, void **): malloc.c'],['../a01898.html#ae78e200be9eedb1ddf007d431dcb09a2',1,'dlindependent_comalloc(size_t n_elements, size_t sizes[], void *chunks[]): malloc.c'],['../a01901.html#af92733b7aeb4b18533b20df52000f7d4',1,'dlindependent_comalloc(size_t, size_t *, void **): malloc.h']]], + ['dlmallinfo_18',['dlmallinfo',['../a01898.html#abed9900148f16076d9e2823748712bb9',1,'dlmallinfo: malloc.c'],['../a01901.html#abf412c713d3ec5ac7f33663fb22e26ca',1,'dlmallinfo: malloc.h']]], + ['dlmalloc_19',['dlmalloc',['../a01901.html#a018ffd885ac72f4cb8ac0f972f6b4900',1,'dlmalloc(size_t): malloc.c'],['../a01898.html#a86195c783178093d895874a07a15dce1',1,'dlmalloc: malloc.c'],['../a01901.html#a86195c783178093d895874a07a15dce1',1,'dlmalloc: malloc.h'],['../a01898.html#a018ffd885ac72f4cb8ac0f972f6b4900',1,'dlmalloc(size_t): malloc.c']]], + ['dlmalloc_5fexport_20',['DLMALLOC_EXPORT',['../a01898.html#a58ef5120047a35956d86ee00c2d364dc',1,'malloc.c']]], + ['dlmalloc_5ffootprint_21',['dlmalloc_footprint',['../a01898.html#a814f86a67ca6d2c34e192a809e356e21',1,'dlmalloc_footprint: malloc.c'],['../a01901.html#ae98e99f811abc5fcc542d1f0372e86b4',1,'dlmalloc_footprint: malloc.h']]], + ['dlmalloc_5ffootprint_5flimit_22',['dlmalloc_footprint_limit',['../a01901.html#a42285edf4871e3adaab58e7e9ed08831',1,'dlmalloc_footprint_limit: malloc.h'],['../a01898.html#ae2e382d1e4648319c76698d60427e076',1,'dlmalloc_footprint_limit: malloc.c']]], + ['dlmalloc_5finspect_5fall_23',['dlmalloc_inspect_all',['../a01898.html#abea659f429972334d253efab49b6c3b5',1,'dlmalloc_inspect_all: malloc.c'],['../a01901.html#abea659f429972334d253efab49b6c3b5',1,'dlmalloc_inspect_all: malloc.h'],['../a01901.html#a36b14cd722ad2016abcd26ca54339ccb',1,'dlmalloc_inspect_all(void(*handler)(void *, void *, size_t, void *), void *arg): malloc.h']]], + ['dlmalloc_5fmax_5ffootprint_24',['dlmalloc_max_footprint',['../a01898.html#a922fad26c6b3b6e719d609ecffcd9327',1,'dlmalloc_max_footprint: malloc.c'],['../a01901.html#a53ed39f9f5df6fda6aad36b40c76557e',1,'dlmalloc_max_footprint: malloc.h']]], + ['dlmalloc_5fset_5ffootprint_5flimit_25',['dlmalloc_set_footprint_limit',['../a01898.html#a11913f4b10361cf4224a561e727bace7',1,'dlmalloc_set_footprint_limit: malloc.c'],['../a01901.html#a11913f4b10361cf4224a561e727bace7',1,'dlmalloc_set_footprint_limit: malloc.h'],['../a01898.html#ae992d2a6834aeddac341b4ff6afba5b4',1,'dlmalloc_set_footprint_limit(size_t bytes): malloc.c'],['../a01901.html#ae992d2a6834aeddac341b4ff6afba5b4',1,'dlmalloc_set_footprint_limit(size_t bytes): malloc.c']]], + ['dlmalloc_5fstats_26',['dlmalloc_stats',['../a01898.html#af626033086675b4f2e7a8cafabc85ff9',1,'dlmalloc_stats: malloc.c'],['../a01901.html#a523dae557d3a1c150198a2d91c31d0f5',1,'dlmalloc_stats: malloc.h']]], + ['dlmalloc_5ftrim_27',['dlmalloc_trim',['../a01898.html#a0cb0780a1d244f7541f85d2ece3999fc',1,'dlmalloc_trim(size_t): malloc.c'],['../a01901.html#a72a0e1e6edf9ef91c042680574560732',1,'dlmalloc_trim: malloc.h'],['../a01898.html#a72a0e1e6edf9ef91c042680574560732',1,'dlmalloc_trim: malloc.c'],['../a01901.html#a0cb0780a1d244f7541f85d2ece3999fc',1,'dlmalloc_trim(size_t): malloc.c']]], + ['dlmalloc_5fusable_5fsize_28',['dlmalloc_usable_size',['../a01898.html#abdfd656c28f59dc708ce3dabfade2408',1,'dlmalloc_usable_size: malloc.c'],['../a01901.html#abdfd656c28f59dc708ce3dabfade2408',1,'dlmalloc_usable_size: malloc.h'],['../a01898.html#a8923af8a1039983906f9617a57022e98',1,'dlmalloc_usable_size(void *): malloc.c'],['../a01901.html#aca6332584a5c6206defc32cfc2554f35',1,'dlmalloc_usable_size(const void *): malloc.h']]], + ['dlmalloc_5fversion_29',['DLMALLOC_VERSION',['../a01898.html#aa27beecc92c596aab2bd668f0cba740a',1,'malloc.c']]], + ['dlmallopt_30',['dlmallopt',['../a01901.html#a3dde31382dc8652ffb98335aecd248ab',1,'dlmallopt: malloc.h'],['../a01898.html#a5fa93d3a16f6cd853ca26b8796112770',1,'dlmallopt(int, int): malloc.c'],['../a01901.html#a5fa93d3a16f6cd853ca26b8796112770',1,'dlmallopt(int, int): malloc.c'],['../a01898.html#a3dde31382dc8652ffb98335aecd248ab',1,'dlmallopt: malloc.c']]], + ['dlmemalign_31',['dlmemalign',['../a01901.html#a41b3d891bf7fa5e5ca08f7898b4fd9e8',1,'dlmemalign: malloc.h'],['../a01898.html#a789f1726140c8d0ef5b54d893d806262',1,'dlmemalign(size_t, size_t): malloc.c'],['../a01901.html#a789f1726140c8d0ef5b54d893d806262',1,'dlmemalign(size_t, size_t): malloc.c'],['../a01898.html#a41b3d891bf7fa5e5ca08f7898b4fd9e8',1,'dlmemalign: malloc.c']]], + ['dlposix_5fmemalign_32',['dlposix_memalign',['../a01901.html#ad6824f937bf9bdd2cccc9526746108a1',1,'dlposix_memalign: malloc.h'],['../a01898.html#a61f04155b5dceea889ba3cef64968684',1,'dlposix_memalign(void **, size_t, size_t): malloc.c'],['../a01901.html#a61f04155b5dceea889ba3cef64968684',1,'dlposix_memalign(void **, size_t, size_t): malloc.c'],['../a01898.html#ad6824f937bf9bdd2cccc9526746108a1',1,'dlposix_memalign: malloc.c']]], + ['dlpvalloc_33',['dlpvalloc',['../a01901.html#a9bfff55fd0c29554b7140954b38a54d4',1,'dlpvalloc: malloc.h'],['../a01898.html#ade3c6d7e2b557fe3af01a7f6979e9396',1,'dlpvalloc(size_t): malloc.c'],['../a01901.html#ade3c6d7e2b557fe3af01a7f6979e9396',1,'dlpvalloc(size_t): malloc.c'],['../a01898.html#a9bfff55fd0c29554b7140954b38a54d4',1,'dlpvalloc: malloc.c']]], + ['dlrealloc_34',['dlrealloc',['../a01901.html#a0498e36f6b1a4293efe80b18b48e86b9',1,'dlrealloc: malloc.h'],['../a01898.html#a79e7e77bbc6d5208678b007bf89aab61',1,'dlrealloc(void *, size_t): malloc.c'],['../a01901.html#a79e7e77bbc6d5208678b007bf89aab61',1,'dlrealloc(void *, size_t): malloc.c'],['../a01898.html#a0498e36f6b1a4293efe80b18b48e86b9',1,'dlrealloc: malloc.c']]], + ['dlrealloc_5fin_5fplace_35',['dlrealloc_in_place',['../a01898.html#a51b9709053b36636d2c57d9b342d4ef3',1,'dlrealloc_in_place: malloc.c'],['../a01898.html#afc9bc229eecc960b0c2bfd9033b6e2e0',1,'dlrealloc_in_place(void *, size_t): malloc.c'],['../a01901.html#afc9bc229eecc960b0c2bfd9033b6e2e0',1,'dlrealloc_in_place(void *, size_t): malloc.c']]], + ['dlvalloc_36',['dlvalloc',['../a01898.html#af99ef0a6df3de021fcc2b48da5ced844',1,'dlvalloc: malloc.c'],['../a01901.html#af99ef0a6df3de021fcc2b48da5ced844',1,'dlvalloc: malloc.h'],['../a01898.html#ab3764c29825f2f5caf6bb138e6f2dc12',1,'dlvalloc(size_t): malloc.c'],['../a01901.html#ab3764c29825f2f5caf6bb138e6f2dc12',1,'dlvalloc(size_t): malloc.c']]], + ['done_37',['done',['../a02282.html#abf82bc3499a9c391a4003fcbf32ab80f',1,'arax_task_msg']]], + ['dtor_5ftable_38',['dtor_table',['../a01922.html#a2ea13fe4bb3a1db39a7b11b24006ee61',1,'arax_object.c']]], + ['dv_39',['dv',['../a02210.html#a329b3fddb21d881a43e77fd54f72b5ae',1,'malloc_state']]], + ['dvsize_40',['dvsize',['../a02210.html#aed3ab97862c4626ee4bbadf7c25dd1ce',1,'malloc_state']]] +]; diff --git a/search/all_5.js b/search/all_5.js new file mode 100644 index 00000000..d0ad77e0 --- /dev/null +++ b/search/all_5.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['enable_5flock_0',['enable_lock',['../a01898.html#aa7eff565061029c1af31eecb25dca0be',1,'malloc.c']]], + ['enable_5fmmap_1',['enable_mmap',['../a01898.html#a2f290b320a0eac1ac56491a51cbed8df',1,'malloc.c']]], + ['end_2',['end',['../a02294.html#a081887179d5c8bbf60afdebf1ba775ca',1,'utils_bitmap']]], + ['ensure_5finitialization_3',['ensure_initialization',['../a01898.html#a3344f5638240b82a2128c71d6073a9b3',1,'malloc.c']]], + ['entries_4',['entries',['../a02318.html#adec38c3b1601c7334cb62eb08a16bdef',1,'queue::entries'],['../a01388.html#adec38c3b1601c7334cb62eb08a16bdef',1,'entries: queue.h']]], + ['extern_5fbit_5',['EXTERN_BIT',['../a01898.html#a57ab793cfa029220055825980f7e6edf',1,'malloc.c']]], + ['extp_6',['extp',['../a02210.html#a878c3903148a6bf1e83e53bc4a12d124',1,'malloc_state']]], + ['exts_7',['exts',['../a02210.html#a1ab5c0b073f3a2620532f1f83151ea7e',1,'malloc_state']]] +]; diff --git a/search/all_6.js b/search/all_6.js new file mode 100644 index 00000000..d6944bfa --- /dev/null +++ b/search/all_6.js @@ -0,0 +1,27 @@ +var searchData= +[ + ['fd_0',['fd',['../a02202.html#a7c8401bc7129e9f2b94ed95902bf3765',1,'malloc_tree_chunk::fd'],['../a02230.html#a5025f8324c508df26ad84cd1b25b7271',1,'async_meta_s::fd'],['../a02198.html#a46b9e4df4af8fd25880852d61b92bdba',1,'malloc_chunk::fd'],['../a01907.html#a6f8059414f0228f0256115e024eeed4b',1,'fd: impl.c']]], + ['fencepost_5fhead_1',['FENCEPOST_HEAD',['../a01898.html#a14d64540da114c6390ce2501849706bb',1,'malloc.c']]], + ['find_5fend_5fsmall_2',['find_end_small',['../a01952.html#af8a432f287b9f55f026e2d120e677998',1,'bitmap.c']]], + ['find_5fstart_3',['find_start',['../a01952.html#ae5a4ee90ef57eb7d12191236c3a105f2',1,'bitmap.c']]], + ['find_5fstart_5fbig_4',['find_start_big',['../a01952.html#a73d0d5ad8a6878dde35fe7b827b33b05',1,'bitmap.c']]], + ['find_5fstart_5fsmall_5',['find_start_small',['../a01952.html#afac539947a2f5fe419a493103a45e4be',1,'bitmap.c']]], + ['flag4_5fbit_6',['FLAG4_BIT',['../a01898.html#a17fe36f581907d842fa2055e9f462f1e',1,'malloc.c']]], + ['flag4inuse_7',['flag4inuse',['../a01898.html#a7e839e521ce180dcdde674ddbfdda535',1,'malloc.c']]], + ['flag_5fbits_8',['FLAG_BITS',['../a01898.html#adc6adc464a32997a5da502b124c6c8d8',1,'malloc.c']]], + ['flag_5ft_9',['flag_t',['../a01898.html#a98d45780d5103f1a6b54a549a3d12de2',1,'malloc.c']]], + ['flags_10',['flags',['../a02254.html#acd295305d7afff1060998172e8c70116',1,'arax_data_s']]], + ['fm_11',['fm',['../a01898.html#a3615cd1bfae88d6e9fbf531d1259a3a6',1,'malloc.c']]], + ['fmt_12',['FMT',['../a01964.html#a3dfb8ef0d04e938194da60b4420c7517',1,'system.c']]], + ['footers_13',['FOOTERS',['../a01898.html#a1c2512fa5003ea9c05934d55c1196c1d',1,'malloc.c']]], + ['footprint_14',['footprint',['../a02210.html#ac2bc215504f3f4794b1f706db6448f7a',1,'malloc_state']]], + ['footprint_5flimit_15',['footprint_limit',['../a02210.html#aeae602c4f517ad94dabb35f661ebe617',1,'malloc_state']]], + ['forceinline_16',['FORCEINLINE',['../a01898.html#a724fb9f82013c782db5c3c12ea36aac8',1,'malloc.c']]], + ['fordblks_17',['fordblks',['../a02194.html#ac6a88ce3ab6dabef49c2edccd96916b1',1,'mallinfo']]], + ['formatstackline_18',['formatStackLine',['../a01964.html#a08a7dc8cdb641981a0b564f046dfeb6a',1,'system.c']]], + ['four_5fsize_5ft_5fsizes_19',['FOUR_SIZE_T_SIZES',['../a01898.html#a2a1f1d667053b23e22043a3c7845eded',1,'malloc.c']]], + ['free_5fp_20',['free_p',['../a02294.html#ab4558fb932c23450c39dd49fa7b4cb1e',1,'utils_bitmap']]], + ['free_5fvaq_21',['free_vaq',['../a02246.html#ac4dbf6d1c47ebd8e1d4beaf0a1da4df0',1,'arax_accel_s']]], + ['fsmblks_22',['fsmblks',['../a02194.html#a65d7b5265e7b59522a0cdc2b08b9b6c7',1,'mallinfo']]], + ['functors_23',['functors',['../a02278.html#a29e4645c9e12dd9eee28626e19298dc6',1,'arax_proc_s']]] +]; diff --git a/search/all_7.js b/search/all_7.js new file mode 100644 index 00000000..4109bfca --- /dev/null +++ b/search/all_7.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['get_5ffoot_0',['get_foot',['../a01898.html#a7567ed8861f166c8935e08d92c611bed',1,'malloc.c']]], + ['getvmid_1',['getVmID',['../a02346.html#a49083e8ceb4bfe7793ca1a5a799834d0',1,'async.c']]], + ['global_5falloc_2',['global_alloc',['../a02340.html#acf7073ea893bdaef02d84268ba9b77ae',1,'alloc.c']]], + ['gm_3',['gm',['../a01898.html#a8223ecd78e9937dc1fc43a49deec1554',1,'malloc.c']]], + ['go_5ffail_4',['GO_FAIL',['../a01907.html#a720b3883b819944cf4e9edd9b0d6c9db',1,'impl.c']]], + ['gpu_5',['GPU',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8a90768d506a26e2fd926bc5920b63daad',1,'arax_types.h']]], + ['gpu_5fsoft_6',['GPU_SOFT',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8a2eb76b65163fc759986a18815199ce60',1,'arax_types.h']]], + ['granularity_7',['granularity',['../a02214.html#af0b67a891dd0a005ba8056c2175bc2de',1,'malloc_params']]], + ['granularity_5falign_8',['granularity_align',['../a01898.html#a47800d7a9fdf871d0afdce3d5cd3af50',1,'malloc.c']]] +]; diff --git a/search/all_8.js b/search/all_8.js new file mode 100644 index 00000000..5e660fd2 --- /dev/null +++ b/search/all_8.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['half_5fmax_5fsize_5ft_0',['HALF_MAX_SIZE_T',['../a01898.html#ac9bba1fcedab650619ef4d19073f9c73',1,'malloc.c']]], + ['has_5fsegment_5flink_1',['has_segment_link',['../a01898.html#ab22b9d57eca306724cb8c4f928d0e824',1,'malloc.c']]], + ['have_5fmmap_2',['HAVE_MMAP',['../a02340.html#ac24e9c0562704d17896d14869e748fcc',1,'HAVE_MMAP: alloc.c'],['../a01898.html#ac24e9c0562704d17896d14869e748fcc',1,'HAVE_MMAP: malloc.c']]], + ['have_5fmorecore_3',['HAVE_MORECORE',['../a01898.html#a9339a8172859ed6c7aed68f3ab65281c',1,'malloc.c']]], + ['have_5fmremap_4',['HAVE_MREMAP',['../a01898.html#a4a3ec5cb9c1f5dc2638cb96342dc3d51',1,'malloc.c']]], + ['hblkhd_5',['hblkhd',['../a02194.html#a043c274dfbe801c8167a89356bde604b',1,'mallinfo']]], + ['hblks_6',['hblks',['../a02194.html#a6bd460d78e8a4838267861923b77a49e',1,'mallinfo']]], + ['head_7',['head',['../a02198.html#a75844ce74940ef333d11ae090e07c9af',1,'malloc_chunk::head'],['../a02202.html#a75844ce74940ef333d11ae090e07c9af',1,'malloc_tree_chunk::head'],['../a02314.html#aa27391fd8251bfc042b5881500f9f4ef',1,'utils_list_s::head']]], + ['hip_8',['HIP',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8a5e3ab5c31b20310d2c87c31055b1faf4',1,'arax_types.h']]], + ['host_5fsize_9',['host_size',['../a02282.html#ade845c1158821ebff168efbbc07809b6',1,'arax_task_msg']]] +]; diff --git a/search/all_9.js b/search/all_9.js new file mode 100644 index 00000000..89df1a4c --- /dev/null +++ b/search/all_9.js @@ -0,0 +1,47 @@ +var searchData= +[ + ['async_2ec_0',['async.c',['../a02346.html',1,'']]], + ['async_2eh_1',['async.h',['../a02355.html',1,'']]], + ['ialloc_2',['ialloc',['../a01898.html#a6156a11ac0c98046018896db06f45979',1,'malloc.c']]], + ['idx2bit_3',['idx2bit',['../a01898.html#aef388580685989725034bdcb7c5543bf',1,'malloc.c']]], + ['impl_2ec_4',['impl.c',['../a01907.html',1,'']]], + ['imr_5freg_5',['IMR_REG',['../a02346.html#a5c6cef9bc2984aa826698bd328126308a0668cff940eef901d490e4b8576a31ad',1,'async.c']]], + ['in_5fcount_6',['in_count',['../a02282.html#a3258a2fa7a2c3acdefe9b33f34e1a243',1,'arax_task_msg']]], + ['index_7',['index',['../a02202.html#a8f7b2e36145b1e2ec5bfea94dd922aec',1,'malloc_tree_chunk']]], + ['init_5fbins_8',['init_bins',['../a01898.html#a5609388ac4c1fc24595689b52c6698b9',1,'malloc.c']]], + ['init_5fmparams_9',['init_mparams',['../a01898.html#aaee95454245a8becbb13ef85e5590aed',1,'malloc.c']]], + ['init_5ftop_10',['init_top',['../a01898.html#a09ce4644252dfd54eb489e77d0adfd20',1,'malloc.c']]], + ['initial_5flock_11',['INITIAL_LOCK',['../a01898.html#a61cf32dcdf0f1bcb268e3fe3f32b69dc',1,'malloc.c']]], + ['initialization_2fcleanup_12',['Initialization/Cleanup',['../a02174.html',1,'']]], + ['initialized_13',['initialized',['../a01907.html#a180b930566aef88fc50339a0e600979a',1,'impl.c']]], + ['initialy_5favailable_14',['initialy_available',['../a01907.html#ae9849204a03ab51cab7078fd8a1922bf',1,'impl.c']]], + ['insecure_15',['INSECURE',['../a01898.html#ad21df8408a63deff2676218cfd5ebb1f',1,'malloc.c']]], + ['insert_5fchunk_16',['insert_chunk',['../a01898.html#aec697f44cce422498bc01b7c19114b5a',1,'malloc.c']]], + ['insert_5flarge_5fchunk_17',['insert_large_chunk',['../a01898.html#ac38ba865e6c3bf916fcdcb6bfa8be00d',1,'malloc.c']]], + ['insert_5fsmall_5fchunk_18',['insert_small_chunk',['../a01898.html#adb28fc94857fe6fd0d13a790c1866284',1,'malloc.c']]], + ['inspect_5fwalker_19',['inspect_walker',['../a02343.html#a6c80c36522a102a50963aa44fe7c692c',1,'alloc.c']]], + ['inspect_5fwalker_5fstate_20',['inspect_walker_state',['../a02218.html',1,'']]], + ['inspector_21',['inspector',['../a02218.html#a56e3784a48052abb33a929edf650ac95',1,'inspect_walker_state']]], + ['instance_5fuid_22',['instance_uid',['../a01907.html#a08c54f64f0e01265bafb63766f96707e',1,'impl.c']]], + ['internal_5fbulk_5ffree_23',['internal_bulk_free',['../a01898.html#aa2888b3de06df35c3b18b31b1e15fe8c',1,'malloc.c']]], + ['internal_5ffree_24',['internal_free',['../a01898.html#a1f1a36ca1107db0b1d82c07db766e29c',1,'malloc.c']]], + ['internal_5fmallinfo_25',['internal_mallinfo',['../a01898.html#ad8ac5f52dd1f21d88799cfd5befa0b99',1,'malloc.c']]], + ['internal_5fmalloc_26',['internal_malloc',['../a01898.html#a5444a4a9f6894b7afd5d0a461a7cdb02',1,'malloc.c']]], + ['internal_5fmalloc_5fstats_27',['internal_malloc_stats',['../a01898.html#af720f169cd9332df50dfdd080b548120',1,'malloc.c']]], + ['internal_5fmemalign_28',['internal_memalign',['../a01898.html#a77bcf00a7c234d2b45926ac02550d634',1,'malloc.c']]], + ['inuse_5fbits_29',['INUSE_BITS',['../a01898.html#a80bcec0b805b07f53640caa5a11a513d',1,'malloc.c']]], + ['io_30',['io',['../a02282.html#ab503a43915fca68de9bd6b6fe853c9b2',1,'arax_task_msg']]], + ['is_5faligned_31',['is_aligned',['../a01898.html#a02e34c4ed5784fb77e540dec9112cbfd',1,'malloc.c']]], + ['is_5fextern_5fsegment_32',['is_extern_segment',['../a01898.html#a4c59e261d6424fcb626e521881dde00f',1,'malloc.c']]], + ['is_5fglobal_33',['is_global',['../a01898.html#abf6941f282e0b4e708de251c482eaeed',1,'malloc.c']]], + ['is_5fgranularity_5faligned_34',['is_granularity_aligned',['../a01898.html#aef1cfe43fae84cc03ab977f8512f0a11',1,'malloc.c']]], + ['is_5finitialized_35',['is_initialized',['../a01898.html#af3b001bbc18e175f99b0c8644d63dd4d',1,'malloc.c']]], + ['is_5finuse_36',['is_inuse',['../a01898.html#a731e3667ac73997bac2c62f9c4478e11',1,'malloc.c']]], + ['is_5fmmapped_37',['is_mmapped',['../a01898.html#a3597aedd2e73f2b6616f82e2838292ec',1,'malloc.c']]], + ['is_5fmmapped_5fsegment_38',['is_mmapped_segment',['../a01898.html#a9a31e5267bf40dcb9992d77209c35427',1,'malloc.c']]], + ['is_5fpage_5faligned_39',['is_page_aligned',['../a01898.html#a07ca81810ed532d2c932a26984f16fcd',1,'malloc.c']]], + ['is_5fsmall_40',['is_small',['../a01898.html#aadc2cdd1444477c387fc30e64f061432',1,'malloc.c']]], + ['isr_5freg_41',['ISR_REG',['../a02346.html#a5c6cef9bc2984aa826698bd328126308a059675f16c9fa28d8974fb69b2003119',1,'async.c']]], + ['ivshmem_42',['ivshmem',['../a02226.html',1,'']]], + ['ivshmem_5fs_43',['ivshmem_s',['../a02355.html#a7ac2ae76e6cbb7531021bacaf8c09b0b',1,'async.h']]] +]; diff --git a/search/all_a.js b/search/all_a.js new file mode 100644 index 00000000..872d670c --- /dev/null +++ b/search/all_a.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['keepcost_0',['keepcost',['../a02194.html#a8342d14eaf4190a788d1add93998532b',1,'mallinfo']]], + ['key_1',['key',['../a02306.html#ab5c000aec752f2206131e183daf5efbf',1,'utils_kv_s::Pair']]], + ['kv_2',['kv',['../a02302.html#a6bc1545b84713e17bed59f6dba43a2ba',1,'utils_kv_s']]], + ['kv_2ec_3',['Kv.c',['../a01943.html',1,'']]], + ['kv_2eh_4',['Kv.h',['../a01367.html',1,'']]] +]; diff --git a/search/all_b.js b/search/all_b.js new file mode 100644 index 00000000..5a094f4d --- /dev/null +++ b/search/all_b.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['last_5fuid_0',['last_uid',['../a02326.html#a6b050cc9159448300fecb32e96fcd5a6',1,'arax_pipe']]], + ['least_5faddr_1',['least_addr',['../a02210.html#af46a51a6744c1ae0e650d247f5aab215',1,'malloc_state']]], + ['least_5fbit_2',['least_bit',['../a01898.html#a63b9c45d67753a9da2be543ca879c261',1,'malloc.c']]], + ['left_5fbits_3',['left_bits',['../a01898.html#a24d6f7ffb2d8e91878f8b6c06b803c5e',1,'malloc.c']]], + ['leftmost_5fchild_4',['leftmost_child',['../a01898.html#a62a561657f44853b51a022b878471921',1,'malloc.c']]], + ['leftshift_5ffor_5ftree_5findex_5',['leftshift_for_tree_index',['../a01898.html#a64356087190cdd50fc15488628a603ce',1,'malloc.c']]], + ['length_6',['length',['../a02314.html#ae809d5359ac030c60a30a8f0b2294b82',1,'utils_list_s']]], + ['likely_7',['LIKELY',['../a01961.html#a19c8a29a0efa439fe0df43e3c80e8439',1,'queue.c']]], + ['list_8',['list',['../a02266.html#afe92c84bfb521aecb0830c5c08692123',1,'arax_object_repo_s::list'],['../a02274.html#accac206ff1a3a110956de2919fbac340',1,'arax_object_s::list']]], + ['list_2ec_9',['list.c',['../a01958.html',1,'']]], + ['list_2eh_10',['list.h',['../a01385.html',1,'']]], + ['lock_11',['lock',['../a02266.html#a2d0e255f518332321e7cbd964ebb9681',1,'arax_object_repo_s::lock'],['../a02302.html#a2d0e255f518332321e7cbd964ebb9681',1,'utils_kv_s::lock'],['../a02294.html#a2d0e255f518332321e7cbd964ebb9681',1,'utils_bitmap::lock'],['../a02290.html#a2d0e255f518332321e7cbd964ebb9681',1,'arax_vaccel_s::lock'],['../a02246.html#a2f98a424a24cffa63a7bb11a62b023ae',1,'arax_accel_s::lock'],['../a02230.html#a2d0e255f518332321e7cbd964ebb9681',1,'async_meta_s::lock'],['../a02190.html#a2d0e255f518332321e7cbd964ebb9681',1,'arch_alloc_inner_s::lock']]], + ['lock_5fat_5ffork_12',['LOCK_AT_FORK',['../a01898.html#a011dc81eb6490491a8ae7288c0855e06',1,'malloc.c']]] +]; diff --git a/search/all_c.js b/search/all_c.js new file mode 100644 index 00000000..cc4529d1 --- /dev/null +++ b/search/all_c.js @@ -0,0 +1,63 @@ +var searchData= +[ + ['async_2ec_0',['async.c',['../a02349.html',1,'']]], + ['async_2eh_1',['async.h',['../a02358.html',1,'']]], + ['m_5fgranularity_2',['M_GRANULARITY',['../a01898.html#a1ff5e3f74801d4cbb5e97ab2d3b8f2e3',1,'M_GRANULARITY: malloc.c'],['../a01901.html#a1ff5e3f74801d4cbb5e97ab2d3b8f2e3',1,'M_GRANULARITY: malloc.h']]], + ['m_5fmmap_5fthreshold_3',['M_MMAP_THRESHOLD',['../a01901.html#a0dd09b97e3eb71f8256b8bd441828175',1,'M_MMAP_THRESHOLD: malloc.h'],['../a01898.html#a0dd09b97e3eb71f8256b8bd441828175',1,'M_MMAP_THRESHOLD: malloc.c']]], + ['m_5ftrim_5fthreshold_4',['M_TRIM_THRESHOLD',['../a01901.html#ae5e96ee9e20ef7cfcbbb690877fc9fb2',1,'M_TRIM_THRESHOLD: malloc.h'],['../a01898.html#ae5e96ee9e20ef7cfcbbb690877fc9fb2',1,'M_TRIM_THRESHOLD: malloc.c']]], + ['magic_5',['magic',['../a02210.html#a43dc3ebb377552917742f3765e0517d0',1,'malloc_state::magic'],['../a02214.html#a43dc3ebb377552917742f3765e0517d0',1,'malloc_params::magic']]], + ['main_6',['main',['../a01904.html#a0ddf1224851353fc92bfbff6f499fa97',1,'test.c']]], + ['mallinfo_7',['mallinfo',['../a02194.html',1,'']]], + ['mallinfo_5ffield_5ftype_8',['MALLINFO_FIELD_TYPE',['../a01898.html#a53688562ed3d2eda132ae91de874cd98',1,'MALLINFO_FIELD_TYPE: malloc.c'],['../a01901.html#a53688562ed3d2eda132ae91de874cd98',1,'MALLINFO_FIELD_TYPE: malloc.h']]], + ['malloc_2ec_9',['malloc.c',['../a01898.html',1,'']]], + ['malloc_2eh_10',['malloc.h',['../a01901.html',1,'']]], + ['malloc_5falignment_11',['MALLOC_ALIGNMENT',['../a01898.html#a05897f13370acbdecbf31034f8bec0d5',1,'malloc.c']]], + ['malloc_5fchunk_12',['malloc_chunk',['../a02198.html',1,'']]], + ['malloc_5ffailure_5faction_13',['MALLOC_FAILURE_ACTION',['../a01898.html#ae5869ce6c79206810a98c59f60b9f9db',1,'malloc.c']]], + ['malloc_5fgetpagesize_14',['malloc_getpagesize',['../a01898.html#ad8548e96f0d0f428a1b826ba096c3ecf',1,'malloc.c']]], + ['malloc_5finspect_5fall_15',['MALLOC_INSPECT_ALL',['../a02340.html#a4a82252300d827ca28d4ab5ce089c41f',1,'MALLOC_INSPECT_ALL: alloc.c'],['../a01898.html#a4a82252300d827ca28d4ab5ce089c41f',1,'MALLOC_INSPECT_ALL: malloc.c']]], + ['malloc_5fparams_16',['malloc_params',['../a02214.html',1,'']]], + ['malloc_5fsegment_17',['malloc_segment',['../a02206.html',1,'']]], + ['malloc_5fstate_18',['malloc_state',['../a02210.html',1,'']]], + ['malloc_5ftree_5fchunk_19',['malloc_tree_chunk',['../a02202.html',1,'']]], + ['mark_5finuse_5ffoot_20',['mark_inuse_foot',['../a01898.html#ae33f10cb02fb28aa399e3a7ff644a3a6',1,'malloc.c']]], + ['mark_5fsmallmap_21',['mark_smallmap',['../a01898.html#add2106bac689c78a86e8dc2b7ba9e533',1,'malloc.c']]], + ['mark_5ftreemap_22',['mark_treemap',['../a01898.html#aa4cee82f9e5d26a5118b2e743c7fd1a2',1,'malloc.c']]], + ['max_5ffootprint_23',['max_footprint',['../a02210.html#adb20bc30abe3b56fd540e595b9e7af9d',1,'malloc_state']]], + ['max_5frelease_5fcheck_5frate_24',['MAX_RELEASE_CHECK_RATE',['../a01898.html#af2e1098b71c84ef4c22b344dd9b3e272',1,'malloc.c']]], + ['max_5frequest_25',['MAX_REQUEST',['../a01898.html#a79dc55ceff5acfd97aabd01db632a266',1,'malloc.c']]], + ['max_5fsize_5ft_26',['MAX_SIZE_T',['../a01898.html#ad6a20ec9394445398c2618b055acbcb1',1,'malloc.c']]], + ['max_5fsmall_5frequest_27',['MAX_SMALL_REQUEST',['../a01898.html#a74e041ce14d5a19644a4ada6ba9584dc',1,'malloc.c']]], + ['max_5fsmall_5fsize_28',['MAX_SMALL_SIZE',['../a01898.html#a5f1a8ee1b6c92973fc7fd9d8603b709d',1,'malloc.c']]], + ['mchunk_29',['mchunk',['../a01898.html#a6412caf3aa493b17e390b53cef6fcca7',1,'malloc.c']]], + ['mchunk_5fsize_30',['MCHUNK_SIZE',['../a01898.html#af3cedaeb11325fd3f4b08e92107be0d2',1,'malloc.c']]], + ['mchunkptr_31',['mchunkptr',['../a01898.html#aab2c188a259d6c4bd443ed712a92714c',1,'malloc.c']]], + ['mem2chunk_32',['mem2chunk',['../a01898.html#a4603903faa99536698009c9b64bc1ab9',1,'malloc.c']]], + ['meta_33',['meta',['../a02238.html#a164069aba681c1b3802ccaa42f1708bc',1,'async_semaphore_s::meta'],['../a02234.html#a164069aba681c1b3802ccaa42f1708bc',1,'async_completion_s::meta'],['../a02290.html#ac4dd2b9f4655e1965c4d71b25ff39217',1,'arax_vaccel_s::meta'],['../a02242.html#a164069aba681c1b3802ccaa42f1708bc',1,'async_condition_s::meta']]], + ['metrics_5fkv_34',['metrics_kv',['../a02326.html#ae006dc7ee0008c6a6d43fb73f6cb47b4',1,'arax_pipe']]], + ['mfail_35',['MFAIL',['../a01898.html#a6f716771caf6f2af3b7ffb6b78091aaf',1,'malloc.c']]], + ['mflags_36',['mflags',['../a02210.html#abdda6bcfb3ffa3a646183be8557a4806',1,'malloc_state']]], + ['mid_37',['MID',['../a01964.html#ad20fe2057831ee479f3115ec3d00d984',1,'system.c']]], + ['min_5fchunk_5fsize_38',['MIN_CHUNK_SIZE',['../a01898.html#abf35d28195f0f301fe63d0ea867f4379',1,'malloc.c']]], + ['min_5flarge_5fsize_39',['MIN_LARGE_SIZE',['../a01898.html#ac7cc8b0e715687eccf92f4bd1528b129',1,'malloc.c']]], + ['min_5frequest_40',['MIN_REQUEST',['../a01898.html#a8c13c7ec4d73f12f94e9ce9486672cd1',1,'malloc.c']]], + ['min_5fsmall_5findex_41',['MIN_SMALL_INDEX',['../a01898.html#a06f22f4c7be02a90000e46f2e7eb873b',1,'malloc.c']]], + ['minsize_5ffor_5ftree_5findex_42',['minsize_for_tree_index',['../a01898.html#a5ab894e6672002a76fde663e4abda3bc',1,'malloc.c']]], + ['mmap_43',['MMAP',['../a01898.html#a9d53bdddfb1cb6c0f2e5816414095719',1,'MMAP: malloc.c'],['../a01898.html#a9d53bdddfb1cb6c0f2e5816414095719',1,'MMAP: malloc.c']]], + ['mmap_5falign_44',['mmap_align',['../a01898.html#ac00dfdac316c41741d390ec3a5616fff',1,'malloc.c']]], + ['mmap_5falloc_45',['mmap_alloc',['../a01898.html#a15fab72f66aa46b46a4677be26a1b5d1',1,'malloc.c']]], + ['mmap_5fchunk_5foverhead_46',['MMAP_CHUNK_OVERHEAD',['../a01898.html#a7a63444ac4059044f199801725fac79f',1,'malloc.c']]], + ['mmap_5fclears_47',['MMAP_CLEARS',['../a01898.html#a6d5e91f5ad1b37dc59642cb2db028d0c',1,'malloc.c']]], + ['mmap_5ffoot_5fpad_48',['MMAP_FOOT_PAD',['../a01898.html#ada2e72cef4eb947e8f406502aec6e888',1,'malloc.c']]], + ['mmap_5fresize_49',['mmap_resize',['../a01898.html#a614d873251d4d24875c099b0fdf89c8d',1,'malloc.c']]], + ['mmap_5fthreshold_50',['mmap_threshold',['../a02214.html#a4dc878eab398b4508ec605f2c7718dd0',1,'malloc_params']]], + ['morecore_5fcontiguous_51',['MORECORE_CONTIGUOUS',['../a01898.html#ad9f27b6ca99e4a63328136443a428b74',1,'malloc.c']]], + ['morecore_5fdefault_52',['MORECORE_DEFAULT',['../a01898.html#af84dec7bed092a94ed4501cae641695a',1,'malloc.c']]], + ['mparams_53',['mparams',['../a01898.html#ad910263e0987f4a44f28558c7a83d495',1,'malloc.c']]], + ['msegment_54',['msegment',['../a01898.html#aefb4243356502f3504318b435638ba57',1,'malloc.c']]], + ['msegmentptr_55',['msegmentptr',['../a01898.html#ac0c775e46c84cccbf60059dedd717fa5',1,'malloc.c']]], + ['mspaces_56',['MSPACES',['../a02340.html#ab69b328d35c5a8e3bdc3463d3603e950',1,'MSPACES: alloc.c'],['../a01898.html#ab69b328d35c5a8e3bdc3463d3603e950',1,'MSPACES: malloc.c'],['../a01901.html#ab69b328d35c5a8e3bdc3463d3603e950',1,'MSPACES: malloc.h']]], + ['mstate_57',['mstate',['../a01898.html#a77915996ce21724eda56ab99e2ce75e6',1,'malloc.c']]], + ['munmap_58',['MUNMAP',['../a01898.html#afc87d07b26687dc8a4685ba3580cae9e',1,'MUNMAP: malloc.c'],['../a01898.html#afc87d07b26687dc8a4685ba3580cae9e',1,'MUNMAP: malloc.c']]], + ['mutex_59',['mutex',['../a02234.html#a4acff8232e4aec9cd5c6dc200ac55ef3',1,'async_completion_s::mutex'],['../a02242.html#ad4d2969642664df0e2f88a5b391d8b29',1,'async_condition_s::mutex']]] +]; diff --git a/search/all_d.js b/search/all_d.js new file mode 100644 index 00000000..38143df1 --- /dev/null +++ b/search/all_d.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['name_0',['name',['../a02274.html#a5ac083a645d964373f022d03df4849c8',1,'arax_object_s']]], + ['nano_5farm_1',['NANO_ARM',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8a7e7d12b64ac228ea5e49fdaa2676fc06',1,'arax_types.h']]], + ['nano_5fcore_2',['NANO_CORE',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8ae0c9e1cc9180aaec2e98578ea88e1bfb',1,'arax_types.h']]], + ['next_3',['next',['../a02206.html#a6d7b4b2f0c010593cf90799d057d4655',1,'malloc_segment::next'],['../a02310.html#a37611aaa06306650bc1378f58ffc0ff5',1,'utils_list_node::next']]], + ['next_5fchunk_4',['next_chunk',['../a01898.html#a891ae6952dcc03f81e75b91666400f51',1,'malloc.c']]], + ['next_5fpinuse_5',['next_pinuse',['../a01898.html#a62c85451d286c94329b31175ff6aa991',1,'malloc.c']]], + ['no_5fmallinfo_6',['NO_MALLINFO',['../a01898.html#abdaef093c0ac7f4ffca5df2d2b2f0560',1,'NO_MALLINFO: malloc.c'],['../a01901.html#abdaef093c0ac7f4ffca5df2d2b2f0560',1,'NO_MALLINFO: malloc.h']]], + ['no_5fmalloc_5fstats_7',['NO_MALLOC_STATS',['../a01898.html#aa5a986d0460a969befdb7efd79ef049c',1,'malloc.c']]], + ['no_5fsegment_5ftraversal_8',['NO_SEGMENT_TRAVERSAL',['../a01898.html#a6413d234d61f597fccc2aac39e33941c',1,'malloc.c']]], + ['noinline_9',['NOINLINE',['../a01898.html#a1b173d22e57d9395897acbd8de62d505',1,'malloc.c']]], + ['nothing_10',['nothing',['../a02298.html#a819b91e732f1e8ee19dd607340513237',1,'utils_compat_empty_s']]], + ['nsmallbins_11',['NSMALLBINS',['../a01898.html#afe898942dfe9b3557981d0dc935fddde',1,'malloc.c']]], + ['ntreebins_12',['NTREEBINS',['../a01898.html#a187fe34f71c63b486f6d79ac51117061',1,'malloc.c']]] +]; diff --git a/search/all_e.js b/search/all_e.js new file mode 100644 index 00000000..4e35d6dd --- /dev/null +++ b/search/all_e.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['obj_0',['obj',['../a02254.html#a62baad2fa0dcd6ee63e1e69974047ac4',1,'arax_data_s::obj'],['../a02278.html#a62baad2fa0dcd6ee63e1e69974047ac4',1,'arax_proc_s::obj'],['../a02282.html#a62baad2fa0dcd6ee63e1e69974047ac4',1,'arax_task_msg::obj'],['../a02290.html#a62baad2fa0dcd6ee63e1e69974047ac4',1,'arax_vaccel_s::obj'],['../a02246.html#a62baad2fa0dcd6ee63e1e69974047ac4',1,'arax_accel_s::obj']]], + ['objs_1',['objs',['../a02326.html#ae15dcc631ccbd970fd4a7481b20b80ca',1,'arax_pipe']]], + ['offset_5fto_5fpointer_2',['offset_to_pointer',['../a01358.html#a844ff73ec9cb9a4b2a976b5ae7327762',1,'arax_pipe.h']]], + ['ok_5faddress_3',['ok_address',['../a01898.html#a162ea143ef987e2bc98d5e4b69f7bff6',1,'malloc.c']]], + ['ok_5finuse_4',['ok_inuse',['../a01898.html#a27bd04a29396a4164edab26cb11e543c',1,'malloc.c']]], + ['ok_5fmagic_5',['ok_magic',['../a01898.html#a92a34445b3f1e6050ad4ffb2f6dd8297',1,'malloc.c']]], + ['ok_5fnext_6',['ok_next',['../a01898.html#a57b2c8e49aeb87c3cb1922648ef9ad3c',1,'malloc.c']]], + ['ok_5fpinuse_7',['ok_pinuse',['../a01898.html#aded4345a9d79e45d438506d86f550cd6',1,'malloc.c']]], + ['only_5fmspaces_8',['ONLY_MSPACES',['../a02340.html#aeb595638a14befbd356f77f8ec2a5c0d',1,'ONLY_MSPACES: alloc.c'],['../a01898.html#aeb595638a14befbd356f77f8ec2a5c0d',1,'ONLY_MSPACES: malloc.c'],['../a01901.html#aeb595638a14befbd356f77f8ec2a5c0d',1,'ONLY_MSPACES: malloc.h']]], + ['open_5fcl_9',['OPEN_CL',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8a37bf78d5a1906385034f1cac35972c64',1,'arax_types.h']]], + ['ordblks_10',['ordblks',['../a02194.html#a149e2e324e9f2cb71db5e9c4d382a67f',1,'mallinfo']]], + ['ordering_11',['ordering',['../a02290.html#a2b340596fb7f904041734cd1d17ad2ee',1,'arax_vaccel_s']]], + ['orphan_5fcond_12',['orphan_cond',['../a02326.html#a0dc33b0b9a85ed4ba4b1817fa73cdd58',1,'arax_pipe']]], + ['orphan_5fvacs_13',['orphan_vacs',['../a02326.html#a03445cfc4aeeff547106275333bb765a',1,'arax_pipe']]], + ['othr_5fremt_14',['OTHR_REMT',['../a01406.html#a0268385e5173da0946f2c426484cb783a999a6541c43a1dd6bed021bc096b13ec',1,'arax_data.h']]], + ['out_5fcount_15',['out_count',['../a02282.html#ad9c8a879267b6ba0962ee8d90f8e3b81',1,'arax_task_msg']]], + ['outstanding_16',['outstanding',['../a02234.html#aa3839c48e46fd23ae146e18a645a872c',1,'async_completion_s::outstanding'],['../a02230.html#a47a7502433746daac507810838ddc621',1,'async_meta_s::outstanding']]], + ['overhead_5ffor_17',['overhead_for',['../a01898.html#ad7d2c199c11feafd3ae7f91aa1ee2c85',1,'malloc.c']]], + ['owner_18',['owner',['../a02310.html#a432ddf574279073be3ca2cbd5c7831c5',1,'utils_list_node']]] +]; diff --git a/search/all_f.js b/search/all_f.js new file mode 100644 index 00000000..44dd9dc9 --- /dev/null +++ b/search/all_f.js @@ -0,0 +1,41 @@ +var searchData= +[ + ['pad_5frequest_0',['pad_request',['../a01898.html#abc9ba9df02632268a7b15ef992a94035',1,'malloc.c']]], + ['padd_1',['padd',['../a02182.html#a19a76b743b2972be73c5fbf5231edd65',1,'arch_alloc_s::padd'],['../a02330.html#a19a76b743b2972be73c5fbf5231edd65',1,'arax_accel_stats::padd'],['../a02230.html#a19a76b743b2972be73c5fbf5231edd65',1,'async_meta_s::padd']]], + ['page_5falign_2',['page_align',['../a01898.html#a26099b7c631584ea0a7df48d5663b316',1,'malloc.c']]], + ['page_5fsize_3',['page_size',['../a02214.html#af91f634fbc8d26e705035b0613f7d077',1,'malloc_params']]], + ['pair_4',['Pair',['../a02306.html',1,'utils_kv_s']]], + ['pairs_5',['pairs',['../a02302.html#a033557d71b26833df9b231ed0cda5d46',1,'utils_kv_s']]], + ['parallel_6',['PARALLEL',['../a01427.html#a50bb2106b29f1ab7b8ae19440fb49d86a90606f8ca5d91452541a74f1caef1d11',1,'arax_vaccel.h']]], + ['parent_7',['parent',['../a02202.html#a80e9dd6097047a98cad29852a12e2135',1,'malloc_tree_chunk']]], + ['pending_5flist_8',['pending_list',['../a02238.html#a1a8d3979e0bc18afe7da7b2e1d874469',1,'async_semaphore_s']]], + ['pending_5flock_9',['pending_lock',['../a02238.html#a19a62322e82fb915daabc946e6d356e8',1,'async_semaphore_s']]], + ['phys_10',['phys',['../a02254.html#aacfb411e7befb69b45a527305d3e61d7',1,'arax_data_s::phys'],['../a02258.html#a14720b729b1318dca7c8c8f6dd756c20',1,'arax_data_dtr::phys'],['../a02290.html#aacfb411e7befb69b45a527305d3e61d7',1,'arax_vaccel_s::phys']]], + ['pid_11',['pid',['../a02322.html#af500917c052066b40cf47f96b43c607b',1,'arax_process_tracker_s']]], + ['pinuse_12',['pinuse',['../a01898.html#a7d865edc2d2e8b7a33b3eb02ee22c2e7',1,'malloc.c']]], + ['pinuse_5fbit_13',['PINUSE_BIT',['../a01898.html#aa41e697181baeec7157ff5f0f6ae747a',1,'malloc.c']]], + ['pipe_14',['pipe',['../a02266.html#ab24709352dad0d1b140e77c0b4effd43',1,'arax_object_repo_s::pipe'],['../a02282.html#ab24709352dad0d1b140e77c0b4effd43',1,'arax_task_msg::pipe']]], + ['pointer_5fto_5foffset_15',['pointer_to_offset',['../a01358.html#a57c896fef91db0d1a4a181eedb54fd3c',1,'arax_pipe.h']]], + ['pointers_16',['pointers',['../a01904.html#ae4dd276c544cacda6b9f61b6ca27d046',1,'test.c']]], + ['pool_17',['pool',['../a01904.html#a5510f97d9da7b2312ea591d6f3ce27a6',1,'test.c']]], + ['pool_5fsize_18',['POOL_SIZE',['../a01904.html#aa2ac54564b3514084afd2c5dafe9d232',1,'test.c']]], + ['postaction_19',['POSTACTION',['../a01898.html#a8c176fdaf0d14b883ba250c8a569b88e',1,'malloc.c']]], + ['preaction_20',['PREACTION',['../a01898.html#a9abf67cb3bc9027f0b44bab676e05f09',1,'malloc.c']]], + ['prepend_5falloc_21',['prepend_alloc',['../a01898.html#a378b748c27be5a7a156907cc56b8a58e',1,'malloc.c']]], + ['prev_22',['prev',['../a02310.html#a064ba2eaa129694a87d24356fb5f463d',1,'utils_list_node']]], + ['prev_5fchunk_23',['prev_chunk',['../a01898.html#aee72e7631ab6012eb488e4ad9863d431',1,'malloc.c']]], + ['prev_5ffoot_24',['prev_foot',['../a02202.html#a56df26ccbddbb4632d11f87c26f97ef1',1,'malloc_tree_chunk::prev_foot'],['../a02198.html#a56df26ccbddbb4632d11f87c26f97ef1',1,'malloc_chunk::prev_foot']]], + ['print_5frefs_25',['PRINT_REFS',['../a01922.html#aff73040d7aead6ad7c4ea914e5ab128d',1,'arax_object.c']]], + ['print_5fthr_26',['PRINT_THR',['../a01937.html#a0710a5431ec8cfbace7bcb1c3d362994',1,'arax_throttle.c']]], + ['printd_27',['printd',['../a01919.html#a4f2705df522fd01ea20cea002f2d4304',1,'arax_data.c']]], + ['priority_28',['priority',['../a02290.html#af43b7b00bdbaf3d0602086885a410899',1,'arax_vaccel_s']]], + ['proc_29',['proc',['../a02282.html#acad9d5fa4ef41c9eee372d1782d4a487',1,'arax_task_msg::proc'],['../a02262.html#a1ddeb4db4abbbcdaa95f9ab621026af7',1,'arax_object_union::proc']]], + ['proc_5flock_30',['proc_lock',['../a02326.html#a823c0ac436088935d819ff347cc2ff3c',1,'arax_pipe']]], + ['proc_5fmap_31',['proc_map',['../a02326.html#a461601bdde9627f8146bd693594f2ecc',1,'arax_pipe']]], + ['proceed_5fon_5ferror_32',['PROCEED_ON_ERROR',['../a01898.html#afac2a7b1a6efb14fc268051f90d0f1d3',1,'malloc.c']]], + ['processes_33',['processes',['../a02326.html#a28873f26b2aa9e532ff74899460a4480',1,'arax_pipe']]], + ['public_20accelerator_20user_20api_34',['Public Accelerator user API',['../a02175.html',1,'']]], + ['public_20buffer_20user_20api_35',['Public Buffer user API',['../a02178.html',1,'']]], + ['public_20procedure_20user_20api_36',['Public Procedure user API',['../a02176.html',1,'']]], + ['public_20task_20user_20api_37',['Public Task user API',['../a02177.html',1,'']]] +]; diff --git a/search/classes_0.js b/search/classes_0.js new file mode 100644 index 00000000..a7f337d5 --- /dev/null +++ b/search/classes_0.js @@ -0,0 +1,25 @@ +var searchData= +[ + ['arax_5faccel_5fs_0',['arax_accel_s',['../a02246.html',1,'']]], + ['arax_5faccel_5fstats_1',['arax_accel_stats',['../a02330.html',1,'']]], + ['arax_5faccel_5ftype_5fmap_2',['arax_accel_type_map',['../a02250.html',1,'']]], + ['arax_5fdata_5fdtr_3',['arax_data_dtr',['../a02258.html',1,'']]], + ['arax_5fdata_5fs_4',['arax_data_s',['../a02254.html',1,'']]], + ['arax_5fobject_5frepo_5fs_5',['arax_object_repo_s',['../a02266.html',1,'']]], + ['arax_5fobject_5fs_6',['arax_object_s',['../a02274.html',1,'']]], + ['arax_5fobject_5funion_7',['arax_object_union',['../a02262.html',1,'']]], + ['arax_5fpipe_8',['arax_pipe',['../a02326.html',1,'']]], + ['arax_5fproc_5fs_9',['arax_proc_s',['../a02278.html',1,'']]], + ['arax_5fprocess_5ftracker_5fs_10',['arax_process_tracker_s',['../a02322.html',1,'']]], + ['arax_5ftask_5fmsg_11',['arax_task_msg',['../a02282.html',1,'']]], + ['arax_5ftask_5fstats_12',['arax_task_stats',['../a02338.html',1,'']]], + ['arax_5fthrottle_5fs_13',['arax_throttle_s',['../a02286.html',1,'']]], + ['arax_5fvaccel_5fs_14',['arax_vaccel_s',['../a02290.html',1,'']]], + ['arch_5falloc_5finner_5fs_15',['arch_alloc_inner_s',['../a02190.html',1,'']]], + ['arch_5falloc_5fs_16',['arch_alloc_s',['../a02182.html',1,'']]], + ['arch_5falloc_5fstats_5fs_17',['arch_alloc_stats_s',['../a02186.html',1,'']]], + ['async_5fcompletion_5fs_18',['async_completion_s',['../a02234.html',1,'']]], + ['async_5fcondition_5fs_19',['async_condition_s',['../a02242.html',1,'']]], + ['async_5fmeta_5fs_20',['async_meta_s',['../a02230.html',1,'']]], + ['async_5fsemaphore_5fs_21',['async_semaphore_s',['../a02238.html',1,'']]] +]; diff --git a/search/classes_1.js b/search/classes_1.js new file mode 100644 index 00000000..a2acf599 --- /dev/null +++ b/search/classes_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['inspect_5fwalker_5fstate_0',['inspect_walker_state',['../a02218.html',1,'']]], + ['ivshmem_1',['ivshmem',['../a02226.html',1,'']]] +]; diff --git a/search/classes_2.js b/search/classes_2.js new file mode 100644 index 00000000..a84147fd --- /dev/null +++ b/search/classes_2.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['mallinfo_0',['mallinfo',['../a02194.html',1,'']]], + ['malloc_5fchunk_1',['malloc_chunk',['../a02198.html',1,'']]], + ['malloc_5fparams_2',['malloc_params',['../a02214.html',1,'']]], + ['malloc_5fsegment_3',['malloc_segment',['../a02206.html',1,'']]], + ['malloc_5fstate_4',['malloc_state',['../a02210.html',1,'']]], + ['malloc_5ftree_5fchunk_5',['malloc_tree_chunk',['../a02202.html',1,'']]] +]; diff --git a/search/classes_3.js b/search/classes_3.js new file mode 100644 index 00000000..194031e6 --- /dev/null +++ b/search/classes_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['pair_0',['Pair',['../a02306.html',1,'utils_kv_s']]] +]; diff --git a/search/classes_4.js b/search/classes_4.js new file mode 100644 index 00000000..c4938d70 --- /dev/null +++ b/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['queue_0',['queue',['../a02318.html',1,'']]] +]; diff --git a/search/classes_5.js b/search/classes_5.js new file mode 100644 index 00000000..ae0d48e9 --- /dev/null +++ b/search/classes_5.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['utils_5fbitmap_0',['utils_bitmap',['../a02294.html',1,'']]], + ['utils_5fcompat_5fempty_5fs_1',['utils_compat_empty_s',['../a02298.html',1,'']]], + ['utils_5fkv_5fs_2',['utils_kv_s',['../a02302.html',1,'']]], + ['utils_5flist_5fnode_3',['utils_list_node',['../a02310.html',1,'']]], + ['utils_5flist_5fs_4',['utils_list_s',['../a02314.html',1,'']]], + ['utils_5ftimer_5fs_5',['utils_timer_s',['../a02334.html',1,'']]] +]; diff --git a/search/close.svg b/search/close.svg new file mode 100644 index 00000000..337d6cc1 --- /dev/null +++ b/search/close.svg @@ -0,0 +1,18 @@ + + + + + + diff --git a/search/defines_0.js b/search/defines_0.js new file mode 100644 index 00000000..44cc73bf --- /dev/null +++ b/search/defines_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_5fstruct_5fmallinfo_0',['_STRUCT_MALLINFO',['../a01898.html#afb79410754096e7b3bafb895720f11a7',1,'malloc.c']]] +]; diff --git a/search/defines_1.js b/search/defines_1.js new file mode 100644 index 00000000..9275ff24 --- /dev/null +++ b/search/defines_1.js @@ -0,0 +1,32 @@ +var searchData= +[ + ['abort_0',['ABORT',['../a01898.html#a5376571bbf4cdc9782683635f366f89a',1,'malloc.c']]], + ['abort_5fon_5fassert_5ffailure_1',['ABORT_ON_ASSERT_FAILURE',['../a01898.html#afc93c014764c05a1cbdef61482bc36f5',1,'malloc.c']]], + ['acquire_5fmalloc_5fglobal_5flock_2',['ACQUIRE_MALLOC_GLOBAL_LOCK',['../a01898.html#aa3c43629ddadadeb43d75494062e5342',1,'malloc.c']]], + ['align_5fas_5fchunk_3',['align_as_chunk',['../a01898.html#a8c0e37f0d02dc9393501b1dc9b9951fd',1,'malloc.c']]], + ['align_5foffset_4',['align_offset',['../a01898.html#a2e22ed02137eff655b87a572b974eb37',1,'malloc.c']]], + ['alloc_5fsize_5',['ALLOC_SIZE',['../a01904.html#af4b82a302bb6293cf6b77464247cb1f8',1,'test.c']]], + ['arax_5fassert_6',['arax_assert',['../a01370.html#a785994e2de62bf69795161fb28a4f750',1,'arax_assert.h']]], + ['arax_5fassert_5fobj_7',['arax_assert_obj',['../a01370.html#a8bb6786a4ea2ff74f4b9e4381ac8a686',1,'arax_assert.h']]], + ['arax_5fbuff_5falloc_5fsize_8',['ARAX_BUFF_ALLOC_SIZE',['../a01406.html#a4ec860605b4f22db15821234f03aaca9',1,'arax_data.h']]], + ['arax_5fcpp_9',['ARAX_CPP',['../a01379.html#a561daf1af853037d6dfd17c56251bb38',1,'compat.h']]], + ['arax_5fdata_5falloc_5fsize_10',['ARAX_DATA_ALLOC_SIZE',['../a01406.html#ac7f1c7bb862980e737a78cc91063fba2',1,'arax_data.h']]], + ['arax_5fdata_5fannotate_11',['arax_data_annotate',['../a01406.html#a8d5dc5b9cf973b9caf8358852c87dab3',1,'arax_data.h']]], + ['arax_5fdata_5fstat_12',['arax_data_stat',['../a01406.html#a3a9bbde83a12e6b20bb9614ec1e1e6ea',1,'arax_data.h']]], + ['arax_5ffile_5fprefix_5flen_13',['ARAX_FILE_PREFIX_LEN',['../a01946.html#a4d01598bfe08831f18b456af3cb173bc',1,'arax_assert.c']]], + ['arax_5fhandler_14',['ARAX_HANDLER',['../a01355.html#a2042c802da0a6319dfa7387b56c5ea1d',1,'arax.h']]], + ['arax_5fhandler_5fex_15',['ARAX_HANDLER_EX',['../a01355.html#abc7977aebe6e5c8503679e8ee436c581',1,'arax.h']]], + ['arax_5fobj_5fdtor_5fdecl_16',['ARAX_OBJ_DTOR_DECL',['../a01412.html#af9661fe34e3c0d9e8f8f8a775c5037fc',1,'arax_object.h']]], + ['arax_5fobj_5fdtor_5fuse_17',['ARAX_OBJ_DTOR_USE',['../a01412.html#acda98fecf80b82bd01409193d3f86dda',1,'arax_object.h']]], + ['arax_5fpipe_5fget_18',['arax_pipe_get',['../a01907.html#a2bb516831dd4d0d04092f7d82b2b9889',1,'impl.c']]], + ['arax_5fpipe_5fsha_5fsize_19',['ARAX_PIPE_SHA_SIZE',['../a01358.html#a51407c606cb30ebfb637f965e9962f16',1,'arax_pipe.h']]], + ['arax_5fpipe_5fthottle_5fdebug_5ffunc_20',['ARAX_PIPE_THOTTLE_DEBUG_FUNC',['../a01358.html#a4a2abf6ac0e06ab4cd033095054aa349',1,'arax_pipe.h']]], + ['arax_5fpipe_5fthottle_5fdebug_5fparams_21',['ARAX_PIPE_THOTTLE_DEBUG_PARAMS',['../a01358.html#a83b6ac47e9c431ef2af1ef4bddd9dea7',1,'arax_pipe.h']]], + ['arax_5fthrottle_5fdebug_5faccel_5ffunc_22',['ARAX_THROTTLE_DEBUG_ACCEL_FUNC',['../a01400.html#ae4ce5e52f563dade368db32043faf8eb',1,'arax_accel.h']]], + ['arax_5fthrottle_5fdebug_5faccel_5fparams_23',['ARAX_THROTTLE_DEBUG_ACCEL_PARAMS',['../a01400.html#ab84b3b9e634913cfb92095d873ba0036',1,'arax_accel.h']]], + ['arax_5fthrottle_5fdebug_5ffunc_24',['ARAX_THROTTLE_DEBUG_FUNC',['../a01424.html#a03d585214098784236ffe2d067715c6f',1,'arax_throttle.h']]], + ['arax_5fthrottle_5fdebug_5fparams_25',['ARAX_THROTTLE_DEBUG_PARAMS',['../a01424.html#a5ee93de8a975df710edb61a447632395',1,'arax_throttle.h']]], + ['arax_5fthrottle_5fdebug_5fprint_26',['ARAX_THROTTLE_DEBUG_PRINT',['../a01424.html#a28e98100ac3ad7575db4e647cfe0099a',1,'arax_throttle.h']]], + ['arch_5falloc_5ffree_27',['arch_alloc_free',['../a01364.html#a143da5e8efe294ade096fed0edc6fc3c',1,'alloc.h']]], + ['assert_28',['assert',['../a01898.html#af576bf8ffa22a44e53018c67095ffbf0',1,'malloc.c']]] +]; diff --git a/search/defines_10.js b/search/defines_10.js new file mode 100644 index 00000000..2b66b7aa --- /dev/null +++ b/search/defines_10.js @@ -0,0 +1,29 @@ +var searchData= +[ + ['same_5for_5fleft_5fbits_0',['same_or_left_bits',['../a01898.html#ace4a96b1b78fcc4d93372fb9336f899f',1,'malloc.c']]], + ['segment_5fholds_1',['segment_holds',['../a01898.html#a3616a6ae475e54f73816dfa69d1483e8',1,'malloc.c']]], + ['set_5fflag4_2',['set_flag4',['../a01898.html#ab59038f70c8449bc2efdec7d99e1a372',1,'malloc.c']]], + ['set_5ffoot_3',['set_foot',['../a01898.html#a8429bbf864f878eca1011ec97969535b',1,'malloc.c']]], + ['set_5ffree_5fwith_5fpinuse_4',['set_free_with_pinuse',['../a01898.html#a4533a463f685015d5b56192fc5f42ba7',1,'malloc.c']]], + ['set_5finuse_5',['set_inuse',['../a01898.html#a1e4f613ffb89c72f5686586939b13cf6',1,'malloc.c']]], + ['set_5finuse_5fand_5fpinuse_6',['set_inuse_and_pinuse',['../a01898.html#a6b0498b45088d3b87e6b2daed2f6fa92',1,'malloc.c']]], + ['set_5flock_7',['set_lock',['../a01898.html#aae06e664473337b87ba3d95609fef288',1,'malloc.c']]], + ['set_5fsize_5fand_5fpinuse_5fof_5ffree_5fchunk_8',['set_size_and_pinuse_of_free_chunk',['../a01898.html#a18bad8f70449009a982f57c6e8107d29',1,'malloc.c']]], + ['set_5fsize_5fand_5fpinuse_5fof_5finuse_5fchunk_9',['set_size_and_pinuse_of_inuse_chunk',['../a01898.html#a076ff214648e7d19ddaa7a4d963aae4a',1,'malloc.c']]], + ['should_5ftrim_10',['should_trim',['../a01898.html#a8fcca0fe7fd7176c642cb7eaca01e3c8',1,'malloc.c']]], + ['six_5fsize_5ft_5fsizes_11',['SIX_SIZE_T_SIZES',['../a01898.html#ae711f3f963dc01f816b155795e4a7729',1,'malloc.c']]], + ['size_5ft_5fbitsize_12',['SIZE_T_BITSIZE',['../a01898.html#a9d769150c841cbb7512476c56aaf5617',1,'malloc.c']]], + ['size_5ft_5ffour_13',['SIZE_T_FOUR',['../a01898.html#a9233a87a400d8aaae1b22d1e3cdc42d8',1,'malloc.c']]], + ['size_5ft_5fone_14',['SIZE_T_ONE',['../a01898.html#a1a115588725fa912f1bcaca9f08fb658',1,'malloc.c']]], + ['size_5ft_5fsize_15',['SIZE_T_SIZE',['../a01898.html#a2e3db94c3bfc87e3c7bcbee4973bab02',1,'malloc.c']]], + ['size_5ft_5ftwo_16',['SIZE_T_TWO',['../a01898.html#a7e1ed65ca3ce9fcc21e329a7cea204d1',1,'malloc.c']]], + ['size_5ft_5fzero_17',['SIZE_T_ZERO',['../a01898.html#acd3fa67eabd0de0d56e206fa3a416de9',1,'malloc.c']]], + ['small_5findex_18',['small_index',['../a01898.html#a1f3d4249e522c896509b7999860090ea',1,'malloc.c']]], + ['small_5findex2size_19',['small_index2size',['../a01898.html#a377939ca061c1b170053c2927af26cdc',1,'malloc.c']]], + ['smallbin_5fat_20',['smallbin_at',['../a01898.html#a862c7dc1f319911e1f06b9d99485cc54',1,'malloc.c']]], + ['smallbin_5fshift_21',['SMALLBIN_SHIFT',['../a01898.html#a35c7b74e5fe8c45a869115cc6e154fe9',1,'malloc.c']]], + ['smallbin_5fwidth_22',['SMALLBIN_WIDTH',['../a01898.html#a033008a0cb72328dd6ced48e7f639874',1,'malloc.c']]], + ['smallmap_5fis_5fmarked_23',['smallmap_is_marked',['../a01898.html#a545357ca2a355288874c27ea94eca166',1,'malloc.c']]], + ['struct_5fmallinfo_5fdeclared_24',['STRUCT_MALLINFO_DECLARED',['../a01898.html#a73031e8be1f35c837c74bee1d205a929',1,'STRUCT_MALLINFO_DECLARED: malloc.c'],['../a01901.html#a73031e8be1f35c837c74bee1d205a929',1,'STRUCT_MALLINFO_DECLARED: malloc.h']]], + ['sys_5falloc_5fpadding_25',['SYS_ALLOC_PADDING',['../a01898.html#ac40b2081de834d5d7e140d79592cd4df',1,'malloc.c']]] +]; diff --git a/search/defines_11.js b/search/defines_11.js new file mode 100644 index 00000000..7fd4e2c2 --- /dev/null +++ b/search/defines_11.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['top_5ffoot_5fsize_0',['TOP_FOOT_SIZE',['../a01898.html#a3b8c23c29e153672fb62406384791948',1,'malloc.c']]], + ['treebin_5fat_1',['treebin_at',['../a01898.html#a9890e7becae3c880548653acb11ef261',1,'malloc.c']]], + ['treebin_5fshift_2',['TREEBIN_SHIFT',['../a01898.html#a84cfe33e7f07c4b874fe1a82ba327c2e',1,'malloc.c']]], + ['treemap_5fis_5fmarked_3',['treemap_is_marked',['../a01898.html#a0a5f672f882ef6645bcc97b6d0e30d7d',1,'malloc.c']]], + ['two_5fsize_5ft_5fsizes_4',['TWO_SIZE_T_SIZES',['../a01898.html#aea099b8fb6bf6975c70b2945de5064d1',1,'malloc.c']]], + ['type_5fmask_5',['TYPE_MASK',['../a01919.html#a980bfe6b3424f0710fd3268f6fb0b0fd',1,'arax_data.c']]] +]; diff --git a/search/defines_12.js b/search/defines_12.js new file mode 100644 index 00000000..0483d3d6 --- /dev/null +++ b/search/defines_12.js @@ -0,0 +1,39 @@ +var searchData= +[ + ['unlikely_0',['UNLIKELY',['../a01961.html#a9bc47b0f2ca95a82343eaf253567b354',1,'queue.c']]], + ['unlink_5fchunk_1',['unlink_chunk',['../a01898.html#ad3e9aeaeefa7e2fc61f84cafffc6a13a',1,'malloc.c']]], + ['unlink_5ffirst_5fsmall_5fchunk_2',['unlink_first_small_chunk',['../a01898.html#a4710edd84badb715ced379a5a7000b61',1,'malloc.c']]], + ['unlink_5flarge_5fchunk_3',['unlink_large_chunk',['../a01898.html#a2af36a6897c8bac0fd68a329cf3b43c9',1,'malloc.c']]], + ['unlink_5fsmall_5fchunk_4',['unlink_small_chunk',['../a01898.html#a6681f6fb034ce0fcee30f1df143fcefc',1,'malloc.c']]], + ['usage_5ferror_5faction_5',['USAGE_ERROR_ACTION',['../a01898.html#ab207e868102874ef0dee095572e35597',1,'malloc.c']]], + ['use_5fbuiltin_5fffs_6',['USE_BUILTIN_FFS',['../a01898.html#a66da830b721a3ea3b57609ba4894da73',1,'malloc.c']]], + ['use_5fdev_5frandom_7',['USE_DEV_RANDOM',['../a01898.html#a3071f613460817c78d1b8002d1093cc6',1,'malloc.c']]], + ['use_5flock_8',['use_lock',['../a01898.html#a7c7ff8add3d9f12d4af529f9f43d7644',1,'malloc.c']]], + ['use_5flock_5fbit_9',['USE_LOCK_BIT',['../a01898.html#a02a456408564b69d6f3de5f8fede4931',1,'malloc.c']]], + ['use_5flocks_10',['USE_LOCKS',['../a01898.html#afc15a339eab4721df5fcd099004f1840',1,'malloc.c']]], + ['use_5fmmap_11',['use_mmap',['../a01898.html#acab9406dcc7caedf7a63038e271d45a5',1,'malloc.c']]], + ['use_5fmmap_5fbit_12',['USE_MMAP_BIT',['../a01898.html#a6792a808878980b064a53729e42a1b55',1,'malloc.c']]], + ['use_5fnoncontiguous_13',['use_noncontiguous',['../a01898.html#a6cbe613595e5001cbb1b85de17ce1c27',1,'malloc.c']]], + ['use_5fnoncontiguous_5fbit_14',['USE_NONCONTIGUOUS_BIT',['../a01898.html#ac7f41c328146bb45481fe3e0c20787d4',1,'malloc.c']]], + ['use_5fspin_5flocks_15',['USE_SPIN_LOCKS',['../a02340.html#a2272cf5f1db0ea5dd0e89d1a3c5028f0',1,'USE_SPIN_LOCKS: alloc.c'],['../a01898.html#a2272cf5f1db0ea5dd0e89d1a3c5028f0',1,'USE_SPIN_LOCKS: malloc.c']]], + ['utils_5fbitmap_5fcalc_5fbytes_16',['UTILS_BITMAP_CALC_BYTES',['../a01376.html#ae52d40f9d43ef1bb41eede6788655038',1,'bitmap.h']]], + ['utils_5flist_5ffor_5feach_17',['utils_list_for_each',['../a01385.html#afd43483bda7bea7f030b6a1cfa490b84',1,'list.h']]], + ['utils_5flist_5ffor_5feach_5freverse_18',['utils_list_for_each_reverse',['../a01385.html#a7ea6a1cb0b132f9485af3724cc193111',1,'list.h']]], + ['utils_5flist_5ffor_5feach_5fsafe_19',['utils_list_for_each_safe',['../a01385.html#ae3c50c2a28a1714b41462bb3a6898248',1,'list.h']]], + ['utils_5fspinlock_5finit_20',['utils_spinlock_init',['../a01961.html#a48dab07b5af9a45ad2324cddca2111d0',1,'queue.c']]], + ['utils_5fspinlock_5flock_21',['utils_spinlock_lock',['../a01961.html#a12384163d480f80d5728efb744aba7c0',1,'queue.c']]], + ['utils_5fspinlock_5funlock_22',['utils_spinlock_unlock',['../a01961.html#a8b02b87f20799fecba9a0f2132c2e5bf',1,'queue.c']]], + ['utils_5ftimer_5fget_5fduration_5fns_23',['utils_timer_get_duration_ns',['../a01397.html#a0781a7f43720006bcbb654144b9c3844',1,'timer.h']]], + ['utils_5ftimer_5fget_5fduration_5fus_24',['utils_timer_get_duration_us',['../a01397.html#a2aaf856e9d83a209d5acb56b22853b3e',1,'timer.h']]], + ['utils_5ftimer_5fget_5felapsed_5fns_25',['utils_timer_get_elapsed_ns',['../a01397.html#a78eb4942d27543e9e6e8d4c4d4c3e402',1,'timer.h']]], + ['utils_5ftimer_5fget_5felapsed_5fus_26',['utils_timer_get_elapsed_us',['../a01397.html#a2e0653385a30f5da81834c273ab20319',1,'timer.h']]], + ['utils_5ftimer_5fget_5fraw_27',['utils_timer_get_raw',['../a01397.html#a6003193f669d4324537ac2e71f4b6614',1,'timer.h']]], + ['utils_5ftimer_5fget_5ftime_5fns_28',['utils_timer_get_time_ns',['../a01397.html#a8554e6180aa56a77b9d42ca5ec5cb5fa',1,'timer.h']]], + ['utils_5ftimer_5fget_5ftime_5fus_29',['utils_timer_get_time_us',['../a01397.html#ab76e58716613aa078739a8260eee3812',1,'timer.h']]], + ['utils_5ftimer_5fms_30',['UTILS_TIMER_MS',['../a01397.html#a6a22eb4fb5e9bf3a51091969152ed187',1,'timer.h']]], + ['utils_5ftimer_5fns_31',['UTILS_TIMER_NS',['../a01397.html#adf999eaeac7a34369f6326298d10cf03',1,'timer.h']]], + ['utils_5ftimer_5fset_32',['utils_timer_set',['../a01397.html#a2dcc750e82be4d90d85b5bc8e6269ed0',1,'timer.h']]], + ['utils_5ftimer_5fset_5fraw_33',['utils_timer_set_raw',['../a01397.html#a860533d5baf63026c56b45628f61dbb1',1,'timer.h']]], + ['utils_5ftimer_5ftv_5ftime_34',['utils_timer_tv_time',['../a01397.html#a104417bc47f75bae6be9029a3df1df52',1,'timer.h']]], + ['utils_5ftimer_5fus_35',['UTILS_TIMER_US',['../a01397.html#a8bb22df167993baa52787f96864db4b7',1,'timer.h']]] +]; diff --git a/search/defines_13.js b/search/defines_13.js new file mode 100644 index 00000000..03e6b0ce --- /dev/null +++ b/search/defines_13.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['vd_5fbuff_5fowner_0',['VD_BUFF_OWNER',['../a01919.html#a9cfc4824ef6366d0a0203973fee59cb7',1,'arax_data.c']]], + ['vdflag_1',['VDFLAG',['../a01919.html#a79bcfecb44a55cae834171d418dad602',1,'arax_data.c']]] +]; diff --git a/search/defines_2.js b/search/defines_2.js new file mode 100644 index 00000000..65f39438 --- /dev/null +++ b/search/defines_2.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['bit_5fallocator_5fblock_0',['BIT_ALLOCATOR_BLOCK',['../a02340.html#a968206c9e5d9e1333fc7c00766c9620b',1,'alloc.c']]], + ['bit_5fallocator_5fblock_5fmask_1',['BIT_ALLOCATOR_BLOCK_MASK',['../a02340.html#a44449154cfb840851f1546a576113a16',1,'alloc.c']]], + ['bit_5ffor_5ftree_5findex_2',['bit_for_tree_index',['../a01898.html#add9cdad127078283b5143927a1610427',1,'malloc.c']]], + ['bitmap_5fnot_5ffound_3',['BITMAP_NOT_FOUND',['../a01376.html#ad43f6b6827bef2f04fd86c5bc8d73805',1,'bitmap.h']]], + ['bits_5fper_5fpage_4',['BITS_PER_PAGE',['../a02340.html#a56f9dcbbd13828d582d3ca909596017e',1,'alloc.c']]] +]; diff --git a/search/defines_3.js b/search/defines_3.js new file mode 100644 index 00000000..265819cd --- /dev/null +++ b/search/defines_3.js @@ -0,0 +1,32 @@ +var searchData= +[ + ['call_5fdirect_5fmmap_0',['CALL_DIRECT_MMAP',['../a01898.html#a26980b7eab40770feedf42c2bd73c24f',1,'malloc.c']]], + ['call_5fmmap_1',['CALL_MMAP',['../a01898.html#a2c63dd9bc221c7bba0b8a6b2772ecd81',1,'malloc.c']]], + ['call_5fmorecore_2',['CALL_MORECORE',['../a01898.html#a215ecb242aa62fffb86fce8c6f3cac32',1,'malloc.c']]], + ['call_5fmremap_3',['CALL_MREMAP',['../a01898.html#afde1135b9abf86803f31a6b832ecf2a7',1,'malloc.c']]], + ['call_5fmunmap_4',['CALL_MUNMAP',['../a01898.html#a570315b155b7f2271c9370201cc24ef3',1,'malloc.c']]], + ['calloc_5fmust_5fclear_5',['calloc_must_clear',['../a01898.html#aa961cd887ed571eadb6f6148d0d09e48',1,'malloc.c']]], + ['check_5ffree_5fchunk_6',['check_free_chunk',['../a01898.html#a4ee253420495ac1a115acad3a7e2045c',1,'malloc.c']]], + ['check_5finuse_5fchunk_7',['check_inuse_chunk',['../a01898.html#a4a10639890e0474f257429c8aec650bb',1,'malloc.c']]], + ['check_5fmalloc_5fstate_8',['check_malloc_state',['../a01898.html#afa00ceb10e333a5edffe0c4a429207b0',1,'malloc.c']]], + ['check_5fmalloced_5fchunk_9',['check_malloced_chunk',['../a01898.html#ae26652400ab077acf28998ca58aa7bf1',1,'malloc.c']]], + ['check_5fmmapped_5fchunk_10',['check_mmapped_chunk',['../a01898.html#ab4a8a939c748e7bf809ebf9cde15f974',1,'malloc.c']]], + ['check_5ftop_5fchunk_11',['check_top_chunk',['../a01898.html#a9da830f14086f890cc55fc4172a02eb6',1,'malloc.c']]], + ['chunk2mem_12',['chunk2mem',['../a01898.html#accb5f8e767e1e6ca196937cd24f8a1e2',1,'malloc.c']]], + ['chunk_5falign_5fmask_13',['CHUNK_ALIGN_MASK',['../a01898.html#a46f5899c4a72acfdd20872d893679bb0',1,'malloc.c']]], + ['chunk_5fminus_5foffset_14',['chunk_minus_offset',['../a01898.html#a26cb551063ab1a46db7bd51be271afdd',1,'malloc.c']]], + ['chunk_5foverhead_15',['CHUNK_OVERHEAD',['../a01898.html#ad99e48752cd2b170bdaf90b5a5bbf072',1,'malloc.c']]], + ['chunk_5fplus_5foffset_16',['chunk_plus_offset',['../a01898.html#a2222e8c19fc975b86342ea505eeed358',1,'malloc.c']]], + ['chunksize_17',['chunksize',['../a01898.html#a0bd05b2720a9f79a0c066086c4f7e2fa',1,'malloc.c']]], + ['cinuse_18',['cinuse',['../a01898.html#a01d65bf1aca48739daba1789e75731d4',1,'malloc.c']]], + ['cinuse_5fbit_19',['CINUSE_BIT',['../a01898.html#a8f8153cc167dd042af6840f7130b9721',1,'malloc.c']]], + ['clear_5fflag4_20',['clear_flag4',['../a01898.html#aa850a392adbf484a1431ad1f959cbfc5',1,'malloc.c']]], + ['clear_5fpinuse_21',['clear_pinuse',['../a01898.html#ad32c3519a274d707cedb0345f2ebf129',1,'malloc.c']]], + ['clear_5fsmallmap_22',['clear_smallmap',['../a01898.html#a5429f913012abf9059d0bd93940c9e0e',1,'malloc.c']]], + ['clear_5ftreemap_23',['clear_treemap',['../a01898.html#a6c003dab5a3337bde0315d6a58c1a9cd',1,'malloc.c']]], + ['cmfail_24',['CMFAIL',['../a01898.html#aea7448d636880994af54d52aa979e7bd',1,'malloc.c']]], + ['compiler_5fbarrier_25',['COMPILER_BARRIER',['../a01961.html#a99ad0e26d85f7be6473a2c23dbfaf4e1',1,'queue.c']]], + ['compute_5fbit2idx_26',['compute_bit2idx',['../a01898.html#ac8199000024d5b45dbf79400df381dfc',1,'malloc.c']]], + ['compute_5ftree_5findex_27',['compute_tree_index',['../a01898.html#a057276ef94e26754cae354fd9f56bcef',1,'malloc.c']]], + ['corruption_5ferror_5faction_28',['CORRUPTION_ERROR_ACTION',['../a01898.html#acb20d711da475d4c59ef88569579b4d4',1,'malloc.c']]] +]; diff --git a/search/defines_4.js b/search/defines_4.js new file mode 100644 index 00000000..9f828889 --- /dev/null +++ b/search/defines_4.js @@ -0,0 +1,36 @@ +var searchData= +[ + ['debug_0',['DEBUG',['../a01898.html#ad72dbcf6d0153db1b8d8a58001feed83',1,'malloc.c']]], + ['default_5fgranularity_1',['DEFAULT_GRANULARITY',['../a01898.html#a0919191b14359403f853f75c6fcb5879',1,'malloc.c']]], + ['default_5fmmap_5fthreshold_2',['DEFAULT_MMAP_THRESHOLD',['../a01898.html#a3d78f5f17cc66ad4b567a39a55bb4837',1,'malloc.c']]], + ['default_5ftrim_5fthreshold_3',['DEFAULT_TRIM_THRESHOLD',['../a01898.html#aed027da2fe85e7618851151184d04f49',1,'malloc.c']]], + ['destroy_5flock_4',['DESTROY_LOCK',['../a01898.html#acf7ea24a3875d0b5dbcba8a863a5e2d0',1,'malloc.c']]], + ['direct_5fmmap_5',['DIRECT_MMAP',['../a01898.html#a701e885d119af384b33d724f1e2e7302',1,'DIRECT_MMAP: malloc.c'],['../a01898.html#a701e885d119af384b33d724f1e2e7302',1,'DIRECT_MMAP: malloc.c']]], + ['disable_5fcontiguous_6',['disable_contiguous',['../a01898.html#a1c844cd4da4c0805c2b2e8424513f1fd',1,'malloc.c']]], + ['disable_5flock_7',['disable_lock',['../a01898.html#a349dcd06c8dcf826a592f4d9a7b2949c',1,'malloc.c']]], + ['disable_5fmmap_8',['disable_mmap',['../a01898.html#a73914fa402851f1661c5f8026003be64',1,'malloc.c']]], + ['dlbulk_5ffree_9',['dlbulk_free',['../a01898.html#a6994d926acbbff21ac936e1e100ba801',1,'dlbulk_free: malloc.c'],['../a01901.html#a6994d926acbbff21ac936e1e100ba801',1,'dlbulk_free: malloc.h']]], + ['dlcalloc_10',['dlcalloc',['../a01898.html#aeb507216612dc43759952dd835e7596d',1,'dlcalloc: malloc.c'],['../a01901.html#aeb507216612dc43759952dd835e7596d',1,'dlcalloc: malloc.h']]], + ['dlfree_11',['dlfree',['../a01901.html#aa2f5410ccf57ee1ae49df754b44be9e3',1,'dlfree: malloc.h'],['../a01898.html#aa2f5410ccf57ee1ae49df754b44be9e3',1,'dlfree: malloc.c']]], + ['dlindependent_5fcalloc_12',['dlindependent_calloc',['../a01898.html#a17816165d27e812d18ed032f9ced9ad4',1,'dlindependent_calloc: malloc.c'],['../a01901.html#a17816165d27e812d18ed032f9ced9ad4',1,'dlindependent_calloc: malloc.h']]], + ['dlindependent_5fcomalloc_13',['dlindependent_comalloc',['../a01898.html#aa4e5c5d50e0cd7dc44b2defcae6226d7',1,'dlindependent_comalloc: malloc.c'],['../a01901.html#aa4e5c5d50e0cd7dc44b2defcae6226d7',1,'dlindependent_comalloc: malloc.h']]], + ['dlmallinfo_14',['dlmallinfo',['../a01898.html#abed9900148f16076d9e2823748712bb9',1,'dlmallinfo: malloc.c'],['../a01901.html#abf412c713d3ec5ac7f33663fb22e26ca',1,'dlmallinfo: malloc.h']]], + ['dlmalloc_15',['dlmalloc',['../a01898.html#a86195c783178093d895874a07a15dce1',1,'dlmalloc: malloc.c'],['../a01901.html#a86195c783178093d895874a07a15dce1',1,'dlmalloc: malloc.h']]], + ['dlmalloc_5fexport_16',['DLMALLOC_EXPORT',['../a01898.html#a58ef5120047a35956d86ee00c2d364dc',1,'malloc.c']]], + ['dlmalloc_5ffootprint_17',['dlmalloc_footprint',['../a01898.html#a814f86a67ca6d2c34e192a809e356e21',1,'dlmalloc_footprint: malloc.c'],['../a01901.html#ae98e99f811abc5fcc542d1f0372e86b4',1,'dlmalloc_footprint: malloc.h']]], + ['dlmalloc_5ffootprint_5flimit_18',['dlmalloc_footprint_limit',['../a01898.html#ae2e382d1e4648319c76698d60427e076',1,'dlmalloc_footprint_limit: malloc.c'],['../a01901.html#a42285edf4871e3adaab58e7e9ed08831',1,'dlmalloc_footprint_limit: malloc.h']]], + ['dlmalloc_5finspect_5fall_19',['dlmalloc_inspect_all',['../a01898.html#abea659f429972334d253efab49b6c3b5',1,'dlmalloc_inspect_all: malloc.c'],['../a01901.html#abea659f429972334d253efab49b6c3b5',1,'dlmalloc_inspect_all: malloc.h']]], + ['dlmalloc_5fmax_5ffootprint_20',['dlmalloc_max_footprint',['../a01898.html#a922fad26c6b3b6e719d609ecffcd9327',1,'dlmalloc_max_footprint: malloc.c'],['../a01901.html#a53ed39f9f5df6fda6aad36b40c76557e',1,'dlmalloc_max_footprint: malloc.h']]], + ['dlmalloc_5fset_5ffootprint_5flimit_21',['dlmalloc_set_footprint_limit',['../a01898.html#a11913f4b10361cf4224a561e727bace7',1,'dlmalloc_set_footprint_limit: malloc.c'],['../a01901.html#a11913f4b10361cf4224a561e727bace7',1,'dlmalloc_set_footprint_limit: malloc.h']]], + ['dlmalloc_5fstats_22',['dlmalloc_stats',['../a01898.html#af626033086675b4f2e7a8cafabc85ff9',1,'dlmalloc_stats: malloc.c'],['../a01901.html#a523dae557d3a1c150198a2d91c31d0f5',1,'dlmalloc_stats: malloc.h']]], + ['dlmalloc_5ftrim_23',['dlmalloc_trim',['../a01898.html#a72a0e1e6edf9ef91c042680574560732',1,'dlmalloc_trim: malloc.c'],['../a01901.html#a72a0e1e6edf9ef91c042680574560732',1,'dlmalloc_trim: malloc.h']]], + ['dlmalloc_5fusable_5fsize_24',['dlmalloc_usable_size',['../a01898.html#abdfd656c28f59dc708ce3dabfade2408',1,'dlmalloc_usable_size: malloc.c'],['../a01901.html#abdfd656c28f59dc708ce3dabfade2408',1,'dlmalloc_usable_size: malloc.h']]], + ['dlmalloc_5fversion_25',['DLMALLOC_VERSION',['../a01898.html#aa27beecc92c596aab2bd668f0cba740a',1,'malloc.c']]], + ['dlmallopt_26',['dlmallopt',['../a01898.html#a3dde31382dc8652ffb98335aecd248ab',1,'dlmallopt: malloc.c'],['../a01901.html#a3dde31382dc8652ffb98335aecd248ab',1,'dlmallopt: malloc.h']]], + ['dlmemalign_27',['dlmemalign',['../a01898.html#a41b3d891bf7fa5e5ca08f7898b4fd9e8',1,'dlmemalign: malloc.c'],['../a01901.html#a41b3d891bf7fa5e5ca08f7898b4fd9e8',1,'dlmemalign: malloc.h']]], + ['dlposix_5fmemalign_28',['dlposix_memalign',['../a01898.html#ad6824f937bf9bdd2cccc9526746108a1',1,'dlposix_memalign: malloc.c'],['../a01901.html#ad6824f937bf9bdd2cccc9526746108a1',1,'dlposix_memalign: malloc.h']]], + ['dlpvalloc_29',['dlpvalloc',['../a01898.html#a9bfff55fd0c29554b7140954b38a54d4',1,'dlpvalloc: malloc.c'],['../a01901.html#a9bfff55fd0c29554b7140954b38a54d4',1,'dlpvalloc: malloc.h']]], + ['dlrealloc_30',['dlrealloc',['../a01898.html#a0498e36f6b1a4293efe80b18b48e86b9',1,'dlrealloc: malloc.c'],['../a01901.html#a0498e36f6b1a4293efe80b18b48e86b9',1,'dlrealloc: malloc.h']]], + ['dlrealloc_5fin_5fplace_31',['dlrealloc_in_place',['../a01898.html#a51b9709053b36636d2c57d9b342d4ef3',1,'malloc.c']]], + ['dlvalloc_32',['dlvalloc',['../a01898.html#af99ef0a6df3de021fcc2b48da5ced844',1,'dlvalloc: malloc.c'],['../a01901.html#af99ef0a6df3de021fcc2b48da5ced844',1,'dlvalloc: malloc.h']]] +]; diff --git a/search/defines_5.js b/search/defines_5.js new file mode 100644 index 00000000..457ee858 --- /dev/null +++ b/search/defines_5.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['enable_5flock_0',['enable_lock',['../a01898.html#aa7eff565061029c1af31eecb25dca0be',1,'malloc.c']]], + ['enable_5fmmap_1',['enable_mmap',['../a01898.html#a2f290b320a0eac1ac56491a51cbed8df',1,'malloc.c']]], + ['ensure_5finitialization_2',['ensure_initialization',['../a01898.html#a3344f5638240b82a2128c71d6073a9b3',1,'malloc.c']]], + ['extern_5fbit_3',['EXTERN_BIT',['../a01898.html#a57ab793cfa029220055825980f7e6edf',1,'malloc.c']]] +]; diff --git a/search/defines_6.js b/search/defines_6.js new file mode 100644 index 00000000..fd4db117 --- /dev/null +++ b/search/defines_6.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['fencepost_5fhead_0',['FENCEPOST_HEAD',['../a01898.html#a14d64540da114c6390ce2501849706bb',1,'malloc.c']]], + ['flag4_5fbit_1',['FLAG4_BIT',['../a01898.html#a17fe36f581907d842fa2055e9f462f1e',1,'malloc.c']]], + ['flag4inuse_2',['flag4inuse',['../a01898.html#a7e839e521ce180dcdde674ddbfdda535',1,'malloc.c']]], + ['flag_5fbits_3',['FLAG_BITS',['../a01898.html#adc6adc464a32997a5da502b124c6c8d8',1,'malloc.c']]], + ['fm_4',['fm',['../a01898.html#a3615cd1bfae88d6e9fbf531d1259a3a6',1,'malloc.c']]], + ['fmt_5',['FMT',['../a01964.html#a3dfb8ef0d04e938194da60b4420c7517',1,'system.c']]], + ['footers_6',['FOOTERS',['../a01898.html#a1c2512fa5003ea9c05934d55c1196c1d',1,'malloc.c']]], + ['forceinline_7',['FORCEINLINE',['../a01898.html#a724fb9f82013c782db5c3c12ea36aac8',1,'malloc.c']]], + ['four_5fsize_5ft_5fsizes_8',['FOUR_SIZE_T_SIZES',['../a01898.html#a2a1f1d667053b23e22043a3c7845eded',1,'malloc.c']]] +]; diff --git a/search/defines_7.js b/search/defines_7.js new file mode 100644 index 00000000..373910d9 --- /dev/null +++ b/search/defines_7.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['get_5ffoot_0',['get_foot',['../a01898.html#a7567ed8861f166c8935e08d92c611bed',1,'malloc.c']]], + ['gm_1',['gm',['../a01898.html#a8223ecd78e9937dc1fc43a49deec1554',1,'malloc.c']]], + ['go_5ffail_2',['GO_FAIL',['../a01907.html#a720b3883b819944cf4e9edd9b0d6c9db',1,'impl.c']]], + ['granularity_5falign_3',['granularity_align',['../a01898.html#a47800d7a9fdf871d0afdce3d5cd3af50',1,'malloc.c']]] +]; diff --git a/search/defines_8.js b/search/defines_8.js new file mode 100644 index 00000000..d291593d --- /dev/null +++ b/search/defines_8.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['half_5fmax_5fsize_5ft_0',['HALF_MAX_SIZE_T',['../a01898.html#ac9bba1fcedab650619ef4d19073f9c73',1,'malloc.c']]], + ['have_5fmmap_1',['HAVE_MMAP',['../a02340.html#ac24e9c0562704d17896d14869e748fcc',1,'HAVE_MMAP: alloc.c'],['../a01898.html#ac24e9c0562704d17896d14869e748fcc',1,'HAVE_MMAP: malloc.c']]], + ['have_5fmorecore_2',['HAVE_MORECORE',['../a01898.html#a9339a8172859ed6c7aed68f3ab65281c',1,'malloc.c']]], + ['have_5fmremap_3',['HAVE_MREMAP',['../a01898.html#a4a3ec5cb9c1f5dc2638cb96342dc3d51',1,'malloc.c']]] +]; diff --git a/search/defines_9.js b/search/defines_9.js new file mode 100644 index 00000000..e3e8bb42 --- /dev/null +++ b/search/defines_9.js @@ -0,0 +1,22 @@ +var searchData= +[ + ['idx2bit_0',['idx2bit',['../a01898.html#aef388580685989725034bdcb7c5543bf',1,'malloc.c']]], + ['initial_5flock_1',['INITIAL_LOCK',['../a01898.html#a61cf32dcdf0f1bcb268e3fe3f32b69dc',1,'malloc.c']]], + ['insecure_2',['INSECURE',['../a01898.html#ad21df8408a63deff2676218cfd5ebb1f',1,'malloc.c']]], + ['insert_5fchunk_3',['insert_chunk',['../a01898.html#aec697f44cce422498bc01b7c19114b5a',1,'malloc.c']]], + ['insert_5flarge_5fchunk_4',['insert_large_chunk',['../a01898.html#ac38ba865e6c3bf916fcdcb6bfa8be00d',1,'malloc.c']]], + ['insert_5fsmall_5fchunk_5',['insert_small_chunk',['../a01898.html#adb28fc94857fe6fd0d13a790c1866284',1,'malloc.c']]], + ['internal_5ffree_6',['internal_free',['../a01898.html#a1f1a36ca1107db0b1d82c07db766e29c',1,'malloc.c']]], + ['internal_5fmalloc_7',['internal_malloc',['../a01898.html#a5444a4a9f6894b7afd5d0a461a7cdb02',1,'malloc.c']]], + ['inuse_5fbits_8',['INUSE_BITS',['../a01898.html#a80bcec0b805b07f53640caa5a11a513d',1,'malloc.c']]], + ['is_5faligned_9',['is_aligned',['../a01898.html#a02e34c4ed5784fb77e540dec9112cbfd',1,'malloc.c']]], + ['is_5fextern_5fsegment_10',['is_extern_segment',['../a01898.html#a4c59e261d6424fcb626e521881dde00f',1,'malloc.c']]], + ['is_5fglobal_11',['is_global',['../a01898.html#abf6941f282e0b4e708de251c482eaeed',1,'malloc.c']]], + ['is_5fgranularity_5faligned_12',['is_granularity_aligned',['../a01898.html#aef1cfe43fae84cc03ab977f8512f0a11',1,'malloc.c']]], + ['is_5finitialized_13',['is_initialized',['../a01898.html#af3b001bbc18e175f99b0c8644d63dd4d',1,'malloc.c']]], + ['is_5finuse_14',['is_inuse',['../a01898.html#a731e3667ac73997bac2c62f9c4478e11',1,'malloc.c']]], + ['is_5fmmapped_15',['is_mmapped',['../a01898.html#a3597aedd2e73f2b6616f82e2838292ec',1,'malloc.c']]], + ['is_5fmmapped_5fsegment_16',['is_mmapped_segment',['../a01898.html#a9a31e5267bf40dcb9992d77209c35427',1,'malloc.c']]], + ['is_5fpage_5faligned_17',['is_page_aligned',['../a01898.html#a07ca81810ed532d2c932a26984f16fcd',1,'malloc.c']]], + ['is_5fsmall_18',['is_small',['../a01898.html#aadc2cdd1444477c387fc30e64f061432',1,'malloc.c']]] +]; diff --git a/search/defines_a.js b/search/defines_a.js new file mode 100644 index 00000000..a0ed7ef7 --- /dev/null +++ b/search/defines_a.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['least_5fbit_0',['least_bit',['../a01898.html#a63b9c45d67753a9da2be543ca879c261',1,'malloc.c']]], + ['left_5fbits_1',['left_bits',['../a01898.html#a24d6f7ffb2d8e91878f8b6c06b803c5e',1,'malloc.c']]], + ['leftmost_5fchild_2',['leftmost_child',['../a01898.html#a62a561657f44853b51a022b878471921',1,'malloc.c']]], + ['leftshift_5ffor_5ftree_5findex_3',['leftshift_for_tree_index',['../a01898.html#a64356087190cdd50fc15488628a603ce',1,'malloc.c']]], + ['likely_4',['LIKELY',['../a01961.html#a19c8a29a0efa439fe0df43e3c80e8439',1,'queue.c']]], + ['lock_5fat_5ffork_5',['LOCK_AT_FORK',['../a01898.html#a011dc81eb6490491a8ae7288c0855e06',1,'malloc.c']]] +]; diff --git a/search/defines_b.js b/search/defines_b.js new file mode 100644 index 00000000..39839e11 --- /dev/null +++ b/search/defines_b.js @@ -0,0 +1,37 @@ +var searchData= +[ + ['m_5fgranularity_0',['M_GRANULARITY',['../a01901.html#a1ff5e3f74801d4cbb5e97ab2d3b8f2e3',1,'M_GRANULARITY: malloc.h'],['../a01898.html#a1ff5e3f74801d4cbb5e97ab2d3b8f2e3',1,'M_GRANULARITY: malloc.c']]], + ['m_5fmmap_5fthreshold_1',['M_MMAP_THRESHOLD',['../a01901.html#a0dd09b97e3eb71f8256b8bd441828175',1,'M_MMAP_THRESHOLD: malloc.h'],['../a01898.html#a0dd09b97e3eb71f8256b8bd441828175',1,'M_MMAP_THRESHOLD: malloc.c']]], + ['m_5ftrim_5fthreshold_2',['M_TRIM_THRESHOLD',['../a01898.html#ae5e96ee9e20ef7cfcbbb690877fc9fb2',1,'M_TRIM_THRESHOLD: malloc.c'],['../a01901.html#ae5e96ee9e20ef7cfcbbb690877fc9fb2',1,'M_TRIM_THRESHOLD: malloc.h']]], + ['mallinfo_5ffield_5ftype_3',['MALLINFO_FIELD_TYPE',['../a01898.html#a53688562ed3d2eda132ae91de874cd98',1,'MALLINFO_FIELD_TYPE: malloc.c'],['../a01901.html#a53688562ed3d2eda132ae91de874cd98',1,'MALLINFO_FIELD_TYPE: malloc.h']]], + ['malloc_5falignment_4',['MALLOC_ALIGNMENT',['../a01898.html#a05897f13370acbdecbf31034f8bec0d5',1,'malloc.c']]], + ['malloc_5ffailure_5faction_5',['MALLOC_FAILURE_ACTION',['../a01898.html#ae5869ce6c79206810a98c59f60b9f9db',1,'malloc.c']]], + ['malloc_5fgetpagesize_6',['malloc_getpagesize',['../a01898.html#ad8548e96f0d0f428a1b826ba096c3ecf',1,'malloc.c']]], + ['malloc_5finspect_5fall_7',['MALLOC_INSPECT_ALL',['../a01898.html#a4a82252300d827ca28d4ab5ce089c41f',1,'MALLOC_INSPECT_ALL: malloc.c'],['../a02340.html#a4a82252300d827ca28d4ab5ce089c41f',1,'MALLOC_INSPECT_ALL: alloc.c']]], + ['mark_5finuse_5ffoot_8',['mark_inuse_foot',['../a01898.html#ae33f10cb02fb28aa399e3a7ff644a3a6',1,'malloc.c']]], + ['mark_5fsmallmap_9',['mark_smallmap',['../a01898.html#add2106bac689c78a86e8dc2b7ba9e533',1,'malloc.c']]], + ['mark_5ftreemap_10',['mark_treemap',['../a01898.html#aa4cee82f9e5d26a5118b2e743c7fd1a2',1,'malloc.c']]], + ['max_5frelease_5fcheck_5frate_11',['MAX_RELEASE_CHECK_RATE',['../a01898.html#af2e1098b71c84ef4c22b344dd9b3e272',1,'malloc.c']]], + ['max_5frequest_12',['MAX_REQUEST',['../a01898.html#a79dc55ceff5acfd97aabd01db632a266',1,'malloc.c']]], + ['max_5fsize_5ft_13',['MAX_SIZE_T',['../a01898.html#ad6a20ec9394445398c2618b055acbcb1',1,'malloc.c']]], + ['max_5fsmall_5frequest_14',['MAX_SMALL_REQUEST',['../a01898.html#a74e041ce14d5a19644a4ada6ba9584dc',1,'malloc.c']]], + ['max_5fsmall_5fsize_15',['MAX_SMALL_SIZE',['../a01898.html#a5f1a8ee1b6c92973fc7fd9d8603b709d',1,'malloc.c']]], + ['mchunk_5fsize_16',['MCHUNK_SIZE',['../a01898.html#af3cedaeb11325fd3f4b08e92107be0d2',1,'malloc.c']]], + ['mem2chunk_17',['mem2chunk',['../a01898.html#a4603903faa99536698009c9b64bc1ab9',1,'malloc.c']]], + ['mfail_18',['MFAIL',['../a01898.html#a6f716771caf6f2af3b7ffb6b78091aaf',1,'malloc.c']]], + ['mid_19',['MID',['../a01964.html#ad20fe2057831ee479f3115ec3d00d984',1,'system.c']]], + ['min_5fchunk_5fsize_20',['MIN_CHUNK_SIZE',['../a01898.html#abf35d28195f0f301fe63d0ea867f4379',1,'malloc.c']]], + ['min_5flarge_5fsize_21',['MIN_LARGE_SIZE',['../a01898.html#ac7cc8b0e715687eccf92f4bd1528b129',1,'malloc.c']]], + ['min_5frequest_22',['MIN_REQUEST',['../a01898.html#a8c13c7ec4d73f12f94e9ce9486672cd1',1,'malloc.c']]], + ['min_5fsmall_5findex_23',['MIN_SMALL_INDEX',['../a01898.html#a06f22f4c7be02a90000e46f2e7eb873b',1,'malloc.c']]], + ['minsize_5ffor_5ftree_5findex_24',['minsize_for_tree_index',['../a01898.html#a5ab894e6672002a76fde663e4abda3bc',1,'malloc.c']]], + ['mmap_25',['MMAP',['../a01898.html#a9d53bdddfb1cb6c0f2e5816414095719',1,'MMAP: malloc.c'],['../a01898.html#a9d53bdddfb1cb6c0f2e5816414095719',1,'MMAP: malloc.c']]], + ['mmap_5falign_26',['mmap_align',['../a01898.html#ac00dfdac316c41741d390ec3a5616fff',1,'malloc.c']]], + ['mmap_5fchunk_5foverhead_27',['MMAP_CHUNK_OVERHEAD',['../a01898.html#a7a63444ac4059044f199801725fac79f',1,'malloc.c']]], + ['mmap_5fclears_28',['MMAP_CLEARS',['../a01898.html#a6d5e91f5ad1b37dc59642cb2db028d0c',1,'malloc.c']]], + ['mmap_5ffoot_5fpad_29',['MMAP_FOOT_PAD',['../a01898.html#ada2e72cef4eb947e8f406502aec6e888',1,'malloc.c']]], + ['morecore_5fcontiguous_30',['MORECORE_CONTIGUOUS',['../a01898.html#ad9f27b6ca99e4a63328136443a428b74',1,'malloc.c']]], + ['morecore_5fdefault_31',['MORECORE_DEFAULT',['../a01898.html#af84dec7bed092a94ed4501cae641695a',1,'malloc.c']]], + ['mspaces_32',['MSPACES',['../a02340.html#ab69b328d35c5a8e3bdc3463d3603e950',1,'MSPACES: alloc.c'],['../a01898.html#ab69b328d35c5a8e3bdc3463d3603e950',1,'MSPACES: malloc.c'],['../a01901.html#ab69b328d35c5a8e3bdc3463d3603e950',1,'MSPACES: malloc.h']]], + ['munmap_33',['MUNMAP',['../a01898.html#afc87d07b26687dc8a4685ba3580cae9e',1,'MUNMAP: malloc.c'],['../a01898.html#afc87d07b26687dc8a4685ba3580cae9e',1,'MUNMAP: malloc.c']]] +]; diff --git a/search/defines_c.js b/search/defines_c.js new file mode 100644 index 00000000..dd1565f7 --- /dev/null +++ b/search/defines_c.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['next_5fchunk_0',['next_chunk',['../a01898.html#a891ae6952dcc03f81e75b91666400f51',1,'malloc.c']]], + ['next_5fpinuse_1',['next_pinuse',['../a01898.html#a62c85451d286c94329b31175ff6aa991',1,'malloc.c']]], + ['no_5fmallinfo_2',['NO_MALLINFO',['../a01898.html#abdaef093c0ac7f4ffca5df2d2b2f0560',1,'NO_MALLINFO: malloc.c'],['../a01901.html#abdaef093c0ac7f4ffca5df2d2b2f0560',1,'NO_MALLINFO: malloc.h']]], + ['no_5fmalloc_5fstats_3',['NO_MALLOC_STATS',['../a01898.html#aa5a986d0460a969befdb7efd79ef049c',1,'malloc.c']]], + ['no_5fsegment_5ftraversal_4',['NO_SEGMENT_TRAVERSAL',['../a01898.html#a6413d234d61f597fccc2aac39e33941c',1,'malloc.c']]], + ['noinline_5',['NOINLINE',['../a01898.html#a1b173d22e57d9395897acbd8de62d505',1,'malloc.c']]], + ['nsmallbins_6',['NSMALLBINS',['../a01898.html#afe898942dfe9b3557981d0dc935fddde',1,'malloc.c']]], + ['ntreebins_7',['NTREEBINS',['../a01898.html#a187fe34f71c63b486f6d79ac51117061',1,'malloc.c']]] +]; diff --git a/search/defines_d.js b/search/defines_d.js new file mode 100644 index 00000000..758a2af2 --- /dev/null +++ b/search/defines_d.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['offset_5fto_5fpointer_0',['offset_to_pointer',['../a01358.html#a844ff73ec9cb9a4b2a976b5ae7327762',1,'arax_pipe.h']]], + ['ok_5faddress_1',['ok_address',['../a01898.html#a162ea143ef987e2bc98d5e4b69f7bff6',1,'malloc.c']]], + ['ok_5finuse_2',['ok_inuse',['../a01898.html#a27bd04a29396a4164edab26cb11e543c',1,'malloc.c']]], + ['ok_5fmagic_3',['ok_magic',['../a01898.html#a92a34445b3f1e6050ad4ffb2f6dd8297',1,'malloc.c']]], + ['ok_5fnext_4',['ok_next',['../a01898.html#a57b2c8e49aeb87c3cb1922648ef9ad3c',1,'malloc.c']]], + ['ok_5fpinuse_5',['ok_pinuse',['../a01898.html#aded4345a9d79e45d438506d86f550cd6',1,'malloc.c']]], + ['only_5fmspaces_6',['ONLY_MSPACES',['../a02340.html#aeb595638a14befbd356f77f8ec2a5c0d',1,'ONLY_MSPACES: alloc.c'],['../a01898.html#aeb595638a14befbd356f77f8ec2a5c0d',1,'ONLY_MSPACES: malloc.c'],['../a01901.html#aeb595638a14befbd356f77f8ec2a5c0d',1,'ONLY_MSPACES: malloc.h']]], + ['overhead_5ffor_7',['overhead_for',['../a01898.html#ad7d2c199c11feafd3ae7f91aa1ee2c85',1,'malloc.c']]] +]; diff --git a/search/defines_e.js b/search/defines_e.js new file mode 100644 index 00000000..d504d4c0 --- /dev/null +++ b/search/defines_e.js @@ -0,0 +1,16 @@ +var searchData= +[ + ['pad_5frequest_0',['pad_request',['../a01898.html#abc9ba9df02632268a7b15ef992a94035',1,'malloc.c']]], + ['page_5falign_1',['page_align',['../a01898.html#a26099b7c631584ea0a7df48d5663b316',1,'malloc.c']]], + ['pinuse_2',['pinuse',['../a01898.html#a7d865edc2d2e8b7a33b3eb02ee22c2e7',1,'malloc.c']]], + ['pinuse_5fbit_3',['PINUSE_BIT',['../a01898.html#aa41e697181baeec7157ff5f0f6ae747a',1,'malloc.c']]], + ['pointer_5fto_5foffset_4',['pointer_to_offset',['../a01358.html#a57c896fef91db0d1a4a181eedb54fd3c',1,'arax_pipe.h']]], + ['pool_5fsize_5',['POOL_SIZE',['../a01904.html#aa2ac54564b3514084afd2c5dafe9d232',1,'test.c']]], + ['postaction_6',['POSTACTION',['../a01898.html#a8c176fdaf0d14b883ba250c8a569b88e',1,'malloc.c']]], + ['preaction_7',['PREACTION',['../a01898.html#a9abf67cb3bc9027f0b44bab676e05f09',1,'malloc.c']]], + ['prev_5fchunk_8',['prev_chunk',['../a01898.html#aee72e7631ab6012eb488e4ad9863d431',1,'malloc.c']]], + ['print_5frefs_9',['PRINT_REFS',['../a01922.html#aff73040d7aead6ad7c4ea914e5ab128d',1,'arax_object.c']]], + ['print_5fthr_10',['PRINT_THR',['../a01937.html#a0710a5431ec8cfbace7bcb1c3d362994',1,'arax_throttle.c']]], + ['printd_11',['printd',['../a01919.html#a4f2705df522fd01ea20cea002f2d4304',1,'arax_data.c']]], + ['proceed_5fon_5ferror_12',['PROCEED_ON_ERROR',['../a01898.html#afac2a7b1a6efb14fc268051f90d0f1d3',1,'malloc.c']]] +]; diff --git a/search/defines_f.js b/search/defines_f.js new file mode 100644 index 00000000..fdb16b70 --- /dev/null +++ b/search/defines_f.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['release_5fmalloc_5fglobal_5flock_0',['RELEASE_MALLOC_GLOBAL_LOCK',['../a01898.html#a2f3df62568086e570fba515b493fb8f4',1,'malloc.c']]], + ['replace_5fdv_1',['replace_dv',['../a01898.html#a374c640361e6a18551c63f548079ad05',1,'malloc.c']]], + ['request2size_2',['request2size',['../a01898.html#ab5e11e7a52d0c430ee39bfbf1113253a',1,'malloc.c']]], + ['rtcheck_3',['RTCHECK',['../a01898.html#afe7e6535ba41a91be580eb2bba5890e2',1,'malloc.c']]] +]; diff --git a/search/enums_0.js b/search/enums_0.js new file mode 100644 index 00000000..b50c82f4 --- /dev/null +++ b/search/enums_0.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['arax_5faccel_5fordering_5fe_0',['arax_accel_ordering_e',['../a01427.html#a50bb2106b29f1ab7b8ae19440fb49d86',1,'arax_vaccel.h']]], + ['arax_5faccel_5fstate_1',['arax_accel_state',['../a01361.html#af33a079b704d052f2f4c963aed5f3f2a',1,'arax_types.h']]], + ['arax_5faccel_5ftype_2',['arax_accel_type',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8',1,'arax_types.h']]], + ['arax_5fdata_5fflags_3',['arax_data_flags',['../a01406.html#a0268385e5173da0946f2c426484cb783',1,'arax_data.h']]], + ['arax_5fobject_5ftype_4',['arax_object_type',['../a01412.html#a1e76ab10a5b400f89cb267a6d49da972',1,'arax_object.h']]], + ['arax_5ftask_5fstate_5fe_5',['arax_task_state_e',['../a01361.html#aa2463c047bffe232c661a52a0dc7db8a',1,'arax_types.h']]] +]; diff --git a/search/enums_1.js b/search/enums_1.js new file mode 100644 index 00000000..f2f819a8 --- /dev/null +++ b/search/enums_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['registeroffsets_0',['RegisterOffsets',['../a02346.html#a5c6cef9bc2984aa826698bd328126308',1,'async.c']]] +]; diff --git a/search/enums_2.js b/search/enums_2.js new file mode 100644 index 00000000..2ca4ba04 --- /dev/null +++ b/search/enums_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['utils_5fconfig_5fsource_0',['utils_config_source',['../a01382.html#a4616ac612d0a2a45c511f61d0067c4d1',1,'config.h']]] +]; diff --git a/search/enumvalues_0.js b/search/enumvalues_0.js new file mode 100644 index 00000000..717e2062 --- /dev/null +++ b/search/enumvalues_0.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['accel_5fbusy_0',['accel_busy',['../a01361.html#af33a079b704d052f2f4c963aed5f3f2aaa8260a0e6538df7ce7fcf126832fad34',1,'arax_types.h']]], + ['accel_5ffailed_1',['accel_failed',['../a01361.html#af33a079b704d052f2f4c963aed5f3f2aa42ee740d4766d30577fc3538fb098753',1,'arax_types.h']]], + ['accel_5fidle_2',['accel_idle',['../a01361.html#af33a079b704d052f2f4c963aed5f3f2aaff2507424552114cf03aac6762d211a8',1,'arax_types.h']]], + ['any_3',['ANY',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8aa00374190265e7b6447db44977a7dff1',1,'arax_types.h']]], + ['arax_5faccel_5ftypes_4',['ARAX_ACCEL_TYPES',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8a76fbff26f938893b47e2b7f113fdf19b',1,'arax_types.h']]], + ['arax_5ftype_5fcount_5',['ARAX_TYPE_COUNT',['../a01412.html#a1e76ab10a5b400f89cb267a6d49da972a5115924eacbea77a748d1489f148ed47',1,'arax_object.h']]], + ['arax_5ftype_5fdata_6',['ARAX_TYPE_DATA',['../a01412.html#a1e76ab10a5b400f89cb267a6d49da972a4d278fd6dc9fbae63e4bbb3208efe1dd',1,'arax_object.h']]], + ['arax_5ftype_5fphys_5faccel_7',['ARAX_TYPE_PHYS_ACCEL',['../a01412.html#a1e76ab10a5b400f89cb267a6d49da972af95f33c3aea3579c2bdc610c4f5833d2',1,'arax_object.h']]], + ['arax_5ftype_5fproc_8',['ARAX_TYPE_PROC',['../a01412.html#a1e76ab10a5b400f89cb267a6d49da972ab37376a90211399e64589e9958cd26da',1,'arax_object.h']]], + ['arax_5ftype_5ftask_9',['ARAX_TYPE_TASK',['../a01412.html#a1e76ab10a5b400f89cb267a6d49da972af3518fbc60e4e416554725b59a5f4432',1,'arax_object.h']]], + ['arax_5ftype_5fvirt_5faccel_10',['ARAX_TYPE_VIRT_ACCEL',['../a01412.html#a1e76ab10a5b400f89cb267a6d49da972a7aa91e9b9aceac970e886e03c2fbcaf9',1,'arax_object.h']]] +]; diff --git a/search/enumvalues_1.js b/search/enumvalues_1.js new file mode 100644 index 00000000..3e1bf5b3 --- /dev/null +++ b/search/enumvalues_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['bell_5freg_0',['BELL_REG',['../a02346.html#a5c6cef9bc2984aa826698bd328126308a613577583c292244ee27da18aea86012',1,'async.c']]] +]; diff --git a/search/enumvalues_2.js b/search/enumvalues_2.js new file mode 100644 index 00000000..8563e20c --- /dev/null +++ b/search/enumvalues_2.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['config_5fenv_0',['CONFIG_ENV',['../a01382.html#a4616ac612d0a2a45c511f61d0067c4d1ac4f16b8d6c7ae22fa2b62c2163edde95',1,'config.h']]], + ['config_5ffile_1',['CONFIG_FILE',['../a01382.html#a4616ac612d0a2a45c511f61d0067c4d1a412fc1f23a5704f2adcd28372e7d1cae',1,'config.h']]], + ['cpu_2',['CPU',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8a0035eb0600d18dfc302f6bf7a7cbfa3b',1,'arax_types.h']]] +]; diff --git a/search/enumvalues_3.js b/search/enumvalues_3.js new file mode 100644 index 00000000..40ead2c2 --- /dev/null +++ b/search/enumvalues_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['gpu_0',['GPU',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8a90768d506a26e2fd926bc5920b63daad',1,'arax_types.h']]], + ['gpu_5fsoft_1',['GPU_SOFT',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8a2eb76b65163fc759986a18815199ce60',1,'arax_types.h']]] +]; diff --git a/search/enumvalues_4.js b/search/enumvalues_4.js new file mode 100644 index 00000000..d9c028b2 --- /dev/null +++ b/search/enumvalues_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['hip_0',['HIP',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8a5e3ab5c31b20310d2c87c31055b1faf4',1,'arax_types.h']]] +]; diff --git a/search/enumvalues_5.js b/search/enumvalues_5.js new file mode 100644 index 00000000..8e1c94bb --- /dev/null +++ b/search/enumvalues_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['imr_5freg_0',['IMR_REG',['../a02346.html#a5c6cef9bc2984aa826698bd328126308a0668cff940eef901d490e4b8576a31ad',1,'async.c']]], + ['isr_5freg_1',['ISR_REG',['../a02346.html#a5c6cef9bc2984aa826698bd328126308a059675f16c9fa28d8974fb69b2003119',1,'async.c']]] +]; diff --git a/search/enumvalues_6.js b/search/enumvalues_6.js new file mode 100644 index 00000000..94515bad --- /dev/null +++ b/search/enumvalues_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['nano_5farm_0',['NANO_ARM',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8a7e7d12b64ac228ea5e49fdaa2676fc06',1,'arax_types.h']]], + ['nano_5fcore_1',['NANO_CORE',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8ae0c9e1cc9180aaec2e98578ea88e1bfb',1,'arax_types.h']]] +]; diff --git a/search/enumvalues_7.js b/search/enumvalues_7.js new file mode 100644 index 00000000..48d64f30 --- /dev/null +++ b/search/enumvalues_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['open_5fcl_0',['OPEN_CL',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8a37bf78d5a1906385034f1cac35972c64',1,'arax_types.h']]], + ['othr_5fremt_1',['OTHR_REMT',['../a01406.html#a0268385e5173da0946f2c426484cb783a999a6541c43a1dd6bed021bc096b13ec',1,'arax_data.h']]] +]; diff --git a/search/enumvalues_8.js b/search/enumvalues_8.js new file mode 100644 index 00000000..ccf91bbe --- /dev/null +++ b/search/enumvalues_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['parallel_0',['PARALLEL',['../a01427.html#a50bb2106b29f1ab7b8ae19440fb49d86a90606f8ca5d91452541a74f1caef1d11',1,'arax_vaccel.h']]] +]; diff --git a/search/enumvalues_9.js b/search/enumvalues_9.js new file mode 100644 index 00000000..e1e8cb50 --- /dev/null +++ b/search/enumvalues_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['sda_0',['SDA',['../a01361.html#a7a6f422d9a6b437f388a19e6af1575c8ae21c602fb61dc58e4fa361382cb31403',1,'arax_types.h']]], + ['sequential_1',['SEQUENTIAL',['../a01427.html#a50bb2106b29f1ab7b8ae19440fb49d86a6b834d43476553e583e0fde6578c82f0',1,'arax_vaccel.h']]] +]; diff --git a/search/enumvalues_a.js b/search/enumvalues_a.js new file mode 100644 index 00000000..e1e5d277 --- /dev/null +++ b/search/enumvalues_a.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['task_5fcompleted_0',['task_completed',['../a01361.html#aa2463c047bffe232c661a52a0dc7db8aa7a4cbe15f1a1beedac704098e782410f',1,'arax_types.h']]], + ['task_5ffailed_1',['task_failed',['../a01361.html#aa2463c047bffe232c661a52a0dc7db8aaea4c704d1c494c1f4cac58eda90716b0',1,'arax_types.h']]], + ['task_5fissued_2',['task_issued',['../a01361.html#aa2463c047bffe232c661a52a0dc7db8aa565ef41fef08f053e44b2fe6cd6758ea',1,'arax_types.h']]] +]; diff --git a/search/enumvalues_b.js b/search/enumvalues_b.js new file mode 100644 index 00000000..6219384a --- /dev/null +++ b/search/enumvalues_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['vm_5fid_5freg_0',['VM_ID_REG',['../a02346.html#a5c6cef9bc2984aa826698bd328126308afe84fc01c1e474b531d34e31ea7677dd',1,'async.c']]] +]; diff --git a/search/files_0.js b/search/files_0.js new file mode 100644 index 00000000..f74d1e36 --- /dev/null +++ b/search/files_0.js @@ -0,0 +1,32 @@ +var searchData= +[ + ['alloc_2eh_0',['alloc.h',['../a01364.html',1,'']]], + ['arax_2eh_1',['arax.h',['../a01355.html',1,'']]], + ['arax_5faccel_2ec_2',['arax_accel.c',['../a01913.html',1,'']]], + ['arax_5faccel_2eh_3',['arax_accel.h',['../a01400.html',1,'']]], + ['arax_5faccel_5ftypes_2ec_4',['arax_accel_types.c',['../a01916.html',1,'']]], + ['arax_5faccel_5ftypes_2eh_5',['arax_accel_types.h',['../a01403.html',1,'']]], + ['arax_5fassert_2ec_6',['arax_assert.c',['../a01946.html',1,'']]], + ['arax_5fassert_2eh_7',['arax_assert.h',['../a01370.html',1,'']]], + ['arax_5fdata_2ec_8',['arax_data.c',['../a01919.html',1,'']]], + ['arax_5fdata_2eh_9',['arax_data.h',['../a01406.html',1,'']]], + ['arax_5fdata_5fprivate_2eh_10',['arax_data_private.h',['../a01409.html',1,'']]], + ['arax_5fobject_2ec_11',['arax_object.c',['../a01922.html',1,'']]], + ['arax_5fobject_2eh_12',['arax_object.h',['../a01412.html',1,'']]], + ['arax_5fpipe_2ec_13',['arax_pipe.c',['../a01925.html',1,'']]], + ['arax_5fpipe_2eh_14',['arax_pipe.h',['../a01358.html',1,'']]], + ['arax_5fplot_2ec_15',['arax_plot.c',['../a01949.html',1,'']]], + ['arax_5fplot_2eh_16',['arax_plot.h',['../a01373.html',1,'']]], + ['arax_5fproc_2ec_17',['arax_proc.c',['../a01928.html',1,'']]], + ['arax_5fproc_2eh_18',['arax_proc.h',['../a01415.html',1,'']]], + ['arax_5fptr_2ec_19',['arax_ptr.c',['../a01931.html',1,'']]], + ['arax_5fptr_2eh_20',['arax_ptr.h',['../a01418.html',1,'']]], + ['arax_5ftask_2ec_21',['arax_task.c',['../a01934.html',1,'']]], + ['arax_5ftask_2eh_22',['arax_task.h',['../a01421.html',1,'']]], + ['arax_5fthrottle_2ec_23',['arax_throttle.c',['../a01937.html',1,'']]], + ['arax_5fthrottle_2eh_24',['arax_throttle.h',['../a01424.html',1,'']]], + ['arax_5ftypes_2eh_25',['arax_types.h',['../a01361.html',1,'']]], + ['arax_5fvaccel_2ec_26',['arax_vaccel.c',['../a01940.html',1,'']]], + ['arax_5fvaccel_2eh_27',['arax_vaccel.h',['../a01427.html',1,'']]], + ['async_5fapi_2eh_28',['async_api.h',['../a01433.html',1,'']]] +]; diff --git a/search/files_1.js b/search/files_1.js new file mode 100644 index 00000000..b072506e --- /dev/null +++ b/search/files_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['bitmap_2ec_0',['bitmap.c',['../a01952.html',1,'']]], + ['bitmap_2eh_1',['bitmap.h',['../a01376.html',1,'']]] +]; diff --git a/search/files_2.js b/search/files_2.js new file mode 100644 index 00000000..c28591c9 --- /dev/null +++ b/search/files_2.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['compat_2eh_0',['compat.h',['../a01379.html',1,'']]], + ['conf_2eh_1',['conf.h',['../a01436.html',1,'']]], + ['config_2ec_2',['config.c',['../a01955.html',1,'']]], + ['config_2eh_3',['config.h',['../a01382.html',1,'']]] +]; diff --git a/search/files_3.js b/search/files_3.js new file mode 100644 index 00000000..2520e45b --- /dev/null +++ b/search/files_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['alloc_2ec_0',['alloc.c',['../a02340.html',1,'']]] +]; diff --git a/search/files_4.js b/search/files_4.js new file mode 100644 index 00000000..a06cdb9a --- /dev/null +++ b/search/files_4.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['async_2ec_0',['async.c',['../a02346.html',1,'']]], + ['async_2eh_1',['async.h',['../a02355.html',1,'']]], + ['impl_2ec_2',['impl.c',['../a01907.html',1,'']]] +]; diff --git a/search/files_5.js b/search/files_5.js new file mode 100644 index 00000000..489ba6c5 --- /dev/null +++ b/search/files_5.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['kv_2ec_0',['Kv.c',['../a01943.html',1,'']]], + ['kv_2eh_1',['Kv.h',['../a01367.html',1,'']]] +]; diff --git a/search/files_6.js b/search/files_6.js new file mode 100644 index 00000000..a5f8bc82 --- /dev/null +++ b/search/files_6.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['list_2ec_0',['list.c',['../a01958.html',1,'']]], + ['list_2eh_1',['list.h',['../a01385.html',1,'']]] +]; diff --git a/search/files_7.js b/search/files_7.js new file mode 100644 index 00000000..e5eef0ac --- /dev/null +++ b/search/files_7.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['async_2ec_0',['async.c',['../a02349.html',1,'']]], + ['async_2eh_1',['async.h',['../a02358.html',1,'']]], + ['malloc_2ec_2',['malloc.c',['../a01898.html',1,'']]], + ['malloc_2eh_3',['malloc.h',['../a01901.html',1,'']]] +]; diff --git a/search/files_8.js b/search/files_8.js new file mode 100644 index 00000000..8e2d49ea --- /dev/null +++ b/search/files_8.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['queue_2ec_0',['queue.c',['../a01961.html',1,'']]], + ['queue_2eh_1',['queue.h',['../a01388.html',1,'']]] +]; diff --git a/search/files_9.js b/search/files_9.js new file mode 100644 index 00000000..8c393300 --- /dev/null +++ b/search/files_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['readme_2emd_0',['README.md',['../a00047.html',1,'']]] +]; diff --git a/search/files_a.js b/search/files_a.js new file mode 100644 index 00000000..0800d811 --- /dev/null +++ b/search/files_a.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['async_2ec_0',['async.c',['../a02352.html',1,'']]], + ['async_2eh_1',['async.h',['../a02361.html',1,'']]], + ['spinlock_2eh_2',['spinlock.h',['../a01391.html',1,'']]], + ['system_2ec_3',['system.c',['../a01964.html',1,'']]], + ['system_2eh_4',['system.h',['../a01394.html',1,'']]] +]; diff --git a/search/files_b.js b/search/files_b.js new file mode 100644 index 00000000..7a3f0195 --- /dev/null +++ b/search/files_b.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['alloc_2ec_0',['alloc.c',['../a02343.html',1,'']]], + ['test_2ec_1',['test.c',['../a01904.html',1,'']]], + ['timer_2eh_2',['timer.h',['../a01397.html',1,'']]] +]; diff --git a/search/functions_0.js b/search/functions_0.js new file mode 100644 index 00000000..2b137028 --- /dev/null +++ b/search/functions_0.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['_5f_5fattribute_5f_5f_0',['__attribute__',['../a02318.html#a4c166daef0391e2e123926168d60dc01',1,'queue::__attribute__((aligned(CONF_CACHE_LINE)))'],['../a02318.html#a22ce7d1481ed08520fb7502ee9434678',1,'queue::__attribute__((aligned(CONF_CACHE_LINE)))'],['../a01388.html#a22ce7d1481ed08520fb7502ee9434678',1,'__attribute__((aligned(CONF_CACHE_LINE))): queue.h']]], + ['_5fadd_5fcompletion_1',['_add_completion',['../a02346.html#aa459f71b73bbc23f0b4bb342d093dde3',1,'async.c']]], + ['_5farax_5fassert_2',['_arax_assert',['../a01946.html#af26dc0763861425aefd6253b538a289a',1,'_arax_assert(int fail, const char *expr, const char *file, int line): arax_assert.c'],['../a01370.html#a2f4a6e64f2337b6493d4b4b45249290c',1,'_arax_assert(int fail, const char *expr, const char *file, int line): arax_assert.c']]], + ['_5farax_5fassert_5fobj_3',['_arax_assert_obj',['../a01946.html#a4ee1fea325d2edd421f59ab240dfbe54',1,'_arax_assert_obj(void *obj, int type): arax_assert.c'],['../a01370.html#a27854e7c23d8cf99d4f5044d5a6c54f2',1,'_arax_assert_obj(void *obj, int type): arax_assert.c']]], + ['_5farax_5finit_4',['_arax_init',['../a01907.html#a02fd608f651d254148dc74f0ae371dfe',1,'impl.c']]], + ['_5farch_5falloc_5ffree_5',['_arch_alloc_free',['../a01364.html#afc64b9dda94926a3a44b983eb4879f34',1,'_arch_alloc_free(arch_alloc_s *alloc, void *mem): alloc.c'],['../a02340.html#aee3468c272395a101cb7cc10e56fcc76',1,'_arch_alloc_free(arch_alloc_s *_alloc, void *mem): alloc.c'],['../a02343.html#aee3468c272395a101cb7cc10e56fcc76',1,'_arch_alloc_free(arch_alloc_s *_alloc, void *mem): alloc.c']]], + ['_5farch_5falloc_5fmspace_5fmallinfo_6',['_arch_alloc_mspace_mallinfo',['../a02340.html#a714d6d40ed6d39c37c11df8d98fe78a2',1,'alloc.c']]], + ['_5futils_5fconfig_5fget_5fstr_7',['_utils_config_get_str',['../a01955.html#a0738274ac3fd171eda6bfb42492bc0d7',1,'config.c']]] +]; diff --git a/search/functions_1.js b/search/functions_1.js new file mode 100644 index 00000000..d6921e78 --- /dev/null +++ b/search/functions_1.js @@ -0,0 +1,154 @@ +var searchData= +[ + ['add_5fsegment_0',['add_segment',['../a01898.html#aecee517bb2a61c5b79a745f3e0b4aa86',1,'malloc.c']]], + ['arax_5faccel_5facquire_5fphys_1',['arax_accel_acquire_phys',['../a02175.html#gaf8a10ab4e51e59c464ab3ab473e4a0f7',1,'arax_accel_acquire_phys(arax_accel **accel): impl.c'],['../a02175.html#gaf8a10ab4e51e59c464ab3ab473e4a0f7',1,'arax_accel_acquire_phys(arax_accel **accel): impl.c']]], + ['arax_5faccel_5facquire_5ftype_2',['arax_accel_acquire_type',['../a02175.html#ga008252bb9afc2990fa2c5f4b980c9f27',1,'arax_accel_acquire_type(arax_accel_type_e type): impl.c'],['../a02175.html#ga008252bb9afc2990fa2c5f4b980c9f27',1,'arax_accel_acquire_type(arax_accel_type_e type): impl.c']]], + ['arax_5faccel_5fadd_5ftask_3',['arax_accel_add_task',['../a01913.html#ab6afd8cc035237c811ce6a1b7727acc3',1,'arax_accel_add_task(arax_accel_s *accel): arax_accel.c'],['../a01400.html#ab6afd8cc035237c811ce6a1b7727acc3',1,'arax_accel_add_task(arax_accel_s *accel): arax_accel.c']]], + ['arax_5faccel_5fadd_5fvaccel_4',['arax_accel_add_vaccel',['../a01913.html#af0b933c02a24d69c1efa40179f60288f',1,'arax_accel_add_vaccel(arax_accel_s *accel, arax_vaccel_s *vaccel): arax_accel.c'],['../a01400.html#af0b933c02a24d69c1efa40179f60288f',1,'arax_accel_add_vaccel(arax_accel_s *accel, arax_vaccel_s *vaccel): arax_accel.c']]], + ['arax_5faccel_5fdel_5fvaccel_5',['arax_accel_del_vaccel',['../a01913.html#aa3f384ca4812e46dedce753be42654df',1,'arax_accel_del_vaccel(arax_accel_s *accel, arax_vaccel_s *vaccel): arax_accel.c'],['../a01400.html#aa3f384ca4812e46dedce753be42654df',1,'arax_accel_del_vaccel(arax_accel_s *accel, arax_vaccel_s *vaccel): arax_accel.c']]], + ['arax_5faccel_5fget_5fassigned_5fvaccels_6',['arax_accel_get_assigned_vaccels',['../a01913.html#aa164c99d44fec2d7296a76c8926eb585',1,'arax_accel_get_assigned_vaccels(arax_accel_s *accel, arax_vaccel_s ***vaccel): arax_accel.c'],['../a01400.html#aa164c99d44fec2d7296a76c8926eb585',1,'arax_accel_get_assigned_vaccels(arax_accel_s *accel, arax_vaccel_s ***vaccel): arax_accel.c']]], + ['arax_5faccel_5fget_5favailable_5fsize_7',['arax_accel_get_available_size',['../a01913.html#a40082ae256676bd58f960128433237c1',1,'arax_accel_get_available_size(arax_accel *accel): arax_accel.c'],['../a01400.html#a40082ae256676bd58f960128433237c1',1,'arax_accel_get_available_size(arax_accel *accel): arax_accel.c']]], + ['arax_5faccel_5fget_5fname_8',['arax_accel_get_name',['../a01913.html#a800ddc33d183998387064192c52d7ca5',1,'arax_accel_get_name(arax_accel_s *accel): arax_accel.c'],['../a01400.html#a800ddc33d183998387064192c52d7ca5',1,'arax_accel_get_name(arax_accel_s *accel): arax_accel.c']]], + ['arax_5faccel_5fget_5frevision_9',['arax_accel_get_revision',['../a01913.html#ae7bd1c4717b7a98611219be467eec092',1,'arax_accel_get_revision(arax_accel_s *accel): arax_accel.c'],['../a01400.html#ae7bd1c4717b7a98611219be467eec092',1,'arax_accel_get_revision(arax_accel_s *accel): arax_accel.c']]], + ['arax_5faccel_5fget_5fstat_10',['arax_accel_get_stat',['../a01913.html#a73c0d51ef869f0cebc943169142626b6',1,'arax_accel_get_stat(arax_accel_s *accel, arax_accel_stats_s *stat): arax_accel.c'],['../a01400.html#a73c0d51ef869f0cebc943169142626b6',1,'arax_accel_get_stat(arax_accel_s *accel, arax_accel_stats_s *stat): arax_accel.c']]], + ['arax_5faccel_5fget_5ftotal_5fsize_11',['arax_accel_get_total_size',['../a01913.html#a1c89dce1734d8093f7a443d71a5ebb94',1,'arax_accel_get_total_size(arax_accel *accel): arax_accel.c'],['../a01400.html#a1c89dce1734d8093f7a443d71a5ebb94',1,'arax_accel_get_total_size(arax_accel *accel): arax_accel.c']]], + ['arax_5faccel_5finc_5frevision_12',['arax_accel_inc_revision',['../a01913.html#aed864d2fab73a39a8c98356f7bca1304',1,'arax_accel_inc_revision(arax_accel_s *accel): arax_accel.c'],['../a01400.html#aed864d2fab73a39a8c98356f7bca1304',1,'arax_accel_inc_revision(arax_accel_s *accel): arax_accel.c']]], + ['arax_5faccel_5finit_13',['arax_accel_init',['../a01400.html#a0706a66a62ca8710342ac1c097b703ed',1,'arax_accel_init(arax_pipe_s *pipe, const char *name, arax_accel_type_e type, size_t size, size_t capacity): arax_accel.c'],['../a01913.html#a0706a66a62ca8710342ac1c097b703ed',1,'arax_accel_init(arax_pipe_s *pipe, const char *name, arax_accel_type_e type, size_t size, size_t capacity): arax_accel.c']]], + ['arax_5faccel_5flist_14',['arax_accel_list',['../a02175.html#ga7f1598b99463c5ef533a457f225b4c0b',1,'arax_accel_list(arax_accel_type_e type, int physical, arax_accel ***accels): impl.c'],['../a02175.html#ga7f1598b99463c5ef533a457f225b4c0b',1,'arax_accel_list(arax_accel_type_e type, int physical, arax_accel ***accels): impl.c']]], + ['arax_5faccel_5flist_5ffree_15',['arax_accel_list_free',['../a02175.html#ga41bcefd54b929d1a638d174da051130f',1,'arax_accel_list_free(arax_accel **accels): impl.c'],['../a02175.html#ga41bcefd54b929d1a638d174da051130f',1,'arax_accel_list_free(arax_accel **accels): impl.c']]], + ['arax_5faccel_5flist_5ffree_5fpre_5flocked_16',['arax_accel_list_free_pre_locked',['../a01907.html#a4cb362223e9e7a76f4c5695080db2755',1,'impl.c']]], + ['arax_5faccel_5fpending_5ftasks_17',['arax_accel_pending_tasks',['../a01913.html#a213d2b8f851f79eb9216a34098da41b5',1,'arax_accel_pending_tasks(arax_accel_s *accel): arax_accel.c'],['../a01400.html#a213d2b8f851f79eb9216a34098da41b5',1,'arax_accel_pending_tasks(arax_accel_s *accel): arax_accel.c']]], + ['arax_5faccel_5frelease_18',['arax_accel_release',['../a02175.html#ga497b17905d4c7ee2f5ee831d367ece92',1,'arax_accel_release(arax_accel **accel): impl.c'],['../a02175.html#ga497b17905d4c7ee2f5ee831d367ece92',1,'arax_accel_release(arax_accel **accel): impl.c']]], + ['arax_5faccel_5fset_5fphysical_19',['arax_accel_set_physical',['../a02175.html#ga30b30e50de286842c7942a7e3e163578',1,'arax_accel_set_physical(arax_accel *vaccel, arax_accel *phys): impl.c'],['../a02175.html#ga30b30e50de286842c7942a7e3e163578',1,'arax_accel_set_physical(arax_accel *vaccel, arax_accel *phys): impl.c']]], + ['arax_5faccel_5fsize_5fdec_20',['arax_accel_size_dec',['../a01913.html#a503b6bc6d5be49fd8715f62c7174c28e',1,'arax_accel_size_dec(arax_accel *accel, size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS): arax_accel.c'],['../a01400.html#a503b6bc6d5be49fd8715f62c7174c28e',1,'arax_accel_size_dec(arax_accel *accel, size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS): arax_accel.c']]], + ['arax_5faccel_5fsize_5finc_21',['arax_accel_size_inc',['../a01913.html#a9443355ad3d09b08427e538d75cab254',1,'arax_accel_size_inc(arax_accel *accel, size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS): arax_accel.c'],['../a01400.html#a9443355ad3d09b08427e538d75cab254',1,'arax_accel_size_inc(arax_accel *accel, size_t sz ARAX_THROTTLE_DEBUG_ACCEL_PARAMS): arax_accel.c']]], + ['arax_5faccel_5fstat_22',['arax_accel_stat',['../a02175.html#gadd7613438ee9db973f6abf9259956bd5',1,'arax_accel_stat(arax_accel *accel, arax_accel_stats_s *stat): impl.c'],['../a02175.html#gadd7613438ee9db973f6abf9259956bd5',1,'arax_accel_stat(arax_accel *accel, arax_accel_stats_s *stat): impl.c']]], + ['arax_5faccel_5ftype_23',['arax_accel_type',['../a02175.html#ga03cf4cdda8950d49fb9cb2e766d7a162',1,'arax_accel_type(arax_accel *accel): impl.c'],['../a02175.html#ga03cf4cdda8950d49fb9cb2e766d7a162',1,'arax_accel_type(arax_accel *accel): impl.c']]], + ['arax_5faccel_5ftype_5ffrom_5fstr_24',['arax_accel_type_from_str',['../a01916.html#ac8636df4c6e6f00739caad9910698f3c',1,'arax_accel_type_from_str(const char *type): arax_accel_types.c'],['../a01403.html#ac8636df4c6e6f00739caad9910698f3c',1,'arax_accel_type_from_str(const char *type): arax_accel_types.c']]], + ['arax_5faccel_5ftype_5fto_5fstr_25',['arax_accel_type_to_str',['../a01916.html#aadc678cace81fa112fa6baad1c190539',1,'arax_accel_type_to_str(arax_accel_type_e type): arax_accel_types.c'],['../a01403.html#aadc678cace81fa112fa6baad1c190539',1,'arax_accel_type_to_str(arax_accel_type_e type): arax_accel_types.c']]], + ['arax_5faccel_5fvalid_5ftype_26',['arax_accel_valid_type',['../a01916.html#a18229452e0f07cdd4b0b06fbdc2a5d61',1,'arax_accel_valid_type(arax_accel_type_e type): arax_accel_types.c'],['../a01403.html#a18229452e0f07cdd4b0b06fbdc2a5d61',1,'arax_accel_valid_type(arax_accel_type_e type): arax_accel_types.c']]], + ['arax_5faccel_5fwait_5ffor_5ftask_27',['arax_accel_wait_for_task',['../a01913.html#a415e79d6e82e45f24bcd1742c146a0da',1,'arax_accel_wait_for_task(arax_accel_s *accel): arax_accel.c'],['../a01400.html#a415e79d6e82e45f24bcd1742c146a0da',1,'arax_accel_wait_for_task(arax_accel_s *accel): arax_accel.c']]], + ['arax_5fbuffer_28',['ARAX_BUFFER',['../a02178.html#ga9260ad2dd766aec3274c518e2e312b1f',1,'ARAX_BUFFER(size_t size): impl.c'],['../a02178.html#ga9260ad2dd766aec3274c518e2e312b1f',1,'ARAX_BUFFER(size_t size): impl.c']]], + ['arax_5fclean_29',['arax_clean',['../a02174.html#ga4bae55e86ffc384b3c1d2da3580f5c42',1,'arax_clean(): impl.c'],['../a02174.html#ga4bae55e86ffc384b3c1d2da3580f5c42',1,'arax_clean(): impl.c']]], + ['arax_5fcontroller_5finit_5fdone_30',['arax_controller_init_done',['../a01358.html#a57a9203f163a9c8c78e22bde5fa4efbc',1,'arax_controller_init_done(): impl.c'],['../a01907.html#a57a9203f163a9c8c78e22bde5fa4efbc',1,'arax_controller_init_done(): impl.c']]], + ['arax_5fcontroller_5finit_5fstart_31',['arax_controller_init_start',['../a01907.html#aa6e4832b06bd5757be4502d2de7b3026',1,'arax_controller_init_start(): impl.c'],['../a01358.html#aa6e4832b06bd5757be4502d2de7b3026',1,'arax_controller_init_start(): impl.c']]], + ['arax_5fdata_5fallocate_5fremote_32',['arax_data_allocate_remote',['../a01919.html#af8ede6fc8d207004035f45d945688d2c',1,'arax_data_allocate_remote(arax_data_s *data, arax_accel *accel): arax_data.c'],['../a01409.html#af8ede6fc8d207004035f45d945688d2c',1,'arax_data_allocate_remote(arax_data_s *data, arax_accel *accel): arax_data.c']]], + ['arax_5fdata_5farg_5finit_33',['arax_data_arg_init',['../a01919.html#a113a3c52b0c3b4f3b390921ee4c5022e',1,'arax_data_arg_init(arax_data_s *data, arax_accel *accel): arax_data.c'],['../a01406.html#a113a3c52b0c3b4f3b390921ee4c5022e',1,'arax_data_arg_init(arax_data_s *data, arax_accel *accel): arax_data.c']]], + ['arax_5fdata_5fderef_34',['arax_data_deref',['../a01919.html#a1c74d47b5c2c866aa3a61bec0dde4e0d',1,'arax_data_deref(arax_data *data): arax_data.c'],['../a01409.html#a1c74d47b5c2c866aa3a61bec0dde4e0d',1,'arax_data_deref(arax_data *data): arax_data.c']]], + ['arax_5fdata_5ffree_35',['arax_data_free',['../a01919.html#a96e0520e5569748ce1172bafca24fafe',1,'arax_data_free(arax_data *data): arax_data.c'],['../a01406.html#a96e0520e5569748ce1172bafca24fafe',1,'arax_data_free(arax_data *data): arax_data.c']]], + ['arax_5fdata_5fget_36',['arax_data_get',['../a01919.html#a696bc4319d0f6c6baa7d797a8df6b56f',1,'arax_data_get(arax_data *data, void *user): arax_data.c'],['../a01406.html#a696bc4319d0f6c6baa7d797a8df6b56f',1,'arax_data_get(arax_data *data, void *user): arax_data.c']]], + ['arax_5fdata_5fhas_5fremote_37',['arax_data_has_remote',['../a01919.html#a63f5c3c2031eba8a556afffda63f1528',1,'arax_data_has_remote(arax_data *data): arax_data.c'],['../a01409.html#a63f5c3c2031eba8a556afffda63f1528',1,'arax_data_has_remote(arax_data *data): arax_data.c']]], + ['arax_5fdata_5finit_38',['arax_data_init',['../a01919.html#aeefe449d4a278e9fc4b9c5f7e31000a1',1,'arax_data_init(arax_pipe_s *vpipe, size_t size): arax_data.c'],['../a01406.html#aeefe449d4a278e9fc4b9c5f7e31000a1',1,'arax_data_init(arax_pipe_s *vpipe, size_t size): arax_data.c']]], + ['arax_5fdata_5finit_5faligned_39',['arax_data_init_aligned',['../a01919.html#a526989df37e605824d846b7ba54b43ea',1,'arax_data_init_aligned(arax_pipe_s *vpipe, size_t size, size_t align): arax_data.c'],['../a01406.html#a526989df37e605824d846b7ba54b43ea',1,'arax_data_init_aligned(arax_pipe_s *vpipe, size_t size, size_t align): arax_data.c']]], + ['arax_5fdata_5finput_5finit_40',['arax_data_input_init',['../a01406.html#a1dc669466d6f52d5be8af2d991512ac2',1,'arax_data_input_init(arax_data_s *data, arax_accel *accel): arax_data.c'],['../a01919.html#a1dc669466d6f52d5be8af2d991512ac2',1,'arax_data_input_init(arax_data_s *data, arax_accel *accel): arax_data.c']]], + ['arax_5fdata_5fmemcpy_41',['arax_data_memcpy',['../a01919.html#a7d8356bd5c8b6a8d7dffc6ba94cc22e5',1,'arax_data_memcpy(arax_accel *accel, arax_data_s *dst, arax_data_s *src, int block): arax_data.c'],['../a01406.html#a7d8356bd5c8b6a8d7dffc6ba94cc22e5',1,'arax_data_memcpy(arax_accel *accel, arax_data_s *dst, arax_data_s *src, int block): arax_data.c']]], + ['arax_5fdata_5fmigrate_5faccel_42',['arax_data_migrate_accel',['../a01919.html#a4b65f90a821aca384f0ca1cff7bd1846',1,'arax_data_migrate_accel(arax_data_s *data, arax_accel *accel): arax_data.c'],['../a01409.html#a4b65f90a821aca384f0ca1cff7bd1846',1,'arax_data_migrate_accel(arax_data_s *data, arax_accel *accel): arax_data.c']]], + ['arax_5fdata_5foutput_5finit_43',['arax_data_output_init',['../a01919.html#a18d07d808917e0b971d46332e9e64da4',1,'arax_data_output_init(arax_data_s *data, arax_accel *accel): arax_data.c'],['../a01406.html#a18d07d808917e0b971d46332e9e64da4',1,'arax_data_output_init(arax_data_s *data, arax_accel *accel): arax_data.c']]], + ['arax_5fdata_5fref_44',['arax_data_ref',['../a01919.html#afeaab7d93372f0752d59c70d9c5940e7',1,'arax_data_ref(void *data): arax_data.c'],['../a01409.html#afeaab7d93372f0752d59c70d9c5940e7',1,'arax_data_ref(void *data): arax_data.c']]], + ['arax_5fdata_5fref_5foffset_45',['arax_data_ref_offset',['../a01919.html#ac1f7fb20b3a23b388bea24f1b46a33a8',1,'arax_data_ref_offset(arax_pipe_s *vpipe, void *data): arax_data.c'],['../a01409.html#ac1f7fb20b3a23b388bea24f1b46a33a8',1,'arax_data_ref_offset(arax_pipe_s *vpipe, void *data): arax_data.c']]], + ['arax_5fdata_5fset_46',['arax_data_set',['../a01919.html#a8995f71dba475975efc37756783cfce9',1,'arax_data_set(arax_data *data, arax_accel *accel, const void *user): arax_data.c'],['../a01406.html#a8995f71dba475975efc37756783cfce9',1,'arax_data_set(arax_data *data, arax_accel *accel, const void *user): arax_data.c']]], + ['arax_5fdata_5fset_5faccel_47',['arax_data_set_accel',['../a01919.html#ad4f10e1a58d989e93ad8d6318f9d4162',1,'arax_data_set_accel(arax_data_s *data, arax_accel *accel): arax_data.c'],['../a01406.html#ad4f10e1a58d989e93ad8d6318f9d4162',1,'arax_data_set_accel(arax_data_s *data, arax_accel *accel): arax_data.c']]], + ['arax_5fdata_5fset_5fremote_48',['arax_data_set_remote',['../a01919.html#aca0dcc5fe70fd3aa9aa77ee4b8b9aac1',1,'arax_data_set_remote(arax_data_s *data, arax_accel *accel, void *remt): arax_data.c'],['../a01406.html#aca0dcc5fe70fd3aa9aa77ee4b8b9aac1',1,'arax_data_set_remote(arax_data_s *data, arax_accel *accel, void *remt): arax_data.c']]], + ['arax_5fdata_5fshm_5fsync_49',['arax_data_shm_sync',['../a01409.html#a0c926f777113efda665dddaa5185474b',1,'arax_data_private.h']]], + ['arax_5fdata_5fsize_50',['arax_data_size',['../a01919.html#a369e660e3e344bc697d98174059ead3c',1,'arax_data_size(arax_data *data): arax_data.c'],['../a01406.html#a369e660e3e344bc697d98174059ead3c',1,'arax_data_size(arax_data *data): arax_data.c']]], + ['arax_5fdata_5fstat_51',['arax_data_stat',['../a01919.html#a6c43ea323f2de1675b00e48330a12e2a',1,'arax_data_stat(arax_data *data, const char *file, size_t line): arax_data.c'],['../a01406.html#a6c43ea323f2de1675b00e48330a12e2a',1,'arax_data_stat(arax_data *data, const char *file, size_t line): arax_data.c']]], + ['arax_5fexit_52',['arax_exit',['../a02174.html#ga8ac7e88ed7b8a1e2ff8aa435ac6b58ec',1,'arax_exit(): impl.c'],['../a02174.html#ga8ac7e88ed7b8a1e2ff8aa435ac6b58ec',1,'arax_exit(): impl.c']]], + ['arax_5finit_53',['arax_init',['../a02174.html#gae1d371a2840849690acce147e7a205da',1,'arax_init(): impl.c'],['../a02174.html#gae1d371a2840849690acce147e7a205da',1,'arax_init(): impl.c']]], + ['arax_5finstance_5fuid_54',['arax_instance_uid',['../a01907.html#a4720c7ee3ec8423a6cca1b4d4346c488',1,'impl.c']]], + ['arax_5fmmap_55',['arax_mmap',['../a01364.html#a645f029b25098d24aca61b20beabe1bf',1,'arax_mmap(size_t s): alloc.c'],['../a02340.html#a645f029b25098d24aca61b20beabe1bf',1,'arax_mmap(size_t s): alloc.c'],['../a02343.html#a645f029b25098d24aca61b20beabe1bf',1,'arax_mmap(size_t s): alloc.c']]], + ['arax_5fobj_5fdtor_5fdecl_56',['ARAX_OBJ_DTOR_DECL',['../a01922.html#a871ba8da471f464d7e10b13d5db07101',1,'ARAX_OBJ_DTOR_DECL(arax_accel_s): arax_accel.c'],['../a01940.html#a5920cc4cd90589f3c5ac8686a72bcfc0',1,'ARAX_OBJ_DTOR_DECL(arax_vaccel_s): arax_vaccel.c'],['../a01934.html#a5eb16d4196838d10a2b57715f2eddee7',1,'ARAX_OBJ_DTOR_DECL(arax_task_msg_s): arax_task.c'],['../a01928.html#a6f9d28b33cd0a625a238e122e45c7bf8',1,'ARAX_OBJ_DTOR_DECL(arax_proc_s): arax_proc.c'],['../a01922.html#af735744d0f8bec04394639a841d2ba0f',1,'ARAX_OBJ_DTOR_DECL(arax_data_s): arax_data.c'],['../a01922.html#a6f9d28b33cd0a625a238e122e45c7bf8',1,'ARAX_OBJ_DTOR_DECL(arax_proc_s): arax_proc.c'],['../a01922.html#a5920cc4cd90589f3c5ac8686a72bcfc0',1,'ARAX_OBJ_DTOR_DECL(arax_vaccel_s): arax_vaccel.c'],['../a01919.html#af735744d0f8bec04394639a841d2ba0f',1,'ARAX_OBJ_DTOR_DECL(arax_data_s): arax_data.c'],['../a01913.html#a871ba8da471f464d7e10b13d5db07101',1,'ARAX_OBJ_DTOR_DECL(arax_accel_s): arax_accel.c'],['../a01922.html#a5eb16d4196838d10a2b57715f2eddee7',1,'ARAX_OBJ_DTOR_DECL(arax_task_msg_s): arax_task.c']]], + ['arax_5fobject_5flist_5flock_57',['arax_object_list_lock',['../a01922.html#aa750d1c54fe430c1294b9c8a9d3e1466',1,'arax_object_list_lock(arax_object_repo_s *repo, arax_object_type_e type): arax_object.c'],['../a01412.html#aa750d1c54fe430c1294b9c8a9d3e1466',1,'arax_object_list_lock(arax_object_repo_s *repo, arax_object_type_e type): arax_object.c']]], + ['arax_5fobject_5flist_5funlock_58',['arax_object_list_unlock',['../a01922.html#abb03d3cde2d1354544cd082482c3f185',1,'arax_object_list_unlock(arax_object_repo_s *repo, arax_object_type_e type): arax_object.c'],['../a01412.html#abb03d3cde2d1354544cd082482c3f185',1,'arax_object_list_unlock(arax_object_repo_s *repo, arax_object_type_e type): arax_object.c']]], + ['arax_5fobject_5fref_5fdec_59',['arax_object_ref_dec',['../a01922.html#afe7e4a63c40fbcaae742b8de8693483f',1,'arax_object_ref_dec(arax_object_s *obj): arax_object.c'],['../a01412.html#afe7e4a63c40fbcaae742b8de8693483f',1,'arax_object_ref_dec(arax_object_s *obj): arax_object.c']]], + ['arax_5fobject_5fref_5fdec_5fpre_5flocked_60',['arax_object_ref_dec_pre_locked',['../a01922.html#a0a0b147b7fc892c291afe60cb0fa2c1c',1,'arax_object_ref_dec_pre_locked(arax_object_s *obj): arax_object.c'],['../a01412.html#a0a0b147b7fc892c291afe60cb0fa2c1c',1,'arax_object_ref_dec_pre_locked(arax_object_s *obj): arax_object.c']]], + ['arax_5fobject_5fref_5finc_61',['arax_object_ref_inc',['../a01922.html#a9255b8011e6d7c9b28c7df40065efb28',1,'arax_object_ref_inc(arax_object_s *obj): arax_object.c'],['../a01412.html#a9255b8011e6d7c9b28c7df40065efb28',1,'arax_object_ref_inc(arax_object_s *obj): arax_object.c']]], + ['arax_5fobject_5frefs_62',['arax_object_refs',['../a01922.html#a6d73dfc133ab87bb357df5cd76df556f',1,'arax_object_refs(arax_object_s *obj): arax_object.c'],['../a01412.html#a6d73dfc133ab87bb357df5cd76df556f',1,'arax_object_refs(arax_object_s *obj): arax_object.c']]], + ['arax_5fobject_5fregister_63',['arax_object_register',['../a01922.html#a402bbd6fa197c2c48d527325e5e2cf5b',1,'arax_object_register(arax_object_repo_s *repo, arax_object_type_e type, const char *name, size_t size, const int ref_count): arax_object.c'],['../a01412.html#a402bbd6fa197c2c48d527325e5e2cf5b',1,'arax_object_register(arax_object_repo_s *repo, arax_object_type_e type, const char *name, size_t size, const int ref_count): arax_object.c']]], + ['arax_5fobject_5frename_64',['arax_object_rename',['../a01922.html#a6c73bee66b4cb5a64d949b6fbbd64498',1,'arax_object_rename(arax_object_s *obj, const char *fmt,...): arax_object.c'],['../a01412.html#a6c73bee66b4cb5a64d949b6fbbd64498',1,'arax_object_rename(arax_object_s *obj, const char *fmt,...): arax_object.c']]], + ['arax_5fobject_5frepo_5fexit_65',['arax_object_repo_exit',['../a01922.html#a305682d9ee7b1c993dbf64d4f3de2d9f',1,'arax_object_repo_exit(arax_object_repo_s *repo): arax_object.c'],['../a01412.html#a305682d9ee7b1c993dbf64d4f3de2d9f',1,'arax_object_repo_exit(arax_object_repo_s *repo): arax_object.c']]], + ['arax_5fobject_5frepo_5finit_66',['arax_object_repo_init',['../a01922.html#a86352ba91ba482c6688b7364d10bf956',1,'arax_object_repo_init(arax_object_repo_s *repo, arax_pipe_s *pipe): arax_object.c'],['../a01412.html#a86352ba91ba482c6688b7364d10bf956',1,'arax_object_repo_init(arax_object_repo_s *repo, arax_pipe_s *pipe): arax_object.c']]], + ['arax_5fobject_5ftype_5fto_5fstr_67',['arax_object_type_to_str',['../a01922.html#a668fd893484b6e2d67d8b372b508d14f',1,'arax_object_type_to_str(arax_object_type_e type): arax_object.c'],['../a01412.html#a668fd893484b6e2d67d8b372b508d14f',1,'arax_object_type_to_str(arax_object_type_e type): arax_object.c']]], + ['arax_5fpipe_5fadd_5forphan_5fvaccel_68',['arax_pipe_add_orphan_vaccel',['../a01925.html#aa4461ab1d225a0f76f08d2f37a4a7e0e',1,'arax_pipe_add_orphan_vaccel(arax_pipe_s *pipe, arax_vaccel_s *vac): arax_pipe.c'],['../a01358.html#aa4461ab1d225a0f76f08d2f37a4a7e0e',1,'arax_pipe_add_orphan_vaccel(arax_pipe_s *pipe, arax_vaccel_s *vac): arax_pipe.c']]], + ['arax_5fpipe_5fadd_5fprocess_69',['arax_pipe_add_process',['../a01358.html#a60dde947b05bc69599a6c7d92c38d088',1,'arax_pipe_add_process(arax_pipe_s *pipe): arax_pipe.c'],['../a01925.html#a60dde947b05bc69599a6c7d92c38d088',1,'arax_pipe_add_process(arax_pipe_s *pipe): arax_pipe.c']]], + ['arax_5fpipe_5fdel_5fprocess_70',['arax_pipe_del_process',['../a01925.html#aedd2ffbe2275e3b8c2fc97a003ee7380',1,'arax_pipe_del_process(arax_pipe_s *pipe): arax_pipe.c'],['../a01358.html#aedd2ffbe2275e3b8c2fc97a003ee7380',1,'arax_pipe_del_process(arax_pipe_s *pipe): arax_pipe.c']]], + ['arax_5fpipe_5fdelete_5faccel_71',['arax_pipe_delete_accel',['../a01925.html#aa0862a60d187bfed0cfa11bf27174551',1,'arax_pipe_delete_accel(arax_pipe_s *pipe, arax_accel_s *accel): arax_pipe.c'],['../a01358.html#aa0862a60d187bfed0cfa11bf27174551',1,'arax_pipe_delete_accel(arax_pipe_s *pipe, arax_accel_s *accel): arax_pipe.c']]], + ['arax_5fpipe_5fexit_72',['arax_pipe_exit',['../a01925.html#a79b763e71a5ae1e57f78c008e7c1135c',1,'arax_pipe_exit(arax_pipe_s *pipe): arax_pipe.c'],['../a01358.html#a79b763e71a5ae1e57f78c008e7c1135c',1,'arax_pipe_exit(arax_pipe_s *pipe): arax_pipe.c']]], + ['arax_5fpipe_5ffind_5faccel_73',['arax_pipe_find_accel',['../a01925.html#ac2e1e32dc603394aecede365f454c8c4',1,'arax_pipe_find_accel(arax_pipe_s *pipe, const char *name, arax_accel_type_e type): arax_pipe.c'],['../a01358.html#ac2e1e32dc603394aecede365f454c8c4',1,'arax_pipe_find_accel(arax_pipe_s *pipe, const char *name, arax_accel_type_e type): arax_pipe.c']]], + ['arax_5fpipe_5ffind_5fproc_74',['arax_pipe_find_proc',['../a01925.html#a4c22ae41507232dc3efc725428cbfc7b',1,'arax_pipe_find_proc(arax_pipe_s *pipe, const char *name): arax_pipe.c'],['../a01358.html#a4c22ae41507232dc3efc725428cbfc7b',1,'arax_pipe_find_proc(arax_pipe_s *pipe, const char *name): arax_pipe.c']]], + ['arax_5fpipe_5fget_5favailable_5fsize_75',['arax_pipe_get_available_size',['../a01925.html#a94ce6437cad359c8523f57fe50be020d',1,'arax_pipe_get_available_size(arax_pipe_s *pipe): arax_pipe.c'],['../a01358.html#a94ce6437cad359c8523f57fe50be020d',1,'arax_pipe_get_available_size(arax_pipe_s *pipe): arax_pipe.c']]], + ['arax_5fpipe_5fget_5forphan_5fvaccel_76',['arax_pipe_get_orphan_vaccel',['../a01925.html#a8ff14a859f9b7a34676c2fcdb762386b',1,'arax_pipe_get_orphan_vaccel(arax_pipe_s *pipe): arax_pipe.c'],['../a01358.html#a8ff14a859f9b7a34676c2fcdb762386b',1,'arax_pipe_get_orphan_vaccel(arax_pipe_s *pipe): arax_pipe.c']]], + ['arax_5fpipe_5fget_5frevision_77',['arax_pipe_get_revision',['../a01925.html#a588019fd47a5925847934e4c6fa6711a',1,'arax_pipe_get_revision(arax_pipe_s *pipe): arax_pipe.c'],['../a01358.html#a588019fd47a5925847934e4c6fa6711a',1,'arax_pipe_get_revision(arax_pipe_s *pipe): arax_pipe.c']]], + ['arax_5fpipe_5fget_5ftotal_5fsize_78',['arax_pipe_get_total_size',['../a01925.html#a59aa16caa6dfcec85af956b42b33a0fa',1,'arax_pipe_get_total_size(arax_pipe_s *pipe): arax_pipe.c'],['../a01358.html#a59aa16caa6dfcec85af956b42b33a0fa',1,'arax_pipe_get_total_size(arax_pipe_s *pipe): arax_pipe.c']]], + ['arax_5fpipe_5fhave_5forphan_5fvaccels_79',['arax_pipe_have_orphan_vaccels',['../a01358.html#a186712b2a923d4bda1be98de189bc0f9',1,'arax_pipe_have_orphan_vaccels(arax_pipe_s *pipe): arax_pipe.c'],['../a01925.html#a186712b2a923d4bda1be98de189bc0f9',1,'arax_pipe_have_orphan_vaccels(arax_pipe_s *pipe): arax_pipe.c']]], + ['arax_5fpipe_5fhave_5fto_5fmmap_80',['arax_pipe_have_to_mmap',['../a01925.html#a5006bea23d2b9964f0f7c12947180e01',1,'arax_pipe_have_to_mmap(arax_pipe_s *pipe, int pid): arax_pipe.c'],['../a01358.html#a5006bea23d2b9964f0f7c12947180e01',1,'arax_pipe_have_to_mmap(arax_pipe_s *pipe, int pid): arax_pipe.c']]], + ['arax_5fpipe_5finit_81',['arax_pipe_init',['../a01925.html#aa6293e9ec7776aa49ecf632fcc4f5e26',1,'arax_pipe_init(void *mem, size_t size, int enforce_version): arax_pipe.c'],['../a01358.html#aa6293e9ec7776aa49ecf632fcc4f5e26',1,'arax_pipe_init(void *mem, size_t size, int enforce_version): arax_pipe.c']]], + ['arax_5fpipe_5fmark_5funmap_82',['arax_pipe_mark_unmap',['../a01925.html#a8b36751c1bdab169e4735143d3712a09',1,'arax_pipe_mark_unmap(arax_pipe_s *pipe, int pid): arax_pipe.c'],['../a01358.html#a8b36751c1bdab169e4735143d3712a09',1,'arax_pipe_mark_unmap(arax_pipe_s *pipe, int pid): arax_pipe.c']]], + ['arax_5fpipe_5fmmap_5faddress_83',['arax_pipe_mmap_address',['../a01925.html#a8d805b003097be6a6328a35c78bf558b',1,'arax_pipe_mmap_address(arax_pipe_s *pipe): arax_pipe.c'],['../a01358.html#a8d805b003097be6a6328a35c78bf558b',1,'arax_pipe_mmap_address(arax_pipe_s *pipe): arax_pipe.c']]], + ['arax_5fpipe_5forphan_5fstop_84',['arax_pipe_orphan_stop',['../a01925.html#a6cb53dd71cfaedb214bc5aef0e572cc2',1,'arax_pipe_orphan_stop(arax_pipe_s *pipe): arax_pipe.c'],['../a01358.html#a6cb53dd71cfaedb214bc5aef0e572cc2',1,'arax_pipe_orphan_stop(arax_pipe_s *pipe): arax_pipe.c']]], + ['arax_5fpipe_5fremove_5forphan_5fvaccel_85',['arax_pipe_remove_orphan_vaccel',['../a01925.html#aa5172b735dddd3f77fbb0265bbcdfc20',1,'arax_pipe_remove_orphan_vaccel(arax_pipe_s *pipe, arax_vaccel_s *vac): arax_pipe.c'],['../a01358.html#aa5172b735dddd3f77fbb0265bbcdfc20',1,'arax_pipe_remove_orphan_vaccel(arax_pipe_s *pipe, arax_vaccel_s *vac): arax_pipe.c']]], + ['arax_5fpipe_5fsize_5fdec_86',['arax_pipe_size_dec',['../a01925.html#a1cfa2c90268c6e53ce376beb7cce153c',1,'arax_pipe_size_dec(arax_pipe_s *pipe, size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS): arax_pipe.c'],['../a01358.html#a1cfa2c90268c6e53ce376beb7cce153c',1,'arax_pipe_size_dec(arax_pipe_s *pipe, size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS): arax_pipe.c']]], + ['arax_5fpipe_5fsize_5finc_87',['arax_pipe_size_inc',['../a01925.html#a5144f906658718ef853a8d18dda1e724',1,'arax_pipe_size_inc(arax_pipe_s *pipe, size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS): arax_pipe.c'],['../a01358.html#a5144f906658718ef853a8d18dda1e724',1,'arax_pipe_size_inc(arax_pipe_s *pipe, size_t sz ARAX_PIPE_THOTTLE_DEBUG_PARAMS): arax_pipe.c']]], + ['arax_5fplot_5fregister_5fmetric_88',['arax_plot_register_metric',['../a01949.html#a8a99bcb12e2ee55d68a029bfca9b6d51',1,'arax_plot_register_metric(const char *name, uint64_t *metric): arax_plot.c'],['../a01373.html#a8a99bcb12e2ee55d68a029bfca9b6d51',1,'arax_plot_register_metric(const char *name, uint64_t *metric): arax_plot.c']]], + ['arax_5fproc_5fcan_5frun_5fat_89',['arax_proc_can_run_at',['../a01928.html#ab52a257305ef35f9fb9ebc0fdfe4b81c',1,'arax_proc_can_run_at(arax_proc_s *proc, arax_accel_type_e type): arax_proc.c'],['../a01415.html#ab52a257305ef35f9fb9ebc0fdfe4b81c',1,'arax_proc_can_run_at(arax_proc_s *proc, arax_accel_type_e type): arax_proc.c']]], + ['arax_5fproc_5fget_90',['arax_proc_get',['../a02176.html#ga739047efb2b454e6c1ac54138ef2985d',1,'arax_proc_get(const char *func_name): impl.c'],['../a02176.html#ga739047efb2b454e6c1ac54138ef2985d',1,'arax_proc_get(const char *func_name): impl.c']]], + ['arax_5fproc_5fget_5ffunctor_91',['arax_proc_get_functor',['../a01928.html#a30352290ef80c644620afca91f719cfe',1,'arax_proc_get_functor(arax_proc_s *proc, arax_accel_type_e type): arax_proc.c'],['../a01415.html#a30352290ef80c644620afca91f719cfe',1,'arax_proc_get_functor(arax_proc_s *proc, arax_accel_type_e type): arax_proc.c']]], + ['arax_5fproc_5finit_92',['arax_proc_init',['../a01928.html#a86ac572ea8f5f613129192c47d598818',1,'arax_proc_init(arax_object_repo_s *repo, const char *name): arax_proc.c'],['../a01415.html#a86ac572ea8f5f613129192c47d598818',1,'arax_proc_init(arax_object_repo_s *repo, const char *name): arax_proc.c']]], + ['arax_5fproc_5fput_93',['arax_proc_put',['../a02176.html#ga70242aa6d9591e5fa3dbb36f1e27a896',1,'arax_proc_put(arax_proc *func): impl.c'],['../a02176.html#ga70242aa6d9591e5fa3dbb36f1e27a896',1,'arax_proc_put(arax_proc *func): impl.c']]], + ['arax_5fproc_5fregister_94',['arax_proc_register',['../a02176.html#gafad2dafb4a231390f02b7c866295b7d9',1,'arax_proc_register(const char *func_name): impl.c'],['../a02176.html#gafad2dafb4a231390f02b7c866295b7d9',1,'arax_proc_register(const char *func_name): impl.c']]], + ['arax_5fproc_5fset_5ffunctor_95',['arax_proc_set_functor',['../a01928.html#ae67ebc6d04dedfc104b4a61233d6eab4',1,'arax_proc_set_functor(arax_proc_s *proc, arax_accel_type_e type, AraxFunctor *vfn): arax_proc.c'],['../a01415.html#ae67ebc6d04dedfc104b4a61233d6eab4',1,'arax_proc_set_functor(arax_proc_s *proc, arax_accel_type_e type, AraxFunctor *vfn): arax_proc.c']]], + ['arax_5fptr_5fvalid_96',['arax_ptr_valid',['../a01418.html#a639e69ccc46ae7f3d6b9992866040bf9',1,'arax_ptr_valid(const void *ptr): arax_ptr.c'],['../a01931.html#a80ab3bf4a8af9bb101b5a53248609771',1,'arax_ptr_valid(const void *ptr): arax_ptr.c']]], + ['arax_5ftask_5falloc_97',['arax_task_alloc',['../a01934.html#a27bee94f7a23281c8b2b72ec433f6059',1,'arax_task_alloc(arax_pipe_s *vpipe, arax_accel *accel, arax_proc *proc, size_t host_size, int ins, arax_data **dev_in, int outs, arax_data **dev_out): arax_task.c'],['../a01421.html#a27bee94f7a23281c8b2b72ec433f6059',1,'arax_task_alloc(arax_pipe_s *vpipe, arax_accel *accel, arax_proc *proc, size_t host_size, int ins, arax_data **dev_in, int outs, arax_data **dev_out): arax_task.c']]], + ['arax_5ftask_5ffree_98',['arax_task_free',['../a02177.html#ga55195957c1cde1508257782716aa6db3',1,'arax_task_free(arax_task *task): impl.c'],['../a02177.html#ga55195957c1cde1508257782716aa6db3',1,'arax_task_free(arax_task *task): impl.c']]], + ['arax_5ftask_5fhost_5fdata_99',['arax_task_host_data',['../a01934.html#aa3cb73b347940187fb3399f51b1a55b7',1,'arax_task_host_data(arax_task_msg_s *task, size_t size): arax_task.c'],['../a01421.html#aa3cb73b347940187fb3399f51b1a55b7',1,'arax_task_host_data(arax_task_msg_s *task, size_t size): arax_task.c']]], + ['arax_5ftask_5fissue_100',['arax_task_issue',['../a02177.html#gac9f0f3fbb14da879d3ff09bd367bbb24',1,'arax_task_issue(arax_accel *accel, arax_proc *proc, const void *host_init, size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count, arax_data **dev_out): impl.c'],['../a02177.html#gac9f0f3fbb14da879d3ff09bd367bbb24',1,'arax_task_issue(arax_accel *accel, arax_proc *proc, const void *host_init, size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count, arax_data **dev_out): impl.c']]], + ['arax_5ftask_5fissue_5fsync_101',['arax_task_issue_sync',['../a02177.html#ga1418f4cd7336bf77cce7b955a1bf7077',1,'arax_task_issue_sync(arax_accel *accel, arax_proc *proc, void *host_init, size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count, arax_data **dev_out): impl.c'],['../a02177.html#ga1418f4cd7336bf77cce7b955a1bf7077',1,'arax_task_issue_sync(arax_accel *accel, arax_proc *proc, void *host_init, size_t host_size, size_t in_count, arax_data **dev_in, size_t out_count, arax_data **dev_out): impl.c']]], + ['arax_5ftask_5fmark_5fdone_102',['arax_task_mark_done',['../a01934.html#a46456b4307a70983ebe554fa712d856e',1,'arax_task_mark_done(arax_task_msg_s *msg, arax_task_state_e state): arax_task.c'],['../a01421.html#a46456b4307a70983ebe554fa712d856e',1,'arax_task_mark_done(arax_task_msg_s *msg, arax_task_state_e state): arax_task.c']]], + ['arax_5ftask_5fstat_103',['arax_task_stat',['../a02177.html#gafd8ed07de431241d4a3e20ddb1eaede5',1,'arax_task_stat(arax_task *task, arax_task_stats_s *stats): impl.c'],['../a02177.html#gafd8ed07de431241d4a3e20ddb1eaede5',1,'arax_task_stat(arax_task *task, arax_task_stats_s *stats): impl.c']]], + ['arax_5ftask_5fsubmit_104',['arax_task_submit',['../a01934.html#ace08f924cb86d1310099621564536657',1,'arax_task_submit(arax_task_msg_s *task): arax_task.c'],['../a01421.html#ace08f924cb86d1310099621564536657',1,'arax_task_submit(arax_task_msg_s *task): arax_task.c']]], + ['arax_5ftask_5fwait_105',['arax_task_wait',['../a02177.html#gacb098c0a8c3908f3fdd32e7ea7d780bb',1,'arax_task_wait(arax_task *task): impl.c'],['../a02177.html#gacb098c0a8c3908f3fdd32e7ea7d780bb',1,'arax_task_wait(arax_task *task): impl.c']]], + ['arax_5ftask_5fwait_5fdone_106',['arax_task_wait_done',['../a01934.html#a0d3707df989265f8cf380acdef95eb02',1,'arax_task_wait_done(arax_task_msg_s *msg): arax_task.c'],['../a01421.html#a0d3707df989265f8cf380acdef95eb02',1,'arax_task_wait_done(arax_task_msg_s *msg): arax_task.c']]], + ['arax_5fthrottle_5fget_5favailable_5fsize_107',['arax_throttle_get_available_size',['../a01937.html#a078da9ec8e2f9a4470f10ee3059bd593',1,'arax_throttle_get_available_size(arax_throttle_s *thr): arax_throttle.c'],['../a01424.html#a078da9ec8e2f9a4470f10ee3059bd593',1,'arax_throttle_get_available_size(arax_throttle_s *thr): arax_throttle.c']]], + ['arax_5fthrottle_5fget_5ftotal_5fsize_108',['arax_throttle_get_total_size',['../a01937.html#af11f2d1dc9f842b2eed7aa7e80607e29',1,'arax_throttle_get_total_size(arax_throttle_s *thr): arax_throttle.c'],['../a01424.html#af11f2d1dc9f842b2eed7aa7e80607e29',1,'arax_throttle_get_total_size(arax_throttle_s *thr): arax_throttle.c']]], + ['arax_5fthrottle_5finit_109',['arax_throttle_init',['../a01937.html#acf84ea82594c4dbe91cf602ee078e04d',1,'arax_throttle_init(async_meta_s *meta, arax_throttle_s *thr, size_t a_sz, size_t t_sz): arax_throttle.c'],['../a01424.html#acf84ea82594c4dbe91cf602ee078e04d',1,'arax_throttle_init(async_meta_s *meta, arax_throttle_s *thr, size_t a_sz, size_t t_sz): arax_throttle.c']]], + ['arax_5fthrottle_5fsize_5fdec_110',['arax_throttle_size_dec',['../a01937.html#a8413a3584787f9b629e54b2ef9439f06',1,'arax_throttle_size_dec(arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS): arax_throttle.c'],['../a01424.html#a8413a3584787f9b629e54b2ef9439f06',1,'arax_throttle_size_dec(arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS): arax_throttle.c']]], + ['arax_5fthrottle_5fsize_5finc_111',['arax_throttle_size_inc',['../a01937.html#a22aaf13eb56eb1832e725ef73236116f',1,'arax_throttle_size_inc(arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS): arax_throttle.c'],['../a01424.html#a22aaf13eb56eb1832e725ef73236116f',1,'arax_throttle_size_inc(arax_throttle_s *thr, size_t sz ARAX_THROTTLE_DEBUG_PARAMS): arax_throttle.c']]], + ['arax_5fummap_112',['arax_ummap',['../a01364.html#a169e798e54b8e0933d5c39960d6c2ad3',1,'arax_ummap(void *a, size_t s): alloc.c'],['../a02343.html#a169e798e54b8e0933d5c39960d6c2ad3',1,'arax_ummap(void *a, size_t s): alloc.c'],['../a02340.html#a169e798e54b8e0933d5c39960d6c2ad3',1,'arax_ummap(void *a, size_t s): alloc.c']]], + ['arax_5fvaccel_5fadd_5ftask_113',['arax_vaccel_add_task',['../a01940.html#a8b82433bc8c7d7f03683ac521a3679fa',1,'arax_vaccel_add_task(arax_vaccel_s *accel, arax_task *task): arax_vaccel.c'],['../a01427.html#a8b82433bc8c7d7f03683ac521a3679fa',1,'arax_vaccel_add_task(arax_vaccel_s *accel, arax_task *task): arax_vaccel.c']]], + ['arax_5fvaccel_5fget_5fcid_114',['arax_vaccel_get_cid',['../a01940.html#af12d44b99e9b5395769bf76b715be58f',1,'arax_vaccel_get_cid(arax_vaccel_s *vaccel): arax_vaccel.c'],['../a01427.html#af12d44b99e9b5395769bf76b715be58f',1,'arax_vaccel_get_cid(arax_vaccel_s *vaccel): arax_vaccel.c']]], + ['arax_5fvaccel_5fget_5fjob_5fpriority_115',['arax_vaccel_get_job_priority',['../a01940.html#a7eb20e8715e77bf9c5a47e3aa4711314',1,'arax_vaccel_get_job_priority(arax_vaccel_s *vaccel): arax_vaccel.c'],['../a01427.html#a7eb20e8715e77bf9c5a47e3aa4711314',1,'arax_vaccel_get_job_priority(arax_vaccel_s *vaccel): arax_vaccel.c']]], + ['arax_5fvaccel_5fget_5fmeta_116',['arax_vaccel_get_meta',['../a01940.html#accc6582256ba828c8923ee7097794025',1,'arax_vaccel_get_meta(arax_vaccel_s *vaccel): arax_vaccel.c'],['../a01427.html#accc6582256ba828c8923ee7097794025',1,'arax_vaccel_get_meta(arax_vaccel_s *vaccel): arax_vaccel.c']]], + ['arax_5fvaccel_5fget_5fordering_117',['arax_vaccel_get_ordering',['../a01940.html#aefa3f898f78179a031580ba98e5d8e8b',1,'arax_vaccel_get_ordering(arax_accel_s *accel): arax_vaccel.c'],['../a01427.html#aefa3f898f78179a031580ba98e5d8e8b',1,'arax_vaccel_get_ordering(arax_accel_s *accel): arax_vaccel.c']]], + ['arax_5fvaccel_5fget_5fstat_118',['arax_vaccel_get_stat',['../a01940.html#a3e57dc466fca84c701d8fd6a84cb6789',1,'arax_vaccel_get_stat(arax_vaccel_s *accel, arax_accel_stats_s *stat): arax_vaccel.c'],['../a01427.html#a3e57dc466fca84c701d8fd6a84cb6789',1,'arax_vaccel_get_stat(arax_vaccel_s *accel, arax_accel_stats_s *stat): arax_vaccel.c']]], + ['arax_5fvaccel_5finit_119',['arax_vaccel_init',['../a01940.html#a83ddb422946cf774c687c1ab63dcda15',1,'arax_vaccel_init(arax_pipe_s *pipe, const char *name, arax_accel_type_e type, arax_accel_s *accel): arax_vaccel.c'],['../a01427.html#a83ddb422946cf774c687c1ab63dcda15',1,'arax_vaccel_init(arax_pipe_s *pipe, const char *name, arax_accel_type_e type, arax_accel_s *accel): arax_vaccel.c']]], + ['arax_5fvaccel_5fqueue_120',['arax_vaccel_queue',['../a01940.html#afe1eb3edd264c847c36e9456b2598452',1,'arax_vaccel_queue(arax_vaccel_s *vaccel): arax_vaccel.c'],['../a01427.html#afe1eb3edd264c847c36e9456b2598452',1,'arax_vaccel_queue(arax_vaccel_s *vaccel): arax_vaccel.c']]], + ['arax_5fvaccel_5fqueue_5fsize_121',['arax_vaccel_queue_size',['../a01427.html#ab2fa3d6e6c761009b464cc0fbedc6a16',1,'arax_vaccel_queue_size(arax_vaccel_s *vaccel): arax_vaccel.c'],['../a01940.html#ab2fa3d6e6c761009b464cc0fbedc6a16',1,'arax_vaccel_queue_size(arax_vaccel_s *vaccel): arax_vaccel.c']]], + ['arax_5fvaccel_5fset_5fcid_122',['arax_vaccel_set_cid',['../a01940.html#a8db841ad4f66a98cdabb93e225171ef9',1,'arax_vaccel_set_cid(arax_vaccel_s *vaccel, uint64_t cid): arax_vaccel.c'],['../a01427.html#a8db841ad4f66a98cdabb93e225171ef9',1,'arax_vaccel_set_cid(arax_vaccel_s *vaccel, uint64_t cid): arax_vaccel.c']]], + ['arax_5fvaccel_5fset_5fjob_5fpriority_123',['arax_vaccel_set_job_priority',['../a01940.html#af43eab5b91521d30c3a1d6479eaf54ba',1,'arax_vaccel_set_job_priority(arax_vaccel_s *vaccel, uint64_t priority): arax_vaccel.c'],['../a01427.html#af43eab5b91521d30c3a1d6479eaf54ba',1,'arax_vaccel_set_job_priority(arax_vaccel_s *vaccel, uint64_t priority): arax_vaccel.c']]], + ['arax_5fvaccel_5fset_5fmeta_124',['arax_vaccel_set_meta',['../a01940.html#ac1dea15aece3efa7ce132c1a0397c92b',1,'arax_vaccel_set_meta(arax_vaccel_s *vaccel, void *meta): arax_vaccel.c'],['../a01427.html#ac1dea15aece3efa7ce132c1a0397c92b',1,'arax_vaccel_set_meta(arax_vaccel_s *vaccel, void *meta): arax_vaccel.c']]], + ['arax_5fvaccel_5fset_5fordering_125',['arax_vaccel_set_ordering',['../a01940.html#af3b4130b235af37da59a29fd16c0398d',1,'arax_vaccel_set_ordering(arax_accel_s *accel, arax_accel_ordering_e ordering): arax_vaccel.c'],['../a01427.html#af3b4130b235af37da59a29fd16c0398d',1,'arax_vaccel_set_ordering(arax_accel_s *accel, arax_accel_ordering_e ordering): arax_vaccel.c']]], + ['arch_5falloc_5fallocate_126',['arch_alloc_allocate',['../a02343.html#ac9828b5c2758940f6d3c7d4335228de5',1,'arch_alloc_allocate(arch_alloc_s *_alloc, size_t size): alloc.c'],['../a01364.html#a6b7a76d9da9e24d1dd4f8fc768b342b0',1,'arch_alloc_allocate(arch_alloc_s *alloc, size_t size): alloc.c'],['../a02340.html#ac9828b5c2758940f6d3c7d4335228de5',1,'arch_alloc_allocate(arch_alloc_s *_alloc, size_t size): alloc.c']]], + ['arch_5falloc_5fcreate_5fsub_5falloc_127',['arch_alloc_create_sub_alloc',['../a02340.html#a32b9155cb5133ef21023a1ff4653bf04',1,'arch_alloc_create_sub_alloc(arch_alloc_s *parent): alloc.c'],['../a02343.html#a32b9155cb5133ef21023a1ff4653bf04',1,'arch_alloc_create_sub_alloc(arch_alloc_s *parent): alloc.c'],['../a01364.html#a32b9155cb5133ef21023a1ff4653bf04',1,'arch_alloc_create_sub_alloc(arch_alloc_s *parent): alloc.c']]], + ['arch_5falloc_5fexit_128',['arch_alloc_exit',['../a01364.html#aae81034fc3fcc43abca5e10db42a7d81',1,'arch_alloc_exit(arch_alloc_s *alloc): alloc.c'],['../a02340.html#a726fb6388e92c5d82c9d5750fee1a7fb',1,'arch_alloc_exit(arch_alloc_s *_alloc): alloc.c'],['../a02343.html#a726fb6388e92c5d82c9d5750fee1a7fb',1,'arch_alloc_exit(arch_alloc_s *_alloc): alloc.c']]], + ['arch_5falloc_5fget_5fbitmap_129',['arch_alloc_get_bitmap',['../a01364.html#a4c8fda139857abec3429d4d00f8a725c',1,'arch_alloc_get_bitmap(): alloc.c'],['../a02340.html#a4c8fda139857abec3429d4d00f8a725c',1,'arch_alloc_get_bitmap(): alloc.c'],['../a02343.html#a4c8fda139857abec3429d4d00f8a725c',1,'arch_alloc_get_bitmap(): alloc.c']]], + ['arch_5falloc_5finit_5falways_130',['arch_alloc_init_always',['../a02343.html#a75bfaa5e934f1853fc8fd536ea469ad9',1,'arch_alloc_init_always(arch_alloc_s *alloc): alloc.c'],['../a02340.html#a75bfaa5e934f1853fc8fd536ea469ad9',1,'arch_alloc_init_always(arch_alloc_s *alloc): alloc.c'],['../a01364.html#a75bfaa5e934f1853fc8fd536ea469ad9',1,'arch_alloc_init_always(arch_alloc_s *alloc): alloc.c']]], + ['arch_5falloc_5finit_5fonce_131',['arch_alloc_init_once',['../a01364.html#a3c628cf674eb8ffcf515df963220fb84',1,'arch_alloc_init_once(arch_alloc_s *alloc, size_t size): alloc.c'],['../a02340.html#a44fec37f87bcd49aaacc97696f9e0e7d',1,'arch_alloc_init_once(arch_alloc_s *_alloc, size_t size): alloc.c'],['../a02343.html#a44fec37f87bcd49aaacc97696f9e0e7d',1,'arch_alloc_init_once(arch_alloc_s *_alloc, size_t size): alloc.c']]], + ['arch_5falloc_5finspect_132',['arch_alloc_inspect',['../a01364.html#a786db7497e30f72feef2ebcbc75fb775',1,'arch_alloc_inspect(arch_alloc_s *alloc, void(*inspector)(void *start, void *end, size_t size, void *arg), void *arg): alloc.c'],['../a02340.html#a6f21f41c6c1797ff0b8754fb046f3dbc',1,'arch_alloc_inspect(arch_alloc_s *_alloc, void(*inspector)(void *start, void *end, size_t size, void *arg), void *arg): alloc.c'],['../a02343.html#a6f21f41c6c1797ff0b8754fb046f3dbc',1,'arch_alloc_inspect(arch_alloc_s *_alloc, void(*inspector)(void *start, void *end, size_t size, void *arg), void *arg): alloc.c']]], + ['arch_5falloc_5fstats_133',['arch_alloc_stats',['../a01364.html#a4a62fff2d911326edc6b805afccbfb6b',1,'arch_alloc_stats(arch_alloc_s *alloc): alloc.c'],['../a02340.html#a687bef36a598f3a197afea8e055e6608',1,'arch_alloc_stats(arch_alloc_s *_alloc): alloc.c'],['../a02343.html#a687bef36a598f3a197afea8e055e6608',1,'arch_alloc_stats(arch_alloc_s *_alloc): alloc.c']]], + ['async_5fcompletion_5fcheck_134',['async_completion_check',['../a01433.html#ae66ae81847153386c57918f4d91be8a7',1,'async_completion_check(async_completion_s *completion): async.c'],['../a02352.html#ae66ae81847153386c57918f4d91be8a7',1,'async_completion_check(async_completion_s *completion): async.c'],['../a02346.html#ae66ae81847153386c57918f4d91be8a7',1,'async_completion_check(async_completion_s *completion): async.c'],['../a02349.html#ae66ae81847153386c57918f4d91be8a7',1,'async_completion_check(async_completion_s *completion): async.c']]], + ['async_5fcompletion_5fcomplete_135',['async_completion_complete',['../a01433.html#ad1d30ecbf6bff6457b680aa940281072',1,'async_completion_complete(async_completion_s *completion): async.c'],['../a02346.html#ad1d30ecbf6bff6457b680aa940281072',1,'async_completion_complete(async_completion_s *completion): async.c'],['../a02349.html#ad1d30ecbf6bff6457b680aa940281072',1,'async_completion_complete(async_completion_s *completion): async.c'],['../a02352.html#ad1d30ecbf6bff6457b680aa940281072',1,'async_completion_complete(async_completion_s *completion): async.c']]], + ['async_5fcompletion_5finit_136',['async_completion_init',['../a01433.html#ac728117d73179c279de49e01ae905dda',1,'async_completion_init(async_meta_s *meta, async_completion_s *completion): async.c'],['../a02346.html#ac728117d73179c279de49e01ae905dda',1,'async_completion_init(async_meta_s *meta, async_completion_s *completion): async.c'],['../a02349.html#ac728117d73179c279de49e01ae905dda',1,'async_completion_init(async_meta_s *meta, async_completion_s *completion): async.c'],['../a02352.html#ac728117d73179c279de49e01ae905dda',1,'async_completion_init(async_meta_s *meta, async_completion_s *completion): async.c']]], + ['async_5fcompletion_5fwait_137',['async_completion_wait',['../a01433.html#aebf9e72bb6cbd8b9e33489d46c25075d',1,'async_completion_wait(async_completion_s *completion): async.c'],['../a02352.html#aebf9e72bb6cbd8b9e33489d46c25075d',1,'async_completion_wait(async_completion_s *completion): async.c'],['../a02349.html#aebf9e72bb6cbd8b9e33489d46c25075d',1,'async_completion_wait(async_completion_s *completion): async.c'],['../a02346.html#aebf9e72bb6cbd8b9e33489d46c25075d',1,'async_completion_wait(async_completion_s *completion): async.c']]], + ['async_5fcondition_5finit_138',['async_condition_init',['../a01433.html#ac7fbf1f43289d3e0e862b315f00e35e2',1,'async_condition_init(async_meta_s *meta, async_condition_s *cond): async.c'],['../a02346.html#ac7fbf1f43289d3e0e862b315f00e35e2',1,'async_condition_init(async_meta_s *meta, async_condition_s *cond): async.c'],['../a02349.html#ac7fbf1f43289d3e0e862b315f00e35e2',1,'async_condition_init(async_meta_s *meta, async_condition_s *cond): async.c'],['../a02352.html#ac7fbf1f43289d3e0e862b315f00e35e2',1,'async_condition_init(async_meta_s *meta, async_condition_s *cond): async.c']]], + ['async_5fcondition_5flock_139',['async_condition_lock',['../a02352.html#aed6af4d83e934e3e654ead541b15f2d9',1,'async_condition_lock(async_condition_s *cond): async.c'],['../a02346.html#aed6af4d83e934e3e654ead541b15f2d9',1,'async_condition_lock(async_condition_s *cond): async.c'],['../a01433.html#aed6af4d83e934e3e654ead541b15f2d9',1,'async_condition_lock(async_condition_s *cond): async.c'],['../a02349.html#aed6af4d83e934e3e654ead541b15f2d9',1,'async_condition_lock(async_condition_s *cond): async.c']]], + ['async_5fcondition_5fnotify_140',['async_condition_notify',['../a01433.html#a45a896fb606c2aa66a5a4c2af59ce494',1,'async_condition_notify(async_condition_s *cond): async.c'],['../a02346.html#a45a896fb606c2aa66a5a4c2af59ce494',1,'async_condition_notify(async_condition_s *cond): async.c'],['../a02349.html#a45a896fb606c2aa66a5a4c2af59ce494',1,'async_condition_notify(async_condition_s *cond): async.c'],['../a02352.html#a45a896fb606c2aa66a5a4c2af59ce494',1,'async_condition_notify(async_condition_s *cond): async.c']]], + ['async_5fcondition_5funlock_141',['async_condition_unlock',['../a01433.html#a3bbcb7c4c024e99d5c4ba52b61dfbbf7',1,'async_condition_unlock(async_condition_s *cond): async.c'],['../a02346.html#a3bbcb7c4c024e99d5c4ba52b61dfbbf7',1,'async_condition_unlock(async_condition_s *cond): async.c'],['../a02349.html#a3bbcb7c4c024e99d5c4ba52b61dfbbf7',1,'async_condition_unlock(async_condition_s *cond): async.c'],['../a02352.html#a3bbcb7c4c024e99d5c4ba52b61dfbbf7',1,'async_condition_unlock(async_condition_s *cond): async.c']]], + ['async_5fcondition_5fwait_142',['async_condition_wait',['../a01433.html#a1bfeaeb9b81855e640d7a67cc9d92b17',1,'async_condition_wait(async_condition_s *cond): async.c'],['../a02352.html#a1bfeaeb9b81855e640d7a67cc9d92b17',1,'async_condition_wait(async_condition_s *cond): async.c'],['../a02349.html#a1bfeaeb9b81855e640d7a67cc9d92b17',1,'async_condition_wait(async_condition_s *cond): async.c'],['../a02346.html#a1bfeaeb9b81855e640d7a67cc9d92b17',1,'async_condition_wait(async_condition_s *cond): async.c']]], + ['async_5fmeta_5fexit_143',['async_meta_exit',['../a01433.html#afe9571a12debd9d75a0f8fb93420e268',1,'async_meta_exit(async_meta_s *meta): async.c'],['../a02346.html#afe9571a12debd9d75a0f8fb93420e268',1,'async_meta_exit(async_meta_s *meta): async.c'],['../a02349.html#afe9571a12debd9d75a0f8fb93420e268',1,'async_meta_exit(async_meta_s *meta): async.c'],['../a02352.html#afe9571a12debd9d75a0f8fb93420e268',1,'async_meta_exit(async_meta_s *meta): async.c']]], + ['async_5fmeta_5finit_5falways_144',['async_meta_init_always',['../a02352.html#adbaa29dfccfdfe6e3fe69a1d001c05b5',1,'async_meta_init_always(async_meta_s *meta): async.c'],['../a02349.html#adbaa29dfccfdfe6e3fe69a1d001c05b5',1,'async_meta_init_always(async_meta_s *meta): async.c'],['../a01433.html#adbaa29dfccfdfe6e3fe69a1d001c05b5',1,'async_meta_init_always(async_meta_s *meta): async.c'],['../a02346.html#adbaa29dfccfdfe6e3fe69a1d001c05b5',1,'async_meta_init_always(async_meta_s *meta): async.c']]], + ['async_5fmeta_5finit_5fonce_145',['async_meta_init_once',['../a01433.html#ab2e422aab2fcfa562795beb2843e8019',1,'async_meta_init_once(async_meta_s *meta, arch_alloc_s *alloc): async.c'],['../a02346.html#ab2e422aab2fcfa562795beb2843e8019',1,'async_meta_init_once(async_meta_s *meta, arch_alloc_s *alloc): async.c'],['../a02349.html#ab2e422aab2fcfa562795beb2843e8019',1,'async_meta_init_once(async_meta_s *meta, arch_alloc_s *alloc): async.c'],['../a02352.html#ab2e422aab2fcfa562795beb2843e8019',1,'async_meta_init_once(async_meta_s *meta, arch_alloc_s *alloc): async.c']]], + ['async_5fsemaphore_5fdec_146',['async_semaphore_dec',['../a01433.html#a7ab7c7fe9cb93434dde72a4e464a7e69',1,'async_semaphore_dec(async_semaphore_s *sem): async.c'],['../a02346.html#a7ab7c7fe9cb93434dde72a4e464a7e69',1,'async_semaphore_dec(async_semaphore_s *sem): async.c'],['../a02349.html#a7ab7c7fe9cb93434dde72a4e464a7e69',1,'async_semaphore_dec(async_semaphore_s *sem): async.c'],['../a02352.html#a7ab7c7fe9cb93434dde72a4e464a7e69',1,'async_semaphore_dec(async_semaphore_s *sem): async.c']]], + ['async_5fsemaphore_5finc_147',['async_semaphore_inc',['../a02346.html#a0fa370eee5160963e617d1daf1c07363',1,'async_semaphore_inc(async_semaphore_s *sem): async.c'],['../a02352.html#a0fa370eee5160963e617d1daf1c07363',1,'async_semaphore_inc(async_semaphore_s *sem): async.c'],['../a02349.html#a0fa370eee5160963e617d1daf1c07363',1,'async_semaphore_inc(async_semaphore_s *sem): async.c'],['../a01433.html#a0fa370eee5160963e617d1daf1c07363',1,'async_semaphore_inc(async_semaphore_s *sem): async.c']]], + ['async_5fsemaphore_5finit_148',['async_semaphore_init',['../a01433.html#a2a7d01fc7720e936a430efc09d094c6c',1,'async_semaphore_init(async_meta_s *meta, async_semaphore_s *sem): async.c'],['../a02346.html#a2a7d01fc7720e936a430efc09d094c6c',1,'async_semaphore_init(async_meta_s *meta, async_semaphore_s *sem): async.c'],['../a02349.html#a2a7d01fc7720e936a430efc09d094c6c',1,'async_semaphore_init(async_meta_s *meta, async_semaphore_s *sem): async.c'],['../a02352.html#a2a7d01fc7720e936a430efc09d094c6c',1,'async_semaphore_init(async_meta_s *meta, async_semaphore_s *sem): async.c']]], + ['async_5fsemaphore_5fvalue_149',['async_semaphore_value',['../a01433.html#a2ef839f9f321fe47ec15653d08cf4183',1,'async_semaphore_value(async_semaphore_s *sem): async.c'],['../a02346.html#a2ef839f9f321fe47ec15653d08cf4183',1,'async_semaphore_value(async_semaphore_s *sem): async.c'],['../a02349.html#a2ef839f9f321fe47ec15653d08cf4183',1,'async_semaphore_value(async_semaphore_s *sem): async.c'],['../a02352.html#a2ef839f9f321fe47ec15653d08cf4183',1,'async_semaphore_value(async_semaphore_s *sem): async.c']]], + ['async_5fthread_150',['async_thread',['../a02346.html#ab2195e0b081f467f8e058d1406bd4fc7',1,'async.c']]] +]; diff --git a/search/functions_2.js b/search/functions_2.js new file mode 100644 index 00000000..cb09fdd2 --- /dev/null +++ b/search/functions_2.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['change_5fmparam_0',['change_mparam',['../a01898.html#a99e26c45fc3b7bd05c627138d0d103fc',1,'malloc.c']]], + ['check_5fsemantics_1',['check_semantics',['../a01907.html#a226d4d420328a42fd671699ae60c4c3a',1,'impl.c']]], + ['conf_5fget_2',['conf_get',['../a01955.html#a8b687fb4c464903e23504eea3ddc3873',1,'config.c']]], + ['conf_5fset_3',['conf_set',['../a01955.html#ab87e9691e65d65348749f8dc70f24602',1,'config.c']]] +]; diff --git a/search/functions_3.js b/search/functions_3.js new file mode 100644 index 00000000..2f8058f5 --- /dev/null +++ b/search/functions_3.js @@ -0,0 +1,21 @@ +var searchData= +[ + ['dispose_5fchunk_0',['dispose_chunk',['../a01898.html#a2d20e33b2d417733503759c0594f882d',1,'malloc.c']]], + ['dlbulk_5ffree_1',['dlbulk_free',['../a01898.html#a23be60f836a753261abb7405344df378',1,'dlbulk_free(void **, size_t n_elements): malloc.c'],['../a01901.html#a9cd6aaddb8d233052b90826b60b9f346',1,'dlbulk_free(void **, size_t n_elements): malloc.h'],['../a01898.html#a8e02204694aaa24ccc23b1cd2c403b7e',1,'dlbulk_free(void *array[], size_t nelem): malloc.c']]], + ['dlcalloc_2',['dlcalloc',['../a01898.html#a557252c43fb14a209ead0e6dfe6216ad',1,'dlcalloc(size_t, size_t): malloc.c'],['../a01901.html#a557252c43fb14a209ead0e6dfe6216ad',1,'dlcalloc(size_t, size_t): malloc.c']]], + ['dlfree_3',['dlfree',['../a01898.html#a1b80f9ee2d497077e4741029c8e23700',1,'dlfree(void *): malloc.c'],['../a01901.html#a1b80f9ee2d497077e4741029c8e23700',1,'dlfree(void *): malloc.c']]], + ['dlindependent_5fcalloc_4',['dlindependent_calloc',['../a01898.html#a6226db9cd80a3a60c3958ad6d21fd1e4',1,'dlindependent_calloc(size_t, size_t, void **): malloc.c'],['../a01898.html#a5c6367328ed688a118d756151de3455d',1,'dlindependent_calloc(size_t n_elements, size_t elem_size, void *chunks[]): malloc.c'],['../a01901.html#a2d0363c74cf96e8d816e1a59613d90a2',1,'dlindependent_calloc(size_t, size_t, void **): malloc.h']]], + ['dlindependent_5fcomalloc_5',['dlindependent_comalloc',['../a01898.html#a8c093b4615a18804f806e71d4de486dc',1,'dlindependent_comalloc(size_t, size_t *, void **): malloc.c'],['../a01898.html#ae78e200be9eedb1ddf007d431dcb09a2',1,'dlindependent_comalloc(size_t n_elements, size_t sizes[], void *chunks[]): malloc.c'],['../a01901.html#af92733b7aeb4b18533b20df52000f7d4',1,'dlindependent_comalloc(size_t, size_t *, void **): malloc.h']]], + ['dlmalloc_6',['dlmalloc',['../a01898.html#a018ffd885ac72f4cb8ac0f972f6b4900',1,'dlmalloc(size_t): malloc.c'],['../a01901.html#a018ffd885ac72f4cb8ac0f972f6b4900',1,'dlmalloc(size_t): malloc.c']]], + ['dlmalloc_5finspect_5fall_7',['dlmalloc_inspect_all',['../a01901.html#a36b14cd722ad2016abcd26ca54339ccb',1,'malloc.h']]], + ['dlmalloc_5fset_5ffootprint_5flimit_8',['dlmalloc_set_footprint_limit',['../a01901.html#ae992d2a6834aeddac341b4ff6afba5b4',1,'dlmalloc_set_footprint_limit(size_t bytes): malloc.c'],['../a01898.html#ae992d2a6834aeddac341b4ff6afba5b4',1,'dlmalloc_set_footprint_limit(size_t bytes): malloc.c']]], + ['dlmalloc_5ftrim_9',['dlmalloc_trim',['../a01898.html#a0cb0780a1d244f7541f85d2ece3999fc',1,'dlmalloc_trim(size_t): malloc.c'],['../a01901.html#a0cb0780a1d244f7541f85d2ece3999fc',1,'dlmalloc_trim(size_t): malloc.c']]], + ['dlmalloc_5fusable_5fsize_10',['dlmalloc_usable_size',['../a01898.html#a8923af8a1039983906f9617a57022e98',1,'dlmalloc_usable_size(void *): malloc.c'],['../a01901.html#aca6332584a5c6206defc32cfc2554f35',1,'dlmalloc_usable_size(const void *): malloc.h']]], + ['dlmallopt_11',['dlmallopt',['../a01898.html#a5fa93d3a16f6cd853ca26b8796112770',1,'dlmallopt(int, int): malloc.c'],['../a01901.html#a5fa93d3a16f6cd853ca26b8796112770',1,'dlmallopt(int, int): malloc.c']]], + ['dlmemalign_12',['dlmemalign',['../a01898.html#a789f1726140c8d0ef5b54d893d806262',1,'dlmemalign(size_t, size_t): malloc.c'],['../a01901.html#a789f1726140c8d0ef5b54d893d806262',1,'dlmemalign(size_t, size_t): malloc.c']]], + ['dlposix_5fmemalign_13',['dlposix_memalign',['../a01898.html#a61f04155b5dceea889ba3cef64968684',1,'dlposix_memalign(void **, size_t, size_t): malloc.c'],['../a01901.html#a61f04155b5dceea889ba3cef64968684',1,'dlposix_memalign(void **, size_t, size_t): malloc.c']]], + ['dlpvalloc_14',['dlpvalloc',['../a01898.html#ade3c6d7e2b557fe3af01a7f6979e9396',1,'dlpvalloc(size_t): malloc.c'],['../a01901.html#ade3c6d7e2b557fe3af01a7f6979e9396',1,'dlpvalloc(size_t): malloc.c']]], + ['dlrealloc_15',['dlrealloc',['../a01898.html#a79e7e77bbc6d5208678b007bf89aab61',1,'dlrealloc(void *, size_t): malloc.c'],['../a01901.html#a79e7e77bbc6d5208678b007bf89aab61',1,'dlrealloc(void *, size_t): malloc.c']]], + ['dlrealloc_5fin_5fplace_16',['dlrealloc_in_place',['../a01898.html#afc9bc229eecc960b0c2bfd9033b6e2e0',1,'dlrealloc_in_place(void *, size_t): malloc.c'],['../a01901.html#afc9bc229eecc960b0c2bfd9033b6e2e0',1,'dlrealloc_in_place(void *, size_t): malloc.c']]], + ['dlvalloc_17',['dlvalloc',['../a01898.html#ab3764c29825f2f5caf6bb138e6f2dc12',1,'dlvalloc(size_t): malloc.c'],['../a01901.html#ab3764c29825f2f5caf6bb138e6f2dc12',1,'dlvalloc(size_t): malloc.c']]] +]; diff --git a/search/functions_4.js b/search/functions_4.js new file mode 100644 index 00000000..5aae552d --- /dev/null +++ b/search/functions_4.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['find_5fend_5fsmall_0',['find_end_small',['../a01952.html#af8a432f287b9f55f026e2d120e677998',1,'bitmap.c']]], + ['find_5fstart_1',['find_start',['../a01952.html#ae5a4ee90ef57eb7d12191236c3a105f2',1,'bitmap.c']]], + ['find_5fstart_5fbig_2',['find_start_big',['../a01952.html#a73d0d5ad8a6878dde35fe7b827b33b05',1,'bitmap.c']]], + ['find_5fstart_5fsmall_3',['find_start_small',['../a01952.html#afac539947a2f5fe419a493103a45e4be',1,'bitmap.c']]], + ['formatstackline_4',['formatStackLine',['../a01964.html#a08a7dc8cdb641981a0b564f046dfeb6a',1,'system.c']]] +]; diff --git a/search/functions_5.js b/search/functions_5.js new file mode 100644 index 00000000..0009690a --- /dev/null +++ b/search/functions_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['getvmid_0',['getVmID',['../a02346.html#a49083e8ceb4bfe7793ca1a5a799834d0',1,'async.c']]] +]; diff --git a/search/functions_6.js b/search/functions_6.js new file mode 100644 index 00000000..613a0da5 --- /dev/null +++ b/search/functions_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['has_5fsegment_5flink_0',['has_segment_link',['../a01898.html#ab22b9d57eca306724cb8c4f928d0e824',1,'malloc.c']]] +]; diff --git a/search/functions_7.js b/search/functions_7.js new file mode 100644 index 00000000..821760de --- /dev/null +++ b/search/functions_7.js @@ -0,0 +1,12 @@ +var searchData= +[ + ['ialloc_0',['ialloc',['../a01898.html#a6156a11ac0c98046018896db06f45979',1,'malloc.c']]], + ['init_5fbins_1',['init_bins',['../a01898.html#a5609388ac4c1fc24595689b52c6698b9',1,'malloc.c']]], + ['init_5fmparams_2',['init_mparams',['../a01898.html#aaee95454245a8becbb13ef85e5590aed',1,'malloc.c']]], + ['init_5ftop_3',['init_top',['../a01898.html#a09ce4644252dfd54eb489e77d0adfd20',1,'malloc.c']]], + ['inspect_5fwalker_4',['inspect_walker',['../a02343.html#a6c80c36522a102a50963aa44fe7c692c',1,'alloc.c']]], + ['internal_5fbulk_5ffree_5',['internal_bulk_free',['../a01898.html#aa2888b3de06df35c3b18b31b1e15fe8c',1,'malloc.c']]], + ['internal_5fmallinfo_6',['internal_mallinfo',['../a01898.html#ad8ac5f52dd1f21d88799cfd5befa0b99',1,'malloc.c']]], + ['internal_5fmalloc_5fstats_7',['internal_malloc_stats',['../a01898.html#af720f169cd9332df50dfdd080b548120',1,'malloc.c']]], + ['internal_5fmemalign_8',['internal_memalign',['../a01898.html#a77bcf00a7c234d2b45926ac02550d634',1,'malloc.c']]] +]; diff --git a/search/functions_8.js b/search/functions_8.js new file mode 100644 index 00000000..f0fea5c3 --- /dev/null +++ b/search/functions_8.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['main_0',['main',['../a01904.html#a0ddf1224851353fc92bfbff6f499fa97',1,'test.c']]], + ['mmap_5falloc_1',['mmap_alloc',['../a01898.html#a15fab72f66aa46b46a4677be26a1b5d1',1,'malloc.c']]], + ['mmap_5fresize_2',['mmap_resize',['../a01898.html#a614d873251d4d24875c099b0fdf89c8d',1,'malloc.c']]] +]; diff --git a/search/functions_9.js b/search/functions_9.js new file mode 100644 index 00000000..efefab3e --- /dev/null +++ b/search/functions_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['prepend_5falloc_0',['prepend_alloc',['../a01898.html#a378b748c27be5a7a156907cc56b8a58e',1,'malloc.c']]] +]; diff --git a/search/functions_a.js b/search/functions_a.js new file mode 100644 index 00000000..7e523172 --- /dev/null +++ b/search/functions_a.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['release_5funused_5fsegments_0',['release_unused_segments',['../a01898.html#a949111e5f127c26e3b9f11bf26c8038a',1,'malloc.c']]] +]; diff --git a/search/functions_b.js b/search/functions_b.js new file mode 100644 index 00000000..78b95ebb --- /dev/null +++ b/search/functions_b.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['segment_5fholding_0',['segment_holding',['../a01898.html#adc1656892fa59cbd2e3b60a2608dfefc',1,'malloc.c']]], + ['sys_5falloc_1',['sys_alloc',['../a01898.html#a726dbaacf5aca0a8435e3ce4d44844f4',1,'malloc.c']]], + ['sys_5ftrim_2',['sys_trim',['../a01898.html#a3de256edbbbbd4018cd3563f55ee50ab',1,'malloc.c']]], + ['system_5fbacktrace_3',['system_backtrace',['../a01964.html#a086232272942235166bf349ef7aacf9d',1,'system_backtrace(unsigned int skip): system.c'],['../a01394.html#a086232272942235166bf349ef7aacf9d',1,'system_backtrace(unsigned int skip): system.c']]], + ['system_5fenv_5fvar_4',['system_env_var',['../a01964.html#acde493d3889d6f207d1e122cf4bb1b8c',1,'system_env_var(const char *var): system.c'],['../a01394.html#acde493d3889d6f207d1e122cf4bb1b8c',1,'system_env_var(const char *var): system.c']]], + ['system_5fexec_5fname_5',['system_exec_name',['../a01964.html#a36e65476d70ed717735bbcfa6c09b75d',1,'system_exec_name(): system.c'],['../a01394.html#a36e65476d70ed717735bbcfa6c09b75d',1,'system_exec_name(): system.c']]], + ['system_5ffile_5fsize_6',['system_file_size',['../a01394.html#a86c3bfbf6daaf8172e131aa23dc7393c',1,'system_file_size(const char *file): system.c'],['../a01964.html#a86c3bfbf6daaf8172e131aa23dc7393c',1,'system_file_size(const char *file): system.c']]], + ['system_5fhome_5fpath_7',['system_home_path',['../a01964.html#a0844807fe9679a9a5fbf1bfc9dd78dc6',1,'system_home_path(): system.c'],['../a01394.html#a0844807fe9679a9a5fbf1bfc9dd78dc6',1,'system_home_path(): system.c']]], + ['system_5fmmap_8',['system_mmap',['../a01964.html#ad8ca0aa2e50dbe9c1827c2d4da814cf6',1,'system_mmap(void **base, int *fd, const char *file, size_t shm_size, size_t shm_off, int truncate): system.c'],['../a01394.html#ad8ca0aa2e50dbe9c1827c2d4da814cf6',1,'system_mmap(void **base, int *fd, const char *file, size_t shm_size, size_t shm_off, int truncate): system.c']]], + ['system_5fprocess_5fid_9',['system_process_id',['../a01964.html#a38809d11e47f180968c23903fed321ef',1,'system_process_id(): system.c'],['../a01394.html#a38809d11e47f180968c23903fed321ef',1,'system_process_id(): system.c']]], + ['system_5fthread_5fid_10',['system_thread_id',['../a01964.html#a1fe891ca2eeb8a21c92ce9868d81ef69',1,'system_thread_id(): system.c'],['../a01394.html#a1fe891ca2eeb8a21c92ce9868d81ef69',1,'system_thread_id(): system.c']]], + ['system_5ftotal_5fmemory_11',['system_total_memory',['../a01964.html#a54bd28e423e19877e5abcb1fe3d12c03',1,'system_total_memory(): system.c'],['../a01394.html#a54bd28e423e19877e5abcb1fe3d12c03',1,'system_total_memory(): system.c']]] +]; diff --git a/search/functions_c.js b/search/functions_c.js new file mode 100644 index 00000000..9489e467 --- /dev/null +++ b/search/functions_c.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['tmalloc_5flarge_0',['tmalloc_large',['../a01898.html#a3b1418d10b9d8c0b0f76f49700dbfcf7',1,'malloc.c']]], + ['tmalloc_5fsmall_1',['tmalloc_small',['../a01898.html#a11496157d710a0e954cca1e11fd1713f',1,'malloc.c']]], + ['try_5frealloc_5fchunk_2',['try_realloc_chunk',['../a01898.html#af8adec320537d6e63bc68e76633a1f0e',1,'malloc.c']]] +]; diff --git a/search/functions_d.js b/search/functions_d.js new file mode 100644 index 00000000..d03372c1 --- /dev/null +++ b/search/functions_d.js @@ -0,0 +1,41 @@ +var searchData= +[ + ['utils_5fbitmap_5falloc_5fbits_0',['utils_bitmap_alloc_bits',['../a01376.html#a306b62b1bc50d56e80ba7b7adb02f961',1,'utils_bitmap_alloc_bits(utils_bitmap_s *bmp, size_t bits): bitmap.c'],['../a01952.html#a306b62b1bc50d56e80ba7b7adb02f961',1,'utils_bitmap_alloc_bits(utils_bitmap_s *bmp, size_t bits): bitmap.c']]], + ['utils_5fbitmap_5fcount_5fallocated_1',['utils_bitmap_count_allocated',['../a01376.html#a9959e03fdd8848c11ffd215dd8f59d14',1,'utils_bitmap_count_allocated(utils_bitmap_s *bmp): bitmap.c'],['../a01952.html#a9959e03fdd8848c11ffd215dd8f59d14',1,'utils_bitmap_count_allocated(utils_bitmap_s *bmp): bitmap.c']]], + ['utils_5fbitmap_5ffree_2',['utils_bitmap_free',['../a01952.html#a84bb16b03a95a60c4748c189dafa8a54',1,'utils_bitmap_free(utils_bitmap_s *bmp): bitmap.c'],['../a01376.html#a84bb16b03a95a60c4748c189dafa8a54',1,'utils_bitmap_free(utils_bitmap_s *bmp): bitmap.c']]], + ['utils_5fbitmap_5ffree_5fbits_3',['utils_bitmap_free_bits',['../a01952.html#a7e0e82902c3c17ef427f5876beb5a04e',1,'utils_bitmap_free_bits(utils_bitmap_s *bmp, size_t start, size_t bits): bitmap.c'],['../a01376.html#a7e0e82902c3c17ef427f5876beb5a04e',1,'utils_bitmap_free_bits(utils_bitmap_s *bmp, size_t start, size_t bits): bitmap.c']]], + ['utils_5fbitmap_5finit_4',['utils_bitmap_init',['../a01952.html#a6699a24a46fb1be57ca21abf8bc61928',1,'utils_bitmap_init(void *mem, size_t size_bits): bitmap.c'],['../a01376.html#a6699a24a46fb1be57ca21abf8bc61928',1,'utils_bitmap_init(void *mem, size_t size_bits): bitmap.c']]], + ['utils_5fbitmap_5fprint_5fbits_5',['utils_bitmap_print_bits',['../a01952.html#af2ac1952df551f3bc3f3b14a3e2ac019',1,'utils_bitmap_print_bits(utils_bitmap_s *bmp): bitmap.c'],['../a01376.html#af2ac1952df551f3bc3f3b14a3e2ac019',1,'utils_bitmap_print_bits(utils_bitmap_s *bmp): bitmap.c']]], + ['utils_5fbitmap_5fsize_6',['utils_bitmap_size',['../a01952.html#aabeb9bb5dd959f679552a4b446a1194f',1,'utils_bitmap_size(utils_bitmap_s *bmp): bitmap.c'],['../a01376.html#aabeb9bb5dd959f679552a4b446a1194f',1,'utils_bitmap_size(utils_bitmap_s *bmp): bitmap.c']]], + ['utils_5fbitmap_5fused_7',['utils_bitmap_used',['../a01952.html#aa705f02ae4c1ab0b9864dda0924dade1',1,'utils_bitmap_used(utils_bitmap_s *bmp): bitmap.c'],['../a01376.html#aa705f02ae4c1ab0b9864dda0924dade1',1,'utils_bitmap_used(utils_bitmap_s *bmp): bitmap.c']]], + ['utils_5fconfig_5falloc_5fpath_8',['utils_config_alloc_path',['../a01955.html#aff9af0356940583dfe3045e693cc8a45',1,'utils_config_alloc_path(const char *path): config.c'],['../a01382.html#aff9af0356940583dfe3045e693cc8a45',1,'utils_config_alloc_path(const char *path): config.c']]], + ['utils_5fconfig_5ffree_5fpath_9',['utils_config_free_path',['../a01955.html#a84f3886cdcb91a28bf13b07aae8b2285',1,'utils_config_free_path(char *path): config.c'],['../a01382.html#a84f3886cdcb91a28bf13b07aae8b2285',1,'utils_config_free_path(char *path): config.c']]], + ['utils_5fconfig_5fget_5fbool_10',['utils_config_get_bool',['../a01955.html#aa7aa94ad075bf97a566f01f899fcd859',1,'utils_config_get_bool(char *path, const char *key, int *value, int def_val): config.c'],['../a01382.html#aa7aa94ad075bf97a566f01f899fcd859',1,'utils_config_get_bool(char *path, const char *key, int *value, int def_val): config.c']]], + ['utils_5fconfig_5fget_5fint_11',['utils_config_get_int',['../a01955.html#a336fa8eefc3d744aa7248d6786cfee03',1,'utils_config_get_int(char *path, const char *key, int *value, int def_val): config.c'],['../a01382.html#a336fa8eefc3d744aa7248d6786cfee03',1,'utils_config_get_int(char *path, const char *key, int *value, int def_val): config.c']]], + ['utils_5fconfig_5fget_5flong_12',['utils_config_get_long',['../a01955.html#a1a28ba7c7791236d03b1fa9f81aa6a71',1,'utils_config_get_long(char *path, const char *key, long *value, long def_val): config.c'],['../a01382.html#a1a28ba7c7791236d03b1fa9f81aa6a71',1,'utils_config_get_long(char *path, const char *key, long *value, long def_val): config.c']]], + ['utils_5fconfig_5fget_5fsize_13',['utils_config_get_size',['../a01955.html#a4a525d89ade920512dc65409bc8e85d8',1,'utils_config_get_size(char *path, const char *key, size_t *value, size_t def_val): config.c'],['../a01382.html#a4a525d89ade920512dc65409bc8e85d8',1,'utils_config_get_size(char *path, const char *key, size_t *value, size_t def_val): config.c']]], + ['utils_5fconfig_5fget_5fsource_14',['utils_config_get_source',['../a01955.html#a17713c8e9b90065e23b0ec1a225f79ab',1,'utils_config_get_source(): config.c'],['../a01382.html#a17713c8e9b90065e23b0ec1a225f79ab',1,'utils_config_get_source(): config.c']]], + ['utils_5fconfig_5fget_5fstr_15',['utils_config_get_str',['../a01955.html#a1e8deff7c038efae14d1cc98e4ab109f',1,'utils_config_get_str(char *path, const char *key, char *value, size_t value_size, const char *def_val): config.c'],['../a01382.html#a1e8deff7c038efae14d1cc98e4ab109f',1,'utils_config_get_str(char *path, const char *key, char *value, size_t value_size, const char *def_val): config.c']]], + ['utils_5fconfig_5fwrite_5flong_16',['utils_config_write_long',['../a01955.html#a88091e179416d4beec1b5681cfb68742',1,'config.c']]], + ['utils_5fconfig_5fwrite_5fstr_17',['utils_config_write_str',['../a01955.html#a4b9cd8f5d0c205ac6c1fd30f77cbf539',1,'config.c']]], + ['utils_5fkv_5fget_18',['utils_kv_get',['../a01367.html#ab3a9ad65d11a3f800b9731cbc30e81ff',1,'utils_kv_get(utils_kv_s *kv, void *key): Kv.c'],['../a01943.html#ab3a9ad65d11a3f800b9731cbc30e81ff',1,'utils_kv_get(utils_kv_s *kv, void *key): Kv.c']]], + ['utils_5fkv_5finit_19',['utils_kv_init',['../a01943.html#a2e86c7792c1e7e0e1bdf1fe1a25dcab0',1,'utils_kv_init(utils_kv_s *kv): Kv.c'],['../a01367.html#a2e86c7792c1e7e0e1bdf1fe1a25dcab0',1,'utils_kv_init(utils_kv_s *kv): Kv.c']]], + ['utils_5fkv_5fset_20',['utils_kv_set',['../a01943.html#a91805af1bb8178dbb114ff65d491f840',1,'utils_kv_set(utils_kv_s *kv, void *key, void *value): Kv.c'],['../a01367.html#a91805af1bb8178dbb114ff65d491f840',1,'utils_kv_set(utils_kv_s *kv, void *key, void *value): Kv.c']]], + ['utils_5flist_5fadd_21',['utils_list_add',['../a01958.html#ae06a9e78e6a4f6c9c8afcf0f4862ce29',1,'utils_list_add(utils_list_s *list, utils_list_node_s *node): list.c'],['../a01385.html#ae06a9e78e6a4f6c9c8afcf0f4862ce29',1,'utils_list_add(utils_list_s *list, utils_list_node_s *node): list.c']]], + ['utils_5flist_5fdel_22',['utils_list_del',['../a01958.html#a0c85e5516222ab7e7fc354c614760ec5',1,'utils_list_del(utils_list_s *list, utils_list_node_s *node): list.c'],['../a01385.html#a0c85e5516222ab7e7fc354c614760ec5',1,'utils_list_del(utils_list_s *list, utils_list_node_s *node): list.c']]], + ['utils_5flist_5finit_23',['utils_list_init',['../a01958.html#ab36e49d2e694b1da49504a689ed48e4a',1,'utils_list_init(void *mem): list.c'],['../a01385.html#ab36e49d2e694b1da49504a689ed48e4a',1,'utils_list_init(void *mem): list.c']]], + ['utils_5flist_5fnode_5fadd_24',['utils_list_node_add',['../a01958.html#a5c575f52a42e0e0d2fb41bda2d1268ce',1,'list.c']]], + ['utils_5flist_5fnode_5finit_25',['utils_list_node_init',['../a01958.html#a63f2791c9b5c8e2fa15967cfafb7ccbb',1,'utils_list_node_init(utils_list_node_s *node, void *owner): list.c'],['../a01385.html#a63f2791c9b5c8e2fa15967cfafb7ccbb',1,'utils_list_node_init(utils_list_node_s *node, void *owner): list.c']]], + ['utils_5flist_5fnode_5flinked_26',['utils_list_node_linked',['../a01958.html#ab0c44e095ebfd8721de878c42abcbbdc',1,'utils_list_node_linked(utils_list_node_s *node): list.c'],['../a01385.html#ab0c44e095ebfd8721de878c42abcbbdc',1,'utils_list_node_linked(utils_list_node_s *node): list.c']]], + ['utils_5flist_5fpop_5fhead_27',['utils_list_pop_head',['../a01385.html#a4cace11e17315f11b44dd9e3eabbf72a',1,'utils_list_pop_head(utils_list_s *list): list.c'],['../a01958.html#a4cace11e17315f11b44dd9e3eabbf72a',1,'utils_list_pop_head(utils_list_s *list): list.c']]], + ['utils_5flist_5fpop_5ftail_28',['utils_list_pop_tail',['../a01958.html#a00a9ced40b89f30fa314c4534bfb0922',1,'utils_list_pop_tail(utils_list_s *list): list.c'],['../a01385.html#a00a9ced40b89f30fa314c4534bfb0922',1,'utils_list_pop_tail(utils_list_s *list): list.c']]], + ['utils_5flist_5fto_5farray_29',['utils_list_to_array',['../a01958.html#ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d',1,'utils_list_to_array(utils_list_s *list, void **array): list.c'],['../a01385.html#ae9af0ed8c77f0b4c1b3d2e9c9fb1fa4d',1,'utils_list_to_array(utils_list_s *list, void **array): list.c']]], + ['utils_5fqueue_5finit_30',['utils_queue_init',['../a01961.html#a49c353188156b1df4463a5fc7f7bc25e',1,'utils_queue_init(void *buff): queue.c'],['../a01388.html#a49c353188156b1df4463a5fc7f7bc25e',1,'utils_queue_init(void *buff): queue.c']]], + ['utils_5fqueue_5fpeek_31',['utils_queue_peek',['../a01961.html#a88a8ed68fcdf9e38ebae44935d735c2d',1,'utils_queue_peek(utils_queue_s *q): queue.c'],['../a01388.html#a88a8ed68fcdf9e38ebae44935d735c2d',1,'utils_queue_peek(utils_queue_s *q): queue.c']]], + ['utils_5fqueue_5fpop_32',['utils_queue_pop',['../a01961.html#a8dee44046246efe133935d48d2cc387e',1,'utils_queue_pop(utils_queue_s *q): queue.c'],['../a01388.html#a8dee44046246efe133935d48d2cc387e',1,'utils_queue_pop(utils_queue_s *q): queue.c']]], + ['utils_5fqueue_5fpush_33',['utils_queue_push',['../a01961.html#a9fae55b169121c4851bb7c0adf4eac47',1,'utils_queue_push(utils_queue_s *q, void *data): queue.c'],['../a01388.html#a9fae55b169121c4851bb7c0adf4eac47',1,'utils_queue_push(utils_queue_s *q, void *data): queue.c']]], + ['utils_5fqueue_5fused_5fslots_34',['utils_queue_used_slots',['../a01961.html#a5d84d59bded666fdcf1a8e949cb56a6a',1,'utils_queue_used_slots(utils_queue_s *q): queue.c'],['../a01388.html#a5d84d59bded666fdcf1a8e949cb56a6a',1,'utils_queue_used_slots(utils_queue_s *q): queue.c']]], + ['utils_5fspinlock_5finit_35',['utils_spinlock_init',['../a01391.html#a4e53dedb4be075dc9c89468b377998d5',1,'spinlock.h']]], + ['utils_5fspinlock_5flock_36',['utils_spinlock_lock',['../a01391.html#aa44806e01b878d6508fd6d37495d3f78',1,'spinlock.h']]], + ['utils_5fspinlock_5funlock_37',['utils_spinlock_unlock',['../a01391.html#a7005bc947de55764af4fd5b450d1109d',1,'spinlock.h']]] +]; diff --git a/search/functions_e.js b/search/functions_e.js new file mode 100644 index 00000000..f444573a --- /dev/null +++ b/search/functions_e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['wakeupvm_0',['wakeupVm',['../a02346.html#ab5d38a2680290bd159549efaa41b925b',1,'async.c']]] +]; diff --git a/search/groups_0.js b/search/groups_0.js new file mode 100644 index 00000000..c3b38d5f --- /dev/null +++ b/search/groups_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['initialization_2fcleanup_0',['Initialization/Cleanup',['../a02174.html',1,'']]] +]; diff --git a/search/groups_1.js b/search/groups_1.js new file mode 100644 index 00000000..73f70b71 --- /dev/null +++ b/search/groups_1.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['public_20accelerator_20user_20api_0',['Public Accelerator user API',['../a02175.html',1,'']]], + ['public_20buffer_20user_20api_1',['Public Buffer user API',['../a02178.html',1,'']]], + ['public_20procedure_20user_20api_2',['Public Procedure user API',['../a02176.html',1,'']]], + ['public_20task_20user_20api_3',['Public Task user API',['../a02177.html',1,'']]] +]; diff --git a/search/mag.svg b/search/mag.svg new file mode 100644 index 00000000..ffb6cf0d --- /dev/null +++ b/search/mag.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/search/mag_d.svg b/search/mag_d.svg new file mode 100644 index 00000000..4122773f --- /dev/null +++ b/search/mag_d.svg @@ -0,0 +1,24 @@ + + + + + + + diff --git a/search/mag_sel.svg b/search/mag_sel.svg new file mode 100644 index 00000000..553dba87 --- /dev/null +++ b/search/mag_sel.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/search/mag_seld.svg b/search/mag_seld.svg new file mode 100644 index 00000000..c906f84c --- /dev/null +++ b/search/mag_seld.svg @@ -0,0 +1,31 @@ + + + + + + + + + diff --git a/search/pages_0.js b/search/pages_0.js new file mode 100644 index 00000000..9c51ceb6 --- /dev/null +++ b/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['arax_0',['Arax',['../index.html',1,'']]] +]; diff --git a/search/search.css b/search/search.css new file mode 100644 index 00000000..19f76f9d --- /dev/null +++ b/search/search.css @@ -0,0 +1,291 @@ +/*---------------- Search Box positioning */ + +#main-menu > li:last-child { + /* This
  • object is the parent of the search bar */ + display: flex; + justify-content: center; + align-items: center; + height: 36px; + margin-right: 1em; +} + +/*---------------- Search box styling */ + +.SRPage * { + font-weight: normal; + line-height: normal; +} + +dark-mode-toggle { + margin-left: 5px; + display: flex; + float: right; +} + +#MSearchBox { + display: inline-block; + white-space : nowrap; + background: var(--search-background-color); + border-radius: 0.65em; + box-shadow: var(--search-box-shadow); + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + width: 20px; + height: 19px; + background-image: var(--search-magnification-select-image); + margin: 0 0 0 0.3em; + padding: 0; +} + +#MSearchSelectExt { + display: inline-block; + vertical-align: middle; + width: 10px; + height: 19px; + background-image: var(--search-magnification-image); + margin: 0 0 0 0.5em; + padding: 0; +} + + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 19px; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: var(--search-foreground-color); + outline: none; + font-family: var(--font-family-search); + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + +@media(hover: none) { + /* to avoid zooming on iOS */ + #MSearchField { + font-size: 16px; + } +} + +#MSearchBox .right { + display: inline-block; + vertical-align: middle; + width: 1.4em; + height: 1.4em; +} + +#MSearchClose { + display: none; + font-size: inherit; + background : none; + border: none; + margin: 0; + padding: 0; + outline: none; + +} + +#MSearchCloseImg { + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: var(--search-active-color); +} + + + +/*---------------- Search filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-filter-border-color); + background-color: var(--search-filter-background-color); + z-index: 10001; + padding-top: 4px; + padding-bottom: 4px; + -moz-border-radius: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + -webkit-border-bottom-left-radius: 4px; + -webkit-border-bottom-right-radius: 4px; + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); +} + +.SelectItem { + font: 8pt var(--font-family-search); + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: var(--font-family-monospace); + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: var(--search-filter-foreground-color); + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: var(--search-filter-foreground-color); + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: var(--search-filter-highlight-text-color); + background-color: var(--search-filter-highlight-bg-color); + outline-style: none; + text-decoration: none; + cursor: pointer; + display: block; +} + +/*---------------- Search results window */ + +iframe#MSearchResults { + /*width: 60ex;*/ + height: 15em; +} + +#MSearchResultsWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid var(--search-results-border-color); + background-color: var(--search-results-background-color); + z-index:10000; + width: 300px; + height: 400px; + overflow: auto; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +div.SRPage { + margin: 5px 2px; + background-color: var(--search-results-background-color); +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: var(--search-results-foreground-color); + font-family: var(--font-family-search); + font-size: 8pt; + text-decoration: none; + outline: none; +} + +a.SRSymbol:focus, a.SRSymbol:active, +a.SRScope:focus, a.SRScope:active { + text-decoration: underline; +} + +span.SRScope { + padding-left: 4px; + font-family: var(--font-family-search); +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: var(--font-family-search); +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: var(--nav-gradient-active-image-parent); + background-repeat: repeat-x; + text-shadow: 0 1px 1px #000000; +} + +.pages { + line-height: 17px; + margin-left: 4px; + text-decoration: none; +} + +.hl { + font-weight: bold; +} + +#searchresults { + margin-bottom: 20px; +} + +.searchpages { + margin-top: 10px; +} + diff --git a/search/search.js b/search/search.js new file mode 100644 index 00000000..9b7a52a1 --- /dev/null +++ b/search/search.js @@ -0,0 +1,820 @@ +/* + @licstart The following is the entire license notice for the JavaScript code in this file. + + The MIT License (MIT) + + Copyright (C) 1997-2020 by Dimitri van Heesch + + 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 AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, + DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, + OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. + + @licend The above is the entire license notice for the JavaScript code in this file + */ +function convertToId(search) +{ + var result = ''; + for (i=0;i do a search + { + this.Search(); + } + } + + this.OnSearchSelectKey = function(evt) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==40 && this.searchIndex0) // Up + { + this.searchIndex--; + this.OnSelectItem(this.searchIndex); + } + else if (e.keyCode==13 || e.keyCode==27) + { + this.OnSelectItem(this.searchIndex); + this.CloseSelectionWindow(); + this.DOMSearchField().focus(); + } + return false; + } + + // --------- Actions + + // Closes the results window. + this.CloseResultsWindow = function() + { + this.DOMPopupSearchResultsWindow().style.display = 'none'; + this.DOMSearchClose().style.display = 'none'; + this.Activate(false); + } + + this.CloseSelectionWindow = function() + { + this.DOMSearchSelectWindow().style.display = 'none'; + } + + // Performs a search. + this.Search = function() + { + this.keyTimeout = 0; + + // strip leading whitespace + var searchValue = this.DOMSearchField().value.replace(/^ +/, ""); + + var code = searchValue.toLowerCase().charCodeAt(0); + var idxChar = searchValue.substr(0, 1).toLowerCase(); + if ( 0xD800 <= code && code <= 0xDBFF && searchValue > 1) // surrogate pair + { + idxChar = searchValue.substr(0, 2); + } + + var jsFile; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + jsFile = this.resultsPath + indexSectionNames[this.searchIndex] + '_' + hexCode + '.js'; + } + + var loadJS = function(url, impl, loc){ + var scriptTag = document.createElement('script'); + scriptTag.src = url; + scriptTag.onload = impl; + scriptTag.onreadystatechange = impl; + loc.appendChild(scriptTag); + } + + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + var domSearchBox = this.DOMSearchBox(); + var domPopupSearchResults = this.DOMPopupSearchResults(); + var domSearchClose = this.DOMSearchClose(); + var resultsPath = this.resultsPath; + + var handleResults = function() { + document.getElementById("Loading").style.display="none"; + if (typeof searchData !== 'undefined') { + createResults(resultsPath); + document.getElementById("NoMatches").style.display="none"; + } + + if (idx!=-1) { + searchResults.Search(searchValue); + } else { // no file with search results => force empty search results + searchResults.Search('===='); + } + + if (domPopupSearchResultsWindow.style.display!='block') + { + domSearchClose.style.display = 'inline-block'; + var left = getXPos(domSearchBox) + 150; + var top = getYPos(domSearchBox) + 20; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + var maxWidth = document.body.clientWidth; + var maxHeight = document.body.clientHeight; + var width = 300; + if (left<10) left=10; + if (width+left+8>maxWidth) width=maxWidth-left-8; + var height = 400; + if (height+top+8>maxHeight) height=maxHeight-top-8; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResultsWindow.style.height = height + 'px'; + } + } + + if (jsFile) { + loadJS(jsFile, handleResults, this.DOMPopupSearchResultsWindow()); + } else { + handleResults(); + } + + this.lastSearchValue = searchValue; + } + + // -------- Activation Functions + + // Activates or deactivates the search panel, resetting things to + // their default values if necessary. + this.Activate = function(isActive) + { + if (isActive || // open it + this.DOMPopupSearchResultsWindow().style.display == 'block' + ) + { + this.DOMSearchBox().className = 'MSearchBoxActive'; + this.searchActive = true; + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + this.DOMSearchField().value = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// The class that handles everything on the search results page. +function SearchResults(name) +{ + // The number of matches from the last run of . + this.lastMatchCount = 0; + this.lastKey = 0; + this.repeatOn = false; + + // Toggles the visibility of the passed element ID. + this.FindChildElement = function(id) + { + var parentElement = document.getElementById(id); + var element = parentElement.firstChild; + + while (element && element!=parentElement) + { + if (element.nodeName.toLowerCase() == 'div' && element.className == 'SRChildren') + { + return element; + } + + if (element.nodeName.toLowerCase() == 'div' && element.hasChildNodes()) + { + element = element.firstChild; + } + else if (element.nextSibling) + { + element = element.nextSibling; + } + else + { + do + { + element = element.parentNode; + } + while (element && element!=parentElement && !element.nextSibling); + + if (element && element!=parentElement) + { + element = element.nextSibling; + } + } + } + } + + this.Toggle = function(id) + { + var element = this.FindChildElement(id); + if (element) + { + if (element.style.display == 'block') + { + element.style.display = 'none'; + } + else + { + element.style.display = 'block'; + } + } + } + + // Searches for the passed string. If there is no parameter, + // it takes it from the URL query. + // + // Always returns true, since other documents may try to call it + // and that may or may not be possible. + this.Search = function(search) + { + if (!search) // get search word from URL + { + search = window.location.search; + search = search.substring(1); // Remove the leading '?' + search = unescape(search); + } + + search = search.replace(/^ +/, ""); // strip leading spaces + search = search.replace(/ +$/, ""); // strip trailing spaces + search = search.toLowerCase(); + search = convertToId(search); + + var resultRows = document.getElementsByTagName("div"); + var matches = 0; + + var i = 0; + while (i < resultRows.length) + { + var row = resultRows.item(i); + if (row.className == "SRResult") + { + var rowMatchName = row.id.toLowerCase(); + rowMatchName = rowMatchName.replace(/^sr\d*_/, ''); // strip 'sr123_' + + if (search.length<=rowMatchName.length && + rowMatchName.substr(0, search.length)==search) + { + row.style.display = 'block'; + matches++; + } + else + { + row.style.display = 'none'; + } + } + i++; + } + document.getElementById("Searching").style.display='none'; + if (matches == 0) // no results + { + document.getElementById("NoMatches").style.display='block'; + } + else // at least one result + { + document.getElementById("NoMatches").style.display='none'; + } + this.lastMatchCount = matches; + return true; + } + + // return the first item with index index or higher that is visible + this.NavNext = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index++; + } + return focusItem; + } + + this.NavPrev = function(index) + { + var focusItem; + while (1) + { + var focusName = 'Item'+index; + focusItem = document.getElementById(focusName); + if (focusItem && focusItem.parentNode.parentNode.style.display=='block') + { + break; + } + else if (!focusItem) // last element + { + break; + } + focusItem=null; + index--; + } + return focusItem; + } + + this.ProcessKeys = function(e) + { + if (e.type == "keydown") + { + this.repeatOn = false; + this.lastKey = e.keyCode; + } + else if (e.type == "keypress") + { + if (!this.repeatOn) + { + if (this.lastKey) this.repeatOn = true; + return false; // ignore first keypress after keydown + } + } + else if (e.type == "keyup") + { + this.lastKey = 0; + this.repeatOn = false; + } + return this.lastKey!=0; + } + + this.Nav = function(evt,itemIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + var newIndex = itemIndex-1; + var focusItem = this.NavPrev(newIndex); + if (focusItem) + { + var child = this.FindChildElement(focusItem.parentNode.parentNode.id); + if (child && child.style.display == 'block') // children visible + { + var n=0; + var tmpElem; + while (1) // search for last child + { + tmpElem = document.getElementById('Item'+newIndex+'_c'+n); + if (tmpElem) + { + focusItem = tmpElem; + } + else // found it! + { + break; + } + n++; + } + } + } + if (focusItem) + { + focusItem.focus(); + } + else // return focus to search field + { + document.getElementById("MSearchField").focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = itemIndex+1; + var focusItem; + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem && elem.style.display == 'block') // children visible + { + focusItem = document.getElementById('Item'+itemIndex+'_c0'); + } + if (!focusItem) focusItem = this.NavNext(newIndex); + if (focusItem) focusItem.focus(); + } + else if (this.lastKey==39) // Right + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'block'; + } + else if (this.lastKey==37) // Left + { + var item = document.getElementById('Item'+itemIndex); + var elem = this.FindChildElement(item.parentNode.parentNode.id); + if (elem) elem.style.display = 'none'; + } + else if (this.lastKey==27) // Escape + { + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } + + this.NavChild = function(evt,itemIndex,childIndex) + { + var e = (evt) ? evt : window.event; // for IE + if (e.keyCode==13) return true; + if (!this.ProcessKeys(e)) return false; + + if (this.lastKey==38) // Up + { + if (childIndex>0) + { + var newIndex = childIndex-1; + document.getElementById('Item'+itemIndex+'_c'+newIndex).focus(); + } + else // already at first child, jump to parent + { + document.getElementById('Item'+itemIndex).focus(); + } + } + else if (this.lastKey==40) // Down + { + var newIndex = childIndex+1; + var elem = document.getElementById('Item'+itemIndex+'_c'+newIndex); + if (!elem) // last child, jump to parent next parent + { + elem = this.NavNext(itemIndex+1); + } + if (elem) + { + elem.focus(); + } + } + else if (this.lastKey==27) // Escape + { + searchBox.CloseResultsWindow(); + document.getElementById("MSearchField").focus(); + } + else if (this.lastKey==13) // Enter + { + return true; + } + return false; + } +} + +function setKeyActions(elem,action) +{ + elem.setAttribute('onkeydown',action); + elem.setAttribute('onkeypress',action); + elem.setAttribute('onkeyup',action); +} + +function setClassAttr(elem,attr) +{ + elem.setAttribute('class',attr); + elem.setAttribute('className',attr); +} + +function createResults(resultsPath) +{ + var results = document.getElementById("SRResults"); + results.innerHTML = ''; + for (var e=0; e-{AmhX=Jf@Vhihj(260Q$F zM|G}A<hI6RL0+M2U;RqlxFh@a z@=GSq|Nh(f+HTtE->08e|B5%4YD>KH_+#;%!w>H+_H#TME`3?ba(&& literal 0 HcmV?d00001 diff --git a/splitbard.png b/splitbard.png new file mode 100644 index 0000000000000000000000000000000000000000..bcba65572c03dc783d7e971de9454b5fbe75dc08 GIT binary patch literal 272 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf@VhhJI56C0s9l z^?q=aV~Urj`x_4q<^;C&o6=?cjy(M3WAc&bz>PPvYxgHT<$3g~WLIsS-TnLZ`}X~- zkO@CtSkv$~utl@Wz*TUW#vu{c8H+fAMH0J|d~gZ=5`O|TqVi|iPJaG){qL97UoDjB z?_dA?^Y_`a{olX0|9AV<%a?CA?b`kOQ+4b9Zrlc8wer{JIwswzvNAk(8y^9^$l&Sf K=d#Wzp$P!N6L50? literal 0 HcmV?d00001 diff --git a/sync_off.png b/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..a3b2af762217de5dbc8172b3eabd20c1bc64fe6e GIT binary patch literal 850 zcmV-Y1FigtP)?&4%^gQF7nKP#|q2cYz`(w^KGo0sr z&wJkIxpf>l@(VyJ+eJX^6}!bYu|fPTCdDmrT|5S`<46%;i|7@h*fl^Zv*MEI6Mq3o z-3ee36r-XDU==osA4HAl6z9!9rUB;OD6X#I=H|9poD*HC0vr%$Q>+SLwFbpWW3ZvL z^jjmk&O8@j9q44Qh<}U~{3vz+Sh-xA0Bkv(831;&#LxN?X@Ej;0w9@#=H^37m6e|X z*eWda(b`%gfieNCj*2o3P-T5IE>|{PU3DBj{CV2^`~rZj+1Zy=Rqf*R=@4FTK7dt7 z1AJ}%rl4Ra0|O20+xIcRs+5=KbLLDPB_*XmQm@hgUm7F7{|g2OYw`I$jQ?Z*{$grt z4^Uqpj51nXT|iVM-qFoj^!0sDFsO$<@wEons#i@--_hG!jmML`aTOIl8XLdj*s(p7 zm1(9}X$=j20)cWM(VfmT+Sgq~bT9USe>FF7sKmQMh!x0Y<4j*TEd6}#%7sbWV2M}*#V|Tc4VcZx_X@JW* zsldX@ZkeG zJ73V#b5P!jJTf!W0c^S5EBmFZ?C-zE)YKCoso&HU=;OI7R;C=XN-^Q z8~~CP6_pSQ`57AeP0oa|uRx;vje4L-E}o#`8zcwa?e;Fr&CS>*!1Q!COG^tZF1`k^ zifFMi0{Fyzkpr*}Ud0aZpGLBKD%t_o$tk_LwW3|r7bBL>0p8cIV&GjhxmgSeFTfh; z;rhvZb92Elw|lYT^MR&Yo3aXEbuBhAJySrU+pWOdKGnP?G&gLC6%q~jzg8=8BX-m1 c^9Hbb1BCpo*2mFkY5)KL07*qoM6N<$g4rLCvH$=8 literal 0 HcmV?d00001 diff --git a/sync_on.png b/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..50c43589d7b0e53336f34a57834c0db4954226ae GIT binary patch literal 826 zcmV-A1I7G_P)joYQ{96%?G*va6A& z0c-;`*t_CCZ3b7wegHFe`%VA@n=Jt#7N_`KZ6cK*Tl@;}CCf@fLlvc^hX4$+vvat3 zv04%(0+^{0Zk51i_G#?)WLjGM*3+jCv#_uPU@$kgh|gCP*fJ$&2Fho|? z_jGptOi9TBfDIKEy6Eoqlb>Gz5Y49&9M$)DJU`OaRZC9J?)AR1vOH>Q%c-mLhWPyz zqBycY)19=ppT+A{2Ofw-y4sR^v_-40KSfQAx)A_f6c^`&0K{UmS!rxMf!pok+O?tS z#l_iOYO&P}ETQGJ#F3eq4De0T(vq-RZHxN5=%xHUsC86UmU7{OaakrOXPBD$D1!)% zh1JznoK8D=d7;U#x52?D3=I6u%F43VHK7vRk%v0t!WD7pl9$xfq|oo)-uncD{{oS4 zxxS;nU)_bsF8f4ZUy#w!$ABTm)EbOLCm0`pL38s5T3dgT-H}ORVmyF>!?AYI)a*Js zhMAan4G?Wa%|Lygr($imx|WcTL{n3hBz(uvkQzs%<>uxS2zcn}`Ag2kG=Le8Ru9xA zw|+qx&a%b2-CNNF zuuZP2mq%B$TWWKJ?{k2!^{43Es3tdv9+3jD1?q79rhmD<;ON`4aPd(`-EC4<0iq3u z2d2&x5DBvx=-Us%FT5fnTu4;HSyipXKjD{#zBfR$&!zUOk3S>$1^@s607*qoM6N<$ Ef>O4SdjJ3c literal 0 HcmV?d00001 diff --git a/tab_a.png b/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..8574b1478a1afe6b6967c8ff71d33d5ae03b5f1d GIT binary patch literal 130 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Ql6eJjv*C{Z|5H5J)pqDoa_EU zp{Anbf8gylg;v!GYl?N$*ECqlf3ifdi&&|a=p3tPT@6{yPv)_ fsIL6|uUY=+Q6|Z&mes02Lm50>{an^LB{Ts54(Tqw literal 0 HcmV?d00001 diff --git a/tab_ad.png b/tab_ad.png new file mode 100644 index 0000000000000000000000000000000000000000..d4671aa72dae867865dbb792f8d8180c5897971d GIT binary patch literal 122 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QjVT3jv*C{Z|6309&q4bo_u-v z@BBYe`=?xzWZ5avYwWRH;pCo%17?%DMM}%7AAkSzBJuvs`ud{1)nCo+>$?Rva^2Ja W#<1u>yO#mbFa}RoKbLh*2~7a=^(gTe~DWM4fug*fB literal 0 HcmV?d00001 diff --git a/tab_bd.png b/tab_bd.png new file mode 100644 index 0000000000000000000000000000000000000000..e8a1a291689015d3eff03b893d8404f06704ca17 GIT binary patch literal 140 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qo)`sjv*C{Z|6GlH5hQPG%no| zk=-Ny|9=qcTK0OwGb(SCGkSv0#Dr*9*+1B~cx&#aMb{WNyLPPGuvn!2*XAs5c9#ZD p<8=T3)_;{ITP(WSQSbAUO|g>o%WhwToj~ImJYD@<);T3K0RWxXF;)No literal 0 HcmV?d00001 diff --git a/tab_h.png b/tab_h.png new file mode 100644 index 0000000000000000000000000000000000000000..73241036f63063f30baefcb7c62d29ee2de47df8 GIT binary patch literal 173 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QYD@)jv*C{Z|@%DY&MWM`cePA zsCJypq2_RN0aH;^g`L+DG799>UlqA6o%{Iw`@Om;_xGRpEE4%`$yVv-mKSCm$oy3x zVRQUq@aw6y`!~J5vwvIc4HLa>8`j+y5S+HOF^I{*^?lv%Fo#F4{w(+W)S(qNH8pS# Z-)CtdYx_gd5Z~ literal 0 HcmV?d00001 diff --git a/tab_hd.png b/tab_hd.png new file mode 100644 index 0000000000000000000000000000000000000000..49a05f54b4c83ffc0a40b0b2729a5d83949acf59 GIT binary patch literal 167 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QhA;(jv*C{Z|C0TJ!HV+DjV=Y%LA(F} literal 0 HcmV?d00001 diff --git a/tab_s.png b/tab_s.png new file mode 100644 index 0000000000000000000000000000000000000000..dbeb61dc74f07a0fc915fa1a4a8c65bb65009b3c GIT binary patch literal 180 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!Qq`U=jv*C{Z|~-EH7hW%CETo@ zwy#^`SD=euu7=eLL6^f1cZEK`c~NcNlb!54*U9%-F8s>5bk6tIDS9)W^S5kBIMY2@>BHye}`gE4Jlr+p@}q>%#LLLv5QkU76FVdQ&MBb@0Mv0w9RL6T literal 0 HcmV?d00001 diff --git a/tab_sd.png b/tab_sd.png new file mode 100644 index 0000000000000000000000000000000000000000..5a7aae36e14a93bf538925d0c01f70095f6d2f7f GIT binary patch literal 158 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QmLLUjv*C{Z|~mabTZ^|c(`Qw z_O1WJT^&EZ%zOB+Ia6t!;13H${+W(_kI(Mg-*lpV>%9MVGcMniJbd@X-Pp{xPHWRQ zYowY_p0itW*~B2z)?91BWHU~W{rd$t4>o3Pm>nT1`1P*a{(~pjbq|01G6QHKgQu&X J%Q~loCIF-`Kso>b literal 0 HcmV?d00001 diff --git a/tabs.css b/tabs.css new file mode 100644 index 00000000..71c8a470 --- /dev/null +++ b/tabs.css @@ -0,0 +1 @@ +.sm{position:relative;z-index:9999}.sm,.sm ul,.sm li{display:block;list-style:none;margin:0;padding:0;line-height:normal;direction:ltr;text-align:left;-webkit-tap-highlight-color:rgba(0,0,0,0)}.sm-rtl,.sm-rtl ul,.sm-rtl li{direction:rtl;text-align:right}.sm>li>h1,.sm>li>h2,.sm>li>h3,.sm>li>h4,.sm>li>h5,.sm>li>h6{margin:0;padding:0}.sm ul{display:none}.sm li,.sm a{position:relative}.sm a{display:block}.sm a.disabled{cursor:not-allowed}.sm:after{content:"\00a0";display:block;height:0;font:0/0 serif;clear:both;visibility:hidden;overflow:hidden}.sm,.sm *,.sm *:before,.sm *:after{-moz-box-sizing:border-box;-webkit-box-sizing:border-box;box-sizing:border-box}.main-menu-btn{position:relative;display:inline-block;width:36px;height:36px;text-indent:36px;margin-left:8px;white-space:nowrap;overflow:hidden;cursor:pointer;-webkit-tap-highlight-color:rgba(0,0,0,0)}.main-menu-btn-icon,.main-menu-btn-icon:before,.main-menu-btn-icon:after{position:absolute;top:50%;left:2px;height:2px;width:24px;background:var(--nav-menu-button-color);-webkit-transition:all .25s;transition:all .25s}.main-menu-btn-icon:before{content:'';top:-7px;left:0}.main-menu-btn-icon:after{content:'';top:7px;left:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon{height:0}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:before{top:0;-webkit-transform:rotate(-45deg);transform:rotate(-45deg)}#main-menu-state:checked ~ .main-menu-btn .main-menu-btn-icon:after{top:0;-webkit-transform:rotate(45deg);transform:rotate(45deg)}#main-menu-state{position:absolute;width:1px;height:1px;margin:-1px;border:0;padding:0;overflow:hidden;clip:rect(1px,1px,1px,1px)}#main-menu-state:not(:checked) ~ #main-menu{display:none}#main-menu-state:checked ~ #main-menu{display:block}@media(min-width:768px){.main-menu-btn{position:absolute;top:-99999px}#main-menu-state:not(:checked) ~ #main-menu{display:block}}.sm-dox{background-image:var(--nav-gradient-image)}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0 12px;padding-right:43px;font-family:var(--font-family-nav);font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:var(--nav-text-normal-shadow);color:var(--nav-text-normal-color);outline:0}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a.current{color:#d23600}.sm-dox a.disabled{color:#bbb}.sm-dox a span.sub-arrow{position:absolute;top:50%;margin-top:-14px;left:auto;right:3px;width:28px;height:28px;overflow:hidden;font:bold 12px/28px monospace !important;text-align:center;text-shadow:none;background:var(--nav-menu-toggle-color);-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox a span.sub-arrow:before{display:block;content:'+'}.sm-dox a.highlighted span.sub-arrow:before{display:block;content:'-'}.sm-dox>li:first-child>a,.sm-dox>li:first-child>:not(ul) a{-moz-border-radius:5px 5px 0 0;-webkit-border-radius:5px;border-radius:5px 5px 0 0}.sm-dox>li:last-child>a,.sm-dox>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul{-moz-border-radius:0 0 5px 5px;-webkit-border-radius:0;border-radius:0 0 5px 5px}.sm-dox>li:last-child>a.highlighted,.sm-dox>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>a.highlighted,.sm-dox>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>ul>li:last-child>*:not(ul) a.highlighted{-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox ul{background:var(--nav-menu-background-color)}.sm-dox ul a,.sm-dox ul a:focus,.sm-dox ul a:hover,.sm-dox ul a:active{font-size:12px;border-left:8px solid transparent;line-height:36px;text-shadow:none;background-color:var(--nav-menu-background-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:0 1px 1px black}.sm-dox ul ul a,.sm-dox ul ul a:hover,.sm-dox ul ul a:focus,.sm-dox ul ul a:active{border-left:16px solid transparent}.sm-dox ul ul ul a,.sm-dox ul ul ul a:hover,.sm-dox ul ul ul a:focus,.sm-dox ul ul ul a:active{border-left:24px solid transparent}.sm-dox ul ul ul ul a,.sm-dox ul ul ul ul a:hover,.sm-dox ul ul ul ul a:focus,.sm-dox ul ul ul ul a:active{border-left:32px solid transparent}.sm-dox ul ul ul ul ul a,.sm-dox ul ul ul ul ul a:hover,.sm-dox ul ul ul ul ul a:focus,.sm-dox ul ul ul ul ul a:active{border-left:40px solid transparent}@media(min-width:768px){.sm-dox ul{position:absolute;width:12em}.sm-dox li{float:left}.sm-dox.sm-rtl li{float:right}.sm-dox ul li,.sm-dox.sm-rtl ul li,.sm-dox.sm-vertical li{float:none}.sm-dox a{white-space:nowrap}.sm-dox ul a,.sm-dox.sm-vertical a{white-space:normal}.sm-dox .sm-nowrap>li>a,.sm-dox .sm-nowrap>li>:not(ul) a{white-space:nowrap}.sm-dox{padding:0 10px;background-image:var(--nav-gradient-image);line-height:36px}.sm-dox a span.sub-arrow{top:50%;margin-top:-2px;right:12px;width:0;height:0;border-width:4px;border-style:solid dashed dashed dashed;border-color:var(--nav-text-normal-color) transparent transparent transparent;background:transparent;-moz-border-radius:0;-webkit-border-radius:0;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0 12px;background-image:var(--nav-separator-image);background-repeat:no-repeat;background-position:right;-moz-border-radius:0 !important;-webkit-border-radius:0;border-radius:0 !important}.sm-dox a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox a:hover span.sub-arrow{border-color:var(--nav-text-hover-color) transparent transparent transparent}.sm-dox a.has-submenu{padding-right:24px}.sm-dox li{border-top:0}.sm-dox>li>ul:before,.sm-dox>li>ul:after{content:'';position:absolute;top:-18px;left:30px;width:0;height:0;overflow:hidden;border-width:9px;border-style:dashed dashed solid dashed;border-color:transparent transparent #bbb transparent}.sm-dox>li>ul:after{top:-16px;left:31px;border-width:8px;border-color:transparent transparent var(--nav-menu-background-color) transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:var(--nav-menu-background-color);-moz-border-radius:5px !important;-webkit-border-radius:5px;border-radius:5px !important;-moz-box-shadow:0 5px 9px rgba(0,0,0,0.2);-webkit-box-shadow:0 5px 9px rgba(0,0,0,0.2);box-shadow:0 5px 9px rgba(0,0,0,0.2)}.sm-dox ul a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-color:transparent transparent transparent var(--nav-menu-foreground-color);border-style:dashed dashed dashed solid}.sm-dox ul a,.sm-dox ul a:hover,.sm-dox ul a:focus,.sm-dox ul a:active,.sm-dox ul a.highlighted{color:var(--nav-menu-foreground-color);background-image:none;border:0 !important;color:var(--nav-menu-foreground-color);background-image:none}.sm-dox ul a:hover{background-image:var(--nav-gradient-active-image);background-repeat:repeat-x;color:var(--nav-text-hover-color);text-shadow:var(--nav-text-hover-shadow)}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent var(--nav-text-hover-color)}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:var(--nav-menu-background-color);height:36px}.sm-dox span.scroll-up:hover,.sm-dox span.scroll-down:hover{background:#eee}.sm-dox span.scroll-up:hover span.scroll-up-arrow,.sm-dox span.scroll-up:hover span.scroll-down-arrow{border-color:transparent transparent #d23600 transparent}.sm-dox span.scroll-down:hover span.scroll-down-arrow{border-color:#d23600 transparent transparent transparent}.sm-dox span.scroll-up-arrow,.sm-dox span.scroll-down-arrow{position:absolute;top:0;left:50%;margin-left:-6px;width:0;height:0;overflow:hidden;border-width:6px;border-style:dashed dashed solid dashed;border-color:transparent transparent var(--nav-menu-foreground-color) transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:var(--nav-menu-foreground-color) transparent transparent transparent}.sm-dox.sm-rtl a.has-submenu{padding-right:12px;padding-left:24px}.sm-dox.sm-rtl a span.sub-arrow{right:auto;left:12px}.sm-dox.sm-rtl.sm-vertical a.has-submenu{padding:10px 20px}.sm-dox.sm-rtl.sm-vertical a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-rtl>li>ul:before{left:auto;right:30px}.sm-dox.sm-rtl>li>ul:after{left:auto;right:31px}.sm-dox.sm-rtl ul a.has-submenu{padding:10px 20px !important}.sm-dox.sm-rtl ul a span.sub-arrow{right:auto;left:8px;border-style:dashed solid dashed dashed;border-color:transparent #555 transparent transparent}.sm-dox.sm-vertical{padding:10px 0;-moz-border-radius:5px;-webkit-border-radius:5px;border-radius:5px}.sm-dox.sm-vertical a{padding:10px 20px}.sm-dox.sm-vertical a:hover,.sm-dox.sm-vertical a:focus,.sm-dox.sm-vertical a:active,.sm-dox.sm-vertical a.highlighted{background:#fff}.sm-dox.sm-vertical a.disabled{background-image:var(--nav-gradient-image)}.sm-dox.sm-vertical a span.sub-arrow{right:8px;top:50%;margin-top:-5px;border-width:5px;border-style:dashed dashed dashed solid;border-color:transparent transparent transparent #555}.sm-dox.sm-vertical>li>ul:before,.sm-dox.sm-vertical>li>ul:after{display:none}.sm-dox.sm-vertical ul a{padding:10px 20px}.sm-dox.sm-vertical ul a:hover,.sm-dox.sm-vertical ul a:focus,.sm-dox.sm-vertical ul a:active,.sm-dox.sm-vertical ul a.highlighted{background:#eee}.sm-dox.sm-vertical ul a.disabled{background:var(--nav-menu-background-color)}} \ No newline at end of file