From 0f3af9bca36b4d5ad25b0d0686c58a95a67879c1 Mon Sep 17 00:00:00 2001 From: MRNIU Date: Tue, 12 Sep 2023 13:20:15 +0000 Subject: [PATCH] deploy: fdc917d58eadeda49e174377ea8cf46023750236 --- .nojekyll | 0 ...5_xB7_xA5_xE5_x85_xB7_xE9_x93_xBE_8md.html | 99 + ...7_xBB_x9F_xE5_x90_xAF_xE5_x8A_xA8_8md.html | 99 + ...7_x94_xA8_xE8_xAF_xB4_xE6_x98_x8E_8md.html | 99 + README_8md.html | 99 + aarch64_2arch_8cpp.html | 180 ++ aarch64_2arch_8cpp.js | 4 + aarch64_2arch_8cpp__incl.map | 5 + aarch64_2arch_8cpp__incl.md5 | 1 + aarch64_2arch_8cpp__incl.png | Bin 0 -> 6147 bytes aarch64_2arch_8cpp_source.html | 115 + annotated.html | 107 + annotated_dup.js | 8 + arch_8cpp.html | 180 ++ arch_8cpp.js | 4 + arch_8cpp__incl.map | 5 + arch_8cpp__incl.md5 | 1 + arch_8cpp__incl.png | Bin 0 -> 5709 bytes arch_8cpp_source.html | 115 + arch_8h.html | 190 ++ arch_8h.js | 4 + arch_8h__dep__incl.map | 6 + arch_8h__dep__incl.md5 | 1 + arch_8h__dep__incl.png | Bin 0 -> 15215 bytes arch_8h__incl.map | 4 + arch_8h__incl.md5 | 1 + arch_8h__incl.png | Bin 0 -> 4817 bytes arch_8h_source.html | 109 + bc_s.png | Bin 0 -> 676 bytes bdwn.png | Bin 0 -> 147 bytes boot_8h.html | 189 ++ boot_8h.js | 4 + boot_8h__incl.map | 4 + boot_8h__incl.md5 | 1 + boot_8h__incl.png | Bin 0 -> 4742 bytes boot_8h_source.html | 109 + classElf-members.html | 130 ++ classElf.html | 2011 +++++++++++++++++ classElf.js | 32 + classElf__coll__graph.map | 3 + classElf__coll__graph.md5 | 1 + classElf__coll__graph.png | Bin 0 -> 17083 bytes ...04d82ec887bbe8da9588c9c88041c07_cgraph.map | 14 + ...04d82ec887bbe8da9588c9c88041c07_cgraph.md5 | 1 + ...04d82ec887bbe8da9588c9c88041c07_cgraph.png | Bin 0 -> 40756 bytes ...eb12fc4d607d5c2ba473a3882a50276_cgraph.map | 4 + ...eb12fc4d607d5c2ba473a3882a50276_cgraph.md5 | 1 + ...eb12fc4d607d5c2ba473a3882a50276_cgraph.png | Bin 0 -> 3090 bytes ...b12fc4d607d5c2ba473a3882a50276_icgraph.map | 4 + ...b12fc4d607d5c2ba473a3882a50276_icgraph.md5 | 1 + ...b12fc4d607d5c2ba473a3882a50276_icgraph.png | Bin 0 -> 2366 bytes ...5ba996115f8bd77521be56b1cf7767_icgraph.map | 4 + ...5ba996115f8bd77521be56b1cf7767_icgraph.md5 | 1 + ...5ba996115f8bd77521be56b1cf7767_icgraph.png | Bin 0 -> 2022 bytes ...764987395919b2725a85a17f904f245_cgraph.map | 6 + ...764987395919b2725a85a17f904f245_cgraph.md5 | 1 + ...764987395919b2725a85a17f904f245_cgraph.png | Bin 0 -> 8711 bytes ...64987395919b2725a85a17f904f245_icgraph.map | 4 + ...64987395919b2725a85a17f904f245_icgraph.md5 | 1 + ...64987395919b2725a85a17f904f245_icgraph.png | Bin 0 -> 4179 bytes ...84a984a3da808368593a45f06005bd3_cgraph.map | 4 + ...84a984a3da808368593a45f06005bd3_cgraph.md5 | 1 + ...84a984a3da808368593a45f06005bd3_cgraph.png | Bin 0 -> 2194 bytes ...bfd5acab462921c7e0f8b958fe5936_icgraph.map | 4 + ...bfd5acab462921c7e0f8b958fe5936_icgraph.md5 | 1 + ...bfd5acab462921c7e0f8b958fe5936_icgraph.png | Bin 0 -> 2032 bytes ...5345e29535844c992d1a45bf12e2e57_cgraph.map | 6 + ...5345e29535844c992d1a45bf12e2e57_cgraph.md5 | 1 + ...5345e29535844c992d1a45bf12e2e57_cgraph.png | Bin 0 -> 8343 bytes ...345e29535844c992d1a45bf12e2e57_icgraph.map | 4 + ...345e29535844c992d1a45bf12e2e57_icgraph.md5 | 1 + ...345e29535844c992d1a45bf12e2e57_icgraph.png | Bin 0 -> 1892 bytes ...74fcc38da6769775c9f685b02ab47c_icgraph.map | 4 + ...74fcc38da6769775c9f685b02ab47c_icgraph.md5 | 1 + ...74fcc38da6769775c9f685b02ab47c_icgraph.png | Bin 0 -> 2000 bytes ...4d57d143f7782f3c630f6ddb1f16948_cgraph.map | 5 + ...4d57d143f7782f3c630f6ddb1f16948_cgraph.md5 | 1 + ...4d57d143f7782f3c630f6ddb1f16948_cgraph.png | Bin 0 -> 4892 bytes ...d57d143f7782f3c630f6ddb1f16948_icgraph.map | 4 + ...d57d143f7782f3c630f6ddb1f16948_icgraph.md5 | 1 + ...d57d143f7782f3c630f6ddb1f16948_icgraph.png | Bin 0 -> 1893 bytes ...502161430e3a3c1896c2d92df03c71e_cgraph.map | 7 + ...502161430e3a3c1896c2d92df03c71e_cgraph.md5 | 1 + ...502161430e3a3c1896c2d92df03c71e_cgraph.png | Bin 0 -> 11911 bytes ...5355dba9bf23ee591ef52c04b688cea_cgraph.map | 5 + ...5355dba9bf23ee591ef52c04b688cea_cgraph.md5 | 1 + ...5355dba9bf23ee591ef52c04b688cea_cgraph.png | Bin 0 -> 5511 bytes ...ec14f617596cbe75854cdff875a4db2_cgraph.map | 5 + ...ec14f617596cbe75854cdff875a4db2_cgraph.md5 | 1 + ...ec14f617596cbe75854cdff875a4db2_cgraph.png | Bin 0 -> 4805 bytes ...825c7f4d213298f8a60b961c27cd6e_icgraph.map | 4 + ...825c7f4d213298f8a60b961c27cd6e_icgraph.md5 | 1 + ...825c7f4d213298f8a60b961c27cd6e_icgraph.png | Bin 0 -> 1889 bytes ...f0728535c76009acc8d78cbece772fe_cgraph.map | 6 + ...f0728535c76009acc8d78cbece772fe_cgraph.md5 | 1 + ...f0728535c76009acc8d78cbece772fe_cgraph.png | Bin 0 -> 8036 bytes ...0728535c76009acc8d78cbece772fe_icgraph.map | 4 + ...0728535c76009acc8d78cbece772fe_icgraph.md5 | 1 + ...0728535c76009acc8d78cbece772fe_icgraph.png | Bin 0 -> 1762 bytes classGraphics-members.html | 112 + classGraphics.html | 569 +++++ classGraphics.js | 14 + classGraphics__coll__graph.map | 3 + classGraphics__coll__graph.md5 | 1 + classGraphics__coll__graph.png | Bin 0 -> 9083 bytes ...4e4caa540b0612a56adc590971715b6_cgraph.map | 6 + ...4e4caa540b0612a56adc590971715b6_cgraph.md5 | 1 + ...4e4caa540b0612a56adc590971715b6_cgraph.png | Bin 0 -> 9094 bytes ...860b4ad2f72a6332cb4a850839ff5e5_cgraph.map | 6 + ...860b4ad2f72a6332cb4a850839ff5e5_cgraph.md5 | 1 + ...860b4ad2f72a6332cb4a850839ff5e5_cgraph.png | Bin 0 -> 8906 bytes ...2e8fe67fd31ec263c843a6e28b29d3c_cgraph.map | 4 + ...2e8fe67fd31ec263c843a6e28b29d3c_cgraph.md5 | 1 + ...2e8fe67fd31ec263c843a6e28b29d3c_cgraph.png | Bin 0 -> 3159 bytes classMemory-members.html | 114 + classMemory.html | 621 +++++ classMemory.js | 16 + classMemory__coll__graph.map | 3 + classMemory__coll__graph.md5 | 1 + classMemory__coll__graph.png | Bin 0 -> 10743 bytes ...d7799e95e8dda035f91d14e2febcfcd_cgraph.map | 4 + ...d7799e95e8dda035f91d14e2febcfcd_cgraph.md5 | 1 + ...d7799e95e8dda035f91d14e2febcfcd_cgraph.png | Bin 0 -> 3402 bytes ...7799e95e8dda035f91d14e2febcfcd_icgraph.map | 5 + ...7799e95e8dda035f91d14e2febcfcd_icgraph.md5 | 1 + ...7799e95e8dda035f91d14e2febcfcd_icgraph.png | Bin 0 -> 6130 bytes ...85d7bb6fc6f2237bcebf94a86b7dd99_cgraph.map | 5 + ...85d7bb6fc6f2237bcebf94a86b7dd99_cgraph.md5 | 1 + ...85d7bb6fc6f2237bcebf94a86b7dd99_cgraph.png | Bin 0 -> 4349 bytes ...1aabf1a13f96ce935d6157a9520b83a_cgraph.map | 7 + ...1aabf1a13f96ce935d6157a9520b83a_cgraph.md5 | 1 + ...1aabf1a13f96ce935d6157a9520b83a_cgraph.png | Bin 0 -> 14878 bytes classes.html | 116 + classostream-members.html | 125 + classostream.html | 975 ++++++++ classostream.js | 28 + classostream__coll__graph.map | 3 + classostream__coll__graph.md5 | 1 + classostream__coll__graph.png | Bin 0 -> 7944 bytes ...1664830d4cda9da6c7c0b4c04a8ed2_icgraph.map | 20 + ...1664830d4cda9da6c7c0b4c04a8ed2_icgraph.md5 | 1 + ...1664830d4cda9da6c7c0b4c04a8ed2_icgraph.png | Bin 0 -> 78702 bytes ...c6f2934351244c566df995f0aa6d99_icgraph.map | 12 + ...c6f2934351244c566df995f0aa6d99_icgraph.md5 | 1 + ...c6f2934351244c566df995f0aa6d99_icgraph.png | Bin 0 -> 27426 bytes ...a63ab1ab5310f2e4ccaeaf26a1d9f9_icgraph.map | 14 + ...a63ab1ab5310f2e4ccaeaf26a1d9f9_icgraph.md5 | 1 + ...a63ab1ab5310f2e4ccaeaf26a1d9f9_icgraph.png | Bin 0 -> 37767 bytes closed.png | Bin 0 -> 132 bytes dir_000001_000003.html | 95 + dir_000002_000003.html | 95 + dir_000004_000006.html | 95 + dir_000007_000015.html | 95 + dir_000009_000012.html | 95 + dir_000011_000012.html | 95 + dir_000013_000014.html | 95 + dir_000016_000017.html | 95 + dir_000018_000019.html | 95 + dir_0acad8e611f5f3679e26f7f6ddf45d1c.html | 117 + dir_0acad8e611f5f3679e26f7f6ddf45d1c.js | 4 + dir_0acad8e611f5f3679e26f7f6ddf45d1c_dep.map | 6 + dir_0acad8e611f5f3679e26f7f6ddf45d1c_dep.md5 | 1 + dir_0acad8e611f5f3679e26f7f6ddf45d1c_dep.png | Bin 0 -> 3606 bytes dir_1083f99974d515180cb874b65de1a4c1.html | 106 + dir_1083f99974d515180cb874b65de1a4c1.js | 4 + dir_13e138d54eb8818da29c3992edef070a.html | 122 + dir_13e138d54eb8818da29c3992edef070a.js | 6 + dir_13e138d54eb8818da29c3992edef070a_dep.map | 8 + dir_13e138d54eb8818da29c3992edef070a_dep.md5 | 1 + dir_13e138d54eb8818da29c3992edef070a_dep.png | Bin 0 -> 4439 bytes dir_214cdb057acbffb06cb588499d2359e0.html | 106 + dir_214cdb057acbffb06cb588499d2359e0.js | 4 + dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html | 99 + dir_52780cb445d9f0b97a98e8aabec4d968.html | 134 ++ dir_52780cb445d9f0b97a98e8aabec4d968.js | 9 + dir_52780cb445d9f0b97a98e8aabec4d968_dep.map | 6 + dir_52780cb445d9f0b97a98e8aabec4d968_dep.md5 | 1 + dir_52780cb445d9f0b97a98e8aabec4d968_dep.png | Bin 0 -> 3475 bytes dir_5618a23734b7c38608f71c5641f59e33.html | 106 + dir_5618a23734b7c38608f71c5641f59e33.js | 4 + dir_59df94d8c79cd5668d4518ea58739506.html | 106 + dir_59df94d8c79cd5668d4518ea58739506.js | 4 + dir_5d78c82c73cee529a313d94efe356afe.html | 106 + dir_5d78c82c73cee529a313d94efe356afe.js | 4 + dir_68267d1309a1af8e8297ef4c3efbcdba.html | 123 + dir_68267d1309a1af8e8297ef4c3efbcdba.js | 6 + dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map | 5 + dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 | 1 + dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png | Bin 0 -> 1940 bytes dir_6bc06e9f3356adbf38c1368f9e2111de.html | 106 + dir_6bc06e9f3356adbf38c1368f9e2111de.js | 4 + dir_6f5d6d0f4b2a0708d4f75e2c093f010c.html | 106 + dir_6f5d6d0f4b2a0708d4f75e2c093f010c.js | 4 + dir_76e3dd4d2fa719e8d3b096e9aa563982.html | 132 ++ dir_76e3dd4d2fa719e8d3b096e9aa563982.js | 8 + dir_76e3dd4d2fa719e8d3b096e9aa563982_dep.map | 10 + dir_76e3dd4d2fa719e8d3b096e9aa563982_dep.md5 | 1 + dir_76e3dd4d2fa719e8d3b096e9aa563982_dep.png | Bin 0 -> 7058 bytes dir_7c016ae1625038972db0411832a49708.html | 106 + dir_7c016ae1625038972db0411832a49708.js | 4 + dir_7c4c796ec9937bed8074dafcec3d25e4.html | 117 + dir_7c4c796ec9937bed8074dafcec3d25e4.js | 4 + dir_7c4c796ec9937bed8074dafcec3d25e4_dep.map | 6 + dir_7c4c796ec9937bed8074dafcec3d25e4_dep.md5 | 1 + dir_7c4c796ec9937bed8074dafcec3d25e4_dep.png | Bin 0 -> 3571 bytes dir_97ddee6994ce82fd2a76b10ba4d7572d.html | 122 + dir_97ddee6994ce82fd2a76b10ba4d7572d.js | 5 + dir_97ddee6994ce82fd2a76b10ba4d7572d_dep.map | 6 + dir_97ddee6994ce82fd2a76b10ba4d7572d_dep.md5 | 1 + dir_97ddee6994ce82fd2a76b10ba4d7572d_dep.png | Bin 0 -> 3567 bytes dir_cbd7f246bdf7dc0a50281a272327e6ed.html | 134 ++ dir_cbd7f246bdf7dc0a50281a272327e6ed.js | 9 + dir_cbd7f246bdf7dc0a50281a272327e6ed_dep.map | 10 + dir_cbd7f246bdf7dc0a50281a272327e6ed_dep.md5 | 1 + dir_cbd7f246bdf7dc0a50281a272327e6ed_dep.png | Bin 0 -> 5520 bytes dir_ccbb917b88eb4b4e61c0612ad965fbbd.html | 106 + dir_ccbb917b88eb4b4e61c0612ad965fbbd.js | 4 + dir_cccbabf7c3b8a30ea0b9902e22888214.html | 121 + dir_cccbabf7c3b8a30ea0b9902e22888214.js | 5 + dir_cccbabf7c3b8a30ea0b9902e22888214_dep.map | 6 + dir_cccbabf7c3b8a30ea0b9902e22888214_dep.md5 | 1 + dir_cccbabf7c3b8a30ea0b9902e22888214_dep.png | Bin 0 -> 3288 bytes dir_cf02dea305ec692505ba6fa0e02c0b80.html | 112 + dir_cf02dea305ec692505ba6fa0e02c0b80.js | 10 + dir_cfadb97a047f54946ed337ecdf10cbea.html | 120 + dir_cfadb97a047f54946ed337ecdf10cbea.js | 5 + dir_cfadb97a047f54946ed337ecdf10cbea_dep.map | 6 + dir_cfadb97a047f54946ed337ecdf10cbea_dep.md5 | 1 + dir_cfadb97a047f54946ed337ecdf10cbea_dep.png | Bin 0 -> 3971 bytes dir_d683bc3d3192fc80ec7b59eb6756d7d6.html | 122 + dir_d683bc3d3192fc80ec7b59eb6756d7d6.js | 5 + dir_d683bc3d3192fc80ec7b59eb6756d7d6_dep.map | 6 + dir_d683bc3d3192fc80ec7b59eb6756d7d6_dep.md5 | 1 + dir_d683bc3d3192fc80ec7b59eb6756d7d6_dep.png | Bin 0 -> 3481 bytes dir_dfa008182f2a40cb988df1752e3cb29d.html | 120 + dir_dfa008182f2a40cb988df1752e3cb29d.js | 5 + dir_dfa008182f2a40cb988df1752e3cb29d_dep.map | 8 + dir_dfa008182f2a40cb988df1752e3cb29d_dep.md5 | 1 + dir_dfa008182f2a40cb988df1752e3cb29d_dep.png | Bin 0 -> 5019 bytes doc.png | Bin 0 -> 746 bytes docker_8md.html | 99 + doxygen.css | 1793 +++++++++++++++ doxygen.svg | 26 + driver_8cpp.html | 191 ++ driver_8cpp.js | 4 + driver_8cpp__incl.map | 5 + driver_8cpp__incl.md5 | 1 + driver_8cpp__incl.png | Bin 0 -> 6132 bytes driver_8cpp_source.html | 115 + driver_8h.html | 199 ++ driver_8h.js | 4 + driver_8h__dep__incl.map | 4 + driver_8h__dep__incl.md5 | 1 + driver_8h__dep__incl.png | Bin 0 -> 7812 bytes driver_8h__incl.map | 4 + driver_8h__incl.md5 | 1 + driver_8h__incl.png | Bin 0 -> 5242 bytes driver_8h_source.html | 109 + dynsections.js | 128 ++ files.html | 152 ++ files_dup.js | 6 + folderclosed.png | Bin 0 -> 616 bytes folderopen.png | Bin 0 -> 597 bytes functions.html | 320 +++ functions_enum.html | 99 + functions_eval.html | 105 + functions_func.html | 226 ++ functions_vars.html | 162 ++ globals.html | 191 ++ globals_defs.html | 99 + globals_func.html | 140 ++ globals_vars.html | 102 + graph_legend.html | 158 ++ graph_legend.md5 | 1 + graph_legend.png | Bin 0 -> 20615 bytes graphics_8cpp.html | 139 ++ graphics_8cpp__incl.map | 12 + graphics_8cpp__incl.md5 | 1 + graphics_8cpp__incl.png | Bin 0 -> 19061 bytes graphics_8cpp_source.html | 206 ++ index.html | 98 + integration__test_2example_8cpp.html | 169 ++ integration__test_2example_8cpp.js | 4 + integration__test_2example_8cpp__incl.map | 4 + integration__test_2example_8cpp__incl.md5 | 1 + integration__test_2example_8cpp__incl.png | Bin 0 -> 5482 bytes integration__test_2example_8cpp_source.html | 104 + jquery.js | 35 + kernel_8h.html | 227 ++ kernel_8h.js | 4 + kernel_8h__dep__incl.map | 5 + kernel_8h__dep__incl.md5 | 1 + kernel_8h__dep__incl.png | Bin 0 -> 11110 bytes kernel_8h__incl.map | 4 + kernel_8h__incl.md5 | 1 + kernel_8h__incl.png | Bin 0 -> 4626 bytes ...201d4f3fe424b79dbb580041d738741_cgraph.map | 5 + ...201d4f3fe424b79dbb580041d738741_cgraph.md5 | 1 + ...201d4f3fe424b79dbb580041d738741_cgraph.png | Bin 0 -> 2472 bytes ...01d4f3fe424b79dbb580041d738741_icgraph.map | 4 + ...01d4f3fe424b79dbb580041d738741_icgraph.md5 | 1 + ...01d4f3fe424b79dbb580041d738741_icgraph.png | Bin 0 -> 1588 bytes kernel_8h_source.html | 109 + libc_8c.html | 173 ++ libc_8c.js | 4 + libc_8c__incl.map | 5 + libc_8c__incl.md5 | 1 + libc_8c__incl.png | Bin 0 -> 5549 bytes libc_8c_source.html | 123 + libc_8h.html | 199 ++ libc_8h.js | 4 + libc_8h__dep__incl.map | 4 + libc_8h__dep__incl.md5 | 1 + libc_8h__dep__incl.png | Bin 0 -> 7469 bytes libc_8h__incl.map | 4 + libc_8h__incl.md5 | 1 + libc_8h__incl.png | Bin 0 -> 4646 bytes libc_8h_source.html | 117 + libcxx_8cpp.html | 191 ++ libcxx_8cpp.js | 4 + libcxx_8cpp__incl.map | 5 + libcxx_8cpp__incl.md5 | 1 + libcxx_8cpp__incl.png | Bin 0 -> 6054 bytes libcxx_8cpp_source.html | 115 + libcxx_8h.html | 199 ++ libcxx_8h.js | 4 + libcxx_8h__dep__incl.map | 4 + libcxx_8h__dep__incl.md5 | 1 + libcxx_8h__dep__incl.png | Bin 0 -> 8148 bytes libcxx_8h__incl.map | 4 + libcxx_8h__incl.md5 | 1 + libcxx_8h__incl.png | Bin 0 -> 5067 bytes libcxx_8h_source.html | 109 + load__elf_8cpp.html | 143 ++ load__elf_8cpp__incl.map | 13 + load__elf_8cpp__incl.md5 | 1 + load__elf_8cpp__incl.png | Bin 0 -> 24514 bytes load__elf_8cpp_source.html | 1004 ++++++++ load__elf_8h.html | 164 ++ load__elf_8h__dep__incl.map | 8 + load__elf_8h__dep__incl.md5 | 1 + load__elf_8h__dep__incl.png | Bin 0 -> 21424 bytes load__elf_8h__incl.map | 9 + load__elf_8h__incl.md5 | 1 + load__elf_8h__incl.png | Bin 0 -> 11768 bytes load__elf_8h_source.html | 271 +++ ...__xE5_xB7_xA5_xE5_x85_xB7_xE9_x93_xBE.html | 187 ++ ...B_xE7_xBB_x9F_xE5_x90_xAF_xE5_x8A_xA8.html | 146 ++ ...work_SimpleKernel_SimpleKernel_README.html | 192 ++ ..._test_system_test_gnu_efi_test_README.html | 107 + ...F_xE7_x94_xA8_xE8_xAF_xB4_xE6_x98_x8E.html | 165 ++ md_docker.html | 138 ++ memory_8cpp.html | 139 ++ memory_8cpp__incl.map | 12 + memory_8cpp__incl.md5 | 1 + memory_8cpp__incl.png | Bin 0 -> 18863 bytes memory_8cpp_source.html | 211 ++ menu.js | 51 + menudata.js | 80 + nav_f.png | Bin 0 -> 153 bytes nav_g.png | Bin 0 -> 95 bytes nav_h.png | Bin 0 -> 98 bytes navtree.css | 146 ++ navtree.js | 546 +++++ navtreedata.js | 87 + navtreeindex0.js | 233 ++ open.png | Bin 0 -> 123 bytes ostream_8cpp.html | 175 ++ ostream_8cpp.js | 4 + ostream_8cpp__incl.map | 6 + ostream_8cpp__incl.md5 | 1 + ostream_8cpp__incl.png | Bin 0 -> 7831 bytes ostream_8cpp_source.html | 136 ++ ostream_8hpp.html | 229 ++ ostream_8hpp.js | 6 + ostream_8hpp__dep__incl.map | 9 + ostream_8hpp__dep__incl.md5 | 1 + ostream_8hpp__dep__incl.png | Bin 0 -> 29838 bytes ostream_8hpp__incl.map | 5 + ostream_8hpp__incl.md5 | 1 + ostream_8hpp__incl.png | Bin 0 -> 6214 bytes ostream_8hpp_source.html | 244 ++ pages.html | 108 + project__config_8h.html | 164 ++ project__config_8h.js | 4 + project__config_8h__dep__incl.map | 5 + project__config_8h__dep__incl.md5 | 1 + project__config_8h__dep__incl.png | Bin 0 -> 11308 bytes project__config_8h__incl.map | 4 + project__config_8h__incl.md5 | 1 + project__config_8h__incl.png | Bin 0 -> 4922 bytes project__config_8h_source.html | 108 + resize.js | 140 ++ riscv64_2arch_8cpp.html | 345 +++ riscv64_2arch_8cpp.js | 7 + riscv64_2arch_8cpp__incl.map | 5 + riscv64_2arch_8cpp__incl.md5 | 1 + riscv64_2arch_8cpp__incl.png | Bin 0 -> 7251 bytes ...3bc8720ee66b4d5ef3b10b00d92294f_cgraph.map | 5 + ...3bc8720ee66b4d5ef3b10b00d92294f_cgraph.md5 | 1 + ...3bc8720ee66b4d5ef3b10b00d92294f_cgraph.png | Bin 0 -> 2531 bytes ...743e5195a085e51d92eb812991cce47_cgraph.map | 4 + ...743e5195a085e51d92eb812991cce47_cgraph.md5 | 1 + ...743e5195a085e51d92eb812991cce47_cgraph.png | Bin 0 -> 2082 bytes ...43e5195a085e51d92eb812991cce47_icgraph.map | 4 + ...43e5195a085e51d92eb812991cce47_icgraph.md5 | 1 + ...43e5195a085e51d92eb812991cce47_icgraph.png | Bin 0 -> 1918 bytes ...88de26fa6132129a1743b8df8fc982_icgraph.map | 5 + ...88de26fa6132129a1743b8df8fc982_icgraph.md5 | 1 + ...88de26fa6132129a1743b8df8fc982_icgraph.png | Bin 0 -> 2425 bytes riscv64_2arch_8cpp_source.html | 163 ++ search/all_0.html | 37 + search/all_0.js | 4 + search/all_1.html | 37 + search/all_1.js | 4 + search/all_10.html | 37 + search/all_10.js | 10 + search/all_11.html | 37 + search/all_11.js | 6 + search/all_12.html | 37 + search/all_12.js | 10 + search/all_13.html | 37 + search/all_13.js | 4 + search/all_14.html | 37 + search/all_14.js | 4 + search/all_15.html | 37 + search/all_15.js | 4 + search/all_16.html | 37 + search/all_16.js | 5 + search/all_17.html | 37 + search/all_17.js | 7 + search/all_18.html | 37 + search/all_18.js | 4 + search/all_2.html | 37 + search/all_2.js | 4 + search/all_3.html | 37 + search/all_3.js | 6 + search/all_4.html | 37 + search/all_4.js | 5 + search/all_5.html | 37 + search/all_5.js | 6 + search/all_6.html | 37 + search/all_6.js | 14 + search/all_7.html | 37 + search/all_7.js | 13 + search/all_8.html | 37 + search/all_8.js | 6 + search/all_9.html | 37 + search/all_9.js | 11 + search/all_a.html | 37 + search/all_a.js | 5 + search/all_b.html | 37 + search/all_b.js | 4 + search/all_c.html | 37 + search/all_c.js | 5 + search/all_d.html | 37 + search/all_d.js | 15 + search/all_e.html | 37 + search/all_e.js | 11 + search/all_f.html | 37 + search/all_f.js | 8 + search/classes_0.html | 37 + search/classes_0.js | 4 + search/classes_1.html | 37 + search/classes_1.js | 4 + search/classes_2.html | 37 + search/classes_2.js | 4 + search/classes_3.html | 37 + search/classes_3.js | 4 + search/classes_4.html | 37 + search/classes_4.js | 4 + search/close.svg | 31 + search/defines_0.html | 37 + search/defines_0.js | 4 + search/enums_0.html | 37 + search/enums_0.js | 4 + search/enumvalues_0.html | 37 + search/enumvalues_0.js | 4 + search/enumvalues_1.html | 37 + search/enumvalues_1.js | 5 + search/files_0.html | 37 + search/files_0.js | 4 + search/files_1.html | 37 + search/files_1.js | 4 + search/files_2.html | 37 + search/files_2.js | 5 + search/files_3.html | 37 + search/files_3.js | 5 + search/files_4.html | 37 + search/files_4.js | 4 + search/files_5.html | 37 + search/files_5.js | 6 + search/files_6.html | 37 + search/files_6.js | 4 + search/files_7.html | 37 + search/files_7.js | 4 + search/files_8.html | 37 + search/files_8.js | 4 + search/files_9.html | 37 + search/files_9.js | 9 + search/files_a.html | 37 + search/files_a.js | 5 + search/files_b.html | 37 + search/files_b.js | 5 + search/files_c.html | 37 + search/files_c.js | 4 + search/files_d.html | 37 + search/files_d.js | 4 + search/functions_0.html | 37 + search/functions_0.js | 4 + search/functions_1.html | 37 + search/functions_1.js | 4 + search/functions_2.html | 37 + search/functions_2.js | 4 + search/functions_3.html | 37 + search/functions_3.js | 4 + search/functions_4.html | 37 + search/functions_4.js | 7 + search/functions_5.html | 37 + search/functions_5.js | 4 + search/functions_6.html | 37 + search/functions_6.js | 8 + search/functions_7.html | 37 + search/functions_7.js | 5 + search/functions_8.html | 37 + search/functions_8.js | 9 + search/functions_9.html | 37 + search/functions_9.js | 5 + search/functions_a.html | 37 + search/functions_a.js | 6 + search/functions_b.html | 37 + search/functions_b.js | 8 + search/functions_c.html | 37 + search/functions_c.js | 4 + search/functions_d.html | 37 + search/functions_d.js | 4 + search/functions_e.html | 37 + search/functions_e.js | 4 + search/functions_f.html | 37 + search/functions_f.js | 7 + search/mag_sel.svg | 74 + search/nomatches.html | 13 + search/pages_0.html | 37 + search/pages_0.js | 4 + search/pages_1.html | 37 + search/pages_1.js | 4 + search/pages_2.html | 37 + search/pages_2.js | 4 + search/pages_3.html | 37 + search/pages_3.js | 5 + search/pages_4.html | 37 + search/pages_4.js | 4 + search/search.css | 257 +++ search/search.js | 816 +++++++ search/search_l.png | Bin 0 -> 567 bytes search/search_m.png | Bin 0 -> 158 bytes search/search_r.png | Bin 0 -> 553 bytes search/searchdata.js | 39 + search/variables_0.html | 37 + search/variables_0.js | 9 + search/variables_1.html | 37 + search/variables_1.js | 8 + search/variables_2.html | 37 + search/variables_2.js | 5 + search/variables_3.html | 37 + search/variables_3.js | 4 + search/variables_4.html | 37 + search/variables_4.js | 4 + search/variables_5.html | 37 + search/variables_5.js | 6 + search/variables_6.html | 37 + search/variables_6.js | 4 + search/variables_7.html | 37 + search/variables_7.js | 4 + search/variables_8.html | 37 + search/variables_8.js | 6 + search/variables_9.html | 37 + search/variables_9.js | 4 + splitbar.png | Bin 0 -> 314 bytes src_2boot_2boot_8cpp.html | 303 +++ src_2boot_2boot_8cpp.js | 5 + src_2boot_2boot_8cpp__incl.map | 15 + src_2boot_2boot_8cpp__incl.md5 | 1 + src_2boot_2boot_8cpp__incl.png | Bin 0 -> 22674 bytes ...88070898d2d56fa4c1654a3c8409719_cgraph.map | 5 + ...88070898d2d56fa4c1654a3c8409719_cgraph.md5 | 1 + ...88070898d2d56fa4c1654a3c8409719_cgraph.png | Bin 0 -> 4850 bytes src_2boot_2boot_8cpp_source.html | 203 ++ src_2kernel_2main_8cpp.html | 200 ++ src_2kernel_2main_8cpp.js | 4 + src_2kernel_2main_8cpp__incl.map | 5 + src_2kernel_2main_8cpp__incl.md5 | 1 + src_2kernel_2main_8cpp__incl.png | Bin 0 -> 5731 bytes ...01d4f3fe424b79dbb580041d738741_icgraph.map | 4 + ...01d4f3fe424b79dbb580041d738741_icgraph.md5 | 1 + ...01d4f3fe424b79dbb580041d738741_icgraph.png | Bin 0 -> 1588 bytes src_2kernel_2main_8cpp_source.html | 114 + structsbiret__t-members.html | 103 + structsbiret__t.html | 164 ++ structsbiret__t.js | 5 + structsbiret__t__coll__graph.map | 3 + structsbiret__t__coll__graph.md5 | 1 + structsbiret__t__coll__graph.png | Bin 0 -> 2109 bytes sync_off.png | Bin 0 -> 853 bytes sync_on.png | Bin 0 -> 845 bytes tab_a.png | Bin 0 -> 142 bytes tab_b.png | Bin 0 -> 169 bytes tab_h.png | Bin 0 -> 177 bytes tab_s.png | Bin 0 -> 184 bytes tabs.css | 1 + ...tem__test_2gnu__efi__test_2README_8md.html | 99 + ...stem__test_2gnu__efi__test_2boot_8cpp.html | 303 +++ ...system__test_2gnu__efi__test_2boot_8cpp.js | 5 + ..._test_2gnu__efi__test_2boot_8cpp__incl.map | 15 + ..._test_2gnu__efi__test_2boot_8cpp__incl.md5 | 1 + ..._test_2gnu__efi__test_2boot_8cpp__incl.png | Bin 0 -> 28594 bytes ...88070898d2d56fa4c1654a3c8409719_cgraph.map | 5 + ...88070898d2d56fa4c1654a3c8409719_cgraph.md5 | 1 + ...88070898d2d56fa4c1654a3c8409719_cgraph.png | Bin 0 -> 4850 bytes ...est_2gnu__efi__test_2boot_8cpp_source.html | 203 ++ ...stem__test_2gnu__efi__test_2main_8cpp.html | 222 ++ ...system__test_2gnu__efi__test_2main_8cpp.js | 5 + ..._test_2gnu__efi__test_2main_8cpp__incl.map | 5 + ..._test_2gnu__efi__test_2main_8cpp__incl.md5 | 1 + ..._test_2gnu__efi__test_2main_8cpp__incl.png | Bin 0 -> 7249 bytes ...78e7d7a89207ea1c3575850e0fff462_cgraph.map | 4 + ...78e7d7a89207ea1c3575850e0fff462_cgraph.md5 | 1 + ...78e7d7a89207ea1c3575850e0fff462_cgraph.png | Bin 0 -> 1605 bytes ...est_2gnu__efi__test_2main_8cpp_source.html | 116 + ...ystem__test_2opensbi__test_2boot_8cpp.html | 357 +++ ...2system__test_2opensbi__test_2boot_8cpp.js | 7 + ...__test_2opensbi__test_2boot_8cpp__incl.map | 5 + ...__test_2opensbi__test_2boot_8cpp__incl.md5 | 1 + ...__test_2opensbi__test_2boot_8cpp__incl.png | Bin 0 -> 7794 bytes ...c3f6775325c30275d11c6abee2db6a0_cgraph.map | 5 + ...c3f6775325c30275d11c6abee2db6a0_cgraph.md5 | 1 + ...c3f6775325c30275d11c6abee2db6a0_cgraph.png | Bin 0 -> 2472 bytes ...743e5195a085e51d92eb812991cce47_cgraph.map | 4 + ...743e5195a085e51d92eb812991cce47_cgraph.md5 | 1 + ...743e5195a085e51d92eb812991cce47_cgraph.png | Bin 0 -> 2082 bytes ...43e5195a085e51d92eb812991cce47_icgraph.map | 4 + ...43e5195a085e51d92eb812991cce47_icgraph.md5 | 1 + ...43e5195a085e51d92eb812991cce47_icgraph.png | Bin 0 -> 1874 bytes ...88de26fa6132129a1743b8df8fc982_icgraph.map | 5 + ...88de26fa6132129a1743b8df8fc982_icgraph.md5 | 1 + ...88de26fa6132129a1743b8df8fc982_icgraph.png | Bin 0 -> 2516 bytes ...test_2opensbi__test_2boot_8cpp_source.html | 163 ++ unit__test_2example_8cpp.html | 169 ++ unit__test_2example_8cpp.js | 4 + unit__test_2example_8cpp__incl.map | 4 + unit__test_2example_8cpp__incl.md5 | 1 + unit__test_2example_8cpp__incl.png | Bin 0 -> 5157 bytes unit__test_2example_8cpp_source.html | 104 + x86__64_2arch_8cpp.html | 180 ++ x86__64_2arch_8cpp.js | 4 + x86__64_2arch_8cpp__incl.map | 5 + x86__64_2arch_8cpp__incl.md5 | 1 + x86__64_2arch_8cpp__incl.png | Bin 0 -> 7009 bytes x86__64_2arch_8cpp_source.html | 115 + 659 files changed, 31214 insertions(+) create mode 100644 .nojekyll create mode 100644 0___xE5_xB7_xA5_xE5_x85_xB7_xE9_x93_xBE_8md.html create mode 100644 1___xE7_xB3_xBB_xE7_xBB_x9F_xE5_x90_xAF_xE5_x8A_xA8_8md.html create mode 100644 Clion_01_xE4_xBD_xBF_xE7_x94_xA8_xE8_xAF_xB4_xE6_x98_x8E_8md.html create mode 100644 README_8md.html create mode 100644 aarch64_2arch_8cpp.html create mode 100644 aarch64_2arch_8cpp.js create mode 100644 aarch64_2arch_8cpp__incl.map create mode 100644 aarch64_2arch_8cpp__incl.md5 create mode 100644 aarch64_2arch_8cpp__incl.png create mode 100644 aarch64_2arch_8cpp_source.html create mode 100644 annotated.html create mode 100644 annotated_dup.js create mode 100644 arch_8cpp.html create mode 100644 arch_8cpp.js create mode 100644 arch_8cpp__incl.map create mode 100644 arch_8cpp__incl.md5 create mode 100644 arch_8cpp__incl.png create mode 100644 arch_8cpp_source.html create mode 100644 arch_8h.html create mode 100644 arch_8h.js create mode 100644 arch_8h__dep__incl.map create mode 100644 arch_8h__dep__incl.md5 create mode 100644 arch_8h__dep__incl.png create mode 100644 arch_8h__incl.map create mode 100644 arch_8h__incl.md5 create mode 100644 arch_8h__incl.png create mode 100644 arch_8h_source.html create mode 100644 bc_s.png create mode 100644 bdwn.png create mode 100644 boot_8h.html create mode 100644 boot_8h.js create mode 100644 boot_8h__incl.map create mode 100644 boot_8h__incl.md5 create mode 100644 boot_8h__incl.png create mode 100644 boot_8h_source.html create mode 100644 classElf-members.html create mode 100644 classElf.html create mode 100644 classElf.js create mode 100644 classElf__coll__graph.map create mode 100644 classElf__coll__graph.md5 create mode 100644 classElf__coll__graph.png create mode 100644 classElf_a004d82ec887bbe8da9588c9c88041c07_cgraph.map create mode 100644 classElf_a004d82ec887bbe8da9588c9c88041c07_cgraph.md5 create mode 100644 classElf_a004d82ec887bbe8da9588c9c88041c07_cgraph.png create mode 100644 classElf_a0eb12fc4d607d5c2ba473a3882a50276_cgraph.map create mode 100644 classElf_a0eb12fc4d607d5c2ba473a3882a50276_cgraph.md5 create mode 100644 classElf_a0eb12fc4d607d5c2ba473a3882a50276_cgraph.png create mode 100644 classElf_a0eb12fc4d607d5c2ba473a3882a50276_icgraph.map create mode 100644 classElf_a0eb12fc4d607d5c2ba473a3882a50276_icgraph.md5 create mode 100644 classElf_a0eb12fc4d607d5c2ba473a3882a50276_icgraph.png create mode 100644 classElf_a135ba996115f8bd77521be56b1cf7767_icgraph.map create mode 100644 classElf_a135ba996115f8bd77521be56b1cf7767_icgraph.md5 create mode 100644 classElf_a135ba996115f8bd77521be56b1cf7767_icgraph.png create mode 100644 classElf_a1764987395919b2725a85a17f904f245_cgraph.map create mode 100644 classElf_a1764987395919b2725a85a17f904f245_cgraph.md5 create mode 100644 classElf_a1764987395919b2725a85a17f904f245_cgraph.png create mode 100644 classElf_a1764987395919b2725a85a17f904f245_icgraph.map create mode 100644 classElf_a1764987395919b2725a85a17f904f245_icgraph.md5 create mode 100644 classElf_a1764987395919b2725a85a17f904f245_icgraph.png create mode 100644 classElf_a184a984a3da808368593a45f06005bd3_cgraph.map create mode 100644 classElf_a184a984a3da808368593a45f06005bd3_cgraph.md5 create mode 100644 classElf_a184a984a3da808368593a45f06005bd3_cgraph.png create mode 100644 classElf_a23bfd5acab462921c7e0f8b958fe5936_icgraph.map create mode 100644 classElf_a23bfd5acab462921c7e0f8b958fe5936_icgraph.md5 create mode 100644 classElf_a23bfd5acab462921c7e0f8b958fe5936_icgraph.png create mode 100644 classElf_a25345e29535844c992d1a45bf12e2e57_cgraph.map create mode 100644 classElf_a25345e29535844c992d1a45bf12e2e57_cgraph.md5 create mode 100644 classElf_a25345e29535844c992d1a45bf12e2e57_cgraph.png create mode 100644 classElf_a25345e29535844c992d1a45bf12e2e57_icgraph.map create mode 100644 classElf_a25345e29535844c992d1a45bf12e2e57_icgraph.md5 create mode 100644 classElf_a25345e29535844c992d1a45bf12e2e57_icgraph.png create mode 100644 classElf_a3074fcc38da6769775c9f685b02ab47c_icgraph.map create mode 100644 classElf_a3074fcc38da6769775c9f685b02ab47c_icgraph.md5 create mode 100644 classElf_a3074fcc38da6769775c9f685b02ab47c_icgraph.png create mode 100644 classElf_a34d57d143f7782f3c630f6ddb1f16948_cgraph.map create mode 100644 classElf_a34d57d143f7782f3c630f6ddb1f16948_cgraph.md5 create mode 100644 classElf_a34d57d143f7782f3c630f6ddb1f16948_cgraph.png create mode 100644 classElf_a34d57d143f7782f3c630f6ddb1f16948_icgraph.map create mode 100644 classElf_a34d57d143f7782f3c630f6ddb1f16948_icgraph.md5 create mode 100644 classElf_a34d57d143f7782f3c630f6ddb1f16948_icgraph.png create mode 100644 classElf_a3502161430e3a3c1896c2d92df03c71e_cgraph.map create mode 100644 classElf_a3502161430e3a3c1896c2d92df03c71e_cgraph.md5 create mode 100644 classElf_a3502161430e3a3c1896c2d92df03c71e_cgraph.png create mode 100644 classElf_a75355dba9bf23ee591ef52c04b688cea_cgraph.map create mode 100644 classElf_a75355dba9bf23ee591ef52c04b688cea_cgraph.md5 create mode 100644 classElf_a75355dba9bf23ee591ef52c04b688cea_cgraph.png create mode 100644 classElf_abec14f617596cbe75854cdff875a4db2_cgraph.map create mode 100644 classElf_abec14f617596cbe75854cdff875a4db2_cgraph.md5 create mode 100644 classElf_abec14f617596cbe75854cdff875a4db2_cgraph.png create mode 100644 classElf_aea825c7f4d213298f8a60b961c27cd6e_icgraph.map create mode 100644 classElf_aea825c7f4d213298f8a60b961c27cd6e_icgraph.md5 create mode 100644 classElf_aea825c7f4d213298f8a60b961c27cd6e_icgraph.png create mode 100644 classElf_aff0728535c76009acc8d78cbece772fe_cgraph.map create mode 100644 classElf_aff0728535c76009acc8d78cbece772fe_cgraph.md5 create mode 100644 classElf_aff0728535c76009acc8d78cbece772fe_cgraph.png create mode 100644 classElf_aff0728535c76009acc8d78cbece772fe_icgraph.map create mode 100644 classElf_aff0728535c76009acc8d78cbece772fe_icgraph.md5 create mode 100644 classElf_aff0728535c76009acc8d78cbece772fe_icgraph.png create mode 100644 classGraphics-members.html create mode 100644 classGraphics.html create mode 100644 classGraphics.js create mode 100644 classGraphics__coll__graph.map create mode 100644 classGraphics__coll__graph.md5 create mode 100644 classGraphics__coll__graph.png create mode 100644 classGraphics_a04e4caa540b0612a56adc590971715b6_cgraph.map create mode 100644 classGraphics_a04e4caa540b0612a56adc590971715b6_cgraph.md5 create mode 100644 classGraphics_a04e4caa540b0612a56adc590971715b6_cgraph.png create mode 100644 classGraphics_ad860b4ad2f72a6332cb4a850839ff5e5_cgraph.map create mode 100644 classGraphics_ad860b4ad2f72a6332cb4a850839ff5e5_cgraph.md5 create mode 100644 classGraphics_ad860b4ad2f72a6332cb4a850839ff5e5_cgraph.png create mode 100644 classGraphics_af2e8fe67fd31ec263c843a6e28b29d3c_cgraph.map create mode 100644 classGraphics_af2e8fe67fd31ec263c843a6e28b29d3c_cgraph.md5 create mode 100644 classGraphics_af2e8fe67fd31ec263c843a6e28b29d3c_cgraph.png create mode 100644 classMemory-members.html create mode 100644 classMemory.html create mode 100644 classMemory.js create mode 100644 classMemory__coll__graph.map create mode 100644 classMemory__coll__graph.md5 create mode 100644 classMemory__coll__graph.png create mode 100644 classMemory_a0d7799e95e8dda035f91d14e2febcfcd_cgraph.map create mode 100644 classMemory_a0d7799e95e8dda035f91d14e2febcfcd_cgraph.md5 create mode 100644 classMemory_a0d7799e95e8dda035f91d14e2febcfcd_cgraph.png create mode 100644 classMemory_a0d7799e95e8dda035f91d14e2febcfcd_icgraph.map create mode 100644 classMemory_a0d7799e95e8dda035f91d14e2febcfcd_icgraph.md5 create mode 100644 classMemory_a0d7799e95e8dda035f91d14e2febcfcd_icgraph.png create mode 100644 classMemory_a585d7bb6fc6f2237bcebf94a86b7dd99_cgraph.map create mode 100644 classMemory_a585d7bb6fc6f2237bcebf94a86b7dd99_cgraph.md5 create mode 100644 classMemory_a585d7bb6fc6f2237bcebf94a86b7dd99_cgraph.png create mode 100644 classMemory_a81aabf1a13f96ce935d6157a9520b83a_cgraph.map create mode 100644 classMemory_a81aabf1a13f96ce935d6157a9520b83a_cgraph.md5 create mode 100644 classMemory_a81aabf1a13f96ce935d6157a9520b83a_cgraph.png create mode 100644 classes.html create mode 100644 classostream-members.html create mode 100644 classostream.html create mode 100644 classostream.js create mode 100644 classostream__coll__graph.map create mode 100644 classostream__coll__graph.md5 create mode 100644 classostream__coll__graph.png create mode 100644 classostream_a271664830d4cda9da6c7c0b4c04a8ed2_icgraph.map create mode 100644 classostream_a271664830d4cda9da6c7c0b4c04a8ed2_icgraph.md5 create mode 100644 classostream_a271664830d4cda9da6c7c0b4c04a8ed2_icgraph.png create mode 100644 classostream_a4ec6f2934351244c566df995f0aa6d99_icgraph.map create mode 100644 classostream_a4ec6f2934351244c566df995f0aa6d99_icgraph.md5 create mode 100644 classostream_a4ec6f2934351244c566df995f0aa6d99_icgraph.png create mode 100644 classostream_afaa63ab1ab5310f2e4ccaeaf26a1d9f9_icgraph.map create mode 100644 classostream_afaa63ab1ab5310f2e4ccaeaf26a1d9f9_icgraph.md5 create mode 100644 classostream_afaa63ab1ab5310f2e4ccaeaf26a1d9f9_icgraph.png create mode 100644 closed.png create mode 100644 dir_000001_000003.html create mode 100644 dir_000002_000003.html create mode 100644 dir_000004_000006.html create mode 100644 dir_000007_000015.html create mode 100644 dir_000009_000012.html create mode 100644 dir_000011_000012.html create mode 100644 dir_000013_000014.html create mode 100644 dir_000016_000017.html create mode 100644 dir_000018_000019.html create mode 100644 dir_0acad8e611f5f3679e26f7f6ddf45d1c.html create mode 100644 dir_0acad8e611f5f3679e26f7f6ddf45d1c.js create mode 100644 dir_0acad8e611f5f3679e26f7f6ddf45d1c_dep.map create mode 100644 dir_0acad8e611f5f3679e26f7f6ddf45d1c_dep.md5 create mode 100644 dir_0acad8e611f5f3679e26f7f6ddf45d1c_dep.png create mode 100644 dir_1083f99974d515180cb874b65de1a4c1.html create mode 100644 dir_1083f99974d515180cb874b65de1a4c1.js create mode 100644 dir_13e138d54eb8818da29c3992edef070a.html create mode 100644 dir_13e138d54eb8818da29c3992edef070a.js create mode 100644 dir_13e138d54eb8818da29c3992edef070a_dep.map create mode 100644 dir_13e138d54eb8818da29c3992edef070a_dep.md5 create mode 100644 dir_13e138d54eb8818da29c3992edef070a_dep.png create mode 100644 dir_214cdb057acbffb06cb588499d2359e0.html create mode 100644 dir_214cdb057acbffb06cb588499d2359e0.js create mode 100644 dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html create mode 100644 dir_52780cb445d9f0b97a98e8aabec4d968.html create mode 100644 dir_52780cb445d9f0b97a98e8aabec4d968.js create mode 100644 dir_52780cb445d9f0b97a98e8aabec4d968_dep.map create mode 100644 dir_52780cb445d9f0b97a98e8aabec4d968_dep.md5 create mode 100644 dir_52780cb445d9f0b97a98e8aabec4d968_dep.png create mode 100644 dir_5618a23734b7c38608f71c5641f59e33.html create mode 100644 dir_5618a23734b7c38608f71c5641f59e33.js create mode 100644 dir_59df94d8c79cd5668d4518ea58739506.html create mode 100644 dir_59df94d8c79cd5668d4518ea58739506.js create mode 100644 dir_5d78c82c73cee529a313d94efe356afe.html create mode 100644 dir_5d78c82c73cee529a313d94efe356afe.js 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.png create mode 100644 dir_6bc06e9f3356adbf38c1368f9e2111de.html create mode 100644 dir_6bc06e9f3356adbf38c1368f9e2111de.js create mode 100644 dir_6f5d6d0f4b2a0708d4f75e2c093f010c.html create mode 100644 dir_6f5d6d0f4b2a0708d4f75e2c093f010c.js create mode 100644 dir_76e3dd4d2fa719e8d3b096e9aa563982.html create mode 100644 dir_76e3dd4d2fa719e8d3b096e9aa563982.js create mode 100644 dir_76e3dd4d2fa719e8d3b096e9aa563982_dep.map create mode 100644 dir_76e3dd4d2fa719e8d3b096e9aa563982_dep.md5 create mode 100644 dir_76e3dd4d2fa719e8d3b096e9aa563982_dep.png create mode 100644 dir_7c016ae1625038972db0411832a49708.html create mode 100644 dir_7c016ae1625038972db0411832a49708.js create mode 100644 dir_7c4c796ec9937bed8074dafcec3d25e4.html create mode 100644 dir_7c4c796ec9937bed8074dafcec3d25e4.js create mode 100644 dir_7c4c796ec9937bed8074dafcec3d25e4_dep.map create mode 100644 dir_7c4c796ec9937bed8074dafcec3d25e4_dep.md5 create mode 100644 dir_7c4c796ec9937bed8074dafcec3d25e4_dep.png create mode 100644 dir_97ddee6994ce82fd2a76b10ba4d7572d.html create mode 100644 dir_97ddee6994ce82fd2a76b10ba4d7572d.js create mode 100644 dir_97ddee6994ce82fd2a76b10ba4d7572d_dep.map create mode 100644 dir_97ddee6994ce82fd2a76b10ba4d7572d_dep.md5 create mode 100644 dir_97ddee6994ce82fd2a76b10ba4d7572d_dep.png create mode 100644 dir_cbd7f246bdf7dc0a50281a272327e6ed.html create mode 100644 dir_cbd7f246bdf7dc0a50281a272327e6ed.js create mode 100644 dir_cbd7f246bdf7dc0a50281a272327e6ed_dep.map create mode 100644 dir_cbd7f246bdf7dc0a50281a272327e6ed_dep.md5 create mode 100644 dir_cbd7f246bdf7dc0a50281a272327e6ed_dep.png create mode 100644 dir_ccbb917b88eb4b4e61c0612ad965fbbd.html create mode 100644 dir_ccbb917b88eb4b4e61c0612ad965fbbd.js create mode 100644 dir_cccbabf7c3b8a30ea0b9902e22888214.html create mode 100644 dir_cccbabf7c3b8a30ea0b9902e22888214.js create mode 100644 dir_cccbabf7c3b8a30ea0b9902e22888214_dep.map create mode 100644 dir_cccbabf7c3b8a30ea0b9902e22888214_dep.md5 create mode 100644 dir_cccbabf7c3b8a30ea0b9902e22888214_dep.png create mode 100644 dir_cf02dea305ec692505ba6fa0e02c0b80.html create mode 100644 dir_cf02dea305ec692505ba6fa0e02c0b80.js create mode 100644 dir_cfadb97a047f54946ed337ecdf10cbea.html create mode 100644 dir_cfadb97a047f54946ed337ecdf10cbea.js create mode 100644 dir_cfadb97a047f54946ed337ecdf10cbea_dep.map create mode 100644 dir_cfadb97a047f54946ed337ecdf10cbea_dep.md5 create mode 100644 dir_cfadb97a047f54946ed337ecdf10cbea_dep.png create mode 100644 dir_d683bc3d3192fc80ec7b59eb6756d7d6.html create mode 100644 dir_d683bc3d3192fc80ec7b59eb6756d7d6.js create mode 100644 dir_d683bc3d3192fc80ec7b59eb6756d7d6_dep.map create mode 100644 dir_d683bc3d3192fc80ec7b59eb6756d7d6_dep.md5 create mode 100644 dir_d683bc3d3192fc80ec7b59eb6756d7d6_dep.png create mode 100644 dir_dfa008182f2a40cb988df1752e3cb29d.html create mode 100644 dir_dfa008182f2a40cb988df1752e3cb29d.js create mode 100644 dir_dfa008182f2a40cb988df1752e3cb29d_dep.map create mode 100644 dir_dfa008182f2a40cb988df1752e3cb29d_dep.md5 create mode 100644 dir_dfa008182f2a40cb988df1752e3cb29d_dep.png create mode 100644 doc.png create mode 100644 docker_8md.html create mode 100644 doxygen.css create mode 100644 doxygen.svg create mode 100644 driver_8cpp.html create mode 100644 driver_8cpp.js create mode 100644 driver_8cpp__incl.map create mode 100644 driver_8cpp__incl.md5 create mode 100644 driver_8cpp__incl.png create mode 100644 driver_8cpp_source.html create mode 100644 driver_8h.html create mode 100644 driver_8h.js create mode 100644 driver_8h__dep__incl.map create mode 100644 driver_8h__dep__incl.md5 create mode 100644 driver_8h__dep__incl.png create mode 100644 driver_8h__incl.map create mode 100644 driver_8h__incl.md5 create mode 100644 driver_8h__incl.png create mode 100644 driver_8h_source.html create mode 100644 dynsections.js create mode 100644 files.html create mode 100644 files_dup.js create mode 100644 folderclosed.png create mode 100644 folderopen.png create mode 100644 functions.html create mode 100644 functions_enum.html create mode 100644 functions_eval.html create mode 100644 functions_func.html create mode 100644 functions_vars.html create mode 100644 globals.html create mode 100644 globals_defs.html create mode 100644 globals_func.html create mode 100644 globals_vars.html create mode 100644 graph_legend.html create mode 100644 graph_legend.md5 create mode 100644 graph_legend.png create mode 100644 graphics_8cpp.html create mode 100644 graphics_8cpp__incl.map create mode 100644 graphics_8cpp__incl.md5 create mode 100644 graphics_8cpp__incl.png create mode 100644 graphics_8cpp_source.html create mode 100644 index.html create mode 100644 integration__test_2example_8cpp.html create mode 100644 integration__test_2example_8cpp.js create mode 100644 integration__test_2example_8cpp__incl.map create mode 100644 integration__test_2example_8cpp__incl.md5 create mode 100644 integration__test_2example_8cpp__incl.png create mode 100644 integration__test_2example_8cpp_source.html create mode 100644 jquery.js create mode 100644 kernel_8h.html create mode 100644 kernel_8h.js create mode 100644 kernel_8h__dep__incl.map create mode 100644 kernel_8h__dep__incl.md5 create mode 100644 kernel_8h__dep__incl.png create mode 100644 kernel_8h__incl.map create mode 100644 kernel_8h__incl.md5 create mode 100644 kernel_8h__incl.png create mode 100644 kernel_8h_a2201d4f3fe424b79dbb580041d738741_cgraph.map create mode 100644 kernel_8h_a2201d4f3fe424b79dbb580041d738741_cgraph.md5 create mode 100644 kernel_8h_a2201d4f3fe424b79dbb580041d738741_cgraph.png create mode 100644 kernel_8h_a2201d4f3fe424b79dbb580041d738741_icgraph.map create mode 100644 kernel_8h_a2201d4f3fe424b79dbb580041d738741_icgraph.md5 create mode 100644 kernel_8h_a2201d4f3fe424b79dbb580041d738741_icgraph.png create mode 100644 kernel_8h_source.html create mode 100644 libc_8c.html create mode 100644 libc_8c.js create mode 100644 libc_8c__incl.map create mode 100644 libc_8c__incl.md5 create mode 100644 libc_8c__incl.png create mode 100644 libc_8c_source.html create mode 100644 libc_8h.html create mode 100644 libc_8h.js create mode 100644 libc_8h__dep__incl.map create mode 100644 libc_8h__dep__incl.md5 create mode 100644 libc_8h__dep__incl.png create mode 100644 libc_8h__incl.map create mode 100644 libc_8h__incl.md5 create mode 100644 libc_8h__incl.png create mode 100644 libc_8h_source.html create mode 100644 libcxx_8cpp.html create mode 100644 libcxx_8cpp.js create mode 100644 libcxx_8cpp__incl.map create mode 100644 libcxx_8cpp__incl.md5 create mode 100644 libcxx_8cpp__incl.png create mode 100644 libcxx_8cpp_source.html create mode 100644 libcxx_8h.html create mode 100644 libcxx_8h.js create mode 100644 libcxx_8h__dep__incl.map create mode 100644 libcxx_8h__dep__incl.md5 create mode 100644 libcxx_8h__dep__incl.png create mode 100644 libcxx_8h__incl.map create mode 100644 libcxx_8h__incl.md5 create mode 100644 libcxx_8h__incl.png create mode 100644 libcxx_8h_source.html create mode 100644 load__elf_8cpp.html create mode 100644 load__elf_8cpp__incl.map create mode 100644 load__elf_8cpp__incl.md5 create mode 100644 load__elf_8cpp__incl.png create mode 100644 load__elf_8cpp_source.html create mode 100644 load__elf_8h.html create mode 100644 load__elf_8h__dep__incl.map create mode 100644 load__elf_8h__dep__incl.md5 create mode 100644 load__elf_8h__dep__incl.png create mode 100644 load__elf_8h__incl.map create mode 100644 load__elf_8h__incl.md5 create mode 100644 load__elf_8h__incl.png create mode 100644 load__elf_8h_source.html create mode 100644 md_0__xE5_xB7_xA5_xE5_x85_xB7_xE9_x93_xBE.html create mode 100644 md_1__xE7_xB3_xBB_xE7_xBB_x9F_xE5_x90_xAF_xE5_x8A_xA8.html create mode 100644 md__home_runner_work_SimpleKernel_SimpleKernel_README.html create mode 100644 md__home_runner_work_SimpleKernel_SimpleKernel_test_system_test_gnu_efi_test_README.html create mode 100644 md__home_runner_work_SimpleKernel_SimpleKernel_tools_Clion__xE4_xBD_xBF_xE7_x94_xA8_xE8_xAF_xB4_xE6_x98_x8E.html create mode 100644 md_docker.html create mode 100644 memory_8cpp.html create mode 100644 memory_8cpp__incl.map create mode 100644 memory_8cpp__incl.md5 create mode 100644 memory_8cpp__incl.png create mode 100644 memory_8cpp_source.html create mode 100644 menu.js create mode 100644 menudata.js create mode 100644 nav_f.png create mode 100644 nav_g.png create mode 100644 nav_h.png create mode 100644 navtree.css create mode 100644 navtree.js create mode 100644 navtreedata.js create mode 100644 navtreeindex0.js create mode 100644 open.png create mode 100644 ostream_8cpp.html create mode 100644 ostream_8cpp.js create mode 100644 ostream_8cpp__incl.map create mode 100644 ostream_8cpp__incl.md5 create mode 100644 ostream_8cpp__incl.png create mode 100644 ostream_8cpp_source.html create mode 100644 ostream_8hpp.html create mode 100644 ostream_8hpp.js create mode 100644 ostream_8hpp__dep__incl.map create mode 100644 ostream_8hpp__dep__incl.md5 create mode 100644 ostream_8hpp__dep__incl.png create mode 100644 ostream_8hpp__incl.map create mode 100644 ostream_8hpp__incl.md5 create mode 100644 ostream_8hpp__incl.png create mode 100644 ostream_8hpp_source.html create mode 100644 pages.html create mode 100644 project__config_8h.html create mode 100644 project__config_8h.js create mode 100644 project__config_8h__dep__incl.map create mode 100644 project__config_8h__dep__incl.md5 create mode 100644 project__config_8h__dep__incl.png create mode 100644 project__config_8h__incl.map create mode 100644 project__config_8h__incl.md5 create mode 100644 project__config_8h__incl.png create mode 100644 project__config_8h_source.html create mode 100644 resize.js create mode 100644 riscv64_2arch_8cpp.html create mode 100644 riscv64_2arch_8cpp.js create mode 100644 riscv64_2arch_8cpp__incl.map create mode 100644 riscv64_2arch_8cpp__incl.md5 create mode 100644 riscv64_2arch_8cpp__incl.png create mode 100644 riscv64_2arch_8cpp_a03bc8720ee66b4d5ef3b10b00d92294f_cgraph.map create mode 100644 riscv64_2arch_8cpp_a03bc8720ee66b4d5ef3b10b00d92294f_cgraph.md5 create mode 100644 riscv64_2arch_8cpp_a03bc8720ee66b4d5ef3b10b00d92294f_cgraph.png create mode 100644 riscv64_2arch_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.map create mode 100644 riscv64_2arch_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.md5 create mode 100644 riscv64_2arch_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.png create mode 100644 riscv64_2arch_8cpp_a3743e5195a085e51d92eb812991cce47_icgraph.map create mode 100644 riscv64_2arch_8cpp_a3743e5195a085e51d92eb812991cce47_icgraph.md5 create mode 100644 riscv64_2arch_8cpp_a3743e5195a085e51d92eb812991cce47_icgraph.png create mode 100644 riscv64_2arch_8cpp_ae588de26fa6132129a1743b8df8fc982_icgraph.map create mode 100644 riscv64_2arch_8cpp_ae588de26fa6132129a1743b8df8fc982_icgraph.md5 create mode 100644 riscv64_2arch_8cpp_ae588de26fa6132129a1743b8df8fc982_icgraph.png create mode 100644 riscv64_2arch_8cpp_source.html create mode 100644 search/all_0.html create mode 100644 search/all_0.js create mode 100644 search/all_1.html create mode 100644 search/all_1.js create mode 100644 search/all_10.html create mode 100644 search/all_10.js create mode 100644 search/all_11.html create mode 100644 search/all_11.js create mode 100644 search/all_12.html create mode 100644 search/all_12.js create mode 100644 search/all_13.html create mode 100644 search/all_13.js create mode 100644 search/all_14.html create mode 100644 search/all_14.js create mode 100644 search/all_15.html create mode 100644 search/all_15.js create mode 100644 search/all_16.html create mode 100644 search/all_16.js create mode 100644 search/all_17.html create mode 100644 search/all_17.js create mode 100644 search/all_18.html create mode 100644 search/all_18.js create mode 100644 search/all_2.html create mode 100644 search/all_2.js create mode 100644 search/all_3.html create mode 100644 search/all_3.js create mode 100644 search/all_4.html create mode 100644 search/all_4.js create mode 100644 search/all_5.html create mode 100644 search/all_5.js create mode 100644 search/all_6.html create mode 100644 search/all_6.js create mode 100644 search/all_7.html create mode 100644 search/all_7.js create mode 100644 search/all_8.html create mode 100644 search/all_8.js create mode 100644 search/all_9.html create mode 100644 search/all_9.js create mode 100644 search/all_a.html create mode 100644 search/all_a.js create mode 100644 search/all_b.html create mode 100644 search/all_b.js create mode 100644 search/all_c.html create mode 100644 search/all_c.js create mode 100644 search/all_d.html create mode 100644 search/all_d.js create mode 100644 search/all_e.html create mode 100644 search/all_e.js create mode 100644 search/all_f.html create mode 100644 search/all_f.js create mode 100644 search/classes_0.html create mode 100644 search/classes_0.js create mode 100644 search/classes_1.html create mode 100644 search/classes_1.js create mode 100644 search/classes_2.html create mode 100644 search/classes_2.js create mode 100644 search/classes_3.html create mode 100644 search/classes_3.js create mode 100644 search/classes_4.html create mode 100644 search/classes_4.js create mode 100644 search/close.svg create mode 100644 search/defines_0.html create mode 100644 search/defines_0.js create mode 100644 search/enums_0.html create mode 100644 search/enums_0.js create mode 100644 search/enumvalues_0.html create mode 100644 search/enumvalues_0.js create mode 100644 search/enumvalues_1.html create mode 100644 search/enumvalues_1.js create mode 100644 search/files_0.html create mode 100644 search/files_0.js create mode 100644 search/files_1.html create mode 100644 search/files_1.js create mode 100644 search/files_2.html create mode 100644 search/files_2.js create mode 100644 search/files_3.html create mode 100644 search/files_3.js create mode 100644 search/files_4.html create mode 100644 search/files_4.js create mode 100644 search/files_5.html create mode 100644 search/files_5.js create mode 100644 search/files_6.html create mode 100644 search/files_6.js create mode 100644 search/files_7.html create mode 100644 search/files_7.js create mode 100644 search/files_8.html create mode 100644 search/files_8.js create mode 100644 search/files_9.html create mode 100644 search/files_9.js create mode 100644 search/files_a.html create mode 100644 search/files_a.js create mode 100644 search/files_b.html create mode 100644 search/files_b.js create mode 100644 search/files_c.html create mode 100644 search/files_c.js create mode 100644 search/files_d.html create mode 100644 search/files_d.js create mode 100644 search/functions_0.html create mode 100644 search/functions_0.js create mode 100644 search/functions_1.html create mode 100644 search/functions_1.js create mode 100644 search/functions_2.html create mode 100644 search/functions_2.js create mode 100644 search/functions_3.html create mode 100644 search/functions_3.js create mode 100644 search/functions_4.html create mode 100644 search/functions_4.js create mode 100644 search/functions_5.html create mode 100644 search/functions_5.js create mode 100644 search/functions_6.html create mode 100644 search/functions_6.js create mode 100644 search/functions_7.html create mode 100644 search/functions_7.js create mode 100644 search/functions_8.html create mode 100644 search/functions_8.js create mode 100644 search/functions_9.html create mode 100644 search/functions_9.js create mode 100644 search/functions_a.html create mode 100644 search/functions_a.js create mode 100644 search/functions_b.html create mode 100644 search/functions_b.js create mode 100644 search/functions_c.html create mode 100644 search/functions_c.js create mode 100644 search/functions_d.html create mode 100644 search/functions_d.js create mode 100644 search/functions_e.html create mode 100644 search/functions_e.js create mode 100644 search/functions_f.html create mode 100644 search/functions_f.js create mode 100644 search/mag_sel.svg create mode 100644 search/nomatches.html create mode 100644 search/pages_0.html create mode 100644 search/pages_0.js create mode 100644 search/pages_1.html create mode 100644 search/pages_1.js create mode 100644 search/pages_2.html create mode 100644 search/pages_2.js create mode 100644 search/pages_3.html create mode 100644 search/pages_3.js create mode 100644 search/pages_4.html create mode 100644 search/pages_4.js create mode 100644 search/search.css create mode 100644 search/search.js create mode 100644 search/search_l.png create mode 100644 search/search_m.png create mode 100644 search/search_r.png create mode 100644 search/searchdata.js create mode 100644 search/variables_0.html create mode 100644 search/variables_0.js create mode 100644 search/variables_1.html create mode 100644 search/variables_1.js create mode 100644 search/variables_2.html create mode 100644 search/variables_2.js create mode 100644 search/variables_3.html create mode 100644 search/variables_3.js create mode 100644 search/variables_4.html create mode 100644 search/variables_4.js create mode 100644 search/variables_5.html create mode 100644 search/variables_5.js create mode 100644 search/variables_6.html create mode 100644 search/variables_6.js create mode 100644 search/variables_7.html create mode 100644 search/variables_7.js create mode 100644 search/variables_8.html create mode 100644 search/variables_8.js create mode 100644 search/variables_9.html create mode 100644 search/variables_9.js create mode 100644 splitbar.png create mode 100644 src_2boot_2boot_8cpp.html create mode 100644 src_2boot_2boot_8cpp.js create mode 100644 src_2boot_2boot_8cpp__incl.map create mode 100644 src_2boot_2boot_8cpp__incl.md5 create mode 100644 src_2boot_2boot_8cpp__incl.png create mode 100644 src_2boot_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.map create mode 100644 src_2boot_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.md5 create mode 100644 src_2boot_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.png create mode 100644 src_2boot_2boot_8cpp_source.html create mode 100644 src_2kernel_2main_8cpp.html create mode 100644 src_2kernel_2main_8cpp.js create mode 100644 src_2kernel_2main_8cpp__incl.map create mode 100644 src_2kernel_2main_8cpp__incl.md5 create mode 100644 src_2kernel_2main_8cpp__incl.png create mode 100644 src_2kernel_2main_8cpp_a2201d4f3fe424b79dbb580041d738741_icgraph.map create mode 100644 src_2kernel_2main_8cpp_a2201d4f3fe424b79dbb580041d738741_icgraph.md5 create mode 100644 src_2kernel_2main_8cpp_a2201d4f3fe424b79dbb580041d738741_icgraph.png create mode 100644 src_2kernel_2main_8cpp_source.html create mode 100644 structsbiret__t-members.html create mode 100644 structsbiret__t.html create mode 100644 structsbiret__t.js create mode 100644 structsbiret__t__coll__graph.map create mode 100644 structsbiret__t__coll__graph.md5 create mode 100644 structsbiret__t__coll__graph.png create mode 100644 sync_off.png create mode 100644 sync_on.png create mode 100644 tab_a.png create mode 100644 tab_b.png create mode 100644 tab_h.png create mode 100644 tab_s.png create mode 100644 tabs.css create mode 100644 test_2system__test_2gnu__efi__test_2README_8md.html create mode 100644 test_2system__test_2gnu__efi__test_2boot_8cpp.html create mode 100644 test_2system__test_2gnu__efi__test_2boot_8cpp.js create mode 100644 test_2system__test_2gnu__efi__test_2boot_8cpp__incl.map create mode 100644 test_2system__test_2gnu__efi__test_2boot_8cpp__incl.md5 create mode 100644 test_2system__test_2gnu__efi__test_2boot_8cpp__incl.png create mode 100644 test_2system__test_2gnu__efi__test_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.map create mode 100644 test_2system__test_2gnu__efi__test_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.md5 create mode 100644 test_2system__test_2gnu__efi__test_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.png create mode 100644 test_2system__test_2gnu__efi__test_2boot_8cpp_source.html create mode 100644 test_2system__test_2gnu__efi__test_2main_8cpp.html create mode 100644 test_2system__test_2gnu__efi__test_2main_8cpp.js create mode 100644 test_2system__test_2gnu__efi__test_2main_8cpp__incl.map create mode 100644 test_2system__test_2gnu__efi__test_2main_8cpp__incl.md5 create mode 100644 test_2system__test_2gnu__efi__test_2main_8cpp__incl.png create mode 100644 test_2system__test_2gnu__efi__test_2main_8cpp_a078e7d7a89207ea1c3575850e0fff462_cgraph.map create mode 100644 test_2system__test_2gnu__efi__test_2main_8cpp_a078e7d7a89207ea1c3575850e0fff462_cgraph.md5 create mode 100644 test_2system__test_2gnu__efi__test_2main_8cpp_a078e7d7a89207ea1c3575850e0fff462_cgraph.png create mode 100644 test_2system__test_2gnu__efi__test_2main_8cpp_source.html create mode 100644 test_2system__test_2opensbi__test_2boot_8cpp.html create mode 100644 test_2system__test_2opensbi__test_2boot_8cpp.js create mode 100644 test_2system__test_2opensbi__test_2boot_8cpp__incl.map create mode 100644 test_2system__test_2opensbi__test_2boot_8cpp__incl.md5 create mode 100644 test_2system__test_2opensbi__test_2boot_8cpp__incl.png create mode 100644 test_2system__test_2opensbi__test_2boot_8cpp_a2c3f6775325c30275d11c6abee2db6a0_cgraph.map create mode 100644 test_2system__test_2opensbi__test_2boot_8cpp_a2c3f6775325c30275d11c6abee2db6a0_cgraph.md5 create mode 100644 test_2system__test_2opensbi__test_2boot_8cpp_a2c3f6775325c30275d11c6abee2db6a0_cgraph.png create mode 100644 test_2system__test_2opensbi__test_2boot_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.map create mode 100644 test_2system__test_2opensbi__test_2boot_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.md5 create mode 100644 test_2system__test_2opensbi__test_2boot_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.png create mode 100644 test_2system__test_2opensbi__test_2boot_8cpp_a3743e5195a085e51d92eb812991cce47_icgraph.map create mode 100644 test_2system__test_2opensbi__test_2boot_8cpp_a3743e5195a085e51d92eb812991cce47_icgraph.md5 create mode 100644 test_2system__test_2opensbi__test_2boot_8cpp_a3743e5195a085e51d92eb812991cce47_icgraph.png create mode 100644 test_2system__test_2opensbi__test_2boot_8cpp_ae588de26fa6132129a1743b8df8fc982_icgraph.map create mode 100644 test_2system__test_2opensbi__test_2boot_8cpp_ae588de26fa6132129a1743b8df8fc982_icgraph.md5 create mode 100644 test_2system__test_2opensbi__test_2boot_8cpp_ae588de26fa6132129a1743b8df8fc982_icgraph.png create mode 100644 test_2system__test_2opensbi__test_2boot_8cpp_source.html create mode 100644 unit__test_2example_8cpp.html create mode 100644 unit__test_2example_8cpp.js create mode 100644 unit__test_2example_8cpp__incl.map create mode 100644 unit__test_2example_8cpp__incl.md5 create mode 100644 unit__test_2example_8cpp__incl.png create mode 100644 unit__test_2example_8cpp_source.html create mode 100644 x86__64_2arch_8cpp.html create mode 100644 x86__64_2arch_8cpp.js create mode 100644 x86__64_2arch_8cpp__incl.map create mode 100644 x86__64_2arch_8cpp__incl.md5 create mode 100644 x86__64_2arch_8cpp__incl.png create mode 100644 x86__64_2arch_8cpp_source.html diff --git a/.nojekyll b/.nojekyll new file mode 100644 index 000000000..e69de29bb diff --git a/0___xE5_xB7_xA5_xE5_x85_xB7_xE9_x93_xBE_8md.html b/0___xE5_xB7_xA5_xE5_x85_xB7_xE9_x93_xBE_8md.html new file mode 100644 index 000000000..44e78d3c0 --- /dev/null +++ b/0___xE5_xB7_xA5_xE5_x85_xB7_xE9_x93_xBE_8md.html @@ -0,0 +1,99 @@ + + + + + + + +SimpleKernel: 0_工具链.md File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
0_工具链.md File Reference
+
+
+
+
+ + + + diff --git a/1___xE7_xB3_xBB_xE7_xBB_x9F_xE5_x90_xAF_xE5_x8A_xA8_8md.html b/1___xE7_xB3_xBB_xE7_xBB_x9F_xE5_x90_xAF_xE5_x8A_xA8_8md.html new file mode 100644 index 000000000..04a0b8aab --- /dev/null +++ b/1___xE7_xB3_xBB_xE7_xBB_x9F_xE5_x90_xAF_xE5_x8A_xA8_8md.html @@ -0,0 +1,99 @@ + + + + + + + +SimpleKernel: 1_系统启动.md File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
1_系统启动.md File Reference
+
+
+
+
+ + + + diff --git a/Clion_01_xE4_xBD_xBF_xE7_x94_xA8_xE8_xAF_xB4_xE6_x98_x8E_8md.html b/Clion_01_xE4_xBD_xBF_xE7_x94_xA8_xE8_xAF_xB4_xE6_x98_x8E_8md.html new file mode 100644 index 000000000..ea4e6743f --- /dev/null +++ b/Clion_01_xE4_xBD_xBF_xE7_x94_xA8_xE8_xAF_xB4_xE6_x98_x8E_8md.html @@ -0,0 +1,99 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/tools/Clion 使用说明.md File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
/home/runner/work/SimpleKernel/SimpleKernel/tools/Clion 使用说明.md File Reference
+
+
+
+
+ + + + diff --git a/README_8md.html b/README_8md.html new file mode 100644 index 000000000..2954e4e80 --- /dev/null +++ b/README_8md.html @@ -0,0 +1,99 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/README.md File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
/home/runner/work/SimpleKernel/SimpleKernel/README.md File Reference
+
+
+
+
+ + + + diff --git a/aarch64_2arch_8cpp.html b/aarch64_2arch_8cpp.html new file mode 100644 index 000000000..ac9e09ee0 --- /dev/null +++ b/aarch64_2arch_8cpp.html @@ -0,0 +1,180 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/arch/aarch64/arch.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
arch.cpp File Reference
+
+
+ +

arch cpp +More...

+
#include "arch.h"
+
+Include dependency graph for arch.cpp:
+
+
+ + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Functions

int32_t arch (uint32_t _argc, uint8_t **_argv)
 
+

Detailed Description

+

arch cpp

+
Author
Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
+
Version
1.0
+
Date
2023-07-15
+ +
change log:
+ + + + +
DateAuthorDescription
2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
+
+ +

Definition in file arch.cpp.

+

Function Documentation

+ +

◆ arch()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int32_t arch (uint32_t _argc,
uint8_t ** _argv 
)
+
+ +

Definition at line 19 of file arch.cpp.

+
19  {
+
20  (void)_argc;
+
21  (void)_argv;
+
22 
+
23  // 进入死循环
+
24  while (1) {
+
25  ;
+
26  }
+
27 
+
28  return 0;
+
29 }
+
+
+
+
+
+ + + + diff --git a/aarch64_2arch_8cpp.js b/aarch64_2arch_8cpp.js new file mode 100644 index 000000000..a1a0c8f99 --- /dev/null +++ b/aarch64_2arch_8cpp.js @@ -0,0 +1,4 @@ +var aarch64_2arch_8cpp = +[ + [ "arch", "aarch64_2arch_8cpp.html#a6e72ac01cbd693797621b4ee1d02c9e5", null ] +]; \ No newline at end of file diff --git a/aarch64_2arch_8cpp__incl.map b/aarch64_2arch_8cpp__incl.map new file mode 100644 index 000000000..796bcf1b5 --- /dev/null +++ b/aarch64_2arch_8cpp__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/aarch64_2arch_8cpp__incl.md5 b/aarch64_2arch_8cpp__incl.md5 new file mode 100644 index 000000000..e442d3231 --- /dev/null +++ b/aarch64_2arch_8cpp__incl.md5 @@ -0,0 +1 @@ +5988419792f5786dc9cd9cf38bdad065 \ No newline at end of file diff --git a/aarch64_2arch_8cpp__incl.png b/aarch64_2arch_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..22e06152ab207c0d6685277366a19de2836dba30 GIT binary patch literal 6147 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 Ls + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/arch/aarch64/arch.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
arch.cpp
+
+
+Go to the documentation of this file.
1 
+
17 #include "arch.h"
+
18 
+
19 int32_t arch(uint32_t _argc, uint8_t **_argv) {
+
20  (void)_argc;
+
21  (void)_argv;
+
22 
+
23  // 进入死循环
+
24  while (1) {
+
25  ;
+
26  }
+
27 
+
28  return 0;
+
29 }
+
int32_t arch(uint32_t _argc, uint8_t **_argv)
Definition: arch.cpp:19
+
arch 头文件
+
+
+ + + + diff --git a/annotated.html b/annotated.html new file mode 100644 index 000000000..15dffe902 --- /dev/null +++ b/annotated.html @@ -0,0 +1,107 @@ + + + + + + + +SimpleKernel: Class List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class List
+
+
+
Here are the classes, structs, unions and interfaces with brief descriptions:
+ + + + + + +
 CElf
 CGraphics
 CMemory
 Costream
 Csbiret_t
+
+
+
+ + + + diff --git a/annotated_dup.js b/annotated_dup.js new file mode 100644 index 000000000..10f2596ed --- /dev/null +++ b/annotated_dup.js @@ -0,0 +1,8 @@ +var annotated_dup = +[ + [ "Elf", "classElf.html", "classElf" ], + [ "Graphics", "classGraphics.html", "classGraphics" ], + [ "Memory", "classMemory.html", "classMemory" ], + [ "ostream", "classostream.html", "classostream" ], + [ "sbiret_t", "structsbiret__t.html", "structsbiret__t" ] +]; \ No newline at end of file diff --git a/arch_8cpp.html b/arch_8cpp.html new file mode 100644 index 000000000..8b9423242 --- /dev/null +++ b/arch_8cpp.html @@ -0,0 +1,180 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/arch/arch.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
arch.cpp File Reference
+
+
+ +

arch cpp +More...

+
#include "arch.h"
+
+Include dependency graph for arch.cpp:
+
+
+ + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Functions

int32_t arch (uint32_t _argc, uint8_t **_argv)
 
+

Detailed Description

+

arch cpp

+
Author
Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
+
Version
1.0
+
Date
2023-07-15
+ +
change log:
+ + + + +
DateAuthorDescription
2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
+
+ +

Definition in file arch.cpp.

+

Function Documentation

+ +

◆ arch()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int32_t arch (uint32_t _argc,
uint8_t ** _argv 
)
+
+ +

Definition at line 19 of file arch.cpp.

+
19  {
+
20  (void)_argc;
+
21  (void)_argv;
+
22 
+
23  // 进入死循环
+
24  while (1) {
+
25  ;
+
26  }
+
27 
+
28  return 0;
+
29 }
+
+
+
+
+
+ + + + diff --git a/arch_8cpp.js b/arch_8cpp.js new file mode 100644 index 000000000..8bf00c655 --- /dev/null +++ b/arch_8cpp.js @@ -0,0 +1,4 @@ +var arch_8cpp = +[ + [ "arch", "arch_8cpp.html#a6e72ac01cbd693797621b4ee1d02c9e5", null ] +]; \ No newline at end of file diff --git a/arch_8cpp__incl.map b/arch_8cpp__incl.map new file mode 100644 index 000000000..ae27b0858 --- /dev/null +++ b/arch_8cpp__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/arch_8cpp__incl.md5 b/arch_8cpp__incl.md5 new file mode 100644 index 000000000..5ba5104af --- /dev/null +++ b/arch_8cpp__incl.md5 @@ -0,0 +1 @@ +b5022ed9e1f497140fb37803fc33a7a0 \ No newline at end of file diff --git a/arch_8cpp__incl.png b/arch_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..ecd36f822435faeb905e830e3fce6392c1a1e3e4 GIT binary patch literal 5709 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 literal 0 HcmV?d00001 diff --git a/arch_8cpp_source.html b/arch_8cpp_source.html new file mode 100644 index 000000000..656c70e98 --- /dev/null +++ b/arch_8cpp_source.html @@ -0,0 +1,115 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/arch/arch.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
arch.cpp
+
+
+Go to the documentation of this file.
1 
+
17 #include "arch.h"
+
18 
+
19 int32_t arch(uint32_t _argc, uint8_t **_argv) {
+
20  (void)_argc;
+
21  (void)_argv;
+
22 
+
23  // 进入死循环
+
24  while (1) {
+
25  ;
+
26  }
+
27 
+
28  return 0;
+
29 }
+
int32_t arch(uint32_t _argc, uint8_t **_argv)
Definition: arch.cpp:19
+
arch 头文件
+
+
+ + + + diff --git a/arch_8h.html b/arch_8h.html new file mode 100644 index 000000000..45f80a89b --- /dev/null +++ b/arch_8h.html @@ -0,0 +1,190 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/arch/include/arch.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
arch.h File Reference
+
+
+ +

arch 头文件 +More...

+
#include "cstdint"
+
+Include dependency graph for arch.h:
+
+
+ + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + +
+
+

Go to the source code of this file.

+ + + + +

+Functions

int32_t arch (uint32_t _argc, uint8_t **_argv)
 
+

Detailed Description

+

arch 头文件

+
Author
Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
+
Version
1.0
+
Date
2023-07-15
+ +
change log:
+ + + + +
DateAuthorDescription
2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
+
+ +

Definition in file arch.h.

+

Function Documentation

+ +

◆ arch()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int32_t arch (uint32_t _argc,
uint8_t ** _argv 
)
+
+ +

Definition at line 19 of file arch.cpp.

+
19  {
+
20  (void)_argc;
+
21  (void)_argv;
+
22 
+
23  // 进入死循环
+
24  while (1) {
+
25  ;
+
26  }
+
27 
+
28  return 0;
+
29 }
+
+
+
+
+
+ + + + diff --git a/arch_8h.js b/arch_8h.js new file mode 100644 index 000000000..888984a28 --- /dev/null +++ b/arch_8h.js @@ -0,0 +1,4 @@ +var arch_8h = +[ + [ "arch", "arch_8h.html#a6e72ac01cbd693797621b4ee1d02c9e5", null ] +]; \ No newline at end of file diff --git a/arch_8h__dep__incl.map b/arch_8h__dep__incl.map new file mode 100644 index 000000000..bdeb95739 --- /dev/null +++ b/arch_8h__dep__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/arch_8h__dep__incl.md5 b/arch_8h__dep__incl.md5 new file mode 100644 index 000000000..0a3b34965 --- /dev/null +++ b/arch_8h__dep__incl.md5 @@ -0,0 +1 @@ +fb41b4552c8ab753db5db895921447fe \ No newline at end of file diff --git a/arch_8h__dep__incl.png b/arch_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..057a35b5c80ad43ca3e9c09ce0fda1aca0744db0 GIT binary patch literal 15215 zcmZvD2RxSV+x{bkL`Y@tk_g$7?TM7V_m)k_-q|Y&$yWB>BgrfYku6)2J+tTkyuZD_ z_xF3>|NDIV^wr~e?)$p0>pIW#IFIAFLKWns@Nvm;Q79C?^h2}~3Uw|6elEblg1?oN z%6oU5%FDl{+S!gKnt(N|NB^NW&p&-aS6U9@Ha9mfOf`z2Xm8!Zrt#ds zVAHKTk0QNmfVzH114ThWfifLt-CZ3c;j^3kRHR*FU}qO~jYVyGX|Nz9G*ryckgopY zN1`iN-dUIA=Hm4B_VRlja^vFSPXGQL^f{cQb#hYArmd+-6px%6XSi5bLP_b$YgX+b zxRTLaN8G}235{=gaBAcJ&+w4Q$iS*9o^zO(Gcz-OR>Q@46UC$1!><)}8SU)sOxJ2_ z`Oyy^7|wU6pnO-yYK-BBk&hmHlvGrko$QSUKgvz{T{mdEzJ23an(tUuRngIj7}ocp z!VNrE@^P0uk=G`_FY4aCd$lg>)Uc)no?_x>rzde^mts@0_ck{bsi}&3%(PSgbi}dj zuhvXW|N0g1ApH7Uvz}DTy$7w?cQL_lbLER+eFZw(Lla9gU8T4&n9d*;~8G9b{3I_nyb=dy@rU zrg~meQzJR1+3!5as~Z!s#2Gig)}KSr*Vp$lIvN92`)u(_a!N{^|F_5SY|RrBRKI`! zCf{>(^4geg#ypRWo#C`RViCUqCUve^K)$(v=T4=i~M4rj>t*xz>Z{FlOpsia1E-s8#vD~?H z=dSHI|F2)aXz$;rSX^A(KbTJ|bKNu&{L{r%T2ay35_rjeZTy~znHfvG&rBf6_xFxw z8d_RE*L}|JhlPa^UcGuAHXQ%``x$mq4Yf|o*L}+w-q_pQyY39C&nzt9u&}UnCGinh zSXk6L&dXJiVV*npJwuA%O@hU#yt>nv>ew?`&iqalj+)3wd;yoW2$+DkrKN;lzkYqg zX^P9HSC5l!eOJp{MZMo!Z5SKg)+jZ=kc=SpyZQKau1vujDaM$Y3709=%Nkyuo}~uO z=RSS@JU9~UbYR_iaCFoPbE&4L_D0Z+)7r+y9>SP;d8iVZj!kZ%=!*hAr-I|-;|8Xt zS;xBJ*I8qIYD!B{3eKZ^EG(B`4W2%Isvzg$;BZcX_oeIa1hf1*Q<>7l8X6k8lqpty znHR&t!!cs<>wU}p3{3adr=*T{R|lU|R#X)HsaC7et&(M@K@G(!>SlMmKiXLihDQ@) zi_egXq9)~kN?UC^5%%sKy-uSyRX7Pd7RtoL#C)J<>2Ny9u0ib2?{6I5$NS9v%<~o# zbv)1g{V`C1fr0yLAJ$8sd?U9WuO(VrTT^{qGA>o+RXqpsRB)V}kf3Qgk+^aRZ8FYJ zdXrOZb8~ZJW8=HI-u?UcnXcl(4VbXSVIffI^=qZYl$4aTF<&=!hV>=b;;oX)juSsQ zT)%#u**|?r4wFws(kX#?ehossrM1=2*x3K{pllK^9c)K3GBVe*lRb{7)1q^|b#>*i z9beK(Kuz%*7*M%NLNfdNTN2KtORX`t?%8aEbh1{jUBJC-^P zo@8!rZcI!}qSn@T)}|VxY$xi3RDD#PH>SmokN@;A-MRB=@}oy|LPF?UiD0#a5@FI*4i5%Z}-cSn@L&#McmF7ge)+4@^mE3WHkh+5!8%1_k ze)vNPfz1E`TOb%Ms(pNXOh`plRG;L1a=62sbHtKwB|;o+AANDM_@T)L)LqCYnDX*H zTJsa-rk4`AEuJ?uH3bo<$p^hur1I)yRZWFDA(O~`F+(!4&*DRlTuRGmm6aQbaI|6Q zjDq?>6^FR^GL-dowiwP8s_Nem4cCFmpQ;3*-4-?QIVQ*Sk|Vdr+0!)OHW@E z_Tt5BfpbJ;gsIuL=s(`|IrXFz_S9G+<$=;!#SvsfOF!EJpn>ed4dr@dGnE@9x|xn^i+h=YUUo0dj{Bt{nXVy5{q zcqC6x&l@sYadf*}MA5~YiHh{Z@kvSHaV+XB9UZvqANNu_mie+?|91_if;2A?MJ=?k z`GqD!v*HPoft}YUBlSMIOH(N`1oicx(RFRjOwkt~%gcY+n(OS%dQ4KN^ZrUCdE7~i zf{IGO!h(6SuowA-3m2X`I=24&9Byc5N07d9@0C9mehUQ3%h=ceWC{1yCLns7kaym^ z2~jK3qT}Z$g@qnAPg#QEWBff`to`fP=8qnGrOvBba|Iknd+Q}Sd>&V!cF#=NDcbJWgj1)99aG*d31OzbYmuWWWsu$}h3Kx3yzI(9n zqatV2GtoBY?RJF>W2+w~HX$*we=q^fJIDEMjoPPl0!~XRHmPF%ScYTOHX%__Qr_Oe zfSFdJnt+~^`OWc6W8d~Q#fBE_I=hJ`+zJFJkLtR7-mFP#oUbG&qya*}5KRoh~&nUY9OcDB*-P!SG3{^w?YY!16gK}r#C9n;AUx1l2KVC@=PI(qtZ z9=j`I@oc&qkY6mf4+x1cC?l>U6ejW6y{oMyHExSgq$WG>+tnolHE3o~T|W@gSz%$} zUAPz^gqiM?`yB`8{#E}@c6!|EWpT*$=EP7oRzieNkl z!AY+@-AdaDa=ZFXEZDC9Dsr`v?DZSxpl0Gde*F0OWZg$fQIQDd+`!lv6Y#+{;J+H% z2_?<8sVN#L7NzCoEx*3TKxzu_&yiQxtjQiTdH7Efl#C>AhRrUU$Snq&4teyr1D4-k z+uKE9#*tuwOy4p(O5V`W;Q3vcXz-$ZKXF3te3}n6X96BTQP-o@nqGhfDASx+zj6%u zf0aTEl(Vz5YPP!PUTt9D1>f={=MKA}Je!njDIz}9NKUq5fq9Lbo;E;<0w!%ZTDxDU zS%F2tXB+V0!-r9u!Z$h6F^r|9r3&}F#-Z*)#xJ-tyRe`!H{aFO^-m$k%S$UNECj$6 z6eWC!^Zxz&h3{`MPuI^*38(~~DRk>|^gzTIK6w(vYcr~%$xalVjZ{WO826>?cYL$5 zZi6VT3TTqduz>K zze>+0qtVw8_z{{U{lM{8)1rV6?# zmGCar$pwo0{h9A!k>7h_YHGN%G+66-zzL8}K|#THWJF`U(T4_rt4IE7$;x!IKZ4{G zH8esXL(oIVBoTbsYsrQ)z`Mb9lm1;sM)d2~L9bq2iGBV0=jQAeCRWy>>W{GVXNzhk z#T^_tp&fX-@SX0)jT-|jB18#{)MPj5WfC|qyng*!@vT4Fp@YwMJL2a4c+LNcyX-&`0GH715 zd0EFE8iGO^K`rPzph4;V=;4x=VUAv^SE?zIZL4HOn~b<(5=UPQkBa(|F6N(KKbHf$ zrlj#y;41C~J&#o$96G4(kr3}0>FFp4IgNT(j+NC_j9A@2eCFS2bv`)bOG`^@R9lll z5yOWKjJyL&WImXG4M1maqmK_tR8dhea=DOoJzurp>F$bVy9p;!Ojbt9-tgKaI%p4= zl5?9ALXHT6Jo{^YzO}!fSWHZ;Lp>lnGn4kl4YbW<$7)ZS2#v6?a7RW4ECG+L9aQ5; z8+C5`pXfNV+$T?-{QOL!j|Qw&SX309k`n1M>4pt8$*-u0wJnOKq`aQdi^WM_O>Ou9 zp!-HUlvjASm{h+Hh0wDA7@#9wbvD9u#xVE;I_RbxdIky*5 zFDRR#>5PCtXdWA*Ky5(BXw;p2kN@d3N-~N%5_+uL@x3M~Jaf8@-a>Mzf}uzpBa_*1 zva6lUZ!d0o+L7>oR|DqxlG}DpC#s6Fox?-Uy7i}r%jVD@IIoTd@=dy80_0asD3+dj zG!gH#c%Por7O5M#_4R@`7#Z^^y&lQQwLznK*XR?@9nJFdFdgk(U1%L0NQbyLnglRZ>hYAAd>MHIa`i(osa(_^>V_wS*2JUaMb z*KmLZSVR5ZYEo+I<#g*(g&&Z6dmFqwP^Rm*OA3ElakJjJgNoHXry$&(YXj3P1WXNr zonm9J9z(7|`9c=XzoX32|DQSA#l~&0Nr)#4;6flLCr56kI_#}GSY>nR(xo^*4LP|N zTkF-;)%$;XM51G2GANtk2t+%_@{8=U)*jQp3xkBwe*X4V++-1-h7JoOM@PrwW&N|~ z1qCdx?`S@URT}y6!?67&9gtw6mX^%WN!tJUEgKLRIP*2;){bRk@p55u4Ft0|4!6}1 zUL*w{EG{2FF=eYHX!F~&?LG$n`ekzU>ecD*ZzUc+e3;9F?7#TcqQ_%Y_nklWW=KV+ zrA3LH?qfzrM|W7*j8=;EqzY|LdaTm{X@oTT&?Tvk=I0^fMIj};?AfAHJ3dT5mUqW|C z^InO+Kj!c5lyGEjN$)$~skZ*{96Fuh(I@8SOgg%{W$;azR6#PxJ`0eZiaG}e^b_+R zj{(ShU~9|9DD%b_x=q88QbXqc;X+M+=#*tr1g;gR6}2q%W~gQl57a2_-6T>ppj-4wibi@PDn~RQrcYk?`#>DBH)Az9MzoeK04@T5YntEK>hzH zfA6u_f235(e^Tn`d&issqNRU-8*M`A3Mv0TNlS!9gx4!PB&nm(H^?AYhg7Cls-#!O zMqQ<+&u4)*a+?!cL|5A)?;LMEem%fJ9xHA*o<>I`?N9LW7Uwx9H}-nxQLf;G1k*qf zHA`<>EJw%3?IyAc8m?4sZaGegio=O~G#60q--HHSApM z>+A0-D^Xcl513es_CJ)TVNCdZ-mr>nPye)WF9R)Uus-<_zwVUy*4oS$nu_SOv-1}& z$Zzc1=XE>-Qql2GdE=$G?&rS^4_{!Aa>vvdNhixvQBn#UEMPxJI8tuPOU~1`>T~(o z;@X6u^^dJf)FRblvu&nnA7!xGO-!YlRKNIfYG@_C)vS;#EwebMJ(j)yMMR*ftIPE$ zIArMsOb^4x&v16$g+nT;n5P@lLzX$0=oFNcHu*T)P0lS3$u@N*NRV?U3G=&eGp7pP z!$v{jxu5DYDf<(RZ`JiirGEdX+SRMap|4&ksrb+;rRP5Mdq;nvydr#NrkD6^U#fMj z0Bz#x`i+Tb&~l`-dtv;CUIv2}z_=$*n%W{`WQ}NXQTpC)7bD3NTF1xnurKSp5|HzU zV3f25R;k)LNHUW9ggn}?JDCVSG5l{knHjCFw^{5&&BaC5)nyVAk?bcOgS9{#x4rcz zd~?EOc;i>-xtlk$_IJmu+B=Vwmo)H;jiv5W3RIF_zWlAXw#+T^PhwJ1b7ujIfK&Of zq5wVT4MmdS9X(GEDEIfbhYUF_sO~vjxOvk@SE4{67XP7a z^VI1OZdqCQ%+D=6a-Mu|(R_tiqct6NDn<9AqTSkJ*d(f zQ)g`Gv(w@$S#gri&cfZv2iI^v>q|*O_Ow5IcBQ<0>!wV$c9FLBY~z_O4j-Rc)$mI; z%`F$1v^Bql1%AP!m1T_vPa4~)?pWH}M2id%CJ#TajwRq+I>N=os(%qBED(5+_;7ao z{ax!x!E2aUwMIWbVRTrXr{Lji{=y)6Hr53H0!e$TD~Mz%Pf# zpFVYcY4W2ou+=*qq?agA8v^!^_BERqH3{1>1&dn5=R9RT4$pn}t~W%H;Uw!16O%$R zzXVSb6QQP$561R4T8Z~hk0{KCi+S|iEts<9sLns`WMuwxa%hDm84=Y&m&8;yRsS*{`fhesCh2U?{9xp z5^^e4ruR1~M(Php*>oRCmgxDkuKZ}-Xt{L4jAs(sj{fu%XxbKP5w>QZvm=ITTcOY- zzW&XXiein@>3b2BKR&kA2*{?8hgMbwhlE~yUQ`r$nRprc>R{5l(;|Zns|X#s^22Aw z&c`Zi)}+s43+&R_qJJ=+>GmPw# zBs=d6hg)6`Ajpj8I?CRNH10|nkue0myJ~MQy|KNL-+Sz`{sia({*_6u>yZ>mhOn4# zM5Zpic)?1}f15};0uqI?!;v$i@WC%`=ha7|6;G~1BEd4+T`_$6)SS(U+n>t_ectv*XKMhn|I61dU9p}kl3EpO+{d|2J-rOH1rV<#Dri%QVSS7wJ zi|t@yXVk@~=|`|P@CQeU2nTxXIc$tOPLvrmJG$;__PZ04M*D@&T;M}vJ)GD{PxBT? z8uouBT~=K!YB2q@E0JgAOay)A5kXO-c|dsL>+5Z)FaHRAh|rjLI3?JF`huMKH2Z{J z^!}|38R#J2VgD-@PnvvpN$;kA+@d>N9;Rsut@HlmjF%;M#$s;adY5tNHi{CGjoc@KEA3)l~a8_Z%r`-pOZTYq+7W%r}mU7b7Y5HWqVoh^{-M z>>9n!|1+E4$b(+9CP`C8w`U^PM7s**+5-#Os(MOz0-IhzWt-I7dkvV;s{+oyB(_7J z`3^^1S-b*c)}xFdZ+QOP$a81V)N{L6di-Nj;C$-xi>9U-Qr^Off!>e^vJ$eJeHZiy z9%Y^-@>DccTKIFAcF+P#gt^}6Lm9(pGY3~BCj~u{hgOfkQoz+@fM56htLMm0DJWrU z{hD_(Tb?Fju|HUp&5qfLo8Gv&e;bYOH|(ECeOWS6+rfeNUB+3kkVkh5WO7(i6hvJh zuMI4~yPQw3IjT3@75dwnb1huA7vxvQT&T6HlSLu@LcPR?k6v(bA<4@iB4dVZntFYT zL>`5mk)3@^cX-@$t5{V({|Hau~M}!UE+wgNT-S5uUsXWZMqYC%+B9yeJP|Ah|9a)F=Wgqk;*y zv}}QRQ>KhiGMyvnjfxNqyzjz!0DET#s&lkJJ#}nIsv6wc1!^yBKDg|{*=)4pJ6u-? zJCdk~SB!Aqvz_7inT3&a$YN&8@A>N3-iCR~gSA8kXESXOyY!r(_m&bg&N3v(JMhC& z20Ws6O)6SVjT)JWKfm4H%G1F0Ww2nu`di_VAL_Ty$r6$BQ*u4QYaZ6uZ(mt0C6X8D z9JyU3DTY3*$tDmBAQV;jNwb35f)`?<;XxuW(+D0ZLH&J}^|wd>r9BIM%w?G2Aiz?b zI-bHzi^P{DrExt&gvl^2OMcye9nmL68SyIC`%H*JQPGs37r=#KU#8z1z8+$zPgyS{ zRVd(tPmvFr!3TxgJH=5mp(qpuDdGhBs|LsJ3K|9?TOUm3{aS&=W-# zE;>`~(Idy>(+~KCg^#{x%Tin0Tmm*t<17mI;>Bj*m?%sph;PYRzubBC`wDRy2I|@3 zD^~j}VWFWGFL%iM_A&@LO-wZCg(k2rT!@@mNe-^Iam;%0AhTH5IA3Qm8CZ2_^_Cfl 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 literal 0 HcmV?d00001 diff --git a/arch_8h__incl.map b/arch_8h__incl.map new file mode 100644 index 000000000..897507d79 --- /dev/null +++ b/arch_8h__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/arch_8h__incl.md5 b/arch_8h__incl.md5 new file mode 100644 index 000000000..a01add4d8 --- /dev/null +++ b/arch_8h__incl.md5 @@ -0,0 +1 @@ +cd32afe0d9d5a6ee98b44780bb572edb \ No newline at end of file diff --git a/arch_8h__incl.png b/arch_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..739fa114fff72807309cdabb57d94d6e7a3a8c25 GIT binary patch literal 4817 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 + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/arch/include/arch.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
arch.h
+
+
+Go to the documentation of this file.
1 
+
17 #ifndef CMAKE_ARCH_H
+
18 #define CMAKE_ARCH_H
+
19 
+
20 #include "cstdint"
+
21 
+
22 int32_t arch(uint32_t _argc, uint8_t **_argv);
+
23 
+
24 #endif /* CMAKE_ARCH_H */
+
int32_t arch(uint32_t _argc, uint8_t **_argv)
Definition: arch.cpp:19
+
+
+ + + + diff --git a/bc_s.png b/bc_s.png new file mode 100644 index 0000000000000000000000000000000000000000..224b29aa9847d5a4b3902efd602b7ddf7d33e6c2 GIT binary patch literal 676 zcmV;V0$crwP)y__>=_9%My z{n931IS})GlGUF8K#6VIbs%684A^L3@%PlP2>_sk`UWPq@f;rU*V%rPy_ekbhXT&s z(GN{DxFv}*vZp`F>S!r||M`I*nOwwKX+BC~3P5N3-)Y{65c;ywYiAh-1*hZcToLHK ztpl1xomJ+Yb}K(cfbJr2=GNOnT!UFA7Vy~fBz8?J>XHsbZoDad^8PxfSa0GDgENZS zuLCEqzb*xWX2CG*b&5IiO#NzrW*;`VC9455M`o1NBh+(k8~`XCEEoC1Ybwf;vr4K3 zg|EB<07?SOqHp9DhLpS&bzgo70I+ghB_#)K7H%AMU3v}xuyQq9&Bm~++VYhF09a+U zl7>n7Jjm$K#b*FONz~fj;I->Bf;ule1prFN9FovcDGBkpg>)O*-}eLnC{6oZHZ$o% zXKW$;0_{8hxHQ>l;_*HATI(`7t#^{$(zLe}h*mqwOc*nRY9=?Sx4OOeVIfI|0V(V2 zBrW#G7Ss9wvzr@>H*`r>zE z+e8bOBgqIgldUJlG(YUDviMB`9+DH8n-s9SXRLyJHO1!=wY^79WYZMTa(wiZ!zP66 zA~!21vmF3H2{ngD;+`6j#~6j;$*f*G_2ZD1E;9(yaw7d-QnSCpK(cR1zU3qU0000< KMNUMnLSTYoA~SLT literal 0 HcmV?d00001 diff --git a/bdwn.png b/bdwn.png new file mode 100644 index 0000000000000000000000000000000000000000..940a0b950443a0bb1b216ac03c45b8a16c955452 GIT binary patch literal 147 zcmeAS@N?(olHy`uVBq!ia0vp^>_E)H!3HEvS)PKZC{Gv1kP61Pb5HX&C2wk~_T + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/boot/include/boot.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
boot.h File Reference
+
+
+ +

boot 头文件 +More...

+
#include "cstdint"
+
+Include dependency graph for boot.h:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + + +

+Functions

int main (int _argc, char **_argv)
 入口 More...
 
+

Detailed Description

+

boot 头文件

+
Author
Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
+
Version
1.0
+
Date
2023-07-15
+ +
change log:
+ + + + +
DateAuthorDescription
2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
+
+ +

Definition in file boot.h.

+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int main (int _argc,
char ** _argv 
)
+
+ +

入口

+
Parameters
+ + + +
_argc参数个数
_argv参数列表
+
+
+
Returns
int 正常返回 0
+ +

Definition at line 19 of file main.cpp.

+
19  {
+
20  (void)_argc;
+
21  (void)_argv;
+
22 
+
23  // 进入死循环
+
24  while (1) {
+
25  ;
+
26  }
+
27  return 0;
+
28 }
+
+
+
+
+
+ + + + diff --git a/boot_8h.js b/boot_8h.js new file mode 100644 index 000000000..97639fcdf --- /dev/null +++ b/boot_8h.js @@ -0,0 +1,4 @@ +var boot_8h = +[ + [ "main", "boot_8h.html#a2201d4f3fe424b79dbb580041d738741", null ] +]; \ No newline at end of file diff --git a/boot_8h__incl.map b/boot_8h__incl.map new file mode 100644 index 000000000..649511493 --- /dev/null +++ b/boot_8h__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/boot_8h__incl.md5 b/boot_8h__incl.md5 new file mode 100644 index 000000000..d9f98f106 --- /dev/null +++ b/boot_8h__incl.md5 @@ -0,0 +1 @@ +6cfc3ea0cc7f690459a6591bc8479ab1 \ No newline at end of file diff --git a/boot_8h__incl.png b/boot_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..4ba00c010bd68fb4c312f778ebde8e330384a3cb GIT binary patch literal 4742 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 literal 0 HcmV?d00001 diff --git a/boot_8h_source.html b/boot_8h_source.html new file mode 100644 index 000000000..a2442e62a --- /dev/null +++ b/boot_8h_source.html @@ -0,0 +1,109 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/boot/include/boot.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boot.h
+
+
+Go to the documentation of this file.
1 
+
17 #ifndef SIMPLEKERNEL_BOOT_H
+
18 #define SIMPLEKERNEL_BOOT_H
+
19 
+
20 #include "cstdint"
+
21 
+
28 int main(int _argc, char **_argv);
+
29 
+
30 #endif /* SIMPLEKERNEL_BOOT_H */
+
int main(int _argc, char **_argv)
入口
Definition: main.cpp:19
+
+
+ + + + diff --git a/classElf-members.html b/classElf-members.html new file mode 100644 index 000000000..e7d95a041 --- /dev/null +++ b/classElf-members.html @@ -0,0 +1,130 @@ + + + + + + + +SimpleKernel: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Elf Member List
+
+
+ +

This is the complete list of members for Elf, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
check_elf_identity() const -> boolElfprivate
ehdrElfprivate
elfElfprivate
Elf(wchar_t *_kernel_image_filename)Elfexplicit
Elf(const Elf &)=deleteElf
Elf(Elf &&)=deleteElf
elf_file_bufferElfprivate
elf_file_sizeElfprivate
fileElfprivate
file_system_protocolElfprivate
get_ehdr()Elfprivate
get_file_size() const -> size_tElfprivate
get_phdr()Elfprivate
get_shdr()Elfprivate
load() const -> uintptr_tElf
load_kernel_image() const -> uint64_tElf
load_program_sections() constElfprivate
load_sections(const Elf64_Phdr &_phdr) constElfprivate
operator=(const Elf &) -> Elf &=deleteElf
operator=(Elf &&) -> Elf &=deleteElf
phdrElfprivate
print_ehdr() constElfprivate
print_phdr() constElfprivate
print_shdr() constElfprivate
root_file_systemElfprivate
SECTION_BUF_SIZEElfprivatestatic
shdrElfprivate
shstrtab_bufElfprivate
~Elf()Elf
+
+ + + + diff --git a/classElf.html b/classElf.html new file mode 100644 index 000000000..88be259a0 --- /dev/null +++ b/classElf.html @@ -0,0 +1,2011 @@ + + + + + + + +SimpleKernel: Elf Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

#include <load_elf.h>

+
+Collaboration diagram for Elf:
+
+
Collaboration graph
+ + + +
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Elf (wchar_t *_kernel_image_filename)
 
 ~Elf ()
 
auto load_kernel_image () const -> uint64_t
 
auto load () const -> uintptr_t
 
不使用的构造函数
 Elf (const Elf &)=delete
 
 Elf (Elf &&)=delete
 
auto operator= (const Elf &) -> Elf &=delete
 
auto operator= (Elf &&) -> Elf &=delete
 
+ + + + + + + + + + + + + + + + + + + + + +

+Private Member Functions

auto get_file_size () const -> size_t
 
auto check_elf_identity () const -> bool
 
void get_ehdr ()
 
void print_ehdr () const
 
void get_phdr ()
 
void print_phdr () const
 
void get_shdr ()
 
void print_shdr () const
 
void load_sections (const Elf64_Phdr &_phdr) const
 
void load_program_sections () const
 
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

elf 文件相关

EFI_SIMPLE_FILE_SYSTEM_PROTOCOL * file_system_protocol = nullptr
 
EFI_FILE * root_file_system = nullptr
 
EFI_FILE * elf = nullptr
 elf 文件指针 More...
 
size_t elf_file_size = 0
 elf 文件大小 More...
 
void * elf_file_buffer = nullptr
 elf 文件内容缓冲区 More...
 
std::span< uint8_t > file = {}
 elf 文件访问 More...
 
Elf64_Ehdr ehdr = {}
 
std::span< Elf64_Phdr > phdr = {}
 
std::span< Elf64_Shdr > shdr = {}
 
std::array< uint8_t, SECTION_BUF_SIZEshstrtab_buf = {}
 shstrtab 缓冲 More...
 
static constexpr const size_t SECTION_BUF_SIZE = 1024
 section 缓冲区大小 More...
 
+

Detailed Description

+

elf 文件相关

+ +

Definition at line 131 of file load_elf.h.

+

Constructor & Destructor Documentation

+ +

◆ Elf() [1/3]

+ +
+
+ + + + + +
+ + + + + + + + +
Elf::Elf (wchar_t * _kernel_image_filename)
+
+explicit
+
+

构造函数

Parameters
+ + +
_kernel_image_filename要加载的内核文件
+
+
+ +

Definition at line 51 of file load_elf.cpp.

+
51  {
+
52  EFI_STATUS status = EFI_SUCCESS;
+
53  // 打开文件系统协议
+
54  status = LibLocateProtocol(&FileSystemProtocol,
+
55  reinterpret_cast<void **>(&file_system_protocol));
+
56  if (EFI_ERROR(status)) {
+
57  debug << L"LibLocateProtocol failed: " << status << ostream::endl;
+
58  throw std::runtime_error("EFI_ERROR(status)");
+
59  }
+
60 
+
61  // 打开根文件系统
+
62  status = uefi_call_wrapper(file_system_protocol->OpenVolume, 2,
+ +
64  if (EFI_ERROR(status)) {
+
65  debug << L"OpenVolume failed: " << status << ostream::endl;
+
66  throw std::runtime_error("EFI_ERROR(status)");
+
67  }
+
68 
+
69  // 打开 elf 文件
+
70  status = uefi_call_wrapper(root_file_system->Open, 5, root_file_system, &elf,
+
71  _kernel_image_filename, EFI_FILE_MODE_READ,
+
72  EFI_FILE_READ_ONLY);
+
73 
+
74  if (EFI_ERROR(status)) {
+
75  debug << L"Open failed: " << status << ostream::endl;
+
76  throw std::runtime_error("EFI_ERROR(status)");
+
77  }
+
78 
+
79  // 获取 elf 文件大小
+
80  try {
+ +
82  } catch (std::runtime_error &_e) {
+
83  debug << L"get_file_size failed: " << _e.what() << ostream::endl;
+
84  throw std::runtime_error(_e.what());
+
85  }
+
86  debug << L"Kernel file size: " << elf_file_size << ostream::endl;
+
87 
+
88  // 分配 elf 文件缓存
+
89  status = uefi_call_wrapper(gBS->AllocatePool, 3, EfiLoaderData, elf_file_size,
+ +
91 
+
92  if (EFI_ERROR(status)) {
+
93  debug << L"AllocatePool failed: " << status << ostream::endl;
+
94  throw std::runtime_error("EFI_ERROR(status)");
+
95  }
+
96 
+
97  // 将内核文件读入内存
+
98  status = uefi_call_wrapper(elf->Read, 3, (EFI_FILE *)elf, &elf_file_size,
+ +
100  if (EFI_ERROR(status)) {
+
101  debug << L"Read failed: " << status << ostream::endl;
+
102  throw std::runtime_error("EFI_ERROR(status)");
+
103  }
+
104 
+
105  file = std::span<uint8_t>(static_cast<uint8_t *>(elf_file_buffer),
+
106  elf_file_size);
+
107 
+
108  // 检查 elf 头数据
+
109  auto check_elf_identity_ret = check_elf_identity();
+
110  if (!check_elf_identity_ret) {
+
111  debug << L"NOT valid ELF file" << ostream::endl;
+
112  throw std::runtime_error("check_elf_identity_ret == false");
+
113  }
+
114 
+
115  // 读取 ehdr
+
116  get_ehdr();
+
117  print_ehdr();
+
118  // 读取 phdr
+
119  get_phdr();
+
120  print_phdr();
+
121  // 读取 shdr
+
122  get_shdr();
+
123  print_shdr();
+
124 }
+
auto check_elf_identity() const -> bool
Definition: load_elf.cpp:210
+
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL * file_system_protocol
Definition: load_elf.h:166
+
void get_shdr()
Definition: load_elf.cpp:530
+
auto get_file_size() const -> size_t
Definition: load_elf.cpp:203
+
EFI_FILE * root_file_system
Definition: load_elf.h:167
+
size_t elf_file_size
elf 文件大小
Definition: load_elf.h:171
+
void print_shdr() const
Definition: load_elf.cpp:539
+
void get_phdr()
Definition: load_elf.cpp:390
+
void print_ehdr() const
Definition: load_elf.cpp:233
+
void * elf_file_buffer
elf 文件内容缓冲区
Definition: load_elf.h:173
+
EFI_FILE * elf
elf 文件指针
Definition: load_elf.h:169
+
std::span< uint8_t > file
elf 文件访问
Definition: load_elf.h:175
+
void get_ehdr()
Definition: load_elf.cpp:229
+
void print_phdr() const
Definition: load_elf.cpp:395
+
static auto endl(ostream &_ostream) -> ostream &
Definition: ostream.cpp:42
+
static ostream debug
全局输出流
Definition: ostream.hpp:194
+
+Here is the call graph for this function:
+
+
+ + + + + + + + + + + + + + +
+ +
+
+ +

◆ ~Elf()

+ +
+
+ + + + + + + +
Elf::~Elf ()
+
+

析构函数

+
Note
elf_file_buffer 不会被释放
+ +

Definition at line 126 of file load_elf.cpp.

+
126  {
+
127  try {
+
128  EFI_STATUS status = EFI_SUCCESS;
+
129  // 关闭 elf 文件
+
130  status = uefi_call_wrapper(elf->Close, 1, elf);
+
131  if (EFI_ERROR(status)) {
+
132  debug << L"Close failed: " << status << ostream::endl;
+
133  throw std::runtime_error("EFI_ERROR(status)");
+
134  }
+
136  } catch (std::runtime_error &_e) {
+
137  debug << L"~Elf failed: " << _e.what() << ostream::endl;
+
138  }
+
139 }
+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ Elf() [2/3]

+ +
+
+ + + + + +
+ + + + + + + + +
Elf::Elf (const Elf)
+
+delete
+
+ +
+
+ +

◆ Elf() [3/3]

+ +
+
+ + + + + +
+ + + + + + + + +
Elf::Elf (Elf && )
+
+delete
+
+ +
+
+

Member Function Documentation

+ +

◆ check_elf_identity()

+ +
+
+ + + + + +
+ + + + + + + +
auto Elf::check_elf_identity () const -> bool
+
+private
+
+

检查 elf 标识

Returns
失败返回 false
+ +

Definition at line 210 of file load_elf.cpp.

+
210  {
+
211  if ((file[EI_MAG0] != ELFMAG0) || (file[EI_MAG1] != ELFMAG1) ||
+
212  (file[EI_MAG2] != ELFMAG2) || (file[EI_MAG3] != ELFMAG3)) {
+
213  debug << L"Fatal Error: Invalid ELF header" << ostream::endl;
+
214  return false;
+
215  }
+
216  if (file[EI_CLASS] == ELFCLASS32) {
+
217  debug << L"Found 32bit executable but NOT SUPPORT" << ostream::endl;
+
218  return false;
+
219  }
+
220  if (file[EI_CLASS] == ELFCLASS64) {
+
221  debug << L"Found 64bit executable" << ostream::endl;
+
222  } else {
+
223  debug << L"Fatal Error: Invalid executable" << ostream::endl;
+
224  return false;
+
225  }
+
226  return true;
+
227 }
+
+Here is the call graph for this function:
+
+
+ + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ get_ehdr()

+ +
+
+ + + + + +
+ + + + + + + +
void Elf::get_ehdr ()
+
+private
+
+

读取 elf 文件的 ehdr

+ +

Definition at line 229 of file load_elf.cpp.

+
229  {
+
230  ehdr = *reinterpret_cast<const Elf64_Ehdr *>(file.data());
+
231 }
+
Elf64_Ehdr ehdr
Definition: load_elf.h:176
+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ get_file_size()

+ +
+
+ + + + + +
+ + + + + + + +
auto Elf::get_file_size () const -> size_t
+
+private
+
+

获取文件大小

Returns
文件大小
+ +

Definition at line 203 of file load_elf.cpp.

+
203  {
+
204  // 获取 elf 文件大小
+
205  auto *elf_file_info = LibFileInfo(elf);
+
206  auto file_size = elf_file_info->FileSize;
+
207  return file_size;
+
208 }
+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ get_phdr()

+ +
+
+ + + + + +
+ + + + + + + +
void Elf::get_phdr ()
+
+private
+
+

读取 elf 文件的 phdr

+ +

Definition at line 390 of file load_elf.cpp.

+
390  {
+
391  phdr = std::span<Elf64_Phdr>(
+
392  reinterpret_cast<Elf64_Phdr *>(file.data() + ehdr.e_phoff), ehdr.e_phnum);
+
393 }
+
std::span< Elf64_Phdr > phdr
Definition: load_elf.h:177
+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ get_shdr()

+ +
+
+ + + + + +
+ + + + + + + +
void Elf::get_shdr ()
+
+private
+
+

读取 elf 文件的 shdr

+ +

Definition at line 530 of file load_elf.cpp.

+
530  {
+
531  shdr = std::span<Elf64_Shdr>(
+
532  reinterpret_cast<Elf64_Shdr *>(file.data() + ehdr.e_shoff), ehdr.e_shnum);
+
533  // 将 shstrtab 的内容复制到 shstrtab_buf 中
+
534 
+
535  memcpy(shstrtab_buf.data(), file.data() + shdr[ehdr.e_shstrndx].sh_offset,
+
536  shdr[ehdr.e_shstrndx].sh_size);
+
537 }
+
std::span< Elf64_Shdr > shdr
Definition: load_elf.h:178
+
std::array< uint8_t, SECTION_BUF_SIZE > shstrtab_buf
shstrtab 缓冲
Definition: load_elf.h:182
+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ load()

+ +
+
+ + + + + + + +
auto Elf::load () const -> uintptr_t
+
+

将 elf 文件加载进内存

+ +

Definition at line 181 of file load_elf.cpp.

+
181  {
+
182  // 记录 AllocatePages 分配出的物理地址
+
183  uintptr_t image_base = 0;
+
184  // 计算需要的内存页
+
185  auto section_page_count = EFI_SIZE_TO_PAGES(elf_file_size);
+
186  // 将整个 elf 文件映射到内存,方便后续读取
+
187  auto status =
+
188  uefi_call_wrapper(gBS->AllocatePages, 4, AllocateAnyPages, EfiLoaderCode,
+
189  section_page_count, &image_base);
+
190  if (EFI_ERROR(status)) {
+
191  debug << L"AllocatePages failed: " << status << ostream::endl;
+
192  throw std::runtime_error("EFI_ERROR(status)");
+
193  }
+
194  // 将 elf 复制到分配的物理内存中
+
195  std::memcpy(reinterpret_cast<void *>(image_base), file.data(),
+
196  section_page_count * EFI_PAGE_SIZE);
+
197 
+
198  debug << L"AllocatePages section_page_count: " << section_page_count
+
199  << L" image_base: " << ostream::hex_X << image_base << ostream::endl;
+
200  return image_base + ehdr.e_entry;
+
201 }
+
static auto hex_X(ostream &_ostream) -> ostream &
Definition: ostream.cpp:37
+
+Here is the call graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ load_kernel_image()

+ +
+
+ + + + + + + +
auto Elf::load_kernel_image () const -> uint64_t
+
+

加载 elf 内核

Returns
内核入口点
+ +

Definition at line 141 of file load_elf.cpp.

+
141  {
+
142  uintptr_t image_base = 0;
+
143  uintptr_t image_begin = 0;
+
144  try {
+
145  // load_program_sections();
+
146  size_t size = 0;
+
147  for (uint64_t i = 0; i < ehdr.e_phnum; i++) {
+
148  if (phdr[i].p_type != PT_LOAD) {
+
149  continue;
+
150  }
+
151  phdr[i].p_vaddr;
+
152  size += phdr[i].p_memsz;
+
153  }
+
154  auto section_page_count = EFI_SIZE_TO_PAGES(size);
+
155  auto status =
+
156  uefi_call_wrapper(gBS->AllocatePages, 4, AllocateAnyPages,
+
157  EfiLoaderCode, section_page_count, &image_base);
+
158  if (EFI_ERROR(status)) {
+
159  debug << L"AllocatePages failed: " << status << ostream::endl;
+
160  throw std::runtime_error("EFI_ERROR(status)");
+
161  }
+
162 
+
163  for (auto &i : phdr) {
+
164  if (i.p_type != PT_LOAD) {
+
165  continue;
+
166  }
+
167  memcpy((void *)(image_base + i.p_vaddr), file.data() + i.p_offset,
+
168  i.p_memsz);
+
169  }
+
170 
+
171  } catch (std::runtime_error &_e) {
+
172  debug << L"load_kernel_image: " << _e.what() << ostream::endl;
+
173  }
+
174  debug << L"load_kernel_image: " << ostream::hex_X << image_base << L" "
+
175  << ostream::hex_X << ehdr.e_entry << L" " << ostream::hex_X
+
176  << image_begin << ostream::endl;
+
177 
+
178  return image_base + ehdr.e_entry - image_begin;
+
179 }
+
+Here is the call graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ load_program_sections()

+ +
+
+ + + + + +
+ + + + + + + +
void Elf::load_program_sections () const
+
+private
+
+

加载程序段

+ +

Definition at line 885 of file load_elf.cpp.

+
885  {
+
886  uint64_t loaded = 0;
+
887  for (uint64_t i = 0; i < ehdr.e_phnum; i++) {
+
888  if (phdr[i].p_type != PT_LOAD) {
+
889  continue;
+
890  }
+
891  load_sections(phdr[i]);
+
892  loaded++;
+
893  }
+
894 
+
895  if (loaded == 0) {
+
896  debug << L"Fatal Error: No loadable program segments found in Kernel image "
+
897  << ostream::endl;
+
898  throw std::runtime_error("loaded == 0");
+
899  }
+
900 }
+
void load_sections(const Elf64_Phdr &_phdr) const
Definition: load_elf.cpp:815
+
+Here is the call graph for this function:
+
+
+ + + + + + + +
+ +
+
+ +

◆ load_sections()

+ +
+
+ + + + + +
+ + + + + + + + +
void Elf::load_sections (const Elf64_Phdr & _phdr) const
+
+private
+
+

将 elf 段加载到内存

Parameters
+ + +
_phdr要加载的程序段 phdr
+
+
+ +

Definition at line 815 of file load_elf.cpp.

+
815  {
+
816  EFI_STATUS status = EFI_SUCCESS;
+
817  void *data = nullptr;
+
818  // 计算使用的内存页数
+
819  auto section_page_count = EFI_SIZE_TO_PAGES(_phdr.p_memsz);
+
820 
+
821  // 设置文件偏移到 p_offset
+
822  status = uefi_call_wrapper(elf->SetPosition, 2, elf, _phdr.p_offset);
+
823  if (EFI_ERROR(status)) {
+
824  debug << L"SetPosition failed: " << status << ostream::endl;
+
825  throw std::runtime_error("memory_map == nullptr");
+
826  }
+
827  uintptr_t aaa = 0;
+
828  // status = uefi_call_wrapper(gBS->AllocatePages, 4, AllocateAddress,
+
829  // EfiLoaderData, section_page_count,
+
830  // (EFI_PHYSICAL_ADDRESS*)&_phdr.p_paddr);
+
831  status = uefi_call_wrapper(gBS->AllocatePages, 4, AllocateAnyPages,
+
832  EfiLoaderData, section_page_count, &aaa);
+
833  debug << L"_phdr.p_paddr: [" << status << L"] [" << section_page_count
+
834  << L"] " << ostream::hex_X << aaa << ostream::endl;
+
835  if (EFI_ERROR(status)) {
+
836  debug << L"AllocatePages AllocateAddress failed: " << status
+
837  << ostream::endl;
+
838  throw std::runtime_error("EFI_ERROR(status)");
+
839  }
+
840 
+
841  if (_phdr.p_filesz > 0) {
+
842  auto buffer_read_size = _phdr.p_filesz;
+
843  // 为 program_data 分配内存
+
844  status = uefi_call_wrapper(gBS->AllocatePool, 3, EfiLoaderCode,
+
845  buffer_read_size, (void **)&data);
+
846  if (EFI_ERROR(status)) {
+
847  debug << L"AllocatePool failed: " << status << ostream::endl;
+
848  throw std::runtime_error("EFI_ERROR(status)");
+
849  }
+
850  // 读数据
+
851  status =
+
852  uefi_call_wrapper(elf->Read, 3, elf, &buffer_read_size, (void *)data);
+
853  if (EFI_ERROR(status)) {
+
854  debug << L"Read failed: " << status << ostream::endl;
+
855  throw std::runtime_error("EFI_ERROR(status)");
+
856  }
+
857 
+
858  // 将读出来的数据复制到其对应的物理地址
+
859  uefi_call_wrapper(gBS->CopyMem, 3,
+
860  reinterpret_cast<void *>(aaa + _phdr.p_paddr), data,
+
861  _phdr.p_filesz);
+
862 
+
863  // 释放 program_data
+
864  status = uefi_call_wrapper(gBS->FreePool, 1, data);
+
865  if (EFI_ERROR(status)) {
+
866  debug << L"FreePool failed: " << status << ostream::endl;
+
867  throw std::runtime_error("EFI_ERROR(status)");
+
868  }
+
869  }
+
870 
+
871  // 计算填充大小
+
872  auto *zero_fill_start =
+
873  reinterpret_cast<void *>(aaa + _phdr.p_paddr + _phdr.p_filesz);
+
874  auto zero_fill_count = _phdr.p_memsz - _phdr.p_filesz;
+
875  if (zero_fill_count > 0) {
+
876  debug << L"Debug: Zero-filling " << zero_fill_count
+
877  << L" bytes at address '" << ostream::hex_x << zero_fill_start << L"'"
+
878  << ostream::endl;
+
879 
+
880  // 将填充部分置 0
+
881  uefi_call_wrapper(gBS->SetMem, 3, zero_fill_start, zero_fill_count, 0);
+
882  }
+
883 }
+
static auto hex_x(ostream &_ostream) -> ostream &
Definition: ostream.cpp:32
+
+Here is the call graph for this function:
+
+
+ + + + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
auto Elf::operator= (const Elf) -> Elf &=delete
+
+delete
+
+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
auto Elf::operator= (Elf && ) -> Elf &=delete
+
+delete
+
+ +
+
+ +

◆ print_ehdr()

+ +
+
+ + + + + +
+ + + + + + + +
void Elf::print_ehdr () const
+
+private
+
+

输出 elf ehdr

+ +

Definition at line 233 of file load_elf.cpp.

+
233  {
+
234  debug << L" Magic: ";
+
235  for (auto idx : ehdr.e_ident) {
+
236  debug << ostream::hex_x << idx << L" ";
+
237  }
+
238  debug << ostream::endl;
+
239 
+
240  debug << L" Class: ";
+
241  switch (ehdr.e_ident[EI_CLASS]) {
+
242  case ELFCLASSNONE: {
+
243  debug << L"Invalid class";
+
244  break;
+
245  }
+
246  case ELFCLASS32: {
+
247  debug << L"ELF32";
+
248  break;
+
249  }
+
250  case ELFCLASS64: {
+
251  debug << L"ELF64";
+
252  break;
+
253  }
+
254  default: {
+
255  debug << ehdr.e_ident[EI_CLASS];
+
256  break;
+
257  }
+
258  }
+
259  debug << ostream::endl;
+
260 
+
261  debug << L" Data: ";
+
262  switch (ehdr.e_ident[EI_DATA]) {
+
263  case ELFDATANONE: {
+
264  debug << L"Invalid data encoding";
+
265  break;
+
266  }
+
267  case ELFDATA2LSB: {
+
268  debug << L"2's complement, little endian";
+
269  break;
+
270  }
+
271  case ELFDATA2MSB: {
+
272  debug << L"2's complement, big endian";
+
273  break;
+
274  }
+
275  default: {
+
276  debug << ehdr.e_ident[EI_DATA];
+
277  break;
+
278  }
+
279  }
+
280  debug << ostream::endl;
+
281 
+
282  debug << L" Version: "
+
283  << ehdr.e_ident[EI_VERSION] << L" ";
+
284  switch (ehdr.e_ident[EI_VERSION]) {
+
285  case EV_NONE: {
+
286  debug << L"Invalid ELF version";
+
287  break;
+
288  }
+
289  case EV_CURRENT: {
+
290  debug << L"Current version";
+
291  break;
+
292  }
+
293  default: {
+
294  debug << ehdr.e_ident[EI_VERSION];
+
295  break;
+
296  }
+
297  }
+
298  debug << ostream::endl;
+
299 
+
300  debug << L" OS/ABI: ";
+
301  switch (ehdr.e_ident[EI_OSABI]) {
+
302  case ELFOSABI_SYSV: {
+
303  debug << L"UNIX System V ABI";
+
304  break;
+
305  }
+
306  default: {
+
307  debug << ehdr.e_ident[EI_OSABI];
+
308  break;
+
309  }
+
310  }
+
311  debug << ostream::endl;
+
312 
+
313  debug << L" ABI Version: "
+
314  << ehdr.e_ident[EI_ABIVERSION] << ostream::endl;
+
315 
+
316  debug << L" Type: ";
+
317  switch (ehdr.e_type) {
+
318  case ET_NONE: {
+
319  debug << L"No file type";
+
320  break;
+
321  }
+
322  case ET_REL: {
+
323  debug << L"Relocatable file";
+
324  break;
+
325  }
+
326  case ET_EXEC: {
+
327  debug << L"Executable file";
+
328  break;
+
329  }
+
330  case ET_DYN: {
+
331  debug << L"DYN (Shared object file)";
+
332  break;
+
333  }
+
334  case ET_CORE: {
+
335  debug << L"Core file";
+
336  break;
+
337  }
+
338  default: {
+
339  debug << ehdr.e_type;
+
340  break;
+
341  }
+
342  }
+
343  debug << ostream::endl;
+
344 
+
345  debug << L" Machine: ";
+
346  switch (ehdr.e_machine) {
+
347  case EM_X86_64: {
+
348  debug << L"AMD x86-64 architecture";
+
349  break;
+
350  }
+
351  case EM_RISCV: {
+
352  debug << L"RISC-V";
+
353  break;
+
354  }
+
355  case EM_AARCH64: {
+
356  debug << L"ARM AARCH64";
+
357  break;
+
358  }
+
359  default: {
+
360  debug << ehdr.e_machine;
+
361  break;
+
362  }
+
363  }
+
364  debug << ostream::endl;
+
365 
+
366  debug << L" Version: " << ostream::hex_x
+
367  << ehdr.e_version << ostream::endl;
+
368  debug << L" Entry point address: " << ostream::hex_x
+
369  << ehdr.e_entry << ostream::endl;
+
370  debug << L" Start of program headers: " << ehdr.e_phoff
+
371  << L" (bytes into file)" << ostream::endl;
+
372  debug << L" Start of section headers: " << ehdr.e_shoff
+
373  << L" (bytes into file)" << ostream::endl;
+
374  debug << L" Flags: " << ostream::hex_x
+
375  << ehdr.e_flags << ostream::endl;
+
376  debug << L" Size of this header: " << ehdr.e_ehsize
+
377  << L" (bytes)" << ostream::endl;
+
378  debug << L" Size of program headers: " << ehdr.e_phentsize
+
379  << L" (bytes)" << ostream::endl;
+
380  debug << L" Number of program headers: " << ehdr.e_phnum
+
381  << ostream::endl;
+
382  debug << L" Size of section headers: " << ehdr.e_shentsize
+
383  << L" (bytes)" << ostream::endl;
+
384  debug << L" Number of section headers: " << ehdr.e_shnum
+
385  << ostream::endl;
+
386  debug << L" Section header string table index: " << ehdr.e_shstrndx
+
387  << ostream::endl;
+
388 }
+
+Here is the call graph for this function:
+
+
+ + + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ print_phdr()

+ +
+
+ + + + + +
+ + + + + + + +
void Elf::print_phdr () const
+
+private
+
+

输出 phdr

+ +

Definition at line 395 of file load_elf.cpp.

+
395  {
+
396  debug << L"\nProgram Headers:" << ostream::endl;
+
397  debug << L" "
+
398  L"Type\t\tOffset\t\tVirtAddr\tPhysAddr\tFileSiz\t\tMemSiz\t\tFlags"
+
399  L"\tAlign"
+
400  << ostream::endl;
+
401  for (uint64_t i = 0; i < ehdr.e_phnum; i++) {
+
402  switch (phdr[i].p_type) {
+
403  case PT_NULL: {
+
404  debug << L" NULL\t\t";
+
405  break;
+
406  }
+
407 
+
408  case PT_LOAD: {
+
409  debug << L" LOAD\t\t";
+
410  break;
+
411  }
+
412  case PT_DYNAMIC: {
+
413  debug << L" DYNAMIC\t";
+
414  break;
+
415  }
+
416  case PT_INTERP: {
+
417  debug << L" INTERP\t";
+
418  break;
+
419  }
+
420  case PT_NOTE: {
+
421  debug << L" NOTE\t\t";
+
422  break;
+
423  }
+
424  case PT_SHLIB: {
+
425  debug << L" SHLIB\t\t";
+
426  break;
+
427  }
+
428  case PT_PHDR: {
+
429  debug << L" PHDR\t\t";
+
430  break;
+
431  }
+
432  case PT_TLS: {
+
433  debug << L" TLS\t\t";
+
434  break;
+
435  }
+
436  case PT_NUM: {
+
437  debug << L" NUM\t\t";
+
438  break;
+
439  }
+
440  case PT_LOOS: {
+
441  debug << L" LOOS\t\t";
+
442  break;
+
443  }
+
444  case PT_GNU_EH_FRAME: {
+
445  debug << L" GNU_EH_FRAME\t";
+
446  break;
+
447  }
+
448  case PT_GNU_STACK: {
+
449  debug << L" GNU_STACK\t";
+
450  break;
+
451  }
+
452  case PT_GNU_RELRO: {
+
453  debug << L" GNU_RELRO\t";
+
454  break;
+
455  }
+
456  case PT_GNU_PROPERTY: {
+
457  debug << L" GNU_PROPERTY\t";
+
458  break;
+
459  }
+
460  case PT_SUNWBSS: {
+
461  debug << L" SUNWBSS\t\t";
+
462  break;
+
463  }
+
464  case PT_SUNWSTACK: {
+
465  debug << L" SUNWSTACK\t";
+
466  break;
+
467  }
+
468  case PT_HIOS: {
+
469  debug << L" HIOS\t\t";
+
470  break;
+
471  }
+
472  case PT_LOPROC: {
+
473  debug << L" LOPROC\t\t";
+
474  break;
+
475  }
+
476  case PT_HIPROC: {
+
477  debug << L" HIPROC\t\t";
+
478  break;
+
479  }
+
480  default: {
+
481  debug << L" Unknown " << ostream::hex_X << phdr[i].p_type << L"\t";
+
482  break;
+
483  }
+
484  }
+
485 
+
486  debug << ostream::hex_X << phdr[i].p_offset << L"\t";
+
487  debug << ostream::hex_X << phdr[i].p_vaddr << L"\t";
+
488  debug << ostream::hex_X << phdr[i].p_paddr << L"\t";
+
489  debug << ostream::hex_X << phdr[i].p_filesz << L"\t";
+
490  debug << ostream::hex_X << phdr[i].p_memsz << L"\t";
+
491 
+
492  switch (phdr[i].p_flags) {
+
493  case PF_X: {
+
494  debug << L"E\t";
+
495  break;
+
496  }
+
497  case PF_W: {
+
498  debug << L"W\t";
+
499  break;
+
500  }
+
501  case PF_R: {
+
502  debug << L"R\t";
+
503  break;
+
504  }
+
505  case PF_MASKOS: {
+
506  debug << L"OS-specific\t";
+
507  break;
+
508  }
+
509  case PF_MASKPROC: {
+
510  debug << L"Processor-specific\t";
+
511  break;
+
512  }
+
513  case (PF_X | PF_R): {
+
514  debug << L"R E\t";
+
515  break;
+
516  }
+
517  case (PF_W | PF_R): {
+
518  debug << L"RW\t";
+
519  break;
+
520  }
+
521  default: {
+
522  debug << L"Unknown " << ostream::hex_x << phdr[i].p_flags << L"\t";
+
523  break;
+
524  }
+
525  }
+
526  debug << ostream::hex_x << phdr[i].p_align << ostream::endl;
+
527  }
+
528 }
+
+Here is the call graph for this function:
+
+
+ + + + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ print_shdr()

+ +
+
+ + + + + +
+ + + + + + + +
void Elf::print_shdr () const
+
+private
+
+

输出 shdr

+ +

Definition at line 539 of file load_elf.cpp.

+
539  {
+
540  debug << L"\nSection Headers:" << ostream::endl;
+
541  debug << L" [Nr] "
+
542  L"Name\t\t\tType\t\tAddress\t\tOffset\t\tSize\t\tEntSize\t\tFl"
+
543  L"ags\tLink\tInfo\tAlign"
+
544  << ostream::endl;
+
545  for (uint64_t i = 0; i < ehdr.e_shnum; i++) {
+
546  debug << L" [";
+
547  // 对齐
+
548  if (i < ALIGN_TWO) {
+
549  debug << L" ";
+
550  }
+
551  debug << i << L"] ";
+
552 
+
553  std::array<wchar_t, SECTION_BUF_SIZE> buf = {0};
+
554  auto char2wchar_ret = char2wchar(
+
555  buf.data(),
+
556  reinterpret_cast<const char *>(shstrtab_buf.data() + shdr[i].sh_name));
+
557  debug << (const wchar_t *)buf.data() << L"\t";
+
558 
+
559  if (char2wchar_ret <= TWO_TAB_SIZE) {
+
560  debug << L"\t";
+
561  }
+
562  if (char2wchar_ret <= ONE_TAB_SIZE) {
+
563  debug << L"\t";
+
564  }
+
565  if (char2wchar_ret <= 1) {
+
566  debug << L"\t";
+
567  }
+
568  switch (shdr[i].sh_type) {
+
569  case SHT_NULL: {
+
570  debug << L"NULL\t\t";
+
571  break;
+
572  }
+
573  case SHT_PROGBITS: {
+
574  debug << L"PROGBITS\t";
+
575  break;
+
576  }
+
577  case SHT_SYMTAB: {
+
578  debug << L"SYMTAB\t\t";
+
579  break;
+
580  }
+
581  case SHT_STRTAB: {
+
582  debug << L"STRTAB\t\t";
+
583  break;
+
584  }
+
585  case SHT_RELA: {
+
586  debug << L"RELA\t\t";
+
587  break;
+
588  }
+
589  case SHT_HASH: {
+
590  debug << L"HASH\t\t";
+
591  break;
+
592  }
+
593  case SHT_DYNAMIC: {
+
594  debug << L"DYNAMIC\t\t";
+
595  break;
+
596  }
+
597  case SHT_NOTE: {
+
598  debug << L"NOTE\t\t";
+
599  break;
+
600  }
+
601  case SHT_NOBITS: {
+
602  debug << L"NOBITS\t\t";
+
603  break;
+
604  }
+
605  case SHT_REL: {
+
606  debug << L"REL\t\t";
+
607  break;
+
608  }
+
609  case SHT_SHLIB: {
+
610  debug << L"SHLIB\t\t";
+
611  break;
+
612  }
+
613  case SHT_DYNSYM: {
+
614  debug << L"DYNSYM\t\t";
+
615  break;
+
616  }
+
617  case SHT_INIT_ARRAY: {
+
618  debug << L"INIT_ARRAY\t";
+
619  break;
+
620  }
+
621  case SHT_FINI_ARRAY: {
+
622  debug << L"FINI_ARRAY\t";
+
623  break;
+
624  }
+
625  case SHT_PREINIT_ARRAY: {
+
626  debug << L"PREINIT_ARRAY\t\t";
+
627  break;
+
628  }
+
629  case SHT_GROUP: {
+
630  debug << L"GROUP\t\t";
+
631  break;
+
632  }
+
633  case SHT_SYMTAB_SHNDX: {
+
634  debug << L"SYMTAB_SHNDX\t\t";
+
635  break;
+
636  }
+
637  case SHT_RELR: {
+
638  debug << L"RELR\t\t";
+
639  break;
+
640  }
+
641  case SHT_NUM: {
+
642  debug << L"NUM\t\t";
+
643  break;
+
644  }
+
645  case SHT_LOOS: {
+
646  debug << L"LOOS\t\t";
+
647  break;
+
648  }
+
649  case SHT_GNU_ATTRIBUTES: {
+
650  debug << L"GNU_ATTRIBUTE\t\t";
+
651  break;
+
652  }
+
653  case SHT_GNU_HASH: {
+
654  debug << L"GNU_HASH\t";
+
655  break;
+
656  }
+
657  case SHT_GNU_LIBLIST: {
+
658  debug << L"GNU_LIBLIST\t\t";
+
659  break;
+
660  }
+
661  case SHT_CHECKSUM: {
+
662  debug << L"CHECKSUM\t\t";
+
663  break;
+
664  }
+
665  case SHT_SUNW_move: {
+
666  debug << L"SUNW_move\t\t";
+
667  break;
+
668  }
+
669  case SHT_SUNW_COMDAT: {
+
670  debug << L"SUNW_COMDAT\t\t";
+
671  break;
+
672  }
+
673  case SHT_SUNW_syminfo: {
+
674  debug << L"SUNW_syminfo\t\t";
+
675  break;
+
676  }
+
677  case SHT_GNU_verdef: {
+
678  debug << L"GNU_verdef\t\t";
+
679  break;
+
680  }
+
681  case SHT_GNU_verneed: {
+
682  debug << L"GNU_verneed\t";
+
683  break;
+
684  }
+
685  case SHT_GNU_versym: {
+
686  debug << L"GNU_versym\t";
+
687  break;
+
688  }
+
689  case SHT_LOPROC: {
+
690  debug << L"LOPROC\t\t";
+
691  break;
+
692  }
+
693  case SHT_HIPROC: {
+
694  debug << L"HIPROC\t\t";
+
695  break;
+
696  }
+
697  case SHT_LOUSER: {
+
698  debug << L"LOUSER\t\t";
+
699  break;
+
700  }
+
701  case SHT_HIUSER: {
+
702  debug << L"HIUSER\t\t";
+
703  break;
+
704  }
+
705  default: {
+
706  debug << L"Unknown " << ostream::hex_X << shdr[i].sh_type << L"\t";
+
707 
+
708  break;
+
709  }
+
710  }
+
711 
+
712  debug << ostream::hex_X << shdr[i].sh_addr << L"\t";
+
713  debug << ostream::hex_x << shdr[i].sh_offset << L"\t\t";
+
714  debug << ostream::hex_X << shdr[i].sh_size << L"\t";
+
715  debug << ostream::hex_X << shdr[i].sh_entsize << L"\t";
+
716 
+
717  switch (shdr[i].sh_flags) {
+
718  case 0: {
+
719  debug << L"0\t";
+
720  break;
+
721  }
+
722  case SHF_WRITE: {
+
723  debug << L"WRITE\t";
+
724  break;
+
725  }
+
726  case SHF_ALLOC: {
+
727  debug << L"A\t";
+
728  break;
+
729  }
+
730  case SHF_EXECINSTR: {
+
731  debug << L"EXECINSTR\t";
+
732  break;
+
733  }
+
734  case SHF_MERGE: {
+
735  debug << L"MERGE\t";
+
736  break;
+
737  }
+
738  case SHF_STRINGS: {
+
739  debug << L"STRINGS\t";
+
740  break;
+
741  }
+
742  case SHF_INFO_LINK: {
+
743  debug << L"INFO_LINK\t";
+
744  break;
+
745  }
+
746  case SHF_LINK_ORDER: {
+
747  debug << L"LINK_ORDER\t";
+
748  break;
+
749  }
+
750  case SHF_OS_NONCONFORMING: {
+
751  debug << L"OS_NONCONFORMING\t";
+
752  break;
+
753  }
+
754  case SHF_GROUP: {
+
755  debug << L"GROUP\t";
+
756  break;
+
757  }
+
758  case SHF_TLS: {
+
759  debug << L"TLS\t";
+
760  break;
+
761  }
+
762  case SHF_COMPRESSED: {
+
763  debug << L"COMPRESSED\t";
+
764  break;
+
765  }
+
766  case SHF_MASKOS: {
+
767  debug << L"MASKOS\t";
+
768  break;
+
769  }
+
770  case SHF_MASKPROC: {
+
771  debug << L"MASKPROC\t";
+
772  break;
+
773  }
+
774  case SHF_GNU_RETAIN: {
+
775  debug << L"GNU_RETAIN\t";
+
776  break;
+
777  }
+
778  case SHF_ORDERED: {
+
779  debug << L"ORDERED\t";
+
780  break;
+
781  }
+
782  case SHF_EXCLUDE: {
+
783  debug << L"EXCLUDE\t";
+
784  break;
+
785  }
+
786  case (SHF_WRITE | SHF_ALLOC): {
+
787  debug << L"WA\t";
+
788  break;
+
789  }
+
790  case (SHF_ALLOC | SHF_MERGE): {
+
791  debug << L"AM\t";
+
792  break;
+
793  }
+
794  case (SHF_ALLOC | SHF_EXECINSTR): {
+
795  debug << L"AX\t";
+
796  break;
+
797  }
+
798  case (SHF_MERGE | SHF_STRINGS): {
+
799  debug << L"MS\t";
+
800  break;
+
801  }
+
802  default: {
+
803  debug << L"Unknown " << ostream::hex_X << shdr[i].sh_flags << L"\t";
+
804  break;
+
805  }
+
806  }
+
807 
+
808  debug << shdr[i].sh_link << L"\t";
+
809  debug << shdr[i].sh_info << L"\t";
+
810  debug << shdr[i].sh_addralign << L"\t";
+
811  debug << ostream::endl;
+
812  }
+
813 }
+
+Here is the call graph for this function:
+
+
+ + + + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+

Member Data Documentation

+ +

◆ ehdr

+ +
+
+ + + + + +
+ + + + +
Elf64_Ehdr Elf::ehdr = {}
+
+private
+
+ +

Definition at line 176 of file load_elf.h.

+ +
+
+ +

◆ elf

+ +
+
+ + + + + +
+ + + + +
EFI_FILE* Elf::elf = nullptr
+
+private
+
+ +

elf 文件指针

+ +

Definition at line 169 of file load_elf.h.

+ +
+
+ +

◆ elf_file_buffer

+ +
+
+ + + + + +
+ + + + +
void* Elf::elf_file_buffer = nullptr
+
+private
+
+ +

elf 文件内容缓冲区

+ +

Definition at line 173 of file load_elf.h.

+ +
+
+ +

◆ elf_file_size

+ +
+
+ + + + + +
+ + + + +
size_t Elf::elf_file_size = 0
+
+private
+
+ +

elf 文件大小

+ +

Definition at line 171 of file load_elf.h.

+ +
+
+ +

◆ file

+ +
+
+ + + + + +
+ + + + +
std::span<uint8_t> Elf::file = {}
+
+private
+
+ +

elf 文件访问

+ +

Definition at line 175 of file load_elf.h.

+ +
+
+ +

◆ file_system_protocol

+ +
+
+ + + + + +
+ + + + +
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL* Elf::file_system_protocol = nullptr
+
+private
+
+ +

Definition at line 166 of file load_elf.h.

+ +
+
+ +

◆ phdr

+ +
+
+ + + + + +
+ + + + +
std::span<Elf64_Phdr> Elf::phdr = {}
+
+private
+
+ +

Definition at line 177 of file load_elf.h.

+ +
+
+ +

◆ root_file_system

+ +
+
+ + + + + +
+ + + + +
EFI_FILE* Elf::root_file_system = nullptr
+
+private
+
+ +

Definition at line 167 of file load_elf.h.

+ +
+
+ +

◆ SECTION_BUF_SIZE

+ +
+
+ + + + + +
+ + + + +
constexpr const size_t Elf::SECTION_BUF_SIZE = 1024
+
+staticconstexprprivate
+
+ +

section 缓冲区大小

+ +

Definition at line 180 of file load_elf.h.

+ +
+
+ +

◆ shdr

+ +
+
+ + + + + +
+ + + + +
std::span<Elf64_Shdr> Elf::shdr = {}
+
+private
+
+ +

Definition at line 178 of file load_elf.h.

+ +
+
+ +

◆ shstrtab_buf

+ +
+
+ + + + + +
+ + + + +
std::array<uint8_t, SECTION_BUF_SIZE> Elf::shstrtab_buf = {}
+
+private
+
+ +

shstrtab 缓冲

+ +

Definition at line 182 of file load_elf.h.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /home/runner/work/SimpleKernel/SimpleKernel/src/boot/include/load_elf.h
  • +
  • /home/runner/work/SimpleKernel/SimpleKernel/src/boot/load_elf.cpp
  • +
+
+
+ + + + diff --git a/classElf.js b/classElf.js new file mode 100644 index 000000000..5ae024d4c --- /dev/null +++ b/classElf.js @@ -0,0 +1,32 @@ +var classElf = +[ + [ "Elf", "classElf.html#a004d82ec887bbe8da9588c9c88041c07", null ], + [ "~Elf", "classElf.html#a184a984a3da808368593a45f06005bd3", null ], + [ "Elf", "classElf.html#a47b294082f1ed9196c086aed53704c96", null ], + [ "Elf", "classElf.html#a5eccc90005cd47ce0d7e34db5a5159ef", null ], + [ "check_elf_identity", "classElf.html#a0eb12fc4d607d5c2ba473a3882a50276", null ], + [ "get_ehdr", "classElf.html#aea825c7f4d213298f8a60b961c27cd6e", null ], + [ "get_file_size", "classElf.html#a23bfd5acab462921c7e0f8b958fe5936", null ], + [ "get_phdr", "classElf.html#a3074fcc38da6769775c9f685b02ab47c", null ], + [ "get_shdr", "classElf.html#a135ba996115f8bd77521be56b1cf7767", null ], + [ "load", "classElf.html#abec14f617596cbe75854cdff875a4db2", null ], + [ "load_kernel_image", "classElf.html#a75355dba9bf23ee591ef52c04b688cea", null ], + [ "load_program_sections", "classElf.html#a3502161430e3a3c1896c2d92df03c71e", null ], + [ "load_sections", "classElf.html#a1764987395919b2725a85a17f904f245", null ], + [ "operator=", "classElf.html#a0cf4a40c154a379fab396f3b57e1b271", null ], + [ "operator=", "classElf.html#ab8554ff6a26fc6bc9466b1ed097f62cc", null ], + [ "print_ehdr", "classElf.html#a34d57d143f7782f3c630f6ddb1f16948", null ], + [ "print_phdr", "classElf.html#aff0728535c76009acc8d78cbece772fe", null ], + [ "print_shdr", "classElf.html#a25345e29535844c992d1a45bf12e2e57", null ], + [ "ehdr", "classElf.html#aa938244c41792cd337c27e7989496900", null ], + [ "elf", "classElf.html#a8cdfe3309959985aa774604b6ec9da86", null ], + [ "elf_file_buffer", "classElf.html#a656cc0c33708cae16ff34547eb8f8c85", null ], + [ "elf_file_size", "classElf.html#a24d94ce5a17e48b96ae4e82de062e7e4", null ], + [ "file", "classElf.html#adf9ed3472f22d8d149e627394ea442ea", null ], + [ "file_system_protocol", "classElf.html#a0f7dcccb310a1b259b0dc72f292a8629", null ], + [ "phdr", "classElf.html#a4a9108833faee1fb3608716720636eb1", null ], + [ "root_file_system", "classElf.html#a2401458a0b098dcccfa120bb64c12afd", null ], + [ "SECTION_BUF_SIZE", "classElf.html#aead66f632e243546cc5cef1a654b404e", null ], + [ "shdr", "classElf.html#a6a780ca4b86b353ef42ac64f9d64c845", null ], + [ "shstrtab_buf", "classElf.html#a87eb8da130b534167a0e4a0047d78d18", null ] +]; \ No newline at end of file diff --git a/classElf__coll__graph.map b/classElf__coll__graph.map new file mode 100644 index 000000000..1d78fa390 --- /dev/null +++ b/classElf__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classElf__coll__graph.md5 b/classElf__coll__graph.md5 new file mode 100644 index 000000000..0e8814444 --- /dev/null +++ b/classElf__coll__graph.md5 @@ -0,0 +1 @@ +d183ad796eee4dbac4427208d6d5862a \ No newline at end of file diff --git a/classElf__coll__graph.png b/classElf__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..a5afdd1153c555a06d5ca199b8cec0914bbab0d8 GIT binary patch literal 17083 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 G$^QqNk1+TE literal 0 HcmV?d00001 diff --git a/classElf_a004d82ec887bbe8da9588c9c88041c07_cgraph.map b/classElf_a004d82ec887bbe8da9588c9c88041c07_cgraph.map new file mode 100644 index 000000000..25f7acc0d --- /dev/null +++ b/classElf_a004d82ec887bbe8da9588c9c88041c07_cgraph.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/classElf_a004d82ec887bbe8da9588c9c88041c07_cgraph.md5 b/classElf_a004d82ec887bbe8da9588c9c88041c07_cgraph.md5 new file mode 100644 index 000000000..8d812a344 --- /dev/null +++ b/classElf_a004d82ec887bbe8da9588c9c88041c07_cgraph.md5 @@ -0,0 +1 @@ +ddbab3fec35cf1480d590ddac98ed713 \ No newline at end of file diff --git a/classElf_a004d82ec887bbe8da9588c9c88041c07_cgraph.png b/classElf_a004d82ec887bbe8da9588c9c88041c07_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..858adf900cc6938ebb37d5ca067667d7544ef844 GIT binary patch literal 40756 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 literal 0 HcmV?d00001 diff --git a/classElf_a0eb12fc4d607d5c2ba473a3882a50276_cgraph.map b/classElf_a0eb12fc4d607d5c2ba473a3882a50276_cgraph.map new file mode 100644 index 000000000..254921612 --- /dev/null +++ b/classElf_a0eb12fc4d607d5c2ba473a3882a50276_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classElf_a0eb12fc4d607d5c2ba473a3882a50276_cgraph.md5 b/classElf_a0eb12fc4d607d5c2ba473a3882a50276_cgraph.md5 new file mode 100644 index 000000000..80ab4605f --- /dev/null +++ b/classElf_a0eb12fc4d607d5c2ba473a3882a50276_cgraph.md5 @@ -0,0 +1 @@ +e7f250a8e72ad6a137a3ee079416a409 \ No newline at end of file diff --git a/classElf_a0eb12fc4d607d5c2ba473a3882a50276_cgraph.png b/classElf_a0eb12fc4d607d5c2ba473a3882a50276_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..d4781b5b3d1b3678af32e0cb08921cf2829d2497 GIT binary patch literal 3090 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 + + + diff --git a/classElf_a0eb12fc4d607d5c2ba473a3882a50276_icgraph.md5 b/classElf_a0eb12fc4d607d5c2ba473a3882a50276_icgraph.md5 new file mode 100644 index 000000000..f6ec6ba80 --- /dev/null +++ b/classElf_a0eb12fc4d607d5c2ba473a3882a50276_icgraph.md5 @@ -0,0 +1 @@ +1a7aad6ee08e8b97afdbca507f97162a \ No newline at end of file diff --git a/classElf_a0eb12fc4d607d5c2ba473a3882a50276_icgraph.png b/classElf_a0eb12fc4d607d5c2ba473a3882a50276_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..dc67cbcb0dcdc0c90ec64ed11091d9b63827369c GIT binary patch literal 2366 zcmZWrc{tSF9-o)7G`5ix!bmC&k!=z+mKl3lLx~{@uYG2aH^Vd|d8JUoRSaXSX~rP? z5>cA6L}XvbI$4@)X)JHWzN&i5?O`99D0`}usnC(+*4LJT4Y0f9hbR+eZ- z5aO=`#s^Dydy zQ3uRyK6NO6f01f=_}54GN3p2lp5>n@Vb8}#7huHHy?*?cFZL>D&N$_K zcs(~iPo+{x99?146vxtmy(|oOd1a+z>-&(Tg2HNQK{kusnNn)o1{V_(t0NvD$z*bg zZM+f)1W$+1>2$%d%}2eusB})?F)1lj1jI!I0(n>JR9s>k2i%E>i1^smr8{i?jUY_U z1D{2LP3*}>U}PoLnbg@TEZh8uwDfX~o}AeB+JuONgalYf$S`IienT!ABdlye;QXWBPUmBkfEc~Fdbx98#-m~ z6Ewr<_ z#&q`H642AroLN}lQ(T`Ku2uuztYwhP)Y=!=W@ct4%1{3_csD9ahQVMUdT(i* z#A_Rhdxjkq2I~`lU4n>+n9%xCDHQQ~_he}`m!;jV@fyUhalQCH2Qj!>E_=u`33}xD z!}f$E?9VkD|LQdHUh~swGvDYpOG-*WnV;X!f6jDpbR^f+>3ig6jh#GsQdL#;zNLyO z8V$zb@mdB3uL9RsR?s+{HV~)nm65nJc9f;jfdD-S1Oh#NT!dr{%DVFK?)qewLiFhH zuuOk{f9i`D0nC`wPV5&iq?~*ivRglYqE4rgdKZ1BT4JJpOq0xZIyyVqpVHL?7q!&X zM1q5Z^<#E*>)bUuyelx`4|ktuX0lsJ{JHaegM;x*=6M?a*4c#eoog;Grpiyf04N;O z#DITP3=ix4a=)NO6#$7!q)?lhWQWR)NST?2$|q4!NiKivKDHk9?~g1N$&`BErEIWS zps=7|E@|(!pC225Lh9%FAKTmJ9v%vm%h3-38i0(iUKP{U(UF8gL4}TqD=R_cO@B%0 z%83EMlYzl3Vq=lRK?sIN<3p)4woBsbMc(|dW1%T9qh#kYmlHs0!yA^_^iu5A?!>~% z%F5~G<;2-p@5hfHE2*h{o+Ui)_AxgXY-nthl$AZCnBo^kK*jtHqlidfe}8_XzmtOl z3E-MfU%pw@y=)x-E*4b#B|58#crf`o2B3A{_br?)L4~ zF$WAre3~si$KeDBgUKUC!?LP3Hn1OfU)|gYturbkG4eOR_#=hV|m1ES zSTg~J~LVa+rwliFMe0&`FGQkd(R=*?j(jrhe-c&_J#aQ`iUPXnZ zs35y)HsqYOMzvwp`r89oPqr0RH{n9)E_ZJ|-FGV@;trq&-a9x?|LWDeuZHK~m$v5? z7ZX@4tIf?#FV?eDN7rp=efBOc4+TVyE>-{B+RA#IlbU+JsOWS-L4mPGW;@V0*x>HY zP9YkN2E=(lI(3=sQ%2~z$krL?1TsP*kxCd0^O%^+QI{0m-Gf}Uv-5c$=W)Lk5fjio z9;t$e7L}9?lt-==Q;gR4z4yY~xLj_l=G)hU^u3Ob4&%bg^}?MjYinzJXXnD`(yis1 z@^Vd66bif0B@2kV&&<2{5;{G;wzigavIICn1doF2-Nh@ei^5>A@bK`wx;hzISy|ur zzUO5u?d&WtYIs!siNs(qQUC1f zy>UAyBiin2^JGgB5^t}11dw6VfPhz95N)d@%;r-DV89!Z|>q2fjPw3)BEzp!}2b6-$X?;p?IK(1ZzO5#B zOns8Ln;|F2N$fw1iIm)J*-IudnZy%tIQZ5r6EAI6`J=GcrKM+|r>Bzu=6%jMhe)ye zm7nwFk#q}hG56qId;1g4wHAZs=4NOjT5t?l(=kIp@v)fYMtN0SPqi*Yc=%JyAEij) z?&dazieV#TV`G8j=2USNN{fm9vxwGMa%H83bw~?DYG;?3?$Mu{>OFUIB`z=01D$jZzX%`o*M{|D@ag;xLo literal 0 HcmV?d00001 diff --git a/classElf_a135ba996115f8bd77521be56b1cf7767_icgraph.map b/classElf_a135ba996115f8bd77521be56b1cf7767_icgraph.map new file mode 100644 index 000000000..bc3449ce0 --- /dev/null +++ b/classElf_a135ba996115f8bd77521be56b1cf7767_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classElf_a135ba996115f8bd77521be56b1cf7767_icgraph.md5 b/classElf_a135ba996115f8bd77521be56b1cf7767_icgraph.md5 new file mode 100644 index 000000000..dd7d1fdda --- /dev/null +++ b/classElf_a135ba996115f8bd77521be56b1cf7767_icgraph.md5 @@ -0,0 +1 @@ +17b4e6ecc3da7c845d2d8335bb9d427b \ No newline at end of file diff --git a/classElf_a135ba996115f8bd77521be56b1cf7767_icgraph.png b/classElf_a135ba996115f8bd77521be56b1cf7767_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..574311be6424db0655d6f4d72f8bacb5c5b3cce4 GIT binary patch literal 2022 zcmV-TLx=laB{+CCbpF}c2;M@EivYgyxFput46N4$Ej=6oVJPS29|6ZCO^D? zJa>#3QQ!kS-21%#`ts%Te7^68z4<<$@Ar8Cv%bC#P*9LcM5qOzpm+l{C<>xM4T^$j zP=lf%8l3A3ole)()D$Wy8z(0xM<^7ATE%~9YHHHybfH!eeh7uaoSYoz%g+otJ3HIi z*;!av7<5%I@Z!abP)qm>olZA2G{j^wLoFnn7#bSl^Z8#iD1=6%38Ey};Pd&Rmf#MP z$-I2|a;Q~=6Kpoytp}|^Q4kGkP!vRi8WaW5z-iFz>}-`v1+}eK>&cTRV`F2}($Yee zC#oyl3<~` zyZhzKmj;7@L?R&}PgwK(`SXd135`axY15`qYY8^~%%B_&2lF`t0|Ra`BO@bw_wM!X zD!B3llhM)H-+ud}w|8W9)e1|(nwlE+=jio%x0tD^DF%Z9uRG72In&?Y4`adr;pYr0 z5D1!^o4o{>&F1Ln=%D2Z8dj^lzkjU1e;kj;<>meT*s;u?e%gh@ZKzTzC@83`tn?DF zva%8x8M%=m!k2(t;twA_4AoCT_O^RDwS$#Y6<`#m&=`PU-MkKawQOI{bGG} z)!NfDqSgMJNQ~le()s)!e*7^RgTcT)l2|N;?m_hS_MSL#f#(-0(QGR;$%$G#@^ENJ&Yls;Wv(PKNqtXJ>^%;l#v5e0;n>Ajrzf0st&7 zE;cqcj*gB}C=?!#=S)&oR+gQeJw84@IXQX${P}|i5BhZa0Ws+P`}Zp=D{VGgYilb2 zKrWZVk_TznY<2*^^75zd?vc*USKoa{W?2kx(WaQ zJb3UxCX+E3jED%IFExH%o0LkWYwc(Du-+4`Q)eZ2*A9#pOT$e9q%t zXR+$9UhTJ7zV*w0@7_Jv8r1vZ_xSPS(3I)go|~H+A0Mx-t|pVoG#c&n>C;ev(P(`7 z^y!5Q7ictEOiWC9dHLMj+|10(x2VEmu{azqCMG5-DvHTumY0`1-zqFD+`W5ubaeF5 zqeqvPmKGNm-@SV`Iy!pp+&MCtOsCVG0wD79^HWn({ctA;Tn!rJJP>+)0-b&iu55l_ zwb}syZ{M1(UVR8a0)Y_w=FNxX>22LQM|T(PjQ zkeK-OIi5zN)z;Rwwzith=A@*gf`Wpiq$KDqGMNlDpyk1*PoGRC6CRIu_S5Nf*Hlz0 z)$daa)HYK{NK9N32>uz+A*QE|3dO&?1mJKHHk%_UiE6XGiHI~E%erdrp_O@-?Qd3h~T3V{Asw@`Ety{OCU@DcmZ{I$-TwYO8L7`A)W@glC zwL~I`jEszrkDs2Nw%hGkEY{;duU@?x85ucr=n$1kbvPVrYikaN<4daObb4A^no_A0 z2n4PIHV!;B=+u*@B`&XUM=Npa2kUVZTJUm=qU*FTy z6a1k!2%F8md-rZpQIWIff2sxz4$;xLUw%nFb}aMfpBYh6NcjK<2M4iOY*tp*{QP`d zTbr-jjfe#)pKrLZYZq;7>HpqpC|nVFf*&CQLCjd(nM|Ni}M8$DiFSXd}2DRJw} z&CL~wL~v{L2h^axfk10Q#Kpx)BoaRkOh`x=92|sQ4_u(ngQ6fB)SxJc1~n)OqCpLc zf@nM}k~%s%g0Exa7z~E(+kM+14>U%j@yU}Xp;i&zcra*jadGf1<{}eML{(G0nlg*E{|mUhX4Qo07*qoM6N<$ Ef?bi&y#N3J literal 0 HcmV?d00001 diff --git a/classElf_a1764987395919b2725a85a17f904f245_cgraph.map b/classElf_a1764987395919b2725a85a17f904f245_cgraph.map new file mode 100644 index 000000000..916f38276 --- /dev/null +++ b/classElf_a1764987395919b2725a85a17f904f245_cgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/classElf_a1764987395919b2725a85a17f904f245_cgraph.md5 b/classElf_a1764987395919b2725a85a17f904f245_cgraph.md5 new file mode 100644 index 000000000..5aa2957a7 --- /dev/null +++ b/classElf_a1764987395919b2725a85a17f904f245_cgraph.md5 @@ -0,0 +1 @@ +8e789a0f44476c40d0af3e6f7846c13c \ No newline at end of file diff --git a/classElf_a1764987395919b2725a85a17f904f245_cgraph.png b/classElf_a1764987395919b2725a85a17f904f245_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..33b62d129cedab0fe1c0b17074f3b8a67009d834 GIT binary patch literal 8711 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 + + + diff --git a/classElf_a1764987395919b2725a85a17f904f245_icgraph.md5 b/classElf_a1764987395919b2725a85a17f904f245_icgraph.md5 new file mode 100644 index 000000000..2132e878e --- /dev/null +++ b/classElf_a1764987395919b2725a85a17f904f245_icgraph.md5 @@ -0,0 +1 @@ +3a8b82d67c21765921bda0f7ed5a6fc5 \ No newline at end of file diff --git a/classElf_a1764987395919b2725a85a17f904f245_icgraph.png b/classElf_a1764987395919b2725a85a17f904f245_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..54c38f89b1f40e16c0574d68a2f673d0d4d50ecc GIT binary patch literal 4179 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 literal 0 HcmV?d00001 diff --git a/classElf_a184a984a3da808368593a45f06005bd3_cgraph.map b/classElf_a184a984a3da808368593a45f06005bd3_cgraph.map new file mode 100644 index 000000000..f3c13fd2e --- /dev/null +++ b/classElf_a184a984a3da808368593a45f06005bd3_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classElf_a184a984a3da808368593a45f06005bd3_cgraph.md5 b/classElf_a184a984a3da808368593a45f06005bd3_cgraph.md5 new file mode 100644 index 000000000..db0971ac9 --- /dev/null +++ b/classElf_a184a984a3da808368593a45f06005bd3_cgraph.md5 @@ -0,0 +1 @@ +8615a3bb5fbf1720c48e02653312d87d \ No newline at end of file diff --git a/classElf_a184a984a3da808368593a45f06005bd3_cgraph.png b/classElf_a184a984a3da808368593a45f06005bd3_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..ceff21fdb6d4addb2e3e66e7d27110284facf54e GIT binary patch literal 2194 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 literal 0 HcmV?d00001 diff --git a/classElf_a23bfd5acab462921c7e0f8b958fe5936_icgraph.map b/classElf_a23bfd5acab462921c7e0f8b958fe5936_icgraph.map new file mode 100644 index 000000000..ffa022165 --- /dev/null +++ b/classElf_a23bfd5acab462921c7e0f8b958fe5936_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classElf_a23bfd5acab462921c7e0f8b958fe5936_icgraph.md5 b/classElf_a23bfd5acab462921c7e0f8b958fe5936_icgraph.md5 new file mode 100644 index 000000000..47373141d --- /dev/null +++ b/classElf_a23bfd5acab462921c7e0f8b958fe5936_icgraph.md5 @@ -0,0 +1 @@ +99052a9109537f7685bc3cd5a7d25fae \ No newline at end of file diff --git a/classElf_a23bfd5acab462921c7e0f8b958fe5936_icgraph.png b/classElf_a23bfd5acab462921c7e0f8b958fe5936_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..2d5cc9edd1f38be05116aebfebdda497191bf7f0 GIT binary patch literal 2032 zcmVikiTiIqEvtchtk!O);Klg8eb8*Yg(f8;xAHgnpr(ld5+E{bVeFl}(=IOXWb z56>UZ8AC)8df>shKY!iNz3aKI>wzyf*ZpG;W@Tjs0sy{rLeNeC0PqJu=zyRA2ptd< z0HFhd0-WQ8QmJffYeOrQ&nG)OySlm>?JWMGt*uR|RHB_l@KRk}ot>R+zg#8sw{PF} z^z;-L7yCUc1Q;J5M>~a8D3!{Qkr67DigqHw$jHbDolaj@=rB^L)Q>442AxhvI|XN` zRO*#0SJ2KP7|F@Waq0mzIv^+jLI(r|K>Cd?1$k&%&VwVKIfK6>;B@hA)iqoAOm zpr8P8&yILAqUYx3VpcOWG~{HXQmOXt-RoYRNcr(6zyJRBmtX!jFrfPQ(Ts@0nwpxN z)l5!KI@xG6n$*-(WL19d+&P6p;oe5AR@>vIq@?&l|r{d-j6`U0PnE{6{vhHE&HNObw~<*2AAu~@9pXdnpUa=G@lr+%(oyXK2*y<+9# zM{|F_N-qB`Dk?NLH;qo;^Zob97z_sSNNhG6-U}NT7&v+IB!NH}92}HLBoG93b#>X> z27`gm=TA*d#mC1VIdbIIty{gly+k6>WHO1x;<2%@rKP2`w6qHsE^OVpwXw1B)vH%L z9*@W4rKYB~x3{~G3-{ph__c$&OaJRVi(D?3N~Md7ixdil$z&!cCqoXU%k$^YSuB>L zJ)h6d$jI<0#CrHd=noz|sI08CSS%eK9S{U@xm-m21R55L6@s7-AO7m=Q}y&reDzh- z(WCz@Ec`AjYbSzHnwy)2LZQ`ag-gwu5A`yqf(dl%@jvdR*&D~&JxJGwrw${JPAG}tpy?y)kjT<*86pBWpdHnb> zEOa|rSy{uw!*IK^vvX{04Bl7XcnCLm`JXEk3LR@}gTdg&xVE;|K7>2AJ@pf?n9UXl zg8um9LucpHqepMiXicrH3X^H0gNRHfbF9&gMxz_!6DLl-D3fqn9pSB9qAx5fK#?6*`@6Zf?%|M_r9a{;^mr4u^|~hzJc0rBbOC z6&35befaR9LZRStxdZ|MsYmctjqYbZFw@iVUw?fODQ{k2Hd`SGdh^E6+WHWJ5(tFo z*RL0olmF%Zu20tJpTuA=5C{bOl$}f_!;Sg*c?g1>4lgY%EbQEg%zutY{>fx=U0q#A zM~Bg9OiD^BDk@4!N?L0+F)<+$i39>cY-}uokKn82MO66an?GAxe)VaH*;zf0_kTAA zI9!OuVoORQSuC$ZLbRV$IU>Zx#hFYdqtOU!9To=!K?w;77!0Pjw>Ksx#_5)j5CpbR z-1v71jYgx8+-nMPqu3fus z-n_|VGEFAaojZ46V-kt9fB$|im&;%<;^X7z=H?_435UbMC-On}Z&OaD$gZ7YclpZadG+i`7d9-gr&e{vpYLGYiep17Z-Qz*il|y4)>Rpm0iDnT`reXC={2gE*oS$ z|7%H4PuFNPEEdaPFeD}>*4Nh)2n0ui(a}+Z!BAgcZ|{LuT{a%V4H(C_0CabEmzI`p z()R+u$8>#t#&~k_O<|!Biw&{aYy?7RLBV&$#hEnPzp+^7N`OwM>-Bn6j_E#o_N=L? zslUJ9|DgkfoSdBd_wSdKl-PT|s2bfrgoWXL`f1nk;~78xm>L=yC?DYP@GusO&CJZ4 zpPv_rLO6GlP;G6kcbOpW5D|dTJtF`m4igg-!{KnexG^Ci!M;s{2#7mG1aKZ55EKBR z1A+n|bU;u5gboM_Tues0ySx3L$LFKfY7-L^(avHOdcFS1lP73r0e~QvLN6^X^?x3S z5NNMnnwgntXlOt?3jhQ;?Ti8dUn-zR2LuH`=zyRA2ptd<0HFhdg1-SwV4tYoLW*Pn O0000 + + + + + diff --git a/classElf_a25345e29535844c992d1a45bf12e2e57_cgraph.md5 b/classElf_a25345e29535844c992d1a45bf12e2e57_cgraph.md5 new file mode 100644 index 000000000..86050b489 --- /dev/null +++ b/classElf_a25345e29535844c992d1a45bf12e2e57_cgraph.md5 @@ -0,0 +1 @@ +a0489df2b2d5a0f4657acdbac380e261 \ No newline at end of file diff --git a/classElf_a25345e29535844c992d1a45bf12e2e57_cgraph.png b/classElf_a25345e29535844c992d1a45bf12e2e57_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..aa7e542505b3ca9de39566e7a27cc92b0db6a7d7 GIT binary patch literal 8343 zcmcJV1yEJ*yYDxsfFdDCmr6@_hlEIXw{&-xN=Yjr8xfEOH{IQAq@_DI-7U?1`Jekc zbN=_v+&gn-4h-xy!`f@D{k~6pKi`KiB?T#rC&W)65D13!I|&sC1c@3PN1&mA-?S(( z`rrlSy{wc3-s}dbMgN;F>z-Xb#uTVdv29@${WXMK6@${sEo?o=f&C^x# zBYA8uFE7h1hhBa9^l4+VlroveA*Z3?hu87i(%xQlTpaGRXU~4{yYeEy84_8Jc# zAK%m4yUes3$DW-2_ryeEO${$HGV&iwPEQ{nm&F#OZ!Ct<$;l+q(b0V=0tA7rMz-a) zQ|y;#ySn?XCR`Vnmq+8e4$p9KJ_QCoz!Eya?(Xh}uS!ZvN=Qg7E-rqkuI4fHJ5^V0 zAoY+Cldh1Bqmj=jD2Qwi#fnQ!jaJAtxjfl~m|9pIZ^4So{BOKvWMs}41Fc%A>2xxM^OtQ=v8y%jNy?)KX{!!3Hh8kUY=MrG&FpUjN}aY z9Ze>n^gQ_2uh&&}GjIY!U*p+946uV1t33(N2?!AT`-+y9blTe5rlzJ}Qd1RFREEhO ziJNdCQBhHqfKL`45s}1Zf-;h;$P==<(j8Y?SxHSx8=94sHC`L39>nURtgI}frWW75 zohIm|f)wA-Ac$zll!|%%!FjEZh?<8-QyDfU^Y-oAl---_>v-_+W8Zl^4~)#ZW2xa* zDGIp|8DrygCj&RP%H_pHrG0nJLY-{6RKePDZp{KM;~xsLvZ`vY6I2Wg?0@jsO>?fE zP8jlR*2w2u9W1u?9If_7^|BZ=Qz-$#S`TVxNXRw3qQ&g zxskp&8Bvt~wH_kice5fVT_M1qg2}+ZASfspd2Fw@yy40(C?qrmR=K$GjJQ1n!{lsd zij>beYiRduYpnO&$H0IbBIJD{nymt&s-&V~WjI@QWqtj@7bx`ipLFpdOU^vC*K7UB zQg7b8DYSFnogO={FDzs_J3Gr8+tN9H&A=efZ?9^N>lFGfbj8pkE%@Ql&RA?wN?LO$O%HZ1X34CIuRpP>YPJU{n5@%D2ebI;`B zg7^1FF=!S!?#=Qc8fIr_&0*ETI5HV?n{)L%nQx<(g9!|N=H;QKC`j4bGA=DGx$e)W z#K%9!XV!bCpn$2auCAu3sj97Qwd1il-zY#tM1+CzuGpXv%4&?v#>NIBS5;ZLwYd3K z#?+Jw1Sp67;Ly-B5)zWL{RKr|-)kWXU2(FxsIgI~u;1muZ_1d1

t%+iNdp7Z)!? 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 MQbD3f%;?kq0whwB8UO$Q literal 0 HcmV?d00001 diff --git a/classElf_a25345e29535844c992d1a45bf12e2e57_icgraph.map b/classElf_a25345e29535844c992d1a45bf12e2e57_icgraph.map new file mode 100644 index 000000000..e37e2f428 --- /dev/null +++ b/classElf_a25345e29535844c992d1a45bf12e2e57_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classElf_a25345e29535844c992d1a45bf12e2e57_icgraph.md5 b/classElf_a25345e29535844c992d1a45bf12e2e57_icgraph.md5 new file mode 100644 index 000000000..ab066d5ee --- /dev/null +++ b/classElf_a25345e29535844c992d1a45bf12e2e57_icgraph.md5 @@ -0,0 +1 @@ +8bf1e136185402fdc4dd59e2712c2427 \ No newline at end of file diff --git a/classElf_a25345e29535844c992d1a45bf12e2e57_icgraph.png b/classElf_a25345e29535844c992d1a45bf12e2e57_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..50ba1cbcb3209e8e8591f6a3bbd42e3aa3ebad76 GIT binary patch literal 1892 zcmV-q2b=hbP)&ViLHhz|y2L${OI?NxQqa~75Nzol z?$TU3=xDj^<+Ag6`t{`8@A;M1BF&}y|ryZDFJ)>gaSPPB{lgI238C@2WNTol}ii3y9vB9%(x z?g|GUK72^Dg+~SHa1O^vEN?>pyqy*34=I7@djYhQo^y$;#!-rE-Q*&~1h|(c7YPGtr zuMe$#KA&E%-@AA3kt0Wlbrl|!N_FSXo$zzsy?ZATiM(F#D%V=#aE1%r-QABLKX$oX z8#ZiM3p%9c!Gi~5V`FBsIVB}!l~QW8y0o;kw6qi#V+0b-j$2$@j4Z}xvxUqV85!BJ zV@LS3;iVH#yxtkPy#1%29)9>Ri;Ljt)2Bs?dGh2*$Q-BB$>Z@>pIQJwTU*rcKq=)##}J9UmPX9UmV*b?TJGVhOeiDwRqo z6poILj*X3_rKM>!8i7Ed)9J>?$6H!jT3T9oJYHK{+mf!VR;$@;e*gYGm&-kI;zU+f z7CJsLF`?CJv4Q}Asi~=p7cV*-4mO)zQBe^T3Gudj_wJRyEino1&6_u?s;YcGUq?p= z0HC?K85fmMvzp zxv8niYPFs{d-m0#!Tq-&f*?Abj>Te` zOs1Kc8J$jtmBM<9=xvGeTLpu`fbC5uCnv*9uC1*NZn4-pQk^x6&*ujqFg-oj(=(z_ zv~SyXw!Z$C4<8a%c=?SRH?Tc!_!IYm0|(G8Hlzjs?BBmXH#avqIa#Sxvf1pRp&@j< zva&KeJA27wNTt%PTemV8jPmkwkH<4LHMJ7MR4SE5qa`ONCnO~B`TXO@kB1R_{ra`T z;W&BnB#Xu3a5zVg9>q$9@fMy~^|*1?K^YrM<8V&mr4|MA^F9E;)YP9p{O~IP=?Mv+ z4G+H&2sVbl>OXtj6|!;TMr`eNyU{v5J$<=L&@CANfF2~~=H^zoP&?u} zlt?6*nVHK8PEJlHCME{QIUEjFDvY=A#OmuXLf~-zYHIpErb|pu&uO(khnYa5QGGst zM#csjZGuXDB@ifL>Ici4H*c_YVPPR!BS>U@%S!e?p-?Ck3IlD^UsjeI3*{gl&&-m+rO_xpUx3MER8(x2 zN(Fg&TjX-N+x-!D1K0x@wgv$7^z`KA6Q6#_mz?zL;z zh}9tqI-N?PAj!$}^78FJ{`lRqXXh_mkbm>d7ZGhFAw6!?-=UV3l^KmjsZ?sS+4OpS z@Y6X`luG5JM~}o}v0ANOazbuyE|bZusi`R|D>IwT4Gj%RNl9S@8yXsBXJ-!{JXlv( zCl-sNa}@%D{grQ5SC>MeAnEUZ(Z?EN{Y<9EGsEYfK@bE%0EL1S6=h2#f<1fq3`Xc@ zmrN#eyWMentWl*>DHMvLqN4aL7iUBw(e>-s<#Ks&WL@>R@qtF82!&rtB!c4NuTxVK ziMI1U1qL@VQc@UCpEiE}Ig@B3@!;*-w@RflWKb*?*Vfh&;s*;1Ze-Bu)U}z~;PZ4i zl97=yFff3-EH1$3aUrAx1{Xp~U~nO%1O^vEN|rdBb#-;c-^c24xm=q!ZzkHsBHV8G z{rmTccCkKLBDe}g{BEz~%Ub&@ljqN$H#RmB?P7g`kn}zo + + + diff --git a/classElf_a3074fcc38da6769775c9f685b02ab47c_icgraph.md5 b/classElf_a3074fcc38da6769775c9f685b02ab47c_icgraph.md5 new file mode 100644 index 000000000..f2f999c3b --- /dev/null +++ b/classElf_a3074fcc38da6769775c9f685b02ab47c_icgraph.md5 @@ -0,0 +1 @@ +11fd04d18da020ac41260fe5c5fc8e62 \ No newline at end of file diff --git a/classElf_a3074fcc38da6769775c9f685b02ab47c_icgraph.png b/classElf_a3074fcc38da6769775c9f685b02ab47c_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..635e39365c1fa1d5f8ee4c821e9c4eb2bb393ac0 GIT binary patch literal 2000 zcmV;>2QT=EP)aQ9ARq(-F(?A8K@5rj zYY>AXz#5GI3$xkW+}s>5DQl;^yj&y_#aqR{X>M*do6Yf7k$8wiqVn=`-^AXz?w)Jw5+U5uh&Cux7&T}*s=8V^n!wd zc;!iG1Oh=%PY=}gcsvS)qN=Lu`0?ZMRRzK4^B+BW6g=kb+qX0t&FOTmajX>+1`M86FDnYFaQ8rTU&i? zhr^*(t4Bsgh(uy_b@lb@*E>5q@p!z;<#rQW!4W5uEQe12J3nbm52_3Bl2c6LKUgKs4;Jv}WFiN?mpGBY!ULSacs2>@Vz zeqOCsTdh_ik;r1P0`iQGj*gFypF4MM-@bjTKmDi}^#1+(_4V~0kLTvin*ac%QW=pv zaKq#A0ss~l-*xyAAnT$jt z84L!O%O#h~{SW`};e$q_!Q=6F?%cU_>5@*TlS-vFo2{m%hQVM2AKhd!$>s8G+qQLe zbzQh{!C){D2m}DY!-o%LGTGLxTa89zQ&Uq%M+XXplFQ`;0>NM~ynFY~UjqQ(!Gi~K zxtvO+CMAV-wF&duq}6KuYe$E}5hPeF7W<}5|8}T(V2j)B0RYU;FaGx1Qx@y`?%hq- zuJyWHtNrrdyLZpO1`WRQJ#yp-G-dj?Z8qEJ=x9Sj1A#ywlgTGeoPYxCcKeejPtKn| zPbQO7Q&Uf!I%TujrlzJ=e`?j$)kQ@`si~MbdjSBi zUpuZ{dk8=l4wwG&c21wX^|8v8#XL6nMKja z?89Pttx~PfpPY<#yS*e*29sG-TU%OKxS7M@*zF%8F2H|b z&F${)w%hHMm6czLq);dY1qE8IRwxwuYgi+ZsX=ewz8&8@@dATM0sxhsj^%Q9c6Ofr z^Uo{4{8Cd`xH+UG0X1lN+mlkMba8R9uC7ij7Vq7=7XSe5Oi3h?EnBuUHa4|h^LV_Wp&>e*E)WQUq-8RhdcB^_X7}~=DHICd6?{c5U%u>ex$5fbBoYaoP7mWO z{u`A4uR7b>+PGY9g8t4EdfYDB&k9;BubE6O8lCj<<3}8B-A_M#$7Yx8-u)LeI`FH` z;c)DBdt4s38yXsFYHBi>Ol!=;=kvK-?*9GzBcf_G&}g)~ckkBL*7|z>r)tpHkdlJ= z@yGl_hl+prfx2!TTt2}5{(dwXT~bmqJ3Fh>=|b9TgfnpYd=rK3+sPv%SJTp9baM-$ zxVTuO(WupGEEcN4&GC4=fKED{E*6U;tuY)BgN6nStqGBlks*~z!#FT2 zE33c1f5o?a&y>Xx~{O($B*N!BC%P)pj<9D_BtX0-2QUn#fuj*nJnHa5*t*4-Zw({KLM#h5nv5sPy|?m i7!(24AO=N%HU9!TnFCtZbC9+G0000A#u) literal 0 HcmV?d00001 diff --git a/classElf_a34d57d143f7782f3c630f6ddb1f16948_cgraph.map b/classElf_a34d57d143f7782f3c630f6ddb1f16948_cgraph.map new file mode 100644 index 000000000..2a8f215a2 --- /dev/null +++ b/classElf_a34d57d143f7782f3c630f6ddb1f16948_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/classElf_a34d57d143f7782f3c630f6ddb1f16948_cgraph.md5 b/classElf_a34d57d143f7782f3c630f6ddb1f16948_cgraph.md5 new file mode 100644 index 000000000..27c11a53a --- /dev/null +++ b/classElf_a34d57d143f7782f3c630f6ddb1f16948_cgraph.md5 @@ -0,0 +1 @@ +8925a9be132bb1ffdc1bb35447b8cb7a \ No newline at end of file diff --git a/classElf_a34d57d143f7782f3c630f6ddb1f16948_cgraph.png b/classElf_a34d57d143f7782f3c630f6ddb1f16948_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..9b897d4e946ce506f3e5a5b26da27f80e2ea8e4f GIT binary patch literal 4892 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 u@|*`GZGe6G2YddR*nl)C_Gm$4L + + + diff --git a/classElf_a34d57d143f7782f3c630f6ddb1f16948_icgraph.md5 b/classElf_a34d57d143f7782f3c630f6ddb1f16948_icgraph.md5 new file mode 100644 index 000000000..fec9eed74 --- /dev/null +++ b/classElf_a34d57d143f7782f3c630f6ddb1f16948_icgraph.md5 @@ -0,0 +1 @@ +561c79faa882b418dce6c60b3ddfa611 \ No newline at end of file diff --git a/classElf_a34d57d143f7782f3c630f6ddb1f16948_icgraph.png b/classElf_a34d57d143f7782f3c630f6ddb1f16948_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..1d51130a88f16e799df81f6d1f155825d33460dd GIT binary patch literal 1893 zcmV-r2b%baP))HK8*QJ`x;Xw;U(5Xu89rklt^F`?BJkSLLet~J#VqiK*87Ucm@k^uwkVzso( zKFp>WYN@nLI}Ce%Plv;q?|hklIrBd=(;^EC3jhM4Aq=VwKp=hsvkRdsFuM@C0<#OD zDHnK(-7#MKt3Hf@E(P#{c8IqAmBve~)CnY7Nrly8!7i)yC z&m^pOA#??17eZHHb|G|y%U2?qM}xV z4y}3m^y%Q>pwVay3kzGJltQ7%%gf8l%Ok}YwfM8{ibNu0F+Dv!Zew1(dbNG~cJF~B zODCAj&VDW~Zn}B%+04u*QUuG(%Xcs4#fukiV}^%^`F#G$g9`v?YHIpsa8I2&b^reT zmCqGu{9JdHN@YVsgO>p_Gc#;9J7_vVWWj9y(`+8Ds4(r?^@CWPk(-+u8oF*JiiZy$ zE-5MTGGK0Qj>TfFWQsLOKx&4A2M^-4T61&rg$ozL!^8D@{qXQG06?qNy4t?#T)K2A z5N`cq!QpWB_P%-e@Q;uXMs99eaj{_6u4ERAN%~AGl?s3C(%IR0?AWo;(9o`~E`z}U z0BCJ(b+zSkd1hv&)oOkF_H9B!!kIH?@Ero)-{0RqG&FSX+&PoU z)X0vG4z*gHl$6xo-d<5rVK5lDTrL3M-o1NjwVKc8GZ+k$$wWM)ySux#ws!O8%|@f~ z^5x67Z{M!2t{xvBFDfb$iA3IA+3og*hK8u9sFs$Ns;a8y=4J#zJZd5cqE@T9T&}@j z`1I+MTCFBZ5$*YOX8gR*pwsDyb?W5gq?f^!m6fiAme}@HXVv0xI00CgoBPty@k%QF zW$V`Js;b{+XO~+@+`4s(Snqn@fFC(>1Yc;~+5mupf`V<^wsANdnM{VFsM&1B`-_T- zQd3hsCPOS1CnqPf+3Z7y4oy!_PfblN$1sLrPo6wEfBt-Yd_0H4Ieq%{`1tt9$jDNf z@87?-TCHc#p5=16JRa}l$&*AiFZR3>sCqZZIyi6Me8=ORB}>f@>~;qLU~1~`Uw{1_ zfS7gbBK!J22n6xokNRf4yG-Ka2}XEMhH0%<_~5WyqmYG-F><8Ay>zI?v91jfb1AqaBk&Yj4}$mIy4DEj&H z=jrKbJibJqe%NynjO-HkXFl!Kd?g~no}a%h5XvrQXKes@$Zkjo!{Jy64`+)+X%dMb zCnvGExERB1q#Gda&xmaRKu1T1Kp;p=OziCJ#4s!;C&#}jqNAhVy?f_$I+;w*ThEx7 znC$FqtyZg0C{Pp~85uDc4As@uOWh3N@px%zX*!)wsZ`o*w(Hlg`)AAza_Ze1H*Qd? zLlrC*lfghZ99BWWk1Z`fy?%YEvGM56ok>2eC2sYu-}hGY^Yit3y;v;n>FLpEG_Gs3 zugGMw=g*%Dg+hfwvD6rqO0{XzrtUT3d%|sPZBnU}rr#XK-+>JD3!JmFw&diW5db5%&u>QgfLcTa9wZSkw{!zTyJkL z>9S-2-`|DM6_{NJU4hw!&=r_n2wm~8S8Ho)3%-w)Gd4E1apOj+T`U5_ut$#`QSD-l zfMFPlqQo8#*_BFz_XwU`R@<+l3=9m^*49$(V(sAeLoEnRpQ1q^u-=8x6_{NJU4hw! f&=r_n2wnLXJ#y@T!4ZYj00000NkvXXu0mjftA@JI literal 0 HcmV?d00001 diff --git a/classElf_a3502161430e3a3c1896c2d92df03c71e_cgraph.map b/classElf_a3502161430e3a3c1896c2d92df03c71e_cgraph.map new file mode 100644 index 000000000..887f52289 --- /dev/null +++ b/classElf_a3502161430e3a3c1896c2d92df03c71e_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/classElf_a3502161430e3a3c1896c2d92df03c71e_cgraph.md5 b/classElf_a3502161430e3a3c1896c2d92df03c71e_cgraph.md5 new file mode 100644 index 000000000..3a85fddfd --- /dev/null +++ b/classElf_a3502161430e3a3c1896c2d92df03c71e_cgraph.md5 @@ -0,0 +1 @@ +70c435d575ff106b6ac871c52cf85a27 \ No newline at end of file diff --git a/classElf_a3502161430e3a3c1896c2d92df03c71e_cgraph.png b/classElf_a3502161430e3a3c1896c2d92df03c71e_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..78fa0f57169b6ab7ed4c9efedfe1725de6238a45 GIT binary patch literal 11911 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 QljUeqVsfHI!mqvm5190q#{d8T literal 0 HcmV?d00001 diff --git a/classElf_a75355dba9bf23ee591ef52c04b688cea_cgraph.map b/classElf_a75355dba9bf23ee591ef52c04b688cea_cgraph.map new file mode 100644 index 000000000..89ca591bf --- /dev/null +++ b/classElf_a75355dba9bf23ee591ef52c04b688cea_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/classElf_a75355dba9bf23ee591ef52c04b688cea_cgraph.md5 b/classElf_a75355dba9bf23ee591ef52c04b688cea_cgraph.md5 new file mode 100644 index 000000000..e1241c974 --- /dev/null +++ b/classElf_a75355dba9bf23ee591ef52c04b688cea_cgraph.md5 @@ -0,0 +1 @@ +3699befc1fbb680fd0e085aff3caf270 \ No newline at end of file diff --git a/classElf_a75355dba9bf23ee591ef52c04b688cea_cgraph.png b/classElf_a75355dba9bf23ee591ef52c04b688cea_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..4d140125d3dd8a0352aa3ab50bd6238d43f1a0c9 GIT binary patch literal 5511 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 + + + + diff --git a/classElf_abec14f617596cbe75854cdff875a4db2_cgraph.md5 b/classElf_abec14f617596cbe75854cdff875a4db2_cgraph.md5 new file mode 100644 index 000000000..11e0c4fa7 --- /dev/null +++ b/classElf_abec14f617596cbe75854cdff875a4db2_cgraph.md5 @@ -0,0 +1 @@ +be04b8bd44972b629abb43a70b05b665 \ No newline at end of file diff --git a/classElf_abec14f617596cbe75854cdff875a4db2_cgraph.png b/classElf_abec14f617596cbe75854cdff875a4db2_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..f9e3c421f8fdfcf8449155463c2cbb0a4bb5dbc5 GIT binary patch literal 4805 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 MCmIT6au)ym3p_wJ3IG5A literal 0 HcmV?d00001 diff --git a/classElf_aea825c7f4d213298f8a60b961c27cd6e_icgraph.map b/classElf_aea825c7f4d213298f8a60b961c27cd6e_icgraph.map new file mode 100644 index 000000000..30acaceb6 --- /dev/null +++ b/classElf_aea825c7f4d213298f8a60b961c27cd6e_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classElf_aea825c7f4d213298f8a60b961c27cd6e_icgraph.md5 b/classElf_aea825c7f4d213298f8a60b961c27cd6e_icgraph.md5 new file mode 100644 index 000000000..77fa53f05 --- /dev/null +++ b/classElf_aea825c7f4d213298f8a60b961c27cd6e_icgraph.md5 @@ -0,0 +1 @@ +edcdcf7ea4371206abb84a6c0754116f \ No newline at end of file diff --git a/classElf_aea825c7f4d213298f8a60b961c27cd6e_icgraph.png b/classElf_aea825c7f4d213298f8a60b961c27cd6e_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..fe18d9a3ae2bee3a3b669e80011d522556a27747 GIT binary patch literal 1889 zcmV-n2cGzeP)=QmHgAFVFk&D}#=Xjy5(n78e&s zT@?nrc<};n314BcSh~8p($mxN77|Nzb#;kEqVF0M#cVc5Q4(f|L?XN;_>-QVe(BOB zyj8>!JRZ-l2iBkvLIVv7AvDmS5JH2cL349+jYcEdcDY=K4 z+uPB$+wHEYsmagJKXT*g5dK7%j`}gm8Jf73(oabBtHc6P!($ezs<;$_L zF*==2ggi0L^XJb81_sP#^P)wI@YWJ-!dXED0s-l39zTBUH>RhjXY=OG!Ci$_o@mnB zJ9_l!?`>^8v$HNt5>{1J@xI1twfc=28XDqqx!Ah%`0?W%9UT}Zj1Xb2pc08hr_%)) z;B-0@5)z`8Cu+D{o{o;bj*fmRm6D(Tb5T+DjvZ?$lzCN32M!#ltgH+&U}k0}K0bav zQ^YP2xy0|?yBDpW3Yfn?t zUx|qe1cEG)XydkRYe*y#<}=CVa`YKQTU*uef#!ZyLPR)xtUI(>KL9WWOC)9C1^R4N@97)VJ;kw_#tIXM7;$;nBrR@>X#%VaWzLZLTLMMXt!Zf<{n z|KQ-@*|TSN?b`L@haVAx-oJmpva-_ccHg*h0|1~_t1-z#G~8|v0APChV@pd-&$Kyet;?~#K2OOqUDp@R+$z(zhM5R*shJX6>NvG4% z>Ga#TZ(q1@!C){b6bhToR#;dl5D0=#{cS9I5zrL3GLVZQE?N{{H?`r%o{# z3^tp6?AS4MfZc9?`t<3!bLZG>_QHh=Pn&YWQ|7#t4As{y63urMPdBUE>S$km`x&VypLrgAuEu*wz&E|&)Y z@b<0a>eYt;q|#_fZ{Ga9X3gT@QFGRybK-C~Xf&F4E6HZF(Z=}rH~_%!<%)@kiL|u2 z*ZAPE3(&M0EpaeCR|8Mo03R=i|7=?!*-44 zk01jmlsLEh^Xk zvmmhnVKSMsv$IoEQ>aJ18c@Qn&ZA*a-;Gg7o1{=#ym+>tU_&G_d$C&IYBT}*a z$z(fs?gRj!PLj*zD_5?ps;UwSg>`jx0)YVSFDonS?(XLE`C_s7dpW-s`#mmRyoex3 zd3m{9F6Z<4VI0M`kbHmD+0f8XT3Q;Tzw<<2w~O?!I>f&x969QXP2XBut6o;~Y} zi*vSY`H4*SKh;Gdk=<^`<#oI6?(XX9>eklQ=ubUQcs$m&s&UYYYcy(9j^DHBpk2lNAa@7=fv& zshypjnCrm`_&z9v&_IJi2n{qSgwQ~PLI_QOO;STcL-cjbpRuvA6)Qr!Lmp}DcKeej zPw-X|+XOIZX=!QnbzlO~{^i8$*RPdICEhAx8&ZruH-h|6fHf$D&_IJi2n{qSgwQ~P bLI}-2ju;E#;TSmk00000NkvXXu0mjf{U(@h literal 0 HcmV?d00001 diff --git a/classElf_aff0728535c76009acc8d78cbece772fe_cgraph.map b/classElf_aff0728535c76009acc8d78cbece772fe_cgraph.map new file mode 100644 index 000000000..c4f390a1f --- /dev/null +++ b/classElf_aff0728535c76009acc8d78cbece772fe_cgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/classElf_aff0728535c76009acc8d78cbece772fe_cgraph.md5 b/classElf_aff0728535c76009acc8d78cbece772fe_cgraph.md5 new file mode 100644 index 000000000..6027a563f --- /dev/null +++ b/classElf_aff0728535c76009acc8d78cbece772fe_cgraph.md5 @@ -0,0 +1 @@ +53dbd26df35cfff39d273ccbd637906b \ No newline at end of file diff --git a/classElf_aff0728535c76009acc8d78cbece772fe_cgraph.png b/classElf_aff0728535c76009acc8d78cbece772fe_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..31a47137bf39674dcec99b61366277e1a69faaef GIT binary patch literal 8036 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 literal 0 HcmV?d00001 diff --git a/classElf_aff0728535c76009acc8d78cbece772fe_icgraph.map b/classElf_aff0728535c76009acc8d78cbece772fe_icgraph.map new file mode 100644 index 000000000..34d8819a0 --- /dev/null +++ b/classElf_aff0728535c76009acc8d78cbece772fe_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classElf_aff0728535c76009acc8d78cbece772fe_icgraph.md5 b/classElf_aff0728535c76009acc8d78cbece772fe_icgraph.md5 new file mode 100644 index 000000000..e6d097de0 --- /dev/null +++ b/classElf_aff0728535c76009acc8d78cbece772fe_icgraph.md5 @@ -0,0 +1 @@ +782438824eef443024276314aa5afb10 \ No newline at end of file diff --git a/classElf_aff0728535c76009acc8d78cbece772fe_icgraph.png b/classElf_aff0728535c76009acc8d78cbece772fe_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..ecaea93506b3f37d474030b148313b76cd63b0ac GIT binary patch literal 1762 zcmV<81|9i{P)W3RK!oJ52Zfo=$J>ob%80pWAciqsa2|GJrs62!mFHDpi4cZ|hrLEvt0x%@hOmes8JSE*wFGa{)6*Lo8mLwgA*?== zu-}Ey73f_EU4h<(&=oSho1LAl)9LVdX=&;7>C^G?@j{`HsywttrBa#AW;}MeTpEq$ z$dMyw&YYoE)i+TpmCv6)_dVz9*RKTy1$MhV$XaXc)kvYUvvXizU}9oo+qP|+ArGy2 z{rdID$cVvUh>eX6GL=fDDlRTAE-ofT7_|hl?n)#QWF{dW5tDG4uKx>T@|w{PEi%^4dT69@#s8y5i3*4Fk-BGM+ebqO!8m z$AsD0SvH#;Oo@mjBt65?qet;x?arM$moHzAi;L6gbYo*<0D$J^W>4&Io~EXzP^b-v zWtYp{+xy|gi$7Q_Mq#0_yj+x@pT=f0Nv~8_SBKwr>FVk_b?Q`fbhO!Q*6Z~EfcExw zPpnibv$M0UR_n))ACr@l&!0b!?-20up`oGC(b0<+FB*+TPtTxKD);Z-KQuHnGBT2o zkf2tpv$C>K6dfHMZE0y~X=xD%1Z{0?YpPnW8~|W^e7w54nwS#+V6)k7+_+)2T6sL) z@#Dw6@_6JOJa};9XC@@xee&c=79{|AOqPx3$$ZWR8 z#%?Jp+9Q*Ra&uD{41}yI8jVJ))wREH8py@p3CI| z0G>X5ilV4MAYd>UMx&8YNCIpeV}aa`k%s+}s?BqQpEzd48Rl0IxG>wOV4IIz2t@V{&b6t!JSn#{TBnw76Vu z0G4NG7fhx>x%}6?d+V=U`OV?jXe06H(IaBN>w5!!^5jW;q4kOZ0Hvj+nVFd}F)<2- zg2&_a_4VQ7Wo2a<85wIjLn@V~rKNE=oMXq1&CJZ$Y_<(*_EBzi&d;AeTdmfrswys* z%jfgYo;^#<<3pZrLe=kvIS1dByBj1aDTx?k7>37*iHYkSg0GYS0DM!iu&@w(xz#zRr>CQ$qCDe#KA)J!hdkee z>KYj(Bq#rM{rb-#E#Y)7Ubyhk#{@Q;xwPcov12QnJ;`KFibV2|>LD^UHARebb93<+ zLHuiAHn;??S8g>t9&dhrer9F{w=eO)0OWZHhj)qlGr#s~{t_R*SW=Q1ip(Ay4krL> zc$dXuxLnI|aU6+6D3giu@>0sn%Q4JJx&Y$-j2Hs|OeT{^BuYt1>FVmjFf1=GFR&5` z2??J*eR8|qOs21`=f=zN`Fx>JsMTuKYPHkpynFXFX6gwvmVsT)?yg-QW33qgK$mMdHzB!CP0~zWEI2{gWTG}rN z0uTgYFp$HCGo;e2Lx<8i9PeK+nM{UZSlFI{R4SEnxxBEjFe1wV02&$^csw5Q`;Dl6 zH#{(zjGUbBrP8dTqCN5PQB=$M{{p@1A2BhUckddvZ;zu|NI3ZN<%>e0@ER10#kIAy zl<4sSde=W#EXL+EuII@+64|+PXK!zB*vk0}e0~=~SD<$xbOm}BLRX-7A#`Ppy;?^{ zNBDIF&&0&Uu3fvRRPgf zRYVS6f7F7|^e!3%0{dMEU4h<(&=u%i2wj2Rh0v9M0f67*_|v;ToB#j-07*qoM6N<$ Ef;A{)WB>pF literal 0 HcmV?d00001 diff --git a/classGraphics-members.html b/classGraphics-members.html new file mode 100644 index 000000000..325fdae02 --- /dev/null +++ b/classGraphics-members.html @@ -0,0 +1,112 @@ + + + + + + + +SimpleKernel: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Graphics Member List
+
+
+ +

This is the complete list of members for Graphics, including all inherited members.

+ + + + + + + + + + + + +
DEFAULT_HEIGHTGraphicsprivatestatic
DEFAULT_WIDTHGraphicsprivatestatic
gopGraphicsprivate
Graphics()Graphics
Graphics(const Graphics &)=deleteGraphics
Graphics(Graphics &&)=deleteGraphics
operator=(const Graphics &) -> Graphics &=deleteGraphics
operator=(Graphics &&) -> Graphics &=deleteGraphics
print_info() constGraphics
set_mode(EFI_GRAPHICS_PIXEL_FORMAT _format=PixelBlueGreenRedReserved8BitPerColor, uint32_t _width=DEFAULT_WIDTH, uint32_t _height=DEFAULT_HEIGHT) constGraphics
~Graphics()=defaultGraphics
+
+ + + + diff --git a/classGraphics.html b/classGraphics.html new file mode 100644 index 000000000..8bd568a35 --- /dev/null +++ b/classGraphics.html @@ -0,0 +1,569 @@ + + + + + + + +SimpleKernel: Graphics Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
Graphics Class Reference
+
+
+ +

#include <load_elf.h>

+
+Collaboration diagram for Graphics:
+
+
Collaboration graph
+ + + +
+ + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 Graphics ()
 
 ~Graphics ()=default
 
void set_mode (EFI_GRAPHICS_PIXEL_FORMAT _format=PixelBlueGreenRedReserved8BitPerColor, uint32_t _width=DEFAULT_WIDTH, uint32_t _height=DEFAULT_HEIGHT) const
 
void print_info () const
 
不使用的构造函数
 Graphics (const Graphics &)=delete
 
 Graphics (Graphics &&)=delete
 
auto operator= (const Graphics &) -> Graphics &=delete
 
auto operator= (Graphics &&) -> Graphics &=delete
 
+ + + +

+Private Attributes

EFI_GRAPHICS_OUTPUT_PROTOCOL * gop = nullptr
 
+ + + + + + +

+Static Private Attributes

默认分辨率
static constexpr const uint32_t DEFAULT_WIDTH = 1920
 
static constexpr const uint32_t DEFAULT_HEIGHT = 1080
 
+

Detailed Description

+

图形相关

+ +

Definition at line 39 of file load_elf.h.

+

Constructor & Destructor Documentation

+ +

◆ Graphics() [1/3]

+ +
+
+ + + + + + + +
Graphics::Graphics ()
+
+

构造函数

+ +

Definition at line 22 of file graphics.cpp.

+
22  {
+
23  auto status = LibLocateProtocol(&GraphicsOutputProtocol,
+
24  reinterpret_cast<void **>(&gop));
+
25  if (EFI_ERROR(status)) {
+
26  debug << L"Could not locate GOP: " << status << ostream::endl;
+
27  throw std::runtime_error("EFI_ERROR(status)");
+
28  }
+
29  if (gop == nullptr) {
+
30  debug << L"LibLocateProtocol(GraphicsOutputProtocol, &gop) returned "
+
31  << status << " but gop is nullptr" << ostream::endl;
+
32 
+
33  throw std::runtime_error("gop == nullptr");
+
34  }
+
35 }
+
EFI_GRAPHICS_OUTPUT_PROTOCOL * gop
Definition: load_elf.h:81
+
static auto endl(ostream &_ostream) -> ostream &
Definition: ostream.cpp:42
+
static ostream debug
全局输出流
Definition: ostream.hpp:194
+
+Here is the call graph for this function:
+
+
+ + + + +
+ +
+
+ +

◆ ~Graphics()

+ +
+
+ + + + + +
+ + + + + + + +
Graphics::~Graphics ()
+
+default
+
+

析构函数

+ +
+
+ +

◆ Graphics() [2/3]

+ +
+
+ + + + + +
+ + + + + + + + +
Graphics::Graphics (const Graphics)
+
+delete
+
+ +
+
+ +

◆ Graphics() [3/3]

+ +
+
+ + + + + +
+ + + + + + + + +
Graphics::Graphics (Graphics && )
+
+delete
+
+ +
+
+

Member Function Documentation

+ +

◆ operator=() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
auto Graphics::operator= (const Graphics) -> Graphics &=delete
+
+delete
+
+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
auto Graphics::operator= (Graphics && ) -> Graphics &=delete
+
+delete
+
+ +
+
+ +

◆ print_info()

+ +
+
+ + + + + + + +
void Graphics::print_info () const
+
+

输出图形信息

+ +

Definition at line 78 of file graphics.cpp.

+
78  {
+
79  debug << L"Current Mode: " << gop->Mode->Mode << L", Version: "
+
80  << ostream::hex_x << gop->Mode->Info->Version << L", Format: "
+
81  << gop->Mode->Info->PixelFormat << L", Horizontal: "
+
82  << gop->Mode->Info->HorizontalResolution << L", Vertical: "
+
83  << gop->Mode->Info->VerticalResolution << L", ScanLine: "
+
84  << gop->Mode->Info->PixelsPerScanLine << L", FrameBufferBase: "
+
85  << ostream::hex_X << gop->Mode->FrameBufferBase
+
86  << L", FrameBufferSize: " << ostream::hex_X
+
87  << gop->Mode->FrameBufferSize << ostream::endl;
+
88 
+
89  for (uint32_t i = 0; i < gop->Mode->MaxMode; i++) {
+
90  EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *mode_info = nullptr;
+
91  uint64_t mode_info_size = 0;
+
92  auto status = uefi_call_wrapper(gop->QueryMode, 4, gop, i, &mode_info_size,
+
93  &mode_info);
+
94  if (EFI_ERROR(status)) {
+
95  debug << L"QueryMode failed: " << status << ostream::endl;
+
96  throw std::runtime_error("EFI_ERROR(status)");
+
97  }
+
98 
+
99  debug << L"Mode: " << i << L", Version: " << ostream::hex_x
+
100  << gop->Mode->Info->Version << L", Format: "
+
101  << gop->Mode->Info->PixelFormat << L", Horizontal: "
+
102  << gop->Mode->Info->HorizontalResolution << L", Vertical: "
+
103  << gop->Mode->Info->VerticalResolution << L", ScanLine: "
+
104  << gop->Mode->Info->PixelsPerScanLine << ostream::endl;
+
105 
+
106  status = uefi_call_wrapper(gBS->FreePool, 1, mode_info);
+
107  if (EFI_ERROR(status)) {
+
108  debug << L"FreePool failed: " << status << ostream::endl;
+
109  throw std::runtime_error("EFI_ERROR(status)");
+
110  }
+
111  }
+
112 }
+
static auto hex_x(ostream &_ostream) -> ostream &
Definition: ostream.cpp:32
+
static auto hex_X(ostream &_ostream) -> ostream &
Definition: ostream.cpp:37
+
+Here is the call graph for this function:
+
+
+ + + + + + +
+ +
+
+ +

◆ set_mode()

+ +
+
+ + + + + + + + + + + + + + + + + + + + + + + + +
void Graphics::set_mode (EFI_GRAPHICS_PIXEL_FORMAT _format = PixelBlueGreenRedReserved8BitPerColor,
uint32_t _width = DEFAULT_WIDTH,
uint32_t _height = DEFAULT_HEIGHT 
) const
+
+

设置图形模式

Parameters
+ + + + +
_format图形像素格式,默认为 PixelBlueGreenRedReserved8BitPerColor
_width宽度,默认为 1920
_height高度,默认为 1080
+
+
+ +

Definition at line 37 of file graphics.cpp.

+
38  {
+
39  EFI_STATUS status = EFI_SUCCESS;
+
40 
+
41  for (uint32_t i = 0; i < gop->Mode->MaxMode; i++) {
+
42  EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *mode_info = nullptr;
+
43  uint64_t mode_info_size = 0;
+
44  status = uefi_call_wrapper(gop->QueryMode, 4, gop, i, &mode_info_size,
+
45  &mode_info);
+
46  if (EFI_ERROR(status)) {
+
47  debug << L"QueryMode failed: " << status << ostream::endl;
+
48  throw std::runtime_error("EFI_ERROR(status)");
+
49  }
+
50 
+
51  if ((mode_info->PixelFormat == _format) &&
+
52  (mode_info->HorizontalResolution == _width) &&
+
53  (mode_info->VerticalResolution == _height)) {
+
54  status = uefi_call_wrapper(gop->SetMode, 2, gop, i);
+
55  if (EFI_ERROR(status)) {
+
56  debug << L"SetMode failed: " << status << ostream::endl;
+
57  throw std::runtime_error("EFI_ERROR(status)");
+
58  }
+
59  }
+
60  status = uefi_call_wrapper(gBS->FreePool, 1, mode_info);
+
61  if (EFI_ERROR(status)) {
+
62  debug << L"FreePool failed: " << status << ostream::endl;
+
63  throw std::runtime_error("EFI_ERROR(status)");
+
64  }
+
65  }
+
66 
+
67  debug << L"Current Mode: " << gop->Mode->Mode << L", Version: "
+
68  << ostream::hex_x << gop->Mode->Info->Version << L", Format: "
+
69  << gop->Mode->Info->PixelFormat << L", Horizontal: "
+
70  << gop->Mode->Info->HorizontalResolution << L", Vertical: "
+
71  << gop->Mode->Info->VerticalResolution << L", ScanLine: "
+
72  << gop->Mode->Info->PixelsPerScanLine << L", FrameBufferBase: "
+
73  << ostream::hex_X << gop->Mode->FrameBufferBase
+
74  << L", FrameBufferSize: " << ostream::hex_X
+
75  << gop->Mode->FrameBufferSize << ostream::endl;
+
76 }
+
+Here is the call graph for this function:
+
+
+ + + + + + +
+ +
+
+

Member Data Documentation

+ +

◆ DEFAULT_HEIGHT

+ +
+
+ + + + + +
+ + + + +
constexpr const uint32_t Graphics::DEFAULT_HEIGHT = 1080
+
+staticconstexprprivate
+
+ +

Definition at line 78 of file load_elf.h.

+ +
+
+ +

◆ DEFAULT_WIDTH

+ +
+
+ + + + + +
+ + + + +
constexpr const uint32_t Graphics::DEFAULT_WIDTH = 1920
+
+staticconstexprprivate
+
+ +

Definition at line 77 of file load_elf.h.

+ +
+
+ +

◆ gop

+ +
+
+ + + + + +
+ + + + +
EFI_GRAPHICS_OUTPUT_PROTOCOL* Graphics::gop = nullptr
+
+private
+
+

图形输出协议

+ +

Definition at line 81 of file load_elf.h.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /home/runner/work/SimpleKernel/SimpleKernel/src/boot/include/load_elf.h
  • +
  • /home/runner/work/SimpleKernel/SimpleKernel/src/boot/graphics.cpp
  • +
+
+
+ + + + diff --git a/classGraphics.js b/classGraphics.js new file mode 100644 index 000000000..acc53ec89 --- /dev/null +++ b/classGraphics.js @@ -0,0 +1,14 @@ +var classGraphics = +[ + [ "Graphics", "classGraphics.html#af2e8fe67fd31ec263c843a6e28b29d3c", null ], + [ "~Graphics", "classGraphics.html#a6832d01237ef9bff8d34f0882d86970c", null ], + [ "Graphics", "classGraphics.html#abe2f13f24a1d35c55fdac10a282744eb", null ], + [ "Graphics", "classGraphics.html#ac19c4971eef9958a863e425ddd6936b4", null ], + [ "operator=", "classGraphics.html#acd4c5b29614f7f19b47b09e75920abab", null ], + [ "operator=", "classGraphics.html#a8a1573ebe9ac7b724f54f773f66e4290", null ], + [ "print_info", "classGraphics.html#ad860b4ad2f72a6332cb4a850839ff5e5", null ], + [ "set_mode", "classGraphics.html#a04e4caa540b0612a56adc590971715b6", null ], + [ "DEFAULT_HEIGHT", "classGraphics.html#a036aee49398070f73600101bac34a29f", null ], + [ "DEFAULT_WIDTH", "classGraphics.html#ad960ad754a9ee99b9cdae1bcebd6804b", null ], + [ "gop", "classGraphics.html#a0684dbe06b0ddeb8577869b9a5993443", null ] +]; \ No newline at end of file diff --git a/classGraphics__coll__graph.map b/classGraphics__coll__graph.map new file mode 100644 index 000000000..d5236a260 --- /dev/null +++ b/classGraphics__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classGraphics__coll__graph.md5 b/classGraphics__coll__graph.md5 new file mode 100644 index 000000000..4085e81df --- /dev/null +++ b/classGraphics__coll__graph.md5 @@ -0,0 +1 @@ +cc66fa5da10f5811fc82fbc814f5bb09 \ No newline at end of file diff --git a/classGraphics__coll__graph.png b/classGraphics__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..3a94646a70eed9e74f58bcb979cb3688aeabea31 GIT binary patch literal 9083 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 literal 0 HcmV?d00001 diff --git a/classGraphics_a04e4caa540b0612a56adc590971715b6_cgraph.map b/classGraphics_a04e4caa540b0612a56adc590971715b6_cgraph.map new file mode 100644 index 000000000..9277027c1 --- /dev/null +++ b/classGraphics_a04e4caa540b0612a56adc590971715b6_cgraph.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/classGraphics_a04e4caa540b0612a56adc590971715b6_cgraph.md5 b/classGraphics_a04e4caa540b0612a56adc590971715b6_cgraph.md5 new file mode 100644 index 000000000..8538af3c9 --- /dev/null +++ b/classGraphics_a04e4caa540b0612a56adc590971715b6_cgraph.md5 @@ -0,0 +1 @@ +9bc74d711978e23c9482691d3ad9b855 \ No newline at end of file diff --git a/classGraphics_a04e4caa540b0612a56adc590971715b6_cgraph.png b/classGraphics_a04e4caa540b0612a56adc590971715b6_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..6d20546001c85bfeef8d44df243e44a919811354 GIT binary patch literal 9094 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 + + + + + diff --git a/classGraphics_ad860b4ad2f72a6332cb4a850839ff5e5_cgraph.md5 b/classGraphics_ad860b4ad2f72a6332cb4a850839ff5e5_cgraph.md5 new file mode 100644 index 000000000..5c18358f6 --- /dev/null +++ b/classGraphics_ad860b4ad2f72a6332cb4a850839ff5e5_cgraph.md5 @@ -0,0 +1 @@ +20d473051a1f4d57030b1d451d001044 \ No newline at end of file diff --git a/classGraphics_ad860b4ad2f72a6332cb4a850839ff5e5_cgraph.png b/classGraphics_ad860b4ad2f72a6332cb4a850839ff5e5_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..92b8d1722bf3c8f091cc2c52d52bde5a79e540a9 GIT binary patch literal 8906 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 + + + diff --git a/classGraphics_af2e8fe67fd31ec263c843a6e28b29d3c_cgraph.md5 b/classGraphics_af2e8fe67fd31ec263c843a6e28b29d3c_cgraph.md5 new file mode 100644 index 000000000..beb96c26b --- /dev/null +++ b/classGraphics_af2e8fe67fd31ec263c843a6e28b29d3c_cgraph.md5 @@ -0,0 +1 @@ +44fdae7a2e8ca151c2baabdeed7ce8f9 \ No newline at end of file diff --git a/classGraphics_af2e8fe67fd31ec263c843a6e28b29d3c_cgraph.png b/classGraphics_af2e8fe67fd31ec263c843a6e28b29d3c_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..32827ec6c11489246b1f67a24455a27fcabf6150 GIT binary patch literal 3159 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 + + + + + + +SimpleKernel: Member List + + + + + + + + + + + + + +

+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Memory Member List
+
+
+ +

This is the complete list of members for Memory, including all inherited members.

+ + + + + + + + + + + + + + +
desc_countMemoryprivate
desc_sizeMemoryprivate
desc_versionMemoryprivate
flush_desc()Memoryprivate
map_keyMemoryprivate
Memory()Memory
Memory(const Memory &)=deleteMemory
Memory(Memory &&)=deleteMemory
memory_mapMemoryprivate
operator=(const Memory &) -> Memory &=deleteMemory
operator=(Memory &&) -> Memory &=deleteMemory
print_info()Memory
~Memory()=defaultMemory
+
+ + + + diff --git a/classMemory.html b/classMemory.html new file mode 100644 index 000000000..441f901ad --- /dev/null +++ b/classMemory.html @@ -0,0 +1,621 @@ + + + + + + + +SimpleKernel: Memory Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

#include <load_elf.h>

+
+Collaboration diagram for Memory:
+
+
Collaboration graph
+ + + +
+ + + + + + + + + + + + + + + + + +

+Public Member Functions

 Memory ()
 
 ~Memory ()=default
 
void print_info ()
 
不使用的构造函数
 Memory (const Memory &)=delete
 
 Memory (Memory &&)=delete
 
auto operator= (const Memory &) -> Memory &=delete
 
auto operator= (Memory &&) -> Memory &=delete
 
+ + + +

+Private Member Functions

void flush_desc ()
 
+ + + + + + + + + + + + +

+Private Attributes

内存映射信息
uint64_t desc_count = 0
 
EFI_MEMORY_DESCRIPTOR * memory_map = nullptr
 
uint64_t map_key = 0
 
uint64_t desc_size = 0
 
uint32_t desc_version = 0
 
+

Detailed Description

+

内存相关

+ +

Definition at line 87 of file load_elf.h.

+

Constructor & Destructor Documentation

+ +

◆ Memory() [1/3]

+ +
+
+ + + + + + + +
Memory::Memory ()
+
+

构造函数

+ +

Definition at line 30 of file memory.cpp.

+
30 { flush_desc(); }
+
void flush_desc()
Definition: memory.cpp:22
+
+Here is the call graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ ~Memory()

+ +
+
+ + + + + +
+ + + + + + + +
Memory::~Memory ()
+
+default
+
+

析构函数

+ +
+
+ +

◆ Memory() [2/3]

+ +
+
+ + + + + +
+ + + + + + + + +
Memory::Memory (const Memory)
+
+delete
+
+ +
+
+ +

◆ Memory() [3/3]

+ +
+
+ + + + + +
+ + + + + + + + +
Memory::Memory (Memory && )
+
+delete
+
+ +
+
+

Member Function Documentation

+ +

◆ flush_desc()

+ +
+
+ + + + + +
+ + + + + + + +
void Memory::flush_desc ()
+
+private
+
+

更新内存映射信息

+ +

Definition at line 22 of file memory.cpp.

+
22  {
+
23  memory_map = LibMemoryMap(&desc_count, &map_key, &desc_size, &desc_version);
+
24  if (memory_map == nullptr) {
+
25  debug << L"LibMemoryMap failed: memory_map == nullptr" << ostream::endl;
+
26  throw std::runtime_error("memory_map == nullptr");
+
27  }
+
28 }
+
uint64_t desc_count
Definition: load_elf.h:115
+
EFI_MEMORY_DESCRIPTOR * memory_map
Definition: load_elf.h:116
+
uint32_t desc_version
Definition: load_elf.h:119
+
uint64_t desc_size
Definition: load_elf.h:118
+
uint64_t map_key
Definition: load_elf.h:117
+
static auto endl(ostream &_ostream) -> ostream &
Definition: ostream.cpp:42
+
static ostream debug
全局输出流
Definition: ostream.hpp:194
+
+Here is the call graph for this function:
+
+
+ + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + + +
+ +
+
+ +

◆ operator=() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
auto Memory::operator= (const Memory) -> Memory &=delete
+
+delete
+
+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
auto Memory::operator= (Memory && ) -> Memory &=delete
+
+delete
+
+ +
+
+ +

◆ print_info()

+ +
+
+ + + + + + + +
void Memory::print_info ()
+
+

输出内存映射信息

+ +

Definition at line 32 of file memory.cpp.

+
32  {
+
33  flush_desc();
+
34  debug << L"Type\t\t\t\tPages\tPhysicalStart\tVirtualStart\tAttribute"
+
35  << ostream::endl;
+
36  for (uint64_t i = 0; i < desc_count; i++) {
+
37  auto *MMap = reinterpret_cast<EFI_MEMORY_DESCRIPTOR *>(
+
38  (reinterpret_cast<uint8_t *>(memory_map)) + i * desc_size);
+
39 
+
40  switch (MMap->Type) {
+
41  case EfiReservedMemoryType: {
+
42  debug << L"iReservedMemoryType\t\t";
+
43  break;
+
44  }
+
45  case EfiLoaderCode: {
+
46  debug << L"EfiLoaderCode\t\t\t";
+
47  break;
+
48  }
+
49  case EfiLoaderData: {
+
50  debug << L"EfiLoaderData\t\t\t";
+
51  break;
+
52  }
+
53  case EfiBootServicesCode: {
+
54  debug << L"EfiBootServicesCode\t\t";
+
55  break;
+
56  }
+
57  case EfiBootServicesData: {
+
58  debug << L"EfiBootServicesData\t\t";
+
59  break;
+
60  }
+
61  case EfiRuntimeServicesCode: {
+
62  debug << L"EfiRuntimeServicesCode\t\t";
+
63  break;
+
64  }
+
65  case EfiRuntimeServicesData: {
+
66  debug << L"EfiRuntimeServicesData\t\t";
+
67  break;
+
68  }
+
69  case EfiConventionalMemory: {
+
70  debug << L"EfiConventionalMemory\t\t";
+
71  break;
+
72  }
+
73  case EfiUnusableMemory: {
+
74  debug << L"EfiUnusableMemory\t\t";
+
75  break;
+
76  }
+
77  case EfiACPIReclaimMemory: {
+
78  debug << L"EfiACPIReclaimMemory\t\t";
+
79  break;
+
80  }
+
81  case EfiACPIMemoryNVS: {
+
82  debug << L"EfiACPIMemoryNVS\t\t";
+
83  break;
+
84  }
+
85  case EfiMemoryMappedIO: {
+
86  debug << L"EfiMemoryMappedIO\t\t";
+
87  break;
+
88  }
+
89  case EfiMemoryMappedIOPortSpace: {
+
90  debug << L"EfiMemoryMappedIOPortSpace\t\t";
+
91  break;
+
92  }
+
93  case EfiPalCode: {
+
94  debug << L"EfiPalCode\t\t";
+
95  break;
+
96  }
+
97  case EfiMaxMemoryType: {
+
98  debug << L"EfiMaxMemoryType\t\t";
+
99  break;
+
100  }
+
101  default: {
+
102  debug << L"Unknown " << ostream::hex_x << MMap->Type << L"\t\t";
+
103  break;
+
104  }
+
105  }
+
106 
+
107  debug << MMap->NumberOfPages << L"\t" << ostream::hex_X
+
108  << MMap->PhysicalStart << L"\t" << ostream::hex_X
+
109  << MMap->VirtualStart << L"\t" << ostream::hex_X << MMap->Attribute
+
110  << ostream::endl;
+
111  }
+
112  debug << L"map_key: " << ostream::hex_X << map_key << ostream::endl;
+
113 }
+
static auto hex_x(ostream &_ostream) -> ostream &
Definition: ostream.cpp:32
+
static auto hex_X(ostream &_ostream) -> ostream &
Definition: ostream.cpp:37
+
+Here is the call graph for this function:
+
+
+ + + + + + + +
+ +
+
+

Member Data Documentation

+ +

◆ desc_count

+ +
+
+ + + + + +
+ + + + +
uint64_t Memory::desc_count = 0
+
+private
+
+ +

Definition at line 115 of file load_elf.h.

+ +
+
+ +

◆ desc_size

+ +
+
+ + + + + +
+ + + + +
uint64_t Memory::desc_size = 0
+
+private
+
+ +

Definition at line 118 of file load_elf.h.

+ +
+
+ +

◆ desc_version

+ +
+
+ + + + + +
+ + + + +
uint32_t Memory::desc_version = 0
+
+private
+
+ +

Definition at line 119 of file load_elf.h.

+ +
+
+ +

◆ map_key

+ +
+
+ + + + + +
+ + + + +
uint64_t Memory::map_key = 0
+
+private
+
+ +

Definition at line 117 of file load_elf.h.

+ +
+
+ +

◆ memory_map

+ +
+
+ + + + + +
+ + + + +
EFI_MEMORY_DESCRIPTOR* Memory::memory_map = nullptr
+
+private
+
+ +

Definition at line 116 of file load_elf.h.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /home/runner/work/SimpleKernel/SimpleKernel/src/boot/include/load_elf.h
  • +
  • /home/runner/work/SimpleKernel/SimpleKernel/src/boot/memory.cpp
  • +
+
+
+ + + + diff --git a/classMemory.js b/classMemory.js new file mode 100644 index 000000000..f61681dc7 --- /dev/null +++ b/classMemory.js @@ -0,0 +1,16 @@ +var classMemory = +[ + [ "Memory", "classMemory.html#a585d7bb6fc6f2237bcebf94a86b7dd99", null ], + [ "~Memory", "classMemory.html#a2b517b46ae4b070d9f6a7b6d9efeb7a1", null ], + [ "Memory", "classMemory.html#a99380a9fcf78020c641ee9c9274b912c", null ], + [ "Memory", "classMemory.html#ac9ab40541f6c3c44c8614c8ee3babea5", null ], + [ "flush_desc", "classMemory.html#a0d7799e95e8dda035f91d14e2febcfcd", null ], + [ "operator=", "classMemory.html#ad9e7a4cbd22f78011c39393458e5c04e", null ], + [ "operator=", "classMemory.html#a486d18dc915927190cb52471b7308ae6", null ], + [ "print_info", "classMemory.html#a81aabf1a13f96ce935d6157a9520b83a", null ], + [ "desc_count", "classMemory.html#a0a3d91c1e74ac3776a8992e17c73b33c", null ], + [ "desc_size", "classMemory.html#aa9e9794c5b03c7a5c7900c273b17c065", null ], + [ "desc_version", "classMemory.html#a78b8170be31c2b6f3717a4cffb27244e", null ], + [ "map_key", "classMemory.html#ae10ce4cd40c83a10d3b598eee63adefd", null ], + [ "memory_map", "classMemory.html#a49d7d63bc05c1e0ac8d1440b9a4bcfeb", null ] +]; \ No newline at end of file diff --git a/classMemory__coll__graph.map b/classMemory__coll__graph.map new file mode 100644 index 000000000..465cee34d --- /dev/null +++ b/classMemory__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classMemory__coll__graph.md5 b/classMemory__coll__graph.md5 new file mode 100644 index 000000000..80f6beb93 --- /dev/null +++ b/classMemory__coll__graph.md5 @@ -0,0 +1 @@ +5f5b10fd30b6703bd457ce67fd3c04fa \ No newline at end of file diff --git a/classMemory__coll__graph.png b/classMemory__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..52d0abc65e33bef9d8c8ada9dec973d7355f2e9f GIT binary patch literal 10743 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 literal 0 HcmV?d00001 diff --git a/classMemory_a0d7799e95e8dda035f91d14e2febcfcd_cgraph.map b/classMemory_a0d7799e95e8dda035f91d14e2febcfcd_cgraph.map new file mode 100644 index 000000000..94dddbb4d --- /dev/null +++ b/classMemory_a0d7799e95e8dda035f91d14e2febcfcd_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/classMemory_a0d7799e95e8dda035f91d14e2febcfcd_cgraph.md5 b/classMemory_a0d7799e95e8dda035f91d14e2febcfcd_cgraph.md5 new file mode 100644 index 000000000..e46ae6cda --- /dev/null +++ b/classMemory_a0d7799e95e8dda035f91d14e2febcfcd_cgraph.md5 @@ -0,0 +1 @@ +9d5522a693ff874cc7c9088f426706a2 \ No newline at end of file diff --git a/classMemory_a0d7799e95e8dda035f91d14e2febcfcd_cgraph.png b/classMemory_a0d7799e95e8dda035f91d14e2febcfcd_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..89922c8595400a37abaa1424e029ff62a7f9e14f GIT binary patch literal 3402 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 br=7z`Ih$cHIlr*ras-)N#TdRcaJ%~-zI&5h literal 0 HcmV?d00001 diff --git a/classMemory_a0d7799e95e8dda035f91d14e2febcfcd_icgraph.map b/classMemory_a0d7799e95e8dda035f91d14e2febcfcd_icgraph.map new file mode 100644 index 000000000..5cf52d41d --- /dev/null +++ b/classMemory_a0d7799e95e8dda035f91d14e2febcfcd_icgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/classMemory_a0d7799e95e8dda035f91d14e2febcfcd_icgraph.md5 b/classMemory_a0d7799e95e8dda035f91d14e2febcfcd_icgraph.md5 new file mode 100644 index 000000000..43c4d2273 --- /dev/null +++ b/classMemory_a0d7799e95e8dda035f91d14e2febcfcd_icgraph.md5 @@ -0,0 +1 @@ +c3fb7a7d641f01a88f40fe57fef26c2a \ No newline at end of file diff --git a/classMemory_a0d7799e95e8dda035f91d14e2febcfcd_icgraph.png b/classMemory_a0d7799e95e8dda035f91d14e2febcfcd_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..901f1b83ecbb206b130ac4f7a2b855b18e3a2ded GIT binary patch literal 6130 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 + + + + diff --git a/classMemory_a585d7bb6fc6f2237bcebf94a86b7dd99_cgraph.md5 b/classMemory_a585d7bb6fc6f2237bcebf94a86b7dd99_cgraph.md5 new file mode 100644 index 000000000..44d6959cb --- /dev/null +++ b/classMemory_a585d7bb6fc6f2237bcebf94a86b7dd99_cgraph.md5 @@ -0,0 +1 @@ +d51ea435fc669dcf2d8c88ea3b9cb301 \ No newline at end of file diff --git a/classMemory_a585d7bb6fc6f2237bcebf94a86b7dd99_cgraph.png b/classMemory_a585d7bb6fc6f2237bcebf94a86b7dd99_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..d4b7363d8d500028df8686b740e81750a10d7d63 GIT binary patch literal 4349 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 literal 0 HcmV?d00001 diff --git a/classMemory_a81aabf1a13f96ce935d6157a9520b83a_cgraph.map b/classMemory_a81aabf1a13f96ce935d6157a9520b83a_cgraph.map new file mode 100644 index 000000000..9b3087eca --- /dev/null +++ b/classMemory_a81aabf1a13f96ce935d6157a9520b83a_cgraph.map @@ -0,0 +1,7 @@ + + + + + + + diff --git a/classMemory_a81aabf1a13f96ce935d6157a9520b83a_cgraph.md5 b/classMemory_a81aabf1a13f96ce935d6157a9520b83a_cgraph.md5 new file mode 100644 index 000000000..14fdaf64d --- /dev/null +++ b/classMemory_a81aabf1a13f96ce935d6157a9520b83a_cgraph.md5 @@ -0,0 +1 @@ +16f1da94a0429ceb8f613f37aabb1073 \ No newline at end of file diff --git a/classMemory_a81aabf1a13f96ce935d6157a9520b83a_cgraph.png b/classMemory_a81aabf1a13f96ce935d6157a9520b83a_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..ab3f83c6e267b3389f392c636bbdf10952013fab GIT binary patch literal 14878 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 literal 0 HcmV?d00001 diff --git a/classes.html b/classes.html new file mode 100644 index 000000000..1002ab3fa --- /dev/null +++ b/classes.html @@ -0,0 +1,116 @@ + + + + + + + +SimpleKernel: Class Index + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
Class Index
+
+
+
E | G | M | O | S
+
+
+
E
+
Elf
+
+
G
+
Graphics
+
+
M
+
Memory
+
+
O
+
ostream
+
+
S
+
sbiret_t
+
+
+
+ + + + diff --git a/classostream-members.html b/classostream-members.html new file mode 100644 index 000000000..ddbee6ad8 --- /dev/null +++ b/classostream-members.html @@ -0,0 +1,125 @@ + + + + + + + +SimpleKernel: Member List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
ostream Member List
+
+
+ +

This is the complete list of members for ostream, including all inherited members.

+ + + + + + + + + + + + + + + + + + + + + + + + + +
d enum valueostreamprivate
endl(ostream &_ostream) -> ostream &ostreamstatic
hex_x(ostream &_ostream) -> ostream &ostreamstatic
hex_X(ostream &_ostream) -> ostream &ostreamstatic
modeostreamprivate
mode_t enum nameostreamprivate
operator<<(_t _val) -> ostream &ostreaminline
operator<<(ostream &(*_ostream)(ostream &)) -> ostream &ostream
operator<<(int32_t _val) -> ostream &ostreaminline
operator<<(uint32_t _val) -> ostream &ostreaminline
operator<<(int64_t _val) -> ostream &ostreaminline
operator<<(uint64_t _val) -> ostream &ostreaminline
operator<<(wchar_t _val) -> ostream &ostreaminline
operator<<(const wchar_t *_val) -> ostream &ostreaminline
operator<<(void *_val) -> ostream &ostreaminline
operator<<(const void *_val) -> ostream &ostreaminline
operator=(const ostream &) -> ostream &=deleteostream
operator=(ostream &&) -> ostream &=deleteostream
ostream()=defaultostream
ostream(const ostream &)=deleteostream
ostream(ostream &&)=deleteostream
x enum valueostreamprivate
X enum valueostreamprivate
~ostream()=defaultostream
+
+ + + + diff --git a/classostream.html b/classostream.html new file mode 100644 index 000000000..9298cb308 --- /dev/null +++ b/classostream.html @@ -0,0 +1,975 @@ + + + + + + + +SimpleKernel: ostream Class Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ + +
+ +

#include <ostream.hpp>

+
+Collaboration diagram for ostream:
+
+
Collaboration graph
+ + + +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +

+Public Member Functions

 ostream ()=default
 
 ~ostream ()=default
 
auto operator<< (ostream &(*_ostream)(ostream &)) -> ostream &
 
不使用的构造函数
 ostream (const ostream &)=delete
 
 ostream (ostream &&)=delete
 
auto operator= (const ostream &) -> ostream &=delete
 
auto operator= (ostream &&) -> ostream &=delete
 
输出流特化
template<class _t >
auto operator<< (_t _val) -> ostream &
 
template<>
auto operator<< (int32_t _val) -> ostream &
 
template<>
auto operator<< (uint32_t _val) -> ostream &
 
template<>
auto operator<< (int64_t _val) -> ostream &
 
template<>
auto operator<< (uint64_t _val) -> ostream &
 
template<>
auto operator<< (wchar_t _val) -> ostream &
 
template<>
auto operator<< (const wchar_t *_val) -> ostream &
 
template<>
auto operator<< (void *_val) -> ostream &
 
template<>
auto operator<< (const void *_val) -> ostream &
 
+ + + + + + + +

+Static Public Member Functions

static auto hex_x (ostream &_ostream) -> ostream &
 
static auto hex_X (ostream &_ostream) -> ostream &
 
static auto endl (ostream &_ostream) -> ostream &
 
+ + + +

+Private Types

enum  mode_t : uint8_t { x +, X +, d + }
 
+ + + + +

+Private Attributes

mode_t mode
 输出流模式 More...
 
+

Detailed Description

+

输出流

+ +

Definition at line 41 of file ostream.hpp.

+

Member Enumeration Documentation

+ +

◆ mode_t

+ +
+
+ + + + + +
+ + + + +
enum ostream::mode_t : uint8_t
+
+private
+
+

输出流模式枚举

+ + + + +
Enumerator

16 进制 x

+

16 进制 X

+

10 进制 d

+
+ +

Definition at line 101 of file ostream.hpp.

+
101  : uint8_t {
+
103  x,
+
105  X,
+
107  d,
+
108  };
+
@ d
10 进制 d
Definition: ostream.hpp:107
+
@ X
16 进制 X
Definition: ostream.hpp:105
+
@ x
16 进制 x
Definition: ostream.hpp:103
+
+
+
+

Constructor & Destructor Documentation

+ +

◆ ostream() [1/3]

+ +
+
+ + + + + +
+ + + + + + + +
ostream::ostream ()
+
+default
+
+

使用默认构造

+ +
+
+ +

◆ ~ostream()

+ +
+
+ + + + + +
+ + + + + + + +
ostream::~ostream ()
+
+default
+
+

使用默认析构

+ +
+
+ +

◆ ostream() [2/3]

+ +
+
+ + + + + +
+ + + + + + + + +
ostream::ostream (const ostream)
+
+delete
+
+ +
+
+ +

◆ ostream() [3/3]

+ +
+
+ + + + + +
+ + + + + + + + +
ostream::ostream (ostream && )
+
+delete
+
+ +
+
+

Member Function Documentation

+ +

◆ endl()

+ +
+
+ + + + + +
+ + + + + + + + +
auto ostream::endl (ostream_ostream) -> ostream &
+
+static
+
+

输出换行

Parameters
+ + +
_ostream
+
+
+
Returns
输出流
+ +

Definition at line 42 of file ostream.cpp.

+
42 { return _ostream << L'\n'; }
+
+Here is the caller graph for this function:
+
+
+ + + + + + + + + + + + + + + + + + + + +
+ +
+
+ +

◆ hex_x()

+ +
+
+ + + + + +
+ + + + + + + + +
auto ostream::hex_x (ostream_ostream) -> ostream &
+
+static
+
+

输出 16 进制

Parameters
+ + +
_ostream输出流
+
+
+
Returns
输出流
+ +

Definition at line 32 of file ostream.cpp.

+
32  {
+
33  _ostream.mode = ostream::x;
+
34  return _ostream;
+
35 }
+
mode_t mode
输出流模式
Definition: ostream.hpp:110
+
+Here is the caller graph for this function:
+
+
+ + + + + + + + + + + + +
+ +
+
+ +

◆ hex_X()

+ +
+
+ + + + + +
+ + + + + + + + +
auto ostream::hex_X (ostream_ostream) -> ostream &
+
+static
+
+

输出 16 进制

Parameters
+ + +
_ostream输出流
+
+
+
Returns
输出流
+ +

Definition at line 37 of file ostream.cpp.

+
37  {
+
38  _ostream.mode = ostream::X;
+
39  return _ostream;
+
40 }
+
+Here is the caller graph for this function:
+
+
+ + + + + + + + + + + + + + +
+ +
+
+ +

◆ operator<<() [1/10]

+ +
+
+
+template<class _t >
+ + + + + +
+ + + + + + + + +
auto ostream::operator<< (_t _val) -> ostream &
+
+inline
+
+

输出类型

Template Parameters
+ + +
_t模板类型
+
+
+
Parameters
+ + +
_val数据
+
+
+
Returns
输出流
+ +

Definition at line 116 of file ostream.hpp.

+
116  {
+
117  *this << (uint64_t)_val;
+
118  return *this;
+
119 }
+
+
+
+ +

◆ operator<<() [2/10]

+ +
+
+
+template<>
+ + + + + +
+ + + + + + + + +
auto ostream::operator<< (const void * _val) -> ostream &
+
+inline
+
+ +

Definition at line 186 of file ostream.hpp.

+
186  {
+
187  *this << reinterpret_cast<uint64_t>(_val);
+
188  return *this;
+
189 }
+
+
+
+ +

◆ operator<<() [3/10]

+ +
+
+
+template<>
+ + + + + +
+ + + + + + + + +
auto ostream::operator<< (const wchar_t * _val) -> ostream &
+
+inline
+
+ +

Definition at line 175 of file ostream.hpp.

+
175  {
+
176  Print(L"%s", _val);
+
177  mode = d;
+
178  return *this;
+
179 }
+
+
+
+ +

◆ operator<<() [4/10]

+ +
+
+
+template<>
+ + + + + +
+ + + + + + + + +
auto ostream::operator<< (int32_t _val) -> ostream &
+
+inline
+
+ +

Definition at line 121 of file ostream.hpp.

+
121  {
+
122  if (mode == d) {
+
123  Print(L"%d", _val);
+
124  } else if (mode == x) {
+
125  Print(L"0x%x", _val);
+
126  } else if (mode == X) {
+
127  Print(L"0x%X", _val);
+
128  }
+
129  mode = d;
+
130  return *this;
+
131 }
+
+
+
+ +

◆ operator<<() [5/10]

+ +
+
+
+template<>
+ + + + + +
+ + + + + + + + +
auto ostream::operator<< (int64_t _val) -> ostream &
+
+inline
+
+ +

Definition at line 145 of file ostream.hpp.

+
145  {
+
146  if (mode == d) {
+
147  Print(L"%ld", _val);
+
148  } else if (mode == x) {
+
149  Print(L"0x%x", _val);
+
150  } else if (mode == X) {
+
151  Print(L"0x%X", _val);
+
152  }
+
153  mode = d;
+
154  return *this;
+
155 }
+
+
+
+ +

◆ operator<<() [6/10]

+ +
+
+ + + + + + + + +
auto ostream::operator<< (ostream &(*)(ostream &) _ostream) -> ostream &
+
+

‘<<’ 操作符重载

Parameters
+ + +
_ostream输出流
+
+
+
Returns
输出流
+ +

Definition at line 28 of file ostream.cpp.

+
28  {
+
29  return _ostream(*this);
+
30 }
+
+
+
+ +

◆ operator<<() [7/10]

+ +
+
+
+template<>
+ + + + + +
+ + + + + + + + +
auto ostream::operator<< (uint32_t _val) -> ostream &
+
+inline
+
+ +

Definition at line 133 of file ostream.hpp.

+
133  {
+
134  if (mode == d) {
+
135  Print(L"%d", _val);
+
136  } else if (mode == x) {
+
137  Print(L"0x%x", _val);
+
138  } else if (mode == X) {
+
139  Print(L"0x%X", _val);
+
140  }
+
141  mode = d;
+
142  return *this;
+
143 }
+
+
+
+ +

◆ operator<<() [8/10]

+ +
+
+
+template<>
+ + + + + +
+ + + + + + + + +
auto ostream::operator<< (uint64_t _val) -> ostream &
+
+inline
+
+ +

Definition at line 157 of file ostream.hpp.

+
157  {
+
158  if (mode == d) {
+
159  Print(L"%ld", _val);
+
160  } else if (mode == x) {
+
161  Print(L"0x%x", _val);
+
162  } else if (mode == X) {
+
163  Print(L"0x%X", _val);
+
164  }
+
165  mode = d;
+
166  return *this;
+
167 }
+
+
+
+ +

◆ operator<<() [9/10]

+ +
+
+
+template<>
+ + + + + +
+ + + + + + + + +
auto ostream::operator<< (void * _val) -> ostream &
+
+inline
+
+ +

Definition at line 181 of file ostream.hpp.

+
181  {
+
182  *this << reinterpret_cast<uint64_t>(_val);
+
183  return *this;
+
184 }
+
+
+
+ +

◆ operator<<() [10/10]

+ +
+
+
+template<>
+ + + + + +
+ + + + + + + + +
auto ostream::operator<< (wchar_t _val) -> ostream &
+
+inline
+
+ +

Definition at line 169 of file ostream.hpp.

+
169  {
+
170  Print(L"%c", _val);
+
171  mode = d;
+
172  return *this;
+
173 }
+
+
+
+ +

◆ operator=() [1/2]

+ +
+
+ + + + + +
+ + + + + + + + +
auto ostream::operator= (const ostream) -> ostream &=delete
+
+delete
+
+ +
+
+ +

◆ operator=() [2/2]

+ +
+
+ + + + + +
+ + + + + + + + +
auto ostream::operator= (ostream && ) -> ostream &=delete
+
+delete
+
+ +
+
+

Member Data Documentation

+ +

◆ mode

+ +
+
+ + + + + +
+ + + + +
mode_t ostream::mode
+
+private
+
+ +

输出流模式

+ +

Definition at line 110 of file ostream.hpp.

+ +
+
+
The documentation for this class was generated from the following files:
    +
  • /home/runner/work/SimpleKernel/SimpleKernel/src/boot/include/ostream.hpp
  • +
  • /home/runner/work/SimpleKernel/SimpleKernel/src/boot/ostream.cpp
  • +
+
+
+ + + + diff --git a/classostream.js b/classostream.js new file mode 100644 index 000000000..2127050d1 --- /dev/null +++ b/classostream.js @@ -0,0 +1,28 @@ +var classostream = +[ + [ "mode_t", "classostream.html#a2f1697fb486d2afcde8e8a5b7f6608f6", [ + [ "x", "classostream.html#a2f1697fb486d2afcde8e8a5b7f6608f6abe6defa90d521b92be9e4b072c89dbf7", null ], + [ "X", "classostream.html#a2f1697fb486d2afcde8e8a5b7f6608f6a53178dc78826d4f620fd4cf2dbe52284", null ], + [ "d", "classostream.html#a2f1697fb486d2afcde8e8a5b7f6608f6a16426222a71c446926e9ee5aef5ef53a", null ] + ] ], + [ "ostream", "classostream.html#af02b22e37aeacbd7b927c9499e2e7434", null ], + [ "~ostream", "classostream.html#a36fe66b87e7d9f5bca462383b1b347a3", null ], + [ "ostream", "classostream.html#a9470e15eae20f768804f345cdcb64878", null ], + [ "ostream", "classostream.html#ae717c9ef2f8248133d4f319bea8eac74", null ], + [ "endl", "classostream.html#a271664830d4cda9da6c7c0b4c04a8ed2", null ], + [ "hex_x", "classostream.html#a4ec6f2934351244c566df995f0aa6d99", null ], + [ "hex_X", "classostream.html#afaa63ab1ab5310f2e4ccaeaf26a1d9f9", null ], + [ "operator<<", "classostream.html#a2643ac8ead35ca1f28bea37ba5cf851f", null ], + [ "operator<<", "classostream.html#a4cdfa5a7e5af785bc2466465dd294a8c", null ], + [ "operator<<", "classostream.html#a85799be0e32d03eb176ec894b54e05df", null ], + [ "operator<<", "classostream.html#a8dca8e73225d0f9512443ea24faf8b3d", null ], + [ "operator<<", "classostream.html#a1bd56786510d46836ddeb65905ec1203", null ], + [ "operator<<", "classostream.html#a5ac0609ad3452aaa7bd6fd75b91e5f9c", null ], + [ "operator<<", "classostream.html#a258ca91236f62de861bb8a1e04766710", null ], + [ "operator<<", "classostream.html#a233fec38d499fccab307b259564f6325", null ], + [ "operator<<", "classostream.html#ac6dd77ac76d20ff385d380223a0b6e5d", null ], + [ "operator<<", "classostream.html#a3c55533daa16724d2680a234a3350183", null ], + [ "operator=", "classostream.html#af3d4de9430a737b62ca78e1b8fad2635", null ], + [ "operator=", "classostream.html#a8e20e8645ba3335b7fea9cf248cc6e5b", null ], + [ "mode", "classostream.html#a4396e13ad0894ad44f20d6d9f7e7c8c5", null ] +]; \ No newline at end of file diff --git a/classostream__coll__graph.map b/classostream__coll__graph.map new file mode 100644 index 000000000..fedbd28af --- /dev/null +++ b/classostream__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/classostream__coll__graph.md5 b/classostream__coll__graph.md5 new file mode 100644 index 000000000..bd01b03e4 --- /dev/null +++ b/classostream__coll__graph.md5 @@ -0,0 +1 @@ +82e16865d2bb0fb9693c01906eefa816 \ No newline at end of file diff --git a/classostream__coll__graph.png b/classostream__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..3bdc3a869a75d80f6e273bc0895c5c479292a7c7 GIT binary patch literal 7944 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 QX&ZL_tciZf8T)(x0~|Tx-T(jq literal 0 HcmV?d00001 diff --git a/classostream_a271664830d4cda9da6c7c0b4c04a8ed2_icgraph.map b/classostream_a271664830d4cda9da6c7c0b4c04a8ed2_icgraph.map new file mode 100644 index 000000000..7da674b1d --- /dev/null +++ b/classostream_a271664830d4cda9da6c7c0b4c04a8ed2_icgraph.map @@ -0,0 +1,20 @@ + + + + + + + + + + + + + + + + + + + + diff --git a/classostream_a271664830d4cda9da6c7c0b4c04a8ed2_icgraph.md5 b/classostream_a271664830d4cda9da6c7c0b4c04a8ed2_icgraph.md5 new file mode 100644 index 000000000..dc2dfe825 --- /dev/null +++ b/classostream_a271664830d4cda9da6c7c0b4c04a8ed2_icgraph.md5 @@ -0,0 +1 @@ +d9403a820fbb1359b919383977c91405 \ No newline at end of file diff --git a/classostream_a271664830d4cda9da6c7c0b4c04a8ed2_icgraph.png b/classostream_a271664830d4cda9da6c7c0b4c04a8ed2_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..052039439538e302b40c48548cfe3b59d6f42a54 GIT binary patch literal 78702 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�==2{R-UUbZ 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 P(8A#9>gTe~DWM4fWMkph literal 0 HcmV?d00001 diff --git a/classostream_a4ec6f2934351244c566df995f0aa6d99_icgraph.map b/classostream_a4ec6f2934351244c566df995f0aa6d99_icgraph.map new file mode 100644 index 000000000..229dfc5b7 --- /dev/null +++ b/classostream_a4ec6f2934351244c566df995f0aa6d99_icgraph.map @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/classostream_a4ec6f2934351244c566df995f0aa6d99_icgraph.md5 b/classostream_a4ec6f2934351244c566df995f0aa6d99_icgraph.md5 new file mode 100644 index 000000000..c350498bc --- /dev/null +++ b/classostream_a4ec6f2934351244c566df995f0aa6d99_icgraph.md5 @@ -0,0 +1 @@ +5de2eaf53e0898718eb8632314ab6766 \ No newline at end of file diff --git a/classostream_a4ec6f2934351244c566df995f0aa6d99_icgraph.png b/classostream_a4ec6f2934351244c566df995f0aa6d99_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..820c20c1bc21834cc5a9d74a82e099e5af2eace1 GIT binary patch literal 27426 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 a>>Rg*j;gAJ=oTCo@jy;Rwpd!<_kREx6&)}D literal 0 HcmV?d00001 diff --git a/classostream_afaa63ab1ab5310f2e4ccaeaf26a1d9f9_icgraph.map b/classostream_afaa63ab1ab5310f2e4ccaeaf26a1d9f9_icgraph.map new file mode 100644 index 000000000..8d20c6540 --- /dev/null +++ b/classostream_afaa63ab1ab5310f2e4ccaeaf26a1d9f9_icgraph.map @@ -0,0 +1,14 @@ + + + + + + + + + + + + + + diff --git a/classostream_afaa63ab1ab5310f2e4ccaeaf26a1d9f9_icgraph.md5 b/classostream_afaa63ab1ab5310f2e4ccaeaf26a1d9f9_icgraph.md5 new file mode 100644 index 000000000..992825c3b --- /dev/null +++ b/classostream_afaa63ab1ab5310f2e4ccaeaf26a1d9f9_icgraph.md5 @@ -0,0 +1 @@ +86e6355fa7928a88d096c04be7f1efea \ No newline at end of file diff --git a/classostream_afaa63ab1ab5310f2e4ccaeaf26a1d9f9_icgraph.png b/classostream_afaa63ab1ab5310f2e4ccaeaf26a1d9f9_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..3763c17cb01a5c184fc7e54b2d4a1b41b19cd56d GIT binary patch literal 37767 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 literal 0 HcmV?d00001 diff --git a/closed.png b/closed.png new file mode 100644 index 0000000000000000000000000000000000000000..98cc2c909da37a6df914fbf67780eebd99c597f5 GIT binary patch literal 132 zcmeAS@N?(olHy`uVBq!ia0vp^oFL4>1|%O$WD@{V-kvUwAr*{o@8{^CZMh(5KoB^r_<4^zF@3)Cp&&t3hdujKf f*?bjBoY!V+E))@{xMcbjXe@)LtDnm{r-UW|*e5JT literal 0 HcmV?d00001 diff --git a/dir_000001_000003.html b/dir_000001_000003.html new file mode 100644 index 000000000..e1f9de96d --- /dev/null +++ b/dir_000001_000003.html @@ -0,0 +1,95 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/test/system_test -> src Relation + + + + + + + + + + + + + +

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

system_test → src Relation

File in test/system_testIncludes file in src
gnu_efi_test / boot.cppboot / include / load_elf.h
gnu_efi_test / boot.cppboot / include / ostream.hpp
gnu_efi_test / boot.cppproject_config.h
gnu_efi_test / main.cppkernel / include / kernel.h
+
+ +
+ + diff --git a/dir_000002_000003.html b/dir_000002_000003.html new file mode 100644 index 000000000..ffe6d2da9 --- /dev/null +++ b/dir_000002_000003.html @@ -0,0 +1,95 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/test/system_test/gnu_efi_test -> src Relation + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

gnu_efi_test → src Relation

File in test/system_test/gnu_efi_testIncludes file in src
boot.cppboot / include / load_elf.h
boot.cppboot / include / ostream.hpp
boot.cppproject_config.h
main.cppkernel / include / kernel.h
+
+ + + + diff --git a/dir_000004_000006.html b/dir_000004_000006.html new file mode 100644 index 000000000..79fcf8939 --- /dev/null +++ b/dir_000004_000006.html @@ -0,0 +1,95 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/boot -> include Relation + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ + + + + + diff --git a/dir_000007_000015.html b/dir_000007_000015.html new file mode 100644 index 000000000..b39736517 --- /dev/null +++ b/dir_000007_000015.html @@ -0,0 +1,95 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel -> include Relation + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

kernel → include Relation

File in src/kernelIncludes file in src/kernel/include
main.cppkernel.h
+
+ + + + diff --git a/dir_000009_000012.html b/dir_000009_000012.html new file mode 100644 index 000000000..5ba7ea323 --- /dev/null +++ b/dir_000009_000012.html @@ -0,0 +1,95 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/arch/aarch64 -> include Relation + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

aarch64 → include Relation

File in src/kernel/arch/aarch64Includes file in src/kernel/arch/include
arch.cpparch.h
+
+ + + + diff --git a/dir_000011_000012.html b/dir_000011_000012.html new file mode 100644 index 000000000..da47d82dc --- /dev/null +++ b/dir_000011_000012.html @@ -0,0 +1,95 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/arch/x86_64 -> include Relation + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

x86_64 → include Relation

File in src/kernel/arch/x86_64Includes file in src/kernel/arch/include
arch.cpparch.h
+
+ + + + diff --git a/dir_000013_000014.html b/dir_000013_000014.html new file mode 100644 index 000000000..a4dcdcc75 --- /dev/null +++ b/dir_000013_000014.html @@ -0,0 +1,95 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/driver -> include Relation + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

driver → include Relation

File in src/kernel/driverIncludes file in src/kernel/driver/include
driver.cppdriver.h
+
+ + + + diff --git a/dir_000016_000017.html b/dir_000016_000017.html new file mode 100644 index 000000000..c38c1ca78 --- /dev/null +++ b/dir_000016_000017.html @@ -0,0 +1,95 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/libc -> include Relation + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

libc → include Relation

File in src/kernel/libcIncludes file in src/kernel/libc/include
libc.clibc.h
+
+ + + + diff --git a/dir_000018_000019.html b/dir_000018_000019.html new file mode 100644 index 000000000..9cd95a6f9 --- /dev/null +++ b/dir_000018_000019.html @@ -0,0 +1,95 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/libcxx -> include Relation + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+

libcxx → include Relation

File in src/kernel/libcxxIncludes file in src/kernel/libcxx/include
libcxx.cpplibcxx.h
+
+ + + + diff --git a/dir_0acad8e611f5f3679e26f7f6ddf45d1c.html b/dir_0acad8e611f5f3679e26f7f6ddf45d1c.html new file mode 100644 index 000000000..887cecfc5 --- /dev/null +++ b/dir_0acad8e611f5f3679e26f7f6ddf45d1c.html @@ -0,0 +1,117 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/arch/aarch64 Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
aarch64 Directory Reference
+
+
+
+Directory dependency graph for aarch64:
+
+
/home/runner/work/SimpleKernel/SimpleKernel/src/kernel/arch/aarch64
+ + + + + + +
+ + + + + +

+Files

file  arch.cpp [code]
 arch cpp
 
+
+
+ + + + diff --git a/dir_0acad8e611f5f3679e26f7f6ddf45d1c.js b/dir_0acad8e611f5f3679e26f7f6ddf45d1c.js new file mode 100644 index 000000000..1307fffee --- /dev/null +++ b/dir_0acad8e611f5f3679e26f7f6ddf45d1c.js @@ -0,0 +1,4 @@ +var dir_0acad8e611f5f3679e26f7f6ddf45d1c = +[ + [ "arch.cpp", "aarch64_2arch_8cpp.html", "aarch64_2arch_8cpp" ] +]; \ No newline at end of file diff --git a/dir_0acad8e611f5f3679e26f7f6ddf45d1c_dep.map b/dir_0acad8e611f5f3679e26f7f6ddf45d1c_dep.map new file mode 100644 index 000000000..8b8b05887 --- /dev/null +++ b/dir_0acad8e611f5f3679e26f7f6ddf45d1c_dep.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/dir_0acad8e611f5f3679e26f7f6ddf45d1c_dep.md5 b/dir_0acad8e611f5f3679e26f7f6ddf45d1c_dep.md5 new file mode 100644 index 000000000..f1bef7214 --- /dev/null +++ b/dir_0acad8e611f5f3679e26f7f6ddf45d1c_dep.md5 @@ -0,0 +1 @@ +246e65163907ae99d43eee81537238ce \ No newline at end of file diff --git a/dir_0acad8e611f5f3679e26f7f6ddf45d1c_dep.png b/dir_0acad8e611f5f3679e26f7f6ddf45d1c_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..c32ea629270a1bafdb5d5ef7d9cb64659e4dd964 GIT binary patch literal 3606 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 literal 0 HcmV?d00001 diff --git a/dir_1083f99974d515180cb874b65de1a4c1.html b/dir_1083f99974d515180cb874b65de1a4c1.html new file mode 100644 index 000000000..2fca35fb9 --- /dev/null +++ b/dir_1083f99974d515180cb874b65de1a4c1.html @@ -0,0 +1,106 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/include Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
include Directory Reference
+
+
+ + + + + +

+Files

file  kernel.h [code]
 内核头文件
 
+
+
+ + + + diff --git a/dir_1083f99974d515180cb874b65de1a4c1.js b/dir_1083f99974d515180cb874b65de1a4c1.js new file mode 100644 index 000000000..493197694 --- /dev/null +++ b/dir_1083f99974d515180cb874b65de1a4c1.js @@ -0,0 +1,4 @@ +var dir_1083f99974d515180cb874b65de1a4c1 = +[ + [ "kernel.h", "kernel_8h.html", "kernel_8h" ] +]; \ No newline at end of file diff --git a/dir_13e138d54eb8818da29c3992edef070a.html b/dir_13e138d54eb8818da29c3992edef070a.html new file mode 100644 index 000000000..5b3945fb8 --- /dev/null +++ b/dir_13e138d54eb8818da29c3992edef070a.html @@ -0,0 +1,122 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/test Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
test Directory Reference
+
+
+
+Directory dependency graph for test:
+
+
/home/runner/work/SimpleKernel/SimpleKernel/test
+ + + + + + + + +
+ + + + + + + + +

+Directories

directory  integration_test
 
directory  system_test
 
directory  unit_test
 
+
+
+ + + + diff --git a/dir_13e138d54eb8818da29c3992edef070a.js b/dir_13e138d54eb8818da29c3992edef070a.js new file mode 100644 index 000000000..e2adef87f --- /dev/null +++ b/dir_13e138d54eb8818da29c3992edef070a.js @@ -0,0 +1,6 @@ +var dir_13e138d54eb8818da29c3992edef070a = +[ + [ "integration_test", "dir_214cdb057acbffb06cb588499d2359e0.html", "dir_214cdb057acbffb06cb588499d2359e0" ], + [ "system_test", "dir_dfa008182f2a40cb988df1752e3cb29d.html", "dir_dfa008182f2a40cb988df1752e3cb29d" ], + [ "unit_test", "dir_6bc06e9f3356adbf38c1368f9e2111de.html", "dir_6bc06e9f3356adbf38c1368f9e2111de" ] +]; \ No newline at end of file diff --git a/dir_13e138d54eb8818da29c3992edef070a_dep.map b/dir_13e138d54eb8818da29c3992edef070a_dep.map new file mode 100644 index 000000000..e070c611f --- /dev/null +++ b/dir_13e138d54eb8818da29c3992edef070a_dep.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/dir_13e138d54eb8818da29c3992edef070a_dep.md5 b/dir_13e138d54eb8818da29c3992edef070a_dep.md5 new file mode 100644 index 000000000..013b00eb9 --- /dev/null +++ b/dir_13e138d54eb8818da29c3992edef070a_dep.md5 @@ -0,0 +1 @@ +b948d31eb7c215ddf57c0852ee79ed9a \ No newline at end of file diff --git a/dir_13e138d54eb8818da29c3992edef070a_dep.png b/dir_13e138d54eb8818da29c3992edef070a_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..40e604615bf9c6bce2b2dc6b90ec0d1a562ca98c GIT binary patch literal 4439 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 literal 0 HcmV?d00001 diff --git a/dir_214cdb057acbffb06cb588499d2359e0.html b/dir_214cdb057acbffb06cb588499d2359e0.html new file mode 100644 index 000000000..1a46e5f0d --- /dev/null +++ b/dir_214cdb057acbffb06cb588499d2359e0.html @@ -0,0 +1,106 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/test/integration_test Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
integration_test Directory Reference
+
+
+ + + + + +

+Files

file  example.cpp [code]
 集成测试示例
 
+
+
+ + + + diff --git a/dir_214cdb057acbffb06cb588499d2359e0.js b/dir_214cdb057acbffb06cb588499d2359e0.js new file mode 100644 index 000000000..1abe0ac3b --- /dev/null +++ b/dir_214cdb057acbffb06cb588499d2359e0.js @@ -0,0 +1,4 @@ +var dir_214cdb057acbffb06cb588499d2359e0 = +[ + [ "example.cpp", "integration__test_2example_8cpp.html", "integration__test_2example_8cpp" ] +]; \ No newline at end of file diff --git a/dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html b/dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html new file mode 100644 index 000000000..dc2256463 --- /dev/null +++ b/dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html @@ -0,0 +1,99 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/tools Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
tools Directory Reference
+
+
+
+
+ + + + diff --git a/dir_52780cb445d9f0b97a98e8aabec4d968.html b/dir_52780cb445d9f0b97a98e8aabec4d968.html new file mode 100644 index 000000000..64c82f064 --- /dev/null +++ b/dir_52780cb445d9f0b97a98e8aabec4d968.html @@ -0,0 +1,134 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/boot Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
boot Directory Reference
+
+
+
+Directory dependency graph for boot:
+
+
/home/runner/work/SimpleKernel/SimpleKernel/src/boot
+ + + + + + +
+ + + + +

+Directories

directory  include
 
+ + + + + + + + + + + + + + + + +

+Files

file  boot.cpp [code]
 boot cpp
 
file  graphics.cpp [code]
 图形相关
 
file  load_elf.cpp [code]
 加载 elf 文件
 
file  memory.cpp [code]
 内存相关
 
file  ostream.cpp [code]
 输出
 
+
+
+ + + + diff --git a/dir_52780cb445d9f0b97a98e8aabec4d968.js b/dir_52780cb445d9f0b97a98e8aabec4d968.js new file mode 100644 index 000000000..965e00ea9 --- /dev/null +++ b/dir_52780cb445d9f0b97a98e8aabec4d968.js @@ -0,0 +1,9 @@ +var dir_52780cb445d9f0b97a98e8aabec4d968 = +[ + [ "include", "dir_cf02dea305ec692505ba6fa0e02c0b80.html", "dir_cf02dea305ec692505ba6fa0e02c0b80" ], + [ "boot.cpp", "src_2boot_2boot_8cpp.html", "src_2boot_2boot_8cpp" ], + [ "graphics.cpp", "graphics_8cpp.html", null ], + [ "load_elf.cpp", "load__elf_8cpp.html", null ], + [ "memory.cpp", "memory_8cpp.html", null ], + [ "ostream.cpp", "ostream_8cpp.html", "ostream_8cpp" ] +]; \ No newline at end of file diff --git a/dir_52780cb445d9f0b97a98e8aabec4d968_dep.map b/dir_52780cb445d9f0b97a98e8aabec4d968_dep.map new file mode 100644 index 000000000..f47a42c7d --- /dev/null +++ b/dir_52780cb445d9f0b97a98e8aabec4d968_dep.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/dir_52780cb445d9f0b97a98e8aabec4d968_dep.md5 b/dir_52780cb445d9f0b97a98e8aabec4d968_dep.md5 new file mode 100644 index 000000000..70438e24a --- /dev/null +++ b/dir_52780cb445d9f0b97a98e8aabec4d968_dep.md5 @@ -0,0 +1 @@ +9e09e350422938cd0ad71f3a241fb216 \ No newline at end of file diff --git a/dir_52780cb445d9f0b97a98e8aabec4d968_dep.png b/dir_52780cb445d9f0b97a98e8aabec4d968_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..15ccfba813d7674c1354216d02eca9079d2fbcc6 GIT binary patch literal 3475 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 DcXWma literal 0 HcmV?d00001 diff --git a/dir_5618a23734b7c38608f71c5641f59e33.html b/dir_5618a23734b7c38608f71c5641f59e33.html new file mode 100644 index 000000000..8ae5fc28d --- /dev/null +++ b/dir_5618a23734b7c38608f71c5641f59e33.html @@ -0,0 +1,106 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/arch/include Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
include Directory Reference
+
+
+ + + + + +

+Files

file  arch.h [code]
 arch 头文件
 
+
+
+ + + + diff --git a/dir_5618a23734b7c38608f71c5641f59e33.js b/dir_5618a23734b7c38608f71c5641f59e33.js new file mode 100644 index 000000000..a94e047ad --- /dev/null +++ b/dir_5618a23734b7c38608f71c5641f59e33.js @@ -0,0 +1,4 @@ +var dir_5618a23734b7c38608f71c5641f59e33 = +[ + [ "arch.h", "arch_8h.html", "arch_8h" ] +]; \ No newline at end of file diff --git a/dir_59df94d8c79cd5668d4518ea58739506.html b/dir_59df94d8c79cd5668d4518ea58739506.html new file mode 100644 index 000000000..bf49c5bf9 --- /dev/null +++ b/dir_59df94d8c79cd5668d4518ea58739506.html @@ -0,0 +1,106 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/libcxx/include Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
include Directory Reference
+
+
+ + + + + +

+Files

file  libcxx.h [code]
 libcxx 头文件
 
+
+
+ + + + diff --git a/dir_59df94d8c79cd5668d4518ea58739506.js b/dir_59df94d8c79cd5668d4518ea58739506.js new file mode 100644 index 000000000..6d59cfe53 --- /dev/null +++ b/dir_59df94d8c79cd5668d4518ea58739506.js @@ -0,0 +1,4 @@ +var dir_59df94d8c79cd5668d4518ea58739506 = +[ + [ "libcxx.h", "libcxx_8h.html", "libcxx_8h" ] +]; \ No newline at end of file diff --git a/dir_5d78c82c73cee529a313d94efe356afe.html b/dir_5d78c82c73cee529a313d94efe356afe.html new file mode 100644 index 000000000..b1773adca --- /dev/null +++ b/dir_5d78c82c73cee529a313d94efe356afe.html @@ -0,0 +1,106 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/arch/riscv64 Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
riscv64 Directory Reference
+
+
+ + + + + +

+Files

file  arch.cpp [code]
 arch cpp
 
+
+
+ + + + diff --git a/dir_5d78c82c73cee529a313d94efe356afe.js b/dir_5d78c82c73cee529a313d94efe356afe.js new file mode 100644 index 000000000..925f1197e --- /dev/null +++ b/dir_5d78c82c73cee529a313d94efe356afe.js @@ -0,0 +1,4 @@ +var dir_5d78c82c73cee529a313d94efe356afe = +[ + [ "arch.cpp", "riscv64_2arch_8cpp.html", "riscv64_2arch_8cpp" ] +]; \ No newline at end of file diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.html b/dir_68267d1309a1af8e8297ef4c3efbcdba.html new file mode 100644 index 000000000..1f8ce316e --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.html @@ -0,0 +1,123 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
src Directory Reference
+
+
+
+Directory dependency graph for src:
+
+
/home/runner/work/SimpleKernel/SimpleKernel/src
+ + + + + +
+ + + + + + +

+Directories

directory  boot
 
directory  kernel
 
+ + + + +

+Files

file  project_config.h [code]
 project_config 头文件,此文件由 cmake 自动生成,不要手动修改
 
+
+
+ + + + diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba.js b/dir_68267d1309a1af8e8297ef4c3efbcdba.js new file mode 100644 index 000000000..52d27f662 --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba.js @@ -0,0 +1,6 @@ +var dir_68267d1309a1af8e8297ef4c3efbcdba = +[ + [ "boot", "dir_52780cb445d9f0b97a98e8aabec4d968.html", "dir_52780cb445d9f0b97a98e8aabec4d968" ], + [ "kernel", "dir_cbd7f246bdf7dc0a50281a272327e6ed.html", "dir_cbd7f246bdf7dc0a50281a272327e6ed" ], + [ "project_config.h", "project__config_8h.html", "project__config_8h" ] +]; \ No newline at end of file diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map new file mode 100644 index 000000000..19f3440d4 --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.map @@ -0,0 +1,5 @@ + + + + + diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 new file mode 100644 index 000000000..d2fff2ba7 --- /dev/null +++ b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.md5 @@ -0,0 +1 @@ +9ac87e73e9710dff45cf5ec92ab740c7 \ No newline at end of file diff --git a/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png b/dir_68267d1309a1af8e8297ef4c3efbcdba_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..5e161405b8f131de8bc8173188e1a545815030d8 GIT binary patch literal 1940 zcma)7X;jl!9{uAoVc5h{mJYHTTtG4d4765YfY1<8mVrbz!LkWbmPklgLmNN{C{z|b zWl>|GXff;rV@MbmNF%0@5J0v-AS@|_B%*>LBuzieH`|%>&UwpuAAZ04?tS+X0{vmS zT7T0506-V+3;j0$Xt=5O@tXV8b4M^qs9ydO;|GHRs^7;wdP_9`fZ%YbXGm6qc&^~w z7}lIA+wS8n>3`kzqR!|z#p$N~1e&XVlo&%oeY^JLguVgJ*AZ;p1$Jd!lQKhfWY=%+ zj96Bc>BfchdA`zdO=Ec)m3)z|;Y2-98?$SunWF@fTJUs_oPR{QTp1uW=TA=BC^hcl z+@sz1o^?0XzO~CbW4;eS#u51d;Cn4qW5=@(P~3|EaHFRHk2RxjEzsKkIrQY<0%&fZ zwD2R>)TXIp0e3dm*R{DwAnNk!$ldLNuAbCgxf~}Kl|B953griM+>@bDmln#Jz}zQb z>q0A1FXGw${lLz|cxGFFe<1ghGXsBIKwZC5I6#x05}dc{0O?qC8_kSuYZ+zhH&|$v z0$4xjTMn!zDR|+KX?QVL*)V9_U=iA5iKZnP7(!>4Qh@>o6z&p7s`%efK7zD}5kZfd zpO~OHN88!hkeZw0lNd;;{qkpp(of~78vi63{{7d9<*VZ9 zUONaR4TE_vTVjrnkDoYk!tO%bY-cP}Jkv+dc$<@-l9GbKU?L+UVX%^@_V(6RrytJA zWU}=MG7T-N!cKb)+YCvi=}06pFHbRa!xR$D*f49TtDB}_+r5aP^qkD3B+=gPcK&r^ zL&J;e<2)lDZy6T{eN!A%UmqZPSNGz@>)F{yMB-g~;a4POIpoULR(Eyv5@U}Nn~)$M z3ut|pbK|ROsf-DVY?~V0{80O>d4|PevFlx1Lw?dWc6c!~bgQOj_A!do(!vy^H~siy z9eYL1Z|>!A`&+Th3b(wSjt37)OCKSVV`G~I-fWGvbY!{5zd=Q*4BLe{JzXsxz1doUiFzCyzm({ zGr5VOgs|BuB$DcbVru}m#l8SZy^`F`8#gmG&D~M%`WPAxdV71!d}9m(iF5L&D?OA> zMY-=``g~*mCjx;$E|>2I>G60x{hP21?hG|QbUGbFo6Btv zXgu9KCbG4)olV`ARM^$N9OV}`Tiu34P&NWkC>e)S;9}w!#SqF%EX>aaj2yKNLZh+K zCMJ)G<89#kT<)ILOxygk#clFnOc*0CJ3hX7JD4`-4bv0{qj<%W&$Ke>*F3bK!^7DL1r4FBI+s@%|nwpw~LLrsvjgs&k!>ZGNB-iamQz}q3PYaRiW^B?aSgJg73qSC>kauHPwN)ZCjd?qvVWA zr`Fckmq+ffM@Cfg*4@5#^ilA`zO?xu1j60%jYK4ZA=gEc0hPm1+Pmmbv>(**hmE(Q zG23cZqI22(#NKdq`HZVqKh^R`G)u;MBO3j3)K z8XgCBat?MIMO->$;=aOligptr(s7oS`({t^IU}xWOV<1|FK4L=zI1oMWHxFKsly^* zZ!f=UGOOt|Jr}D_(FM3?YcP8efF>vl_ve}O2kk1gKmRLmJ}@M0ULCUl+{Yi<=5-1G E8@-?9R{#J2 literal 0 HcmV?d00001 diff --git a/dir_6bc06e9f3356adbf38c1368f9e2111de.html b/dir_6bc06e9f3356adbf38c1368f9e2111de.html new file mode 100644 index 000000000..ed41dbcf4 --- /dev/null +++ b/dir_6bc06e9f3356adbf38c1368f9e2111de.html @@ -0,0 +1,106 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/test/unit_test Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
unit_test Directory Reference
+
+
+ + + + + +

+Files

file  example.cpp [code]
 单元测试示例
 
+
+
+ + + + diff --git a/dir_6bc06e9f3356adbf38c1368f9e2111de.js b/dir_6bc06e9f3356adbf38c1368f9e2111de.js new file mode 100644 index 000000000..08a63a25f --- /dev/null +++ b/dir_6bc06e9f3356adbf38c1368f9e2111de.js @@ -0,0 +1,4 @@ +var dir_6bc06e9f3356adbf38c1368f9e2111de = +[ + [ "example.cpp", "unit__test_2example_8cpp.html", "unit__test_2example_8cpp" ] +]; \ No newline at end of file diff --git a/dir_6f5d6d0f4b2a0708d4f75e2c093f010c.html b/dir_6f5d6d0f4b2a0708d4f75e2c093f010c.html new file mode 100644 index 000000000..6dade6d72 --- /dev/null +++ b/dir_6f5d6d0f4b2a0708d4f75e2c093f010c.html @@ -0,0 +1,106 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/libc/include Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
include Directory Reference
+
+
+ + + + + +

+Files

file  libc.h [code]
 libc 头文件
 
+
+
+ + + + diff --git a/dir_6f5d6d0f4b2a0708d4f75e2c093f010c.js b/dir_6f5d6d0f4b2a0708d4f75e2c093f010c.js new file mode 100644 index 000000000..37c67aed2 --- /dev/null +++ b/dir_6f5d6d0f4b2a0708d4f75e2c093f010c.js @@ -0,0 +1,4 @@ +var dir_6f5d6d0f4b2a0708d4f75e2c093f010c = +[ + [ "libc.h", "libc_8h.html", "libc_8h" ] +]; \ No newline at end of file diff --git a/dir_76e3dd4d2fa719e8d3b096e9aa563982.html b/dir_76e3dd4d2fa719e8d3b096e9aa563982.html new file mode 100644 index 000000000..f9fd5aa1d --- /dev/null +++ b/dir_76e3dd4d2fa719e8d3b096e9aa563982.html @@ -0,0 +1,132 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/arch Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
arch Directory Reference
+
+
+
+Directory dependency graph for arch:
+
+
/home/runner/work/SimpleKernel/SimpleKernel/src/kernel/arch
+ + + + + + + + + + +
+ + + + + + + + + + +

+Directories

directory  aarch64
 
directory  include
 
directory  riscv64
 
directory  x86_64
 
+ + + + +

+Files

file  arch.cpp [code]
 arch cpp
 
+
+
+ + + + diff --git a/dir_76e3dd4d2fa719e8d3b096e9aa563982.js b/dir_76e3dd4d2fa719e8d3b096e9aa563982.js new file mode 100644 index 000000000..cb9db658c --- /dev/null +++ b/dir_76e3dd4d2fa719e8d3b096e9aa563982.js @@ -0,0 +1,8 @@ +var dir_76e3dd4d2fa719e8d3b096e9aa563982 = +[ + [ "aarch64", "dir_0acad8e611f5f3679e26f7f6ddf45d1c.html", "dir_0acad8e611f5f3679e26f7f6ddf45d1c" ], + [ "include", "dir_5618a23734b7c38608f71c5641f59e33.html", "dir_5618a23734b7c38608f71c5641f59e33" ], + [ "riscv64", "dir_5d78c82c73cee529a313d94efe356afe.html", "dir_5d78c82c73cee529a313d94efe356afe" ], + [ "x86_64", "dir_7c4c796ec9937bed8074dafcec3d25e4.html", "dir_7c4c796ec9937bed8074dafcec3d25e4" ], + [ "arch.cpp", "arch_8cpp.html", "arch_8cpp" ] +]; \ No newline at end of file diff --git a/dir_76e3dd4d2fa719e8d3b096e9aa563982_dep.map b/dir_76e3dd4d2fa719e8d3b096e9aa563982_dep.map new file mode 100644 index 000000000..4ebb758c6 --- /dev/null +++ b/dir_76e3dd4d2fa719e8d3b096e9aa563982_dep.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/dir_76e3dd4d2fa719e8d3b096e9aa563982_dep.md5 b/dir_76e3dd4d2fa719e8d3b096e9aa563982_dep.md5 new file mode 100644 index 000000000..2dd9aae55 --- /dev/null +++ b/dir_76e3dd4d2fa719e8d3b096e9aa563982_dep.md5 @@ -0,0 +1 @@ +7d9593a102419031b7dafae928e6d835 \ No newline at end of file diff --git a/dir_76e3dd4d2fa719e8d3b096e9aa563982_dep.png b/dir_76e3dd4d2fa719e8d3b096e9aa563982_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..118ed5d1843425b3e585e90749f1ba611d8056be GIT binary patch literal 7058 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 + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/test/system_test/opensbi_test Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
opensbi_test Directory Reference
+
+
+ + + + + +

+Files

file  boot.cpp [code]
 boot cpp
 
+
+
+ + + + diff --git a/dir_7c016ae1625038972db0411832a49708.js b/dir_7c016ae1625038972db0411832a49708.js new file mode 100644 index 000000000..9ba292273 --- /dev/null +++ b/dir_7c016ae1625038972db0411832a49708.js @@ -0,0 +1,4 @@ +var dir_7c016ae1625038972db0411832a49708 = +[ + [ "boot.cpp", "test_2system__test_2opensbi__test_2boot_8cpp.html", "test_2system__test_2opensbi__test_2boot_8cpp" ] +]; \ No newline at end of file diff --git a/dir_7c4c796ec9937bed8074dafcec3d25e4.html b/dir_7c4c796ec9937bed8074dafcec3d25e4.html new file mode 100644 index 000000000..3fa81163c --- /dev/null +++ b/dir_7c4c796ec9937bed8074dafcec3d25e4.html @@ -0,0 +1,117 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/arch/x86_64 Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
x86_64 Directory Reference
+
+
+
+Directory dependency graph for x86_64:
+
+
/home/runner/work/SimpleKernel/SimpleKernel/src/kernel/arch/x86_64
+ + + + + + +
+ + + + + +

+Files

file  arch.cpp [code]
 arch cpp
 
+
+
+ + + + diff --git a/dir_7c4c796ec9937bed8074dafcec3d25e4.js b/dir_7c4c796ec9937bed8074dafcec3d25e4.js new file mode 100644 index 000000000..1ca49dd23 --- /dev/null +++ b/dir_7c4c796ec9937bed8074dafcec3d25e4.js @@ -0,0 +1,4 @@ +var dir_7c4c796ec9937bed8074dafcec3d25e4 = +[ + [ "arch.cpp", "x86__64_2arch_8cpp.html", "x86__64_2arch_8cpp" ] +]; \ No newline at end of file diff --git a/dir_7c4c796ec9937bed8074dafcec3d25e4_dep.map b/dir_7c4c796ec9937bed8074dafcec3d25e4_dep.map new file mode 100644 index 000000000..7cd0dc97d --- /dev/null +++ b/dir_7c4c796ec9937bed8074dafcec3d25e4_dep.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/dir_7c4c796ec9937bed8074dafcec3d25e4_dep.md5 b/dir_7c4c796ec9937bed8074dafcec3d25e4_dep.md5 new file mode 100644 index 000000000..342f023a3 --- /dev/null +++ b/dir_7c4c796ec9937bed8074dafcec3d25e4_dep.md5 @@ -0,0 +1 @@ +f8b313f22d619acd0897069947bb1a58 \ No newline at end of file diff --git a/dir_7c4c796ec9937bed8074dafcec3d25e4_dep.png b/dir_7c4c796ec9937bed8074dafcec3d25e4_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..a947f357f604ba7fcc84bd17dee76040b842001f GIT binary patch literal 3571 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 literal 0 HcmV?d00001 diff --git a/dir_97ddee6994ce82fd2a76b10ba4d7572d.html b/dir_97ddee6994ce82fd2a76b10ba4d7572d.html new file mode 100644 index 000000000..b5d84f193 --- /dev/null +++ b/dir_97ddee6994ce82fd2a76b10ba4d7572d.html @@ -0,0 +1,122 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/driver Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
driver Directory Reference
+
+
+
+Directory dependency graph for driver:
+
+
/home/runner/work/SimpleKernel/SimpleKernel/src/kernel/driver
+ + + + + + +
+ + + + +

+Directories

directory  include
 
+ + + + +

+Files

file  driver.cpp [code]
 driver cpp
 
+
+
+ + + + diff --git a/dir_97ddee6994ce82fd2a76b10ba4d7572d.js b/dir_97ddee6994ce82fd2a76b10ba4d7572d.js new file mode 100644 index 000000000..d63658d41 --- /dev/null +++ b/dir_97ddee6994ce82fd2a76b10ba4d7572d.js @@ -0,0 +1,5 @@ +var dir_97ddee6994ce82fd2a76b10ba4d7572d = +[ + [ "include", "dir_ccbb917b88eb4b4e61c0612ad965fbbd.html", "dir_ccbb917b88eb4b4e61c0612ad965fbbd" ], + [ "driver.cpp", "driver_8cpp.html", "driver_8cpp" ] +]; \ No newline at end of file diff --git a/dir_97ddee6994ce82fd2a76b10ba4d7572d_dep.map b/dir_97ddee6994ce82fd2a76b10ba4d7572d_dep.map new file mode 100644 index 000000000..506515047 --- /dev/null +++ b/dir_97ddee6994ce82fd2a76b10ba4d7572d_dep.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/dir_97ddee6994ce82fd2a76b10ba4d7572d_dep.md5 b/dir_97ddee6994ce82fd2a76b10ba4d7572d_dep.md5 new file mode 100644 index 000000000..76f23beb2 --- /dev/null +++ b/dir_97ddee6994ce82fd2a76b10ba4d7572d_dep.md5 @@ -0,0 +1 @@ +de2203014e180d341c3ea54d97bc38f4 \ No newline at end of file diff --git a/dir_97ddee6994ce82fd2a76b10ba4d7572d_dep.png b/dir_97ddee6994ce82fd2a76b10ba4d7572d_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..58a4765e8dbfd41b21a5ca6e3c55b4905a6bac43 GIT binary patch literal 3567 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 oYCpw?dhz8d{CS!4H + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
kernel Directory Reference
+
+
+
+Directory dependency graph for kernel:
+
+
/home/runner/work/SimpleKernel/SimpleKernel/src/kernel
+ + + + + + + + + + +
+ + + + + + + + + + + + +

+Directories

directory  arch
 
directory  driver
 
directory  include
 
directory  libc
 
directory  libcxx
 
+ + + + +

+Files

file  main.cpp [code]
 内核入口
 
+
+
+ + + + diff --git a/dir_cbd7f246bdf7dc0a50281a272327e6ed.js b/dir_cbd7f246bdf7dc0a50281a272327e6ed.js new file mode 100644 index 000000000..453ad1888 --- /dev/null +++ b/dir_cbd7f246bdf7dc0a50281a272327e6ed.js @@ -0,0 +1,9 @@ +var dir_cbd7f246bdf7dc0a50281a272327e6ed = +[ + [ "arch", "dir_76e3dd4d2fa719e8d3b096e9aa563982.html", "dir_76e3dd4d2fa719e8d3b096e9aa563982" ], + [ "driver", "dir_97ddee6994ce82fd2a76b10ba4d7572d.html", "dir_97ddee6994ce82fd2a76b10ba4d7572d" ], + [ "include", "dir_1083f99974d515180cb874b65de1a4c1.html", "dir_1083f99974d515180cb874b65de1a4c1" ], + [ "libc", "dir_cccbabf7c3b8a30ea0b9902e22888214.html", "dir_cccbabf7c3b8a30ea0b9902e22888214" ], + [ "libcxx", "dir_d683bc3d3192fc80ec7b59eb6756d7d6.html", "dir_d683bc3d3192fc80ec7b59eb6756d7d6" ], + [ "main.cpp", "src_2kernel_2main_8cpp.html", "src_2kernel_2main_8cpp" ] +]; \ No newline at end of file diff --git a/dir_cbd7f246bdf7dc0a50281a272327e6ed_dep.map b/dir_cbd7f246bdf7dc0a50281a272327e6ed_dep.map new file mode 100644 index 000000000..28023834c --- /dev/null +++ b/dir_cbd7f246bdf7dc0a50281a272327e6ed_dep.map @@ -0,0 +1,10 @@ + + + + + + + + + + diff --git a/dir_cbd7f246bdf7dc0a50281a272327e6ed_dep.md5 b/dir_cbd7f246bdf7dc0a50281a272327e6ed_dep.md5 new file mode 100644 index 000000000..ba18b2635 --- /dev/null +++ b/dir_cbd7f246bdf7dc0a50281a272327e6ed_dep.md5 @@ -0,0 +1 @@ +882af2a17db573debc80b53d8d1e352e \ No newline at end of file diff --git a/dir_cbd7f246bdf7dc0a50281a272327e6ed_dep.png b/dir_cbd7f246bdf7dc0a50281a272327e6ed_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..f1e5f72dffb34eb4353cb6e858ab9669aebeb6f5 GIT binary patch literal 5520 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 E0Dk`cxBvhE literal 0 HcmV?d00001 diff --git a/dir_ccbb917b88eb4b4e61c0612ad965fbbd.html b/dir_ccbb917b88eb4b4e61c0612ad965fbbd.html new file mode 100644 index 000000000..69906d21c --- /dev/null +++ b/dir_ccbb917b88eb4b4e61c0612ad965fbbd.html @@ -0,0 +1,106 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/driver/include Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
include Directory Reference
+
+
+ + + + + +

+Files

file  driver.h [code]
 driver 头文件
 
+
+
+ + + + diff --git a/dir_ccbb917b88eb4b4e61c0612ad965fbbd.js b/dir_ccbb917b88eb4b4e61c0612ad965fbbd.js new file mode 100644 index 000000000..05610b01e --- /dev/null +++ b/dir_ccbb917b88eb4b4e61c0612ad965fbbd.js @@ -0,0 +1,4 @@ +var dir_ccbb917b88eb4b4e61c0612ad965fbbd = +[ + [ "driver.h", "driver_8h.html", "driver_8h" ] +]; \ No newline at end of file diff --git a/dir_cccbabf7c3b8a30ea0b9902e22888214.html b/dir_cccbabf7c3b8a30ea0b9902e22888214.html new file mode 100644 index 000000000..cea8b863e --- /dev/null +++ b/dir_cccbabf7c3b8a30ea0b9902e22888214.html @@ -0,0 +1,121 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/libc Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
libc Directory Reference
+
+
+
+Directory dependency graph for libc:
+
+
/home/runner/work/SimpleKernel/SimpleKernel/src/kernel/libc
+ + + + + + +
+ + + + +

+Directories

directory  include
 
+ + + +

+Files

file  libc.c [code]
 
+
+
+ + + + diff --git a/dir_cccbabf7c3b8a30ea0b9902e22888214.js b/dir_cccbabf7c3b8a30ea0b9902e22888214.js new file mode 100644 index 000000000..9f51e6846 --- /dev/null +++ b/dir_cccbabf7c3b8a30ea0b9902e22888214.js @@ -0,0 +1,5 @@ +var dir_cccbabf7c3b8a30ea0b9902e22888214 = +[ + [ "include", "dir_6f5d6d0f4b2a0708d4f75e2c093f010c.html", "dir_6f5d6d0f4b2a0708d4f75e2c093f010c" ], + [ "libc.c", "libc_8c.html", "libc_8c" ] +]; \ No newline at end of file diff --git a/dir_cccbabf7c3b8a30ea0b9902e22888214_dep.map b/dir_cccbabf7c3b8a30ea0b9902e22888214_dep.map new file mode 100644 index 000000000..b38b146c8 --- /dev/null +++ b/dir_cccbabf7c3b8a30ea0b9902e22888214_dep.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/dir_cccbabf7c3b8a30ea0b9902e22888214_dep.md5 b/dir_cccbabf7c3b8a30ea0b9902e22888214_dep.md5 new file mode 100644 index 000000000..0ca55184f --- /dev/null +++ b/dir_cccbabf7c3b8a30ea0b9902e22888214_dep.md5 @@ -0,0 +1 @@ +c4d8252a42c94ac0fd125802ca45724a \ No newline at end of file diff --git a/dir_cccbabf7c3b8a30ea0b9902e22888214_dep.png b/dir_cccbabf7c3b8a30ea0b9902e22888214_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..fa75656ba6d7ec523486a0cde9c562629b53e2cb GIT binary patch literal 3288 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 YGglw#UDe27{Hg$k`Ut%e9qX{a0-akE8vp + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/boot/include Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
include Directory Reference
+
+
+ + + + + + + + + + + +

+Files

file  boot.h [code]
 boot 头文件
 
file  load_elf.h [code]
 load_elf h
 
file  ostream.hpp [code]
 ostream hpp
 
+
+
+ + + + diff --git a/dir_cf02dea305ec692505ba6fa0e02c0b80.js b/dir_cf02dea305ec692505ba6fa0e02c0b80.js new file mode 100644 index 000000000..ffd77b879 --- /dev/null +++ b/dir_cf02dea305ec692505ba6fa0e02c0b80.js @@ -0,0 +1,10 @@ +var dir_cf02dea305ec692505ba6fa0e02c0b80 = +[ + [ "boot.h", "boot_8h.html", "boot_8h" ], + [ "load_elf.h", "load__elf_8h.html", [ + [ "Graphics", "classGraphics.html", "classGraphics" ], + [ "Memory", "classMemory.html", "classMemory" ], + [ "Elf", "classElf.html", "classElf" ] + ] ], + [ "ostream.hpp", "ostream_8hpp.html", "ostream_8hpp" ] +]; \ No newline at end of file diff --git a/dir_cfadb97a047f54946ed337ecdf10cbea.html b/dir_cfadb97a047f54946ed337ecdf10cbea.html new file mode 100644 index 000000000..e62db589c --- /dev/null +++ b/dir_cfadb97a047f54946ed337ecdf10cbea.html @@ -0,0 +1,120 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/test/system_test/gnu_efi_test Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
gnu_efi_test Directory Reference
+
+
+
+Directory dependency graph for gnu_efi_test:
+
+
/home/runner/work/SimpleKernel/SimpleKernel/test/system_test/gnu_efi_test
+ + + + + + +
+ + + + + + + + +

+Files

file  boot.cpp [code]
 boot cpp
 
file  main.cpp [code]
 内核入口
 
+
+
+ + + + diff --git a/dir_cfadb97a047f54946ed337ecdf10cbea.js b/dir_cfadb97a047f54946ed337ecdf10cbea.js new file mode 100644 index 000000000..f5e1063fe --- /dev/null +++ b/dir_cfadb97a047f54946ed337ecdf10cbea.js @@ -0,0 +1,5 @@ +var dir_cfadb97a047f54946ed337ecdf10cbea = +[ + [ "boot.cpp", "test_2system__test_2gnu__efi__test_2boot_8cpp.html", "test_2system__test_2gnu__efi__test_2boot_8cpp" ], + [ "main.cpp", "test_2system__test_2gnu__efi__test_2main_8cpp.html", "test_2system__test_2gnu__efi__test_2main_8cpp" ] +]; \ No newline at end of file diff --git a/dir_cfadb97a047f54946ed337ecdf10cbea_dep.map b/dir_cfadb97a047f54946ed337ecdf10cbea_dep.map new file mode 100644 index 000000000..b1e613e88 --- /dev/null +++ b/dir_cfadb97a047f54946ed337ecdf10cbea_dep.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/dir_cfadb97a047f54946ed337ecdf10cbea_dep.md5 b/dir_cfadb97a047f54946ed337ecdf10cbea_dep.md5 new file mode 100644 index 000000000..67f2540e9 --- /dev/null +++ b/dir_cfadb97a047f54946ed337ecdf10cbea_dep.md5 @@ -0,0 +1 @@ +b942c328d57f4355aa60d1a854aa53f6 \ No newline at end of file diff --git a/dir_cfadb97a047f54946ed337ecdf10cbea_dep.png b/dir_cfadb97a047f54946ed337ecdf10cbea_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..fbcdb23a52b5939f035f712d48f7ecccd1ea1173 GIT binary patch literal 3971 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 + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/libcxx Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
libcxx Directory Reference
+
+
+
+Directory dependency graph for libcxx:
+
+
/home/runner/work/SimpleKernel/SimpleKernel/src/kernel/libcxx
+ + + + + + +
+ + + + +

+Directories

directory  include
 
+ + + + +

+Files

file  libcxx.cpp [code]
 libcxx cpp
 
+
+
+ + + + diff --git a/dir_d683bc3d3192fc80ec7b59eb6756d7d6.js b/dir_d683bc3d3192fc80ec7b59eb6756d7d6.js new file mode 100644 index 000000000..61855fcfb --- /dev/null +++ b/dir_d683bc3d3192fc80ec7b59eb6756d7d6.js @@ -0,0 +1,5 @@ +var dir_d683bc3d3192fc80ec7b59eb6756d7d6 = +[ + [ "include", "dir_59df94d8c79cd5668d4518ea58739506.html", "dir_59df94d8c79cd5668d4518ea58739506" ], + [ "libcxx.cpp", "libcxx_8cpp.html", "libcxx_8cpp" ] +]; \ No newline at end of file diff --git a/dir_d683bc3d3192fc80ec7b59eb6756d7d6_dep.map b/dir_d683bc3d3192fc80ec7b59eb6756d7d6_dep.map new file mode 100644 index 000000000..94d9c5c29 --- /dev/null +++ b/dir_d683bc3d3192fc80ec7b59eb6756d7d6_dep.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/dir_d683bc3d3192fc80ec7b59eb6756d7d6_dep.md5 b/dir_d683bc3d3192fc80ec7b59eb6756d7d6_dep.md5 new file mode 100644 index 000000000..3467b606d --- /dev/null +++ b/dir_d683bc3d3192fc80ec7b59eb6756d7d6_dep.md5 @@ -0,0 +1 @@ +e127432ccdfbb224558f196f3cad9476 \ No newline at end of file diff --git a/dir_d683bc3d3192fc80ec7b59eb6756d7d6_dep.png b/dir_d683bc3d3192fc80ec7b59eb6756d7d6_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..c94de26a54d9b6741b6c82c4ea852b4a20c353d4 GIT binary patch literal 3481 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 GKIEUh+J~9| literal 0 HcmV?d00001 diff --git a/dir_dfa008182f2a40cb988df1752e3cb29d.html b/dir_dfa008182f2a40cb988df1752e3cb29d.html new file mode 100644 index 000000000..db3fa2f9d --- /dev/null +++ b/dir_dfa008182f2a40cb988df1752e3cb29d.html @@ -0,0 +1,120 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/test/system_test Directory Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
system_test Directory Reference
+
+
+
+Directory dependency graph for system_test:
+
+
/home/runner/work/SimpleKernel/SimpleKernel/test/system_test
+ + + + + + + + +
+ + + + + + +

+Directories

directory  gnu_efi_test
 
directory  opensbi_test
 
+
+
+ + + + diff --git a/dir_dfa008182f2a40cb988df1752e3cb29d.js b/dir_dfa008182f2a40cb988df1752e3cb29d.js new file mode 100644 index 000000000..de93d7fbf --- /dev/null +++ b/dir_dfa008182f2a40cb988df1752e3cb29d.js @@ -0,0 +1,5 @@ +var dir_dfa008182f2a40cb988df1752e3cb29d = +[ + [ "gnu_efi_test", "dir_cfadb97a047f54946ed337ecdf10cbea.html", "dir_cfadb97a047f54946ed337ecdf10cbea" ], + [ "opensbi_test", "dir_7c016ae1625038972db0411832a49708.html", "dir_7c016ae1625038972db0411832a49708" ] +]; \ No newline at end of file diff --git a/dir_dfa008182f2a40cb988df1752e3cb29d_dep.map b/dir_dfa008182f2a40cb988df1752e3cb29d_dep.map new file mode 100644 index 000000000..39792b8cf --- /dev/null +++ b/dir_dfa008182f2a40cb988df1752e3cb29d_dep.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/dir_dfa008182f2a40cb988df1752e3cb29d_dep.md5 b/dir_dfa008182f2a40cb988df1752e3cb29d_dep.md5 new file mode 100644 index 000000000..245eedda5 --- /dev/null +++ b/dir_dfa008182f2a40cb988df1752e3cb29d_dep.md5 @@ -0,0 +1 @@ +0e6f88dbbe599c3a5ee358f42ce1fa5d \ No newline at end of file diff --git a/dir_dfa008182f2a40cb988df1752e3cb29d_dep.png b/dir_dfa008182f2a40cb988df1752e3cb29d_dep.png new file mode 100644 index 0000000000000000000000000000000000000000..3fa423aa740354527faa1480f372625c9b851f3c GIT binary patch literal 5019 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 literal 0 HcmV?d00001 diff --git a/docker_8md.html b/docker_8md.html new file mode 100644 index 000000000..ac3b7527f --- /dev/null +++ b/docker_8md.html @@ -0,0 +1,99 @@ + + + + + + + +SimpleKernel: docker.md File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
docker.md File Reference
+
+
+
+
+ + + + diff --git a/doxygen.css b/doxygen.css new file mode 100644 index 000000000..ffbff0224 --- /dev/null +++ b/doxygen.css @@ -0,0 +1,1793 @@ +/* The standard CSS for doxygen 1.9.1 */ + +body, table, div, p, dl { + font: 400 14px/22px Roboto,sans-serif; +} + +p.reference, p.definition { + font: 400 14px/22px Roboto,sans-serif; +} + +/* @group Heading Levels */ + +h1.groupheader { + font-size: 150%; +} + +.title { + font: 400 14px/28px Roboto,sans-serif; + font-size: 150%; + font-weight: bold; + margin: 10px 2px; +} + +h2.groupheader { + border-bottom: 1px solid #879ECB; + color: #354C7B; + 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 cyan; +} + +dt { + font-weight: bold; +} + +ul.multicol { + -moz-column-gap: 1em; + -webkit-column-gap: 1em; + column-gap: 1em; + -moz-column-count: 3; + -webkit-column-count: 3; + column-count: 3; +} + +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 { + border-right: 1px solid #A3B4D7; + 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: url('tab_a.png'); + background-repeat:repeat-x; + padding-right: 6px; + padding-left: 6px; +} + +td.navtabHL a, td.navtabHL a:visited { + color: #fff; + text-shadow: 0px 1px 1px rgba(0, 0, 0, 1.0); +} + +a.navtab { + font-weight: bold; +} + +div.qindex{ + text-align: center; + width: 100%; + line-height: 140%; + font-size: 130%; + color: #A0A0A0; +} + +dt.alphachar{ + font-size: 180%; + font-weight: bold; +} + +.alphachar a{ + color: black; +} + +.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.odd { + background-color: #F8F9FC; +} + +@media(min-width: 1120px) { + .classindex dl { + column-count:2 + } +} + +@media(min-width: 1320px) { + .classindex dl { + column-count:3 + } +} + + +/* @group Link Styling */ + +a { + color: #3D578C; + font-weight: normal; + text-decoration: none; +} + +.contents a:visited { + color: #4665A2; +} + +a:hover { + text-decoration: underline; +} + +.contents a.qindexHL:visited { + color: #FFFFFF; +} + +a.el { + font-weight: bold; +} + +a.elRef { +} + +a.code, a.code:visited, a.line, a.line:visited { + color: #4665A2; +} + +a.codeRef, a.codeRef:visited, a.lineRef, a.lineRef:visited { + color: #4665A2; +} + +/* @end */ + +dl.el { + margin-left: -1cm; +} + +ul { + overflow: hidden; /*Fixed: list item bullets overlap floating elements*/ +} + +#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 #C4CFE5; + background-color: #FBFCFD; + padding: 4px 6px; + margin: 4px 8px 4px 2px; + overflow: auto; + word-wrap: break-word; + font-size: 9pt; + line-height: 125%; + font-family: monospace, fixed; + font-size: 105%; +} + +div.fragment { + padding: 0 0 1px 0; /*Fixed: last line underline overlap border*/ + margin: 4px 8px 4px 2px; + background-color: #FBFCFD; + border: 1px solid #C4CFE5; +} + +div.line { + font-family: monospace, fixed; + font-size: 13px; + min-height: 13px; + line-height: 1.0; + 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: cyan; + box-shadow: 0 0 10px cyan; +} + + +span.lineno { + padding-right: 4px; + text-align: right; + border-right: 2px solid #0F0; + background-color: #E8E8E8; + white-space: pre; +} +span.lineno a { + background-color: #D8D8D8; +} + +span.lineno a:hover { + background-color: #C8C8C8; +} + +.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.ah, span.ah { + background-color: black; + font-weight: bold; + color: #FFFFFF; + margin-bottom: 3px; + margin-top: 3px; + padding: 0.2em; + border: solid thin #333; + border-radius: 0.5em; + -webkit-border-radius: .5em; + -moz-border-radius: .5em; + box-shadow: 2px 2px 3px #999; + -webkit-box-shadow: 2px 2px 3px #999; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + background-image: -webkit-gradient(linear, left top, left bottom, from(#eee), to(#000),color-stop(0.3, #444)); + background-image: -moz-linear-gradient(center top, #eee 0%, #444 40%, #000 110%); +} + +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 { + background-color: white; + color: black; + margin: 0; +} + +div.contents { + margin-top: 10px; + margin-left: 12px; + margin-right: 8px; +} + +td.indexkey { + background-color: #EBEFF6; + font-weight: bold; + border: 1px solid #C4CFE5; + margin: 2px 0px 2px 0; + padding: 2px 10px; + white-space: nowrap; + vertical-align: top; +} + +td.indexvalue { + background-color: #EBEFF6; + border: 1px solid #C4CFE5; + padding: 2px 10px; + margin: 2px 0px; +} + +tr.memlist { + background-color: #EEF1F7; +} + +p.formulaDsp { + text-align: center; +} + +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; +} + +/* @group Code Colorization */ + +span.keyword { + color: #008000 +} + +span.keywordtype { + color: #604020 +} + +span.keywordflow { + color: #e08000 +} + +span.comment { + color: #800000 +} + +span.preprocessor { + color: #806020 +} + +span.stringliteral { + color: #002080 +} + +span.charliteral { + color: #008080 +} + +span.vhdldigit { + color: #ff00ff +} + +span.vhdlchar { + color: #000000 +} + +span.vhdlkeyword { + color: #700070 +} + +span.vhdllogic { + color: #ff0000 +} + +blockquote { + background-color: #F7F8FB; + border-left: 2px solid #9CAFD4; + margin: 0 24px 0 4px; + padding: 0 12px 0 16px; +} + +blockquote.DocNodeRTL { + border-left: 0; + border-right: 2px solid #9CAFD4; + margin: 0 4px 0 24px; + padding: 0 16px 0 12px; +} + +/* @end */ + +/* +.search { + color: #003399; + font-weight: bold; +} + +form.search { + margin-bottom: 0px; + margin-top: 0px; +} + +input.search { + font-size: 75%; + color: #000080; + font-weight: normal; + background-color: #e8eef2; +} +*/ + +td.tiny { + font-size: 75%; +} + +.dirtab { + padding: 4px; + border-collapse: collapse; + border: 1px solid #A3B4D7; +} + +th.dirtab { + background: #EBEFF6; + font-weight: bold; +} + +hr { + height: 0px; + border: none; + border-top: 1px solid #4A6AAA; +} + +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: cyan; + box-shadow: 0 0 15px cyan; +} + +.mdescLeft, .mdescRight, +.memItemLeft, .memItemRight, +.memTemplItemLeft, .memTemplItemRight, .memTemplParams { + background-color: #F9FAFC; + border: none; + margin: 4px; + padding: 1px 0 0 8px; +} + +.mdescLeft, .mdescRight { + padding: 0px 8px 4px 8px; + color: #555; +} + +.memSeparator { + border-bottom: 1px solid #DEE4F0; + line-height: 1px; + margin: 0px; + padding: 0px; +} + +.memItemLeft, .memTemplItemLeft { + white-space: nowrap; +} + +.memItemRight, .memTemplItemRight { + width: 100%; +} + +.memTemplParams { + color: #4665A2; + white-space: nowrap; + font-size: 80%; +} + +/* @end */ + +/* @group Member Details */ + +/* Styles for detailed member documentation */ + +.memtitle { + padding: 8px; + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + border-top-right-radius: 4px; + border-top-left-radius: 4px; + margin-bottom: -1px; + background-image: url('nav_f.png'); + background-repeat: repeat-x; + background-color: #E2E8F2; + line-height: 1.25; + font-weight: 300; + float:left; +} + +.permalink +{ + font-size: 65%; + display: inline-block; + vertical-align: middle; +} + +.memtemplate { + font-size: 80%; + color: #4665A2; + font-weight: normal; + margin-left: 9px; +} + +.memnav { + background-color: #EBEFF6; + border: 1px solid #A3B4D7; + text-align: center; + margin: 2px; + margin-right: 15px; + padding: 2px; +} + +.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 cyan; +} + +.memname { + font-weight: 400; + margin-left: 6px; +} + +.memname td { + vertical-align: bottom; +} + +.memproto, dl.reflist dt { + border-top: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 0px 6px 0px; + color: #253555; + font-weight: bold; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + background-color: #DFE5F1; + /* opera specific markup */ + box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + border-top-right-radius: 4px; + /* firefox specific markup */ + -moz-box-shadow: rgba(0, 0, 0, 0.15) 5px 5px 5px; + -moz-border-radius-topright: 4px; + /* webkit specific markup */ + -webkit-box-shadow: 5px 5px 5px rgba(0, 0, 0, 0.15); + -webkit-border-top-right-radius: 4px; + +} + +.overload { + font-family: "courier new",courier,monospace; + font-size: 65%; +} + +.memdoc, dl.reflist dd { + border-bottom: 1px solid #A8B8D9; + border-left: 1px solid #A8B8D9; + border-right: 1px solid #A8B8D9; + padding: 6px 10px 2px 10px; + background-color: #FBFCFD; + border-top-width: 0; + background-image:url('nav_g.png'); + background-repeat:repeat-x; + background-color: #FFFFFF; + /* 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: #602020; + 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: "courier new",courier,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: #728DC1; + border-top:1px solid #5373B4; + border-left:1px solid #5373B4; + border-right:1px solid #C4CFE5; + border-bottom:1px solid #C4CFE5; + text-shadow: none; + color: white; + 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 #9CAFD4; + border-bottom: 1px solid #9CAFD4; + 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.even { + padding-left: 6px; + background-color: #F7F8FB; +} + +.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: #3D578C; +} + +.arrow { + color: #9CAFD4; + -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: Arial, Helvetica; + font-weight: bold; + font-size: 12px; + height: 14px; + width: 16px; + display: inline-block; + background-color: #728DC1; + color: white; + 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:url('folderopen.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.iconfclosed { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('folderclosed.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +.icondoc { + width: 24px; + height: 18px; + margin-bottom: 4px; + background-image:url('doc.png'); + background-position: 0px -4px; + background-repeat: repeat-y; + vertical-align:top; + display: inline-block; +} + +table.directory { + font: 400 14px Roboto,sans-serif; +} + +/* @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: #2A3D61; +} + +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 #2D4068; + padding: 3px 7px 2px; +} + +table.doxtable th { + background-color: #374F7F; + color: #FFFFFF; + font-size: 110%; + padding-bottom: 4px; + padding-top: 5px; +} + +table.fieldtable { + /*width: 100%;*/ + margin-bottom: 10px; + border: 1px solid #A8B8D9; + border-spacing: 0px; + -moz-border-radius: 4px; + -webkit-border-radius: 4px; + border-radius: 4px; + -moz-box-shadow: rgba(0, 0, 0, 0.15) 2px 2px 2px; + -webkit-box-shadow: 2px 2px 2px rgba(0, 0, 0, 0.15); + 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 #A8B8D9; + border-bottom: 1px solid #A8B8D9; + vertical-align: top; +} + +.fieldtable td.fieldname { + padding-top: 3px; +} + +.fieldtable td.fielddoc { + border-bottom: 1px solid #A8B8D9; + /*width: 100%;*/ +} + +.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:url('nav_f.png'); + background-repeat:repeat-x; + background-color: #E2E8F2; + font-size: 90%; + color: #253555; + padding-bottom: 4px; + padding-top: 5px; + text-align:left; + font-weight: 400; + -moz-border-radius-topleft: 4px; + -moz-border-radius-topright: 4px; + -webkit-border-top-left-radius: 4px; + -webkit-border-top-right-radius: 4px; + border-top-left-radius: 4px; + border-top-right-radius: 4px; + border-bottom: 1px solid #A8B8D9; +} + + +.tabsearch { + top: 0px; + left: 10px; + height: 36px; + background-image: url('tab_b.png'); + z-index: 101; + overflow: hidden; + font-size: 13px; +} + +.navpath ul +{ + font-size: 11px; + background-image:url('tab_b.png'); + background-repeat:repeat-x; + background-position: 0 -5px; + height:30px; + line-height:30px; + color:#8AA0CC; + border:solid 1px #C2CDE4; + overflow:hidden; + margin:0px; + padding:0px; +} + +.navpath li +{ + list-style-type:none; + float:left; + padding-left:10px; + padding-right:15px; + background-image:url('bc_s.png'); + background-repeat:no-repeat; + background-position:right; + color:#364D7C; +} + +.navpath li.navelem a +{ + height:32px; + display:block; + text-decoration: none; + outline: none; + color: #283A5D; + font-family: 'Lucida Grande',Geneva,Helvetica,Arial,sans-serif; + text-shadow: 0px 1px 1px rgba(255, 255, 255, 0.9); + text-decoration: none; +} + +.navpath li.navelem a:hover +{ + color:#6884BD; +} + +.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:#364D7C; + 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:url('nav_h.png'); + background-repeat:repeat-x; + background-color: #F9FAFC; + margin: 0px; + border-bottom: 1px solid #C4CFE5; +} + +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.section.DocNodeRTL { + margin-right: 0px; + padding-right: 0px; +} + +dl.note { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #D0C000; +} + +dl.note.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #D0C000; +} + +dl.warning, dl.attention { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #FF0000; +} + +dl.warning.DocNodeRTL, dl.attention.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 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.pre.DocNodeRTL, dl.post.DocNodeRTL, dl.invariant.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00D000; +} + +dl.deprecated { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #505050; +} + +dl.deprecated.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #505050; +} + +dl.todo { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #00C0E0; +} + +dl.todo.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #00C0E0; +} + +dl.test { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #3030E0; +} + +dl.test.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #3030E0; +} + +dl.bug { + margin-left: -7px; + padding-left: 3px; + border-left: 4px solid; + border-color: #C08050; +} + +dl.bug.DocNodeRTL { + margin-left: 0; + padding-left: 0; + border-left: 0; + margin-right: -7px; + padding-right: 3px; + border-right: 4px solid; + border-color: #C08050; +} + +dl.section dd { + margin-bottom: 6px; +} + + +#projectlogo +{ + text-align: center; + vertical-align: bottom; + border-collapse: separate; +} + +#projectlogo img +{ + border: 0px none; +} + +#projectalign +{ + vertical-align: middle; +} + +#projectname +{ + font: 300% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 2px 0px; +} + +#projectbrief +{ + font: 120% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#projectnumber +{ + font: 50% Tahoma, Arial,sans-serif; + margin: 0px; + padding: 0px; +} + +#titlearea +{ + padding: 0px; + margin: 0px; + width: 100%; + border-bottom: 1px solid #5373B4; +} + +.image +{ + text-align: center; +} + +.dotgraph +{ + text-align: center; +} + +.mscgraph +{ + text-align: center; +} + +.plantumlgraph +{ + text-align: center; +} + +.diagraph +{ + text-align: center; +} + +.caption +{ + font-weight: bold; +} + +div.zoom +{ + border: 1px solid #90A5CE; +} + +dl.citelist { + margin-bottom:50px; +} + +dl.citelist dt { + color:#334975; + 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: #F4F6FA; + border: 1px solid #D8DFEE; + border-radius: 7px 7px 7px 7px; + float: right; + height: auto; + margin: 0 8px 10px 10px; + width: 200px; +} + +.PageDocRTL-title div.toc { + float: left !important; + text-align: right; +} + +div.toc li { + background: url("bdwn.png") no-repeat scroll 0 5px transparent; + font: 10px/1.2 Verdana,DejaVu Sans,Geneva,sans-serif; + margin-top: 5px; + padding-left: 10px; + padding-top: 2px; +} + +.PageDocRTL-title div.toc li { + background-position-x: right !important; + padding-left: 0 !important; + padding-right: 10px; +} + +div.toc h3 { + font: bold 12px/1.2 Arial,FreeSans,sans-serif; + color: #4665A2; + 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: 30px; +} + +div.toc li.level4 { + margin-left: 45px; +} + +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; + */ +} + +.PageDocRTL-title div.toc li.level1 { + margin-left: 0 !important; + margin-right: 0; +} + +.PageDocRTL-title div.toc li.level2 { + margin-left: 0 !important; + margin-right: 15px; +} + +.PageDocRTL-title div.toc li.level3 { + margin-left: 0 !important; + margin-right: 30px; +} + +.PageDocRTL-title div.toc li.level4 { + margin-left: 0 !important; + margin-right: 45px; +} + +.inherit_header { + font-weight: bold; + color: gray; + 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; + background-color: white; + border: 1px solid gray; + border-radius: 4px 4px 4px 4px; + box-shadow: 1px 1px 7px gray; + display: none; + font-size: smaller; + max-width: 80%; + opacity: 0.9; + padding: 1ex 1em 1em; + position: absolute; + z-index: 2147483647; +} + +#powerTip div.ttdoc { + color: grey; + font-style: italic; +} + +#powerTip div.ttname a { + font-weight: bold; +} + +#powerTip div.ttname { + font-weight: bold; +} + +#powerTip div.ttdeci { + color: #006318; +} + +#powerTip div { + margin: 0px; + padding: 0px; + font: 12px/16px Roboto,sans-serif; +} + +#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: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} +#powerTip.n:before { + border-top-color: #808080; + 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: #FFFFFF; + border-width: 10px; + margin: 0px -10px; +} + +#powerTip.s:before, #powerTip.se:before, #powerTip.sw:before { + border-bottom-color: #808080; + 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: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.e:before { + border-left-color: #808080; + border-width: 11px; + top: 50%; + margin-top: -11px; +} + +#powerTip.w:after, #powerTip.w:before { + right: 100%; +} +#powerTip.w:after { + border-right-color: #FFFFFF; + border-width: 10px; + top: 50%; + margin-top: -10px; +} +#powerTip.w:before { + border-right-color: #808080; + 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 #2D4068; + padding: 3px 7px 2px; +} + +table.markdownTable tr { +} + +th.markdownTableHeadLeft, th.markdownTableHeadRight, th.markdownTableHeadCenter, th.markdownTableHeadNone { + background-color: #374F7F; + color: #FFFFFF; + 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 +} + +.DocNodeRTL { + text-align: right; + direction: rtl; +} + +.DocNodeLTR { + text-align: left; + direction: ltr; +} + +table.DocNodeRTL { + width: auto; + margin-right: 0; + margin-left: auto; +} + +table.DocNodeLTR { + width: auto; + margin-right: auto; + margin-left: 0; +} + +tt, code, kbd, samp +{ + display: inline-block; + direction:ltr; +} +/* @end */ + +u { + text-decoration: underline; +} + diff --git a/doxygen.svg b/doxygen.svg new file mode 100644 index 000000000..d42dad52d --- /dev/null +++ b/doxygen.svg @@ -0,0 +1,26 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/driver_8cpp.html b/driver_8cpp.html new file mode 100644 index 000000000..7700d3b6d --- /dev/null +++ b/driver_8cpp.html @@ -0,0 +1,191 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/driver/driver.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
driver.cpp File Reference
+
+
+ +

driver cpp +More...

+
#include "driver.h"
+
+Include dependency graph for driver.cpp:
+
+
+ + + + + +
+
+

Go to the source code of this file.

+ + + + + +

+Functions

int32_t driver (uint32_t _argc, uint8_t **_argv)
 入口 More...
 
+

Detailed Description

+

driver cpp

+
Author
Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
+
Version
1.0
+
Date
2023-07-15
+ +
change log:
+ + + + +
DateAuthorDescription
2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
+
+ +

Definition in file driver.cpp.

+

Function Documentation

+ +

◆ driver()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int32_t driver (uint32_t _argc,
uint8_t ** _argv 
)
+
+ +

入口

+
Parameters
+ + + +
_argc参数个数
_argv参数列表
+
+
+
Returns
int32_t 正常返回 0
+ +

Definition at line 19 of file driver.cpp.

+
19  {
+
20  (void)_argc;
+
21  (void)_argv;
+
22 
+
23  // 进入死循环
+
24  while (1) {
+
25  ;
+
26  }
+
27 
+
28  return 0;
+
29 }
+
+
+
+
+
+ + + + diff --git a/driver_8cpp.js b/driver_8cpp.js new file mode 100644 index 000000000..4ac88d1e7 --- /dev/null +++ b/driver_8cpp.js @@ -0,0 +1,4 @@ +var driver_8cpp = +[ + [ "driver", "driver_8cpp.html#a06475316d2443b94d393c59426f08649", null ] +]; \ No newline at end of file diff --git a/driver_8cpp__incl.map b/driver_8cpp__incl.map new file mode 100644 index 000000000..dead45122 --- /dev/null +++ b/driver_8cpp__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/driver_8cpp__incl.md5 b/driver_8cpp__incl.md5 new file mode 100644 index 000000000..23eb0fe62 --- /dev/null +++ b/driver_8cpp__incl.md5 @@ -0,0 +1 @@ +24565fb6e1ab2ced537c0ac345981e5b \ No newline at end of file diff --git a/driver_8cpp__incl.png b/driver_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..9276c4763d3a851aefbc2ed26b32f38c856936fc GIT binary patch literal 6132 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 + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/driver/driver.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
driver.cpp
+
+
+Go to the documentation of this file.
1 
+
17 #include "driver.h"
+
18 
+
19 int32_t driver(uint32_t _argc, uint8_t **_argv) {
+
20  (void)_argc;
+
21  (void)_argv;
+
22 
+
23  // 进入死循环
+
24  while (1) {
+
25  ;
+
26  }
+
27 
+
28  return 0;
+
29 }
+
int32_t driver(uint32_t _argc, uint8_t **_argv)
入口
Definition: driver.cpp:19
+
driver 头文件
+
+
+ + + + diff --git a/driver_8h.html b/driver_8h.html new file mode 100644 index 000000000..bbb438d1f --- /dev/null +++ b/driver_8h.html @@ -0,0 +1,199 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/driver/include/driver.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
driver.h File Reference
+
+
+ +

driver 头文件 +More...

+
#include "cstdint"
+
+Include dependency graph for driver.h:
+
+
+ + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + + +

+Functions

int32_t driver (uint32_t _argc, uint8_t **_argv)
 入口 More...
 
+

Detailed Description

+

driver 头文件

+
Author
Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
+
Version
1.0
+
Date
2023-07-15
+ +
change log:
+ + + + +
DateAuthorDescription
2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
+
+ +

Definition in file driver.h.

+

Function Documentation

+ +

◆ driver()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int32_t driver (uint32_t _argc,
uint8_t ** _argv 
)
+
+ +

入口

+
Parameters
+ + + +
_argc参数个数
_argv参数列表
+
+
+
Returns
int32_t 正常返回 0
+ +

Definition at line 19 of file driver.cpp.

+
19  {
+
20  (void)_argc;
+
21  (void)_argv;
+
22 
+
23  // 进入死循环
+
24  while (1) {
+
25  ;
+
26  }
+
27 
+
28  return 0;
+
29 }
+
+
+
+
+
+ + + + diff --git a/driver_8h.js b/driver_8h.js new file mode 100644 index 000000000..affe20e77 --- /dev/null +++ b/driver_8h.js @@ -0,0 +1,4 @@ +var driver_8h = +[ + [ "driver", "driver_8h.html#a06475316d2443b94d393c59426f08649", null ] +]; \ No newline at end of file diff --git a/driver_8h__dep__incl.map b/driver_8h__dep__incl.map new file mode 100644 index 000000000..0a092522f --- /dev/null +++ b/driver_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/driver_8h__dep__incl.md5 b/driver_8h__dep__incl.md5 new file mode 100644 index 000000000..b82c087e8 --- /dev/null +++ b/driver_8h__dep__incl.md5 @@ -0,0 +1 @@ +5d18148ae5fce66ae57e53f13df8c889 \ No newline at end of file diff --git a/driver_8h__dep__incl.png b/driver_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..154a7ad0c3de60b6ceacc0f197640e24045f330c GIT binary patch literal 7812 zcmd5>g9L6I6l5u~KKXMW$k z_q+GG|G<4|@EAWD5 zrX(i~xkLWscfL=CKpqPzNK0sWW$)*BYr(9S2AxBKsq!adjFp>3a<7 zJd?_@PH{SEZHp{QM~VL56xJT57CMg-;86u5Nlg zR9!RIAwz8ai$#t()ir*^E)L?Q82 zuE0f_WKm#hdb-YX58WUw|adENEK_j=ZsVPlTax$0g6n#!)p&Fdq($ccUeH-^@ zgARh|qtiFI<8FZ(9NK+-ge`ipNi=7B!b26-NAT~_3y6;&prNggX7DV%;FB4___N@D zGASqMx_*D2`(3!v1(Uu^+0euTGQQQkyKC!}E`NjMiWx!4iBD*&9&b-!#KbiG{15Nl zyLWheEM;LqUteFJe(~zpLeL`~E0?l&-3=GoA@#6_4+~36(fY%o(=#l5arnITy#n8o ze7*_m7?+R8k=~`gv~e_@U9X)KoNGUEN4&S_m6D)6=Io zi;Ih1`;GJXWMo(*BqR`VZEfNv=he8F7#v6sxpPO*j~^!KnVBdy7b{#=qogaHz9g-! ztvk!j9JF+FuEz)!dIpAq>S|mgBO?rKZ1W~vW8?UN0qK`*9+-`djV^9(ebL0M6V1-X zIu z%!lJ7jE#*8;3H0|N#WsWewVxNZS3s&+B|rEYYu`J4YwPMH9wYB)|uMcGX{Dh~brdowjZMtY>$Z$J&gK^uq7)Pq>`cGM<9Ay5M5?NxI-VnSt7pt z;W&>_q@<)qvxSJXwY9x2PnZ=I64{2Fhw7tDOH8r(2-p7cw zrAB**{^*k~J63(`CNdZdMlC2vn#`!u_a%k3q*P&#AWHiDXoTZY$XGfTYHx3^yo!or zbNCku1FqZKTbEa_!oin+_dO6v&&t}EDp9JMtFl3Eg446Wn^RpuA)(%dg>>&4>+#&t zJ17)-uVH2AU0Rxyu`yL@YU-#5IXO9mE$rvF_SY3#P#hc+8ylw6`T3q62)Gxb|C~2} zYangw&&Dt*rwOD&78@J8Rck}H4LnGb^^L$$K9A{F%$9Ev56$a(g< zu&e8Fv-9c@C@To0q@)CEHlqsdiE6HN{9_SL`?*S;X^Yd7-Dz|XZ^)arHu&}R@%W4O zS8PoVizwFC+d3m7bMoKoh|Mi6XZJky^z++3cb=6mH>Hlst7QlIvMOb7=MFfcgCl}E66B5&s4 z5Tp0eYVB~XAC$dL7DDquT{*pRJe642tY7q8240!}^5V=)sBz$p_TEP=-xqp%rkkG< zk;RfL>K{EdrE$GMb=TA4x{=;J^u-J;0c>1h zg8rAhc6N4$o1cjWhKDPP<%nY)YIk3`xtUdSt{aSktzW-7=(aXO-J8_|5e>XrUNv!c zj!$9L@epczaykzyOI{!U5N$QW3b?6-MeeohN|7ic{lu zc5HqvenclAASkP>4DIX`L5%0cR~xpkU!MNNvIPLkyuQB9>3inz!oa{BF`6;jkE1e? zE6cxNx7=utOivmP4!pCoGl+gJC*zYRN*Q=+HDk1i7;9^53w7q`l9H0O-p5uj5)!3d zP@8zyH#e?_KO{hL7nPS|HZ?VAsK)Sx<>gTUEX#PGljnbyF|%Jm|79+NRl2_0=+*h5 zX~)&?_7<15U`bZwfH*if_@ty|#6g+j7-Wk-vYe_cSe>w~ z_TBslXuHH+Tbo!kHWneyZ5O3-J0QHww|!~j7!q{ke$!tCL?q?R>0UCy923*iKQ-R3 znlRObN|LH@+>brl!MN%nrkwNJlT>AiZkmj|prxg)^}l+B@RX85Ei5Xk^ZH{}UZCtJ z{z;vbW-eojpX_c_*U&Jwtc;12oP49ArYnhTY>+JiR2SXMV?}`*Lz}kZ3vKg+ewk zQ~F&ddp~a&T58+P;_+kj^nXsE-o%6VCduXKju5TyS+blXvui; zz+f&eoG~#m_zxe3x3mbxka9_GF{${L5t1XvE0|sU_Kgyt4Rz=bkmMMcn7yDkK1x>F zt7~YGc6aA_EaEd@f%lA?>@N49A5Uzc!~3|_=hV)^%F2#mz2F!8nHfwL!?WwvJ{d?) z^_MSWhK6K$1q3!gP;8u>oZNlE)A`lvU0iT5%FNu{`uU#?c~waszp;!`A`TXqP+?`u!| ztC}Y|NMh_4R9X2HG_U5%5-Wa{&!0al@2y2p1@wGQev+7w(DPJNLnHX&czXj7#M*`i zt#*ZId3rMy{RZ7M&^N+}P}~utw#^DL9c0YQW#Qv|X~mu4Vta*+vdj?QkI=5z4)iyw zVmB}}G_-~8KruipBB$T0HfMHsma=G;DuWuhcXV`={`YyFDAd~88i8%?nN{2%+o&wuUPXZd0X>W$+Oy8rKncvO@s)Zmrvv;>oW?qPe-b7xfkj6_!i( zAI$9Rq5-CF05E|-BryUmcb_QdiBi7Vi$ZN``!c0t$eV$mpi5^-K6}`Th@R6W`uC{g zU%$#UJAEsj8|VLEWTZ(y|Mxr|_K6FM>5$k^512J3BeWk#HF0fA|p1+~7bcL7-C8eG3QhmynwqH#4K<b+;+OOT;#}T(zAZo5Tx_o&!1d@w|>a`mX{3}C_(-A$C3+} zSXzeBNQIYG*0JS$0fmL?>+35mE&ZeO?{}%^&v9krAAf}(04Agk&~)*mH60wD+3HV3 zS0lT>pQmP5ZI8@wh0sD>COB~c-TvEpk4stRBn+7vH4hd^xg`>nDQ2<~d0JSf8xzZf zo!6tVyAH2ESp5-qP!6Mxfzb@}TJzz&)>LWr+_67Jt(37m)=nFPZ*{5f3wp9(H#TN| zPE+^5=F5W!`S7A%Ua|=_=+ zEVdMY_=g996=xwWFsFP35ypcDs);GuG5j47Lqm-843h?`G+;~d1FpGD&h*zGo;h zGQ_0(%9qx2BO`e~^&iW~?DW_Lx&2!3d}?sUA?$O)Ft5S%K>}Szlj-F@^7{XV6=?4N zUvCy@80@eaG*OF)7*6XmDXJMc;r!qOvOU6{IVZQamb0a`mANxpQMc>l#N%bFn@oxf zGg+Z(9z2H1c%U)nxvHBRHx@Rww!TgYD;1=rt&NtMSz&gN`5kVMJiUgu-epF-L^&Q!Wt@5_Sl<8vx1SV5V!rqVp~ohzG6!Tp+Kgi0+`9 z4i+rSe_m=(`Q*tHbYKS5*4B#G7(8pz}XsgjlaBVFi+gq)n%4v0^wCgv0y3euZXaWb8~9p;y0b4F=5^fSn6lvZja6mXd-(Z_Fc}{P*+q zi@$z30OaZgR2>kGp>eUh(NP0H8IZlQuMfrl>TJ;X_J~AFON(`bBpf-eD@_(x?Rg(an=CTonvkZ9i3)y2fbWTRR1@gt9! znHi_|kp-|8kUTr0s)}taS7c<=SWD|ZkQrblvbqiq4p~5z1ocjL4L2#$quMK*|49ZO(I;Lo}TGK?u=HW=|M|NOFEuUSy}sm5Jh6; z!qQS7P$ru1pASY6JxTYrbbh8S)C2G_p;L`1u%;wAb5y?c$->TL0+6HR}Kd1>3}#X|N(RD4Dd?*Gw6}*A@Kz{VR^mR$5%? zX=o&>%%9oKFilnHa=5MaJTQ~_cnG9%*=GaH-bw{Y6+U|I+@fMN~1j61g%)`*I- zGU}nBp-s>=LK9NW9KUzy*})+iT3XV;#*u?0TwnWHU4G3Hz=Ry_Oww6hfU4x2=6Km6 z4k8WA6VvZmVu7Mj(b2S_*W>iSBpE#c3f0WYN*0iXrJ0t18=vwUwE;gzlDq7y>R7dN)Dl6?^f*oX;GykPN4 zoxn1~gM1nvM~5sdEQr$+N`PM=Ie|md4=QnK#>U$E{Yh6-qw!HGYvDh}0JCN(k~RbF zg|f1;!s&nMku4VZn2(PSaNOZ{%$gAKHTcI_lfS>eaq{!a0z0I_w%!Mn6H+Asiv`JR zfodHFsdG5O(cPdfu@zU9eh(F`!N*W*#^<`C&~uI-&SR{oh;@B^4a@v{cYAO*v9J&s zfk(xCu(h?tHLX-avSHd6_CF7Z)F``v0W_ zJ{QtC`t(UY<)o}I5z7CKh*7!cqxCq_Z$z*NSbl*yEHy-VL(6ox*$vxF?rv{LxyC#Zh7d6A1)bj*Zgy>{o9BjTC@? zRFGm%jk_qYA3l8pOrAb6vAb(`;79Zi4WR*q^}5<`o}DU=0Y-oaIT@K*Unu6zTorkC zb~Xfp#6GZ|;!*T6U272$5qf(1o{T&sP_PG3NK8!3 z^WW_U`nKw63`(igjErc2k|XK<^K3yH&nuRwde1qu!n*()EiBhJnv?RAAG9lg(-jHG zBuhJU4$b{oheH(sU7u{wF@QV!cQw%X{W5Wsw4lchK4L7V;#Z*py!EK0xR}Xr2WySbd)GrdS0N_!%vZfPFsP`%hxwqVAU`AWPdrWQok`eY9dmdL9xh5Snd_C2u)vn zA4b&}@ac=~=c_jX{Vwk6$}N8XJ{kCD<(HrK{`~#>1Y{~Ta0MAb@z9Hk<^m{hfQz<4 zBqL$ozP>~}JUl=>DLQ>?W8hPnWr}V4L$R1#NGEL?sx*?PVv~oHd~qFq{f|9YQWIFOdd;VROR7ZrU$Ejt!cf!lI%uzxy4lWDB~YYz)U+(>?}h zu>;(>_7T?T!k_P?6PZSV;p+l=91z%grff$hZ~M-#u9`DdGvJuzV*vpH$YT+}E^sLX z-+)G52+AFFma3DJgHGI|65} zQZEGP{0^T}Eby_inwm5pCWdwqaCm^UzXPxTpns^S06O^%m}W(Bo|52Ik_Zb6maD5P zasrBq(K@t`zf^uKk~KXy+Ez$rEC5FE;h#SefTSI6r5UdSClln6t-J5l*?vfJG7&f= z;4ZH{_4DKr$dQmYGqVQrBk=x|lp{wv+laPf?LL0{J zLgsZvyZAQMUQwTdna~hMsTmo4M+nc?7;j&vY7*qYzV_Q6d!mIV#o$Ljr|DHX#&m3G zhx>SDfd9wFP!2|)G)(@MoMeUNKr9npfA@|M_C5;T+}Z->6$#3lcPS~2&#Kgn{6B7y7w^s+Fmtwc) z=IdKqgB?1}iCC+i(Y73|)Etu;%Q4$zAlYP)*i@OP-%F3zZO(CsRa^k` zbM*)StsPV(dt*RT;@=~(nx`*Y@ImqqkEC(9-d=laX=`(JM^{D3viQw0%O-9HchE-` zDiE-*rCcm%JaB*tX*n`YJ^sKuo-kt%4o;Sq^vj2s*Tdf>eVRU*GjJ{dxh)uQEqHq| z9=NU=cu90DCrJc0tx_|_!mWU9lTSvy!4@m+aLCV*kHysfQ}6KP1uiZwsaSw;a7c){ zj!rn33lP-$wv;|TKIcC|@M;~G`6)zvU~eC?Y3LOtcmSV;8+DFYf&G(GFjFRMjqrPV zO{XjanAtf$oXW-)uA!-k3Vb=x57$HRMAa0A`@*nY!O7CX^72Nkz;`v|AYW+z+2}%L zjZhw~i{i3abaqoy(<)K=<3|NM#L>?!@x>nKdbTl2$a(#s{qMXX_+CsF%D?oF-Sm;C zj~pDKM$^_XN2_I)9wM5OC3hYEeX9CD6kgeN1CNl9UU^+I3`>SAC7_u{M1&Hw=A{X# z0t{RLqS|PVPs%NTJ}Trtk#lE;Rp%p$)C7YwfozIohrpjV6Jf~+z65Nk|F78BTSi83 PtPD|*c`jWoX%hS&3{cvN literal 0 HcmV?d00001 diff --git a/driver_8h__incl.map b/driver_8h__incl.map new file mode 100644 index 000000000..01224c773 --- /dev/null +++ b/driver_8h__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/driver_8h__incl.md5 b/driver_8h__incl.md5 new file mode 100644 index 000000000..8ec15a4d8 --- /dev/null +++ b/driver_8h__incl.md5 @@ -0,0 +1 @@ +ee3b40b1df991b6bdb2f0a6a121e2119 \ No newline at end of file diff --git a/driver_8h__incl.png b/driver_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..c603e11a5932b8cfcba01ed5c84d2994b3adca50 GIT binary patch literal 5242 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 literal 0 HcmV?d00001 diff --git a/driver_8h_source.html b/driver_8h_source.html new file mode 100644 index 000000000..30aa3b646 --- /dev/null +++ b/driver_8h_source.html @@ -0,0 +1,109 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/driver/include/driver.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
driver.h
+
+
+Go to the documentation of this file.
1 
+
17 #ifndef SIMPLEKERNEL_DRIVER_H
+
18 #define SIMPLEKERNEL_DRIVER_H
+
19 
+
20 #include "cstdint"
+
21 
+
28 int32_t driver(uint32_t _argc, uint8_t **_argv);
+
29 
+
30 #endif /* SIMPLEKERNEL_DRIVER_H */
+
int32_t driver(uint32_t _argc, uint8_t **_argv)
入口
Definition: driver.cpp:19
+
+
+ + + + diff --git a/dynsections.js b/dynsections.js new file mode 100644 index 000000000..88f2c27e6 --- /dev/null +++ b/dynsections.js @@ -0,0 +1,128 @@ +/* + @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'); +} + +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 + + + + + + +SimpleKernel: File List + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
File List
+
+
+
Here is a list of all files with brief descriptions:
+
[detail level 12345]
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
  src
  boot
  include
 boot.hBoot 头文件
 load_elf.hLoad_elf h
 ostream.hppOstream hpp
 boot.cppBoot cpp
 graphics.cpp图形相关
 load_elf.cpp加载 elf 文件
 memory.cpp内存相关
 ostream.cpp输出
  kernel
  arch
  aarch64
 arch.cppArch cpp
  include
 arch.hArch 头文件
  riscv64
 arch.cppArch cpp
  x86_64
 arch.cppArch cpp
 arch.cppArch cpp
  driver
  include
 driver.hDriver 头文件
 driver.cppDriver cpp
  include
 kernel.h内核头文件
  libc
  include
 libc.hLibc 头文件
 libc.c
  libcxx
  include
 libcxx.hLibcxx 头文件
 libcxx.cppLibcxx cpp
 main.cpp内核入口
 project_config.hProject_config 头文件,此文件由 cmake 自动生成,不要手动修改
  test
  integration_test
 example.cpp集成测试示例
  system_test
  gnu_efi_test
 boot.cppBoot cpp
 main.cpp内核入口
  opensbi_test
 boot.cppBoot cpp
  unit_test
 example.cpp单元测试示例
 tools
+
+
+
+ + + + diff --git a/files_dup.js b/files_dup.js new file mode 100644 index 000000000..a3610d451 --- /dev/null +++ b/files_dup.js @@ -0,0 +1,6 @@ +var files_dup = +[ + [ "src", "dir_68267d1309a1af8e8297ef4c3efbcdba.html", "dir_68267d1309a1af8e8297ef4c3efbcdba" ], + [ "test", "dir_13e138d54eb8818da29c3992edef070a.html", "dir_13e138d54eb8818da29c3992edef070a" ], + [ "tools", "dir_4eeb864c4eec08c7d6b9d3b0352cfdde.html", null ] +]; \ No newline at end of file diff --git a/folderclosed.png b/folderclosed.png new file mode 100644 index 0000000000000000000000000000000000000000..bb8ab35edce8e97554e360005ee9fc5bffb36e66 GIT binary patch literal 616 zcmV-u0+;=XP)a9#ETzayK)T~Jw&MMH>OIr#&;dC}is*2Mqdf&akCc=O@`qC+4i z5Iu3w#1M@KqXCz8TIZd1wli&kkl2HVcAiZ8PUn5z_kG@-y;?yK06=cA0U%H0PH+kU zl6dp}OR(|r8-RG+YLu`zbI}5TlOU6ToR41{9=uz^?dGTNL;wIMf|V3`d1Wj3y!#6` zBLZ?xpKR~^2x}?~zA(_NUu3IaDB$tKma*XUdOZN~c=dLt_h_k!dbxm_*ibDM zlFX`g{k$X}yIe%$N)cn1LNu=q9_CS)*>A zsX_mM4L@`(cSNQKMFc$RtYbx{79#j-J7hk*>*+ZZhM4Hw?I?rsXCi#mRWJ=-0LGV5a-WR0Qgt<|Nqf)C-@80`5gIz45^_20000IqP)X=#(TiCT&PiIIVc55T}TU}EUh*{q$|`3@{d>{Tc9Bo>e= zfmF3!f>fbI9#GoEHh0f`i5)wkLpva0ztf%HpZneK?w-7AK@b4Itw{y|Zd3k!fH?q2 zlhckHd_V2M_X7+)U&_Xcfvtw60l;--DgZmLSw-Y?S>)zIqMyJ1#FwLU*%bl38ok+! zh78H87n`ZTS;uhzAR$M`zZ`bVhq=+%u9^$5jDplgxd44}9;IRqUH1YHH|@6oFe%z( zo4)_>E$F&^P-f(#)>(TrnbE>Pefs9~@iN=|)Rz|V`sGfHNrJ)0gJb8xx+SBmRf@1l zvuzt=vGfI)<-F9!o&3l?>9~0QbUDT(wFdnQPv%xdD)m*g%!20>Bc9iYmGAp<9YAa( z0QgYgTWqf1qN++Gqp z8@AYPTB3E|6s=WLG?xw0tm|U!o=&zd+H0oRYE;Dbx+Na9s^STqX|Gnq%H8s(nGDGJ j8vwW|`Ts`)fSK|Kx=IK@RG@g200000NkvXXu0mjfauFEA literal 0 HcmV?d00001 diff --git a/functions.html b/functions.html new file mode 100644 index 000000000..494372a5f --- /dev/null +++ b/functions.html @@ -0,0 +1,320 @@ + + + + + + + +SimpleKernel: Class Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all class members with links to the classes they belong to:
+ +

- c -

    +
  • check_elf_identity() +: Elf +
  • +
+ + +

- d -

+ + +

- e -

+ + +

- f -

    +
  • file +: Elf +
  • +
  • file_system_protocol +: Elf +
  • +
  • flush_desc() +: Memory +
  • +
+ + +

- g -

+ + +

- h -

+ + +

- l -

    +
  • load() +: Elf +
  • +
  • load_kernel_image() +: Elf +
  • +
  • load_program_sections() +: Elf +
  • +
  • load_sections() +: Elf +
  • +
+ + +

- m -

+ + +

- o -

+ + +

- p -

+ + +

- r -

    +
  • root_file_system +: Elf +
  • +
+ + +

- s -

    +
  • SECTION_BUF_SIZE +: Elf +
  • +
  • set_mode() +: Graphics +
  • +
  • shdr +: Elf +
  • +
  • shstrtab_buf +: Elf +
  • +
+ + +

- v -

+ + +

- x -

+ + +

- ~ -

+
+
+ + + + diff --git a/functions_enum.html b/functions_enum.html new file mode 100644 index 000000000..4c6efebf8 --- /dev/null +++ b/functions_enum.html @@ -0,0 +1,99 @@ + + + + + + + +SimpleKernel: Class Members - Enumerations + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/functions_eval.html b/functions_eval.html new file mode 100644 index 000000000..c77607f76 --- /dev/null +++ b/functions_eval.html @@ -0,0 +1,105 @@ + + + + + + + +SimpleKernel: Class Members - Enumerator + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/functions_func.html b/functions_func.html new file mode 100644 index 000000000..9f5c21e2c --- /dev/null +++ b/functions_func.html @@ -0,0 +1,226 @@ + + + + + + + +SimpleKernel: Class Members - Functions + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+  + +

- c -

    +
  • check_elf_identity() +: Elf +
  • +
+ + +

- e -

+ + +

- f -

+ + +

- g -

    +
  • get_ehdr() +: Elf +
  • +
  • get_file_size() +: Elf +
  • +
  • get_phdr() +: Elf +
  • +
  • get_shdr() +: Elf +
  • +
  • Graphics() +: Graphics +
  • +
+ + +

- h -

+ + +

- l -

    +
  • load() +: Elf +
  • +
  • load_kernel_image() +: Elf +
  • +
  • load_program_sections() +: Elf +
  • +
  • load_sections() +: Elf +
  • +
+ + +

- m -

+ + +

- o -

+ + +

- p -

+ + +

- s -

+ + +

- ~ -

+
+
+ + + + diff --git a/functions_vars.html b/functions_vars.html new file mode 100644 index 000000000..423d0c512 --- /dev/null +++ b/functions_vars.html @@ -0,0 +1,162 @@ + + + + + + + +SimpleKernel: Class Members - Variables + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/globals.html b/globals.html new file mode 100644 index 000000000..f6f45f7ff --- /dev/null +++ b/globals.html @@ -0,0 +1,191 @@ + + + + + + + +SimpleKernel: File Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
Here is a list of all file members with links to the files they belong to:
+ +

- _ -

+ + +

- a -

+ + +

- d -

+ + +

- e -

+ + +

- i -

+ + +

- k -

+ + +

- l -

+ + +

- m -

+ + +

- p -

+ + +

- t -

+ + +

- w -

+
+
+ + + + diff --git a/globals_defs.html b/globals_defs.html new file mode 100644 index 000000000..c8bda9c72 --- /dev/null +++ b/globals_defs.html @@ -0,0 +1,99 @@ + + + + + + + +SimpleKernel: File Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/globals_func.html b/globals_func.html new file mode 100644 index 000000000..4389a91b6 --- /dev/null +++ b/globals_func.html @@ -0,0 +1,140 @@ + + + + + + + +SimpleKernel: File Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/globals_vars.html b/globals_vars.html new file mode 100644 index 000000000..d21032cf6 --- /dev/null +++ b/globals_vars.html @@ -0,0 +1,102 @@ + + + + + + + +SimpleKernel: File Members + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
+ + + + diff --git a/graph_legend.html b/graph_legend.html new file mode 100644 index 000000000..5cd786cb9 --- /dev/null +++ b/graph_legend.html @@ -0,0 +1,158 @@ + + + + + + + +SimpleKernel: Graph Legend + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
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 dark 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 000000000..8fcdccd1b --- /dev/null +++ b/graph_legend.md5 @@ -0,0 +1 @@ +f51bf6e9a10430aafef59831b08dcbfe \ No newline at end of file diff --git a/graph_legend.png b/graph_legend.png new file mode 100644 index 0000000000000000000000000000000000000000..7e2cbcfb2d143e382be6ed65635a3d859e53bc36 GIT binary patch literal 20615 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 literal 0 HcmV?d00001 diff --git a/graphics_8cpp.html b/graphics_8cpp.html new file mode 100644 index 000000000..f9b3f3f51 --- /dev/null +++ b/graphics_8cpp.html @@ -0,0 +1,139 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/boot/graphics.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
graphics.cpp File Reference
+
+
+ +

图形相关 +More...

+
#include <stdexcept>
+#include "load_elf.h"
+#include "ostream.hpp"
+
+Include dependency graph for graphics.cpp:
+
+
+ + + + + + + + + + + + +
+
+

Go to the source code of this file.

+

Detailed Description

+

图形相关

+
Author
Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
+
Version
1.0
+
Date
2023-07-15
+ +
change log:
+ + + + +
DateAuthorDescription
2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
+
+ +

Definition in file graphics.cpp.

+
+
+ + + + diff --git a/graphics_8cpp__incl.map b/graphics_8cpp__incl.map new file mode 100644 index 000000000..0010ffe78 --- /dev/null +++ b/graphics_8cpp__incl.map @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/graphics_8cpp__incl.md5 b/graphics_8cpp__incl.md5 new file mode 100644 index 000000000..72387d105 --- /dev/null +++ b/graphics_8cpp__incl.md5 @@ -0,0 +1 @@ +c3207f4ee63cf135889fca2955ee4be4 \ No newline at end of file diff --git a/graphics_8cpp__incl.png b/graphics_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..019978d87007af605794efc14cc4a95d66e1761a GIT binary patch literal 19061 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 + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/boot/graphics.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ + + + diff --git a/index.html b/index.html new file mode 100644 index 000000000..cb46689c5 --- /dev/null +++ b/index.html @@ -0,0 +1,98 @@ + + + + + + + +SimpleKernel: Main Page + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
SimpleKernel Documentation
+
+
+
+
+ + + + diff --git a/integration__test_2example_8cpp.html b/integration__test_2example_8cpp.html new file mode 100644 index 000000000..90e1c242c --- /dev/null +++ b/integration__test_2example_8cpp.html @@ -0,0 +1,169 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/test/integration_test/example.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
example.cpp File Reference
+
+
+ +

集成测试示例 +More...

+
#include "gtest/gtest.h"
+
+Include dependency graph for example.cpp:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + +

+Functions

 TEST (example, test_group1)
 
+

Detailed Description

+

集成测试示例

+
Author
Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
+
Version
1.0
+
Date
2023-09-02
+ +
change log:
+ + + + +
DateAuthorDescription
2023-09-02Zone.N<td>创建文件
+
+ +

Definition in file example.cpp.

+

Function Documentation

+ +

◆ TEST()

+ +
+
+ + + + + + + + + + + + + + + + + + +
TEST (example ,
test_group1  
)
+
+ +

Definition at line 19 of file example.cpp.

+
19 { EXPECT_EQ(0, 0); }
+
+
+
+
+
+ + + + diff --git a/integration__test_2example_8cpp.js b/integration__test_2example_8cpp.js new file mode 100644 index 000000000..e21c850ef --- /dev/null +++ b/integration__test_2example_8cpp.js @@ -0,0 +1,4 @@ +var integration__test_2example_8cpp = +[ + [ "TEST", "integration__test_2example_8cpp.html#ab52dc74bff6a4efe73d9412400be38d9", null ] +]; \ No newline at end of file diff --git a/integration__test_2example_8cpp__incl.map b/integration__test_2example_8cpp__incl.map new file mode 100644 index 000000000..d95109625 --- /dev/null +++ b/integration__test_2example_8cpp__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/integration__test_2example_8cpp__incl.md5 b/integration__test_2example_8cpp__incl.md5 new file mode 100644 index 000000000..04fe8bd79 --- /dev/null +++ b/integration__test_2example_8cpp__incl.md5 @@ -0,0 +1 @@ +f2c2806c51658d690e56a4b621f56f74 \ No newline at end of file diff --git a/integration__test_2example_8cpp__incl.png b/integration__test_2example_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..b94b49cf9e1f27bbe9ffa73dcac08780ffb2348f GIT binary patch literal 5482 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 abwjS0$mv<~4meSOAT4!WwMG@2sQ&|(++1(~ literal 0 HcmV?d00001 diff --git a/integration__test_2example_8cpp_source.html b/integration__test_2example_8cpp_source.html new file mode 100644 index 000000000..766aadab8 --- /dev/null +++ b/integration__test_2example_8cpp_source.html @@ -0,0 +1,104 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/test/integration_test/example.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
example.cpp
+
+
+Go to the documentation of this file.
1 
+
17 #include "gtest/gtest.h"
+
18 
+
19 TEST(example, test_group1) { EXPECT_EQ(0, 0); }
+
TEST(example, test_group1)
Definition: example.cpp:19
+
+
+ + + + diff --git a/jquery.js b/jquery.js new file mode 100644 index 000000000..103c32d79 --- /dev/null +++ b/jquery.js @@ -0,0 +1,35 @@ +/*! jQuery v3.4.1 | (c) JS 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=[],E=C.document,r=Object.getPrototypeOf,s=t.slice,g=t.concat,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},x=function(e){return null!=e&&e===e.window},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.4.1",k=function(e,t){return new k.fn.init(e,t)},p=/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g;function d(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($),V=new RegExp("^"+I+"$"),G={ID:new RegExp("^#("+I+")"),CLASS:new RegExp("^\\.("+I+")"),TAG:new RegExp("^("+I+"|[*])"),ATTR:new RegExp("^"+W),PSEUDO:new RegExp("^"+$),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-f]{1,6}"+M+"?|("+M+")|.)","ig"),ne=function(e,t,n){var r="0x"+t-65536;return r!=r||n?t:r<0?String.fromCharCode(r+65536):String.fromCharCode(r>>10|55296,1023&r|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(m.childNodes),m.childNodes),t[m.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&&((e?e.ownerDocument||e:m)!==C&&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&&!A[t+" "]&&(!v||!v.test(t))&&(1!==p||"object"!==e.nodeName.toLowerCase())){if(c=t,f=e,1===p&&U.test(t)){(s=e.getAttribute("id"))?s=s.replace(re,ie):e.setAttribute("id",s=k),o=(l=h(t)).length;while(o--)l[o]="#"+s+" "+xe(l[o]);c=l.join(","),f=ee.test(t)&&ye(e.parentNode)||e}try{return H.apply(n,f.querySelectorAll(c)),n}catch(e){A(t,!0)}finally{s===k&&e.removeAttribute("id")}}}return g(t.replace(B,"$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[k]=!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.namespaceURI,n=(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:m;return r!==C&&9===r.nodeType&&r.documentElement&&(a=(C=r).documentElement,E=!i(C),m!==C&&(n=C.defaultView)&&n.top!==n&&(n.addEventListener?n.addEventListener("unload",oe,!1):n.attachEvent&&n.attachEvent("onunload",oe)),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=k,!C.getElementsByName||!C.getElementsByName(k).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){a.appendChild(e).innerHTML="",e.querySelectorAll("[msallowcapture^='']").length&&v.push("[*^$]="+M+"*(?:''|\"\")"),e.querySelectorAll("[selected]").length||v.push("\\["+M+"*(?:value|"+R+")"),e.querySelectorAll("[id~="+k+"-]").length||v.push("~="),e.querySelectorAll(":checked").length||v.push(":checked"),e.querySelectorAll("a#"+k+"+*").length||v.push(".#.+[+~]")}),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("!=",$)}),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},D=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===m&&y(m,e)?-1:t===C||t.ownerDocument===m&&y(m,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]===m?-1:s[r]===m?1:0}),C},se.matches=function(e,t){return se(e,null,null,t)},se.matchesSelector=function(e,t){if((e.ownerDocument||e)!==C&&T(e),d.matchesSelector&&E&&!A[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){A(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=p[e+" "];return t||(t=new RegExp("(^|"+M+")"+e+"("+M+"|$)"))&&p(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)?k.grep(e,function(e,t){return!!n.call(e,t,e)!==r}):n.nodeType?k.grep(e,function(e){return e===n!==r}):"string"!=typeof n?k.grep(e,function(e){return-1)[^>]*|#([\w-]+))$/;(k.fn.init=function(e,t,n){var r,i;if(!e)return this;if(n=n||q,"string"==typeof e){if(!(r="<"===e[0]&&">"===e[e.length-1]&&3<=e.length?[null,e,null]:L.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 k?t[0]:t,k.merge(this,k.parseHTML(r[1],t&&t.nodeType?t.ownerDocument||t:E,!0)),D.test(r[1])&&k.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(k):k.makeArray(e,this)}).prototype=k.fn,q=k(E);var H=/^(?:parents|prev(?:Until|All))/,O={children:!0,contents:!0,next:!0,prev:!0};function P(e,t){while((e=e[t])&&1!==e.nodeType);return e}k.fn.extend({has:function(e){var t=k(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,ge={option:[1,""],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)?k.merge([e],n):n}function ye(e,t){for(var n=0,r=e.length;nx",y.noCloneChecked=!!me.cloneNode(!0).lastChild.defaultValue;var Te=/^key/,Ce=/^(?:mouse|pointer|contextmenu|drag|drop)|click/,Ee=/^([^.]*)(?:\.(.+)|)/;function ke(){return!0}function Se(){return!1}function Ne(e,t){return e===function(){try{return E.activeElement}catch(e){}}()==("focus"===t)}function Ae(e,t,n,r,i,o){var a,s;if("object"==typeof t){for(s in"string"!=typeof n&&(r=r||n,n=void 0),t)Ae(e,s,n,r,t[s],o);return e}if(null==r&&null==i?(i=n,r=n=void 0):null==i&&("string"==typeof n?(i=r,r=void 0):(i=r,r=n,n=void 0)),!1===i)i=Se;else if(!i)return e;return 1===o&&(a=i,(i=function(e){return k().off(e),a.apply(this,arguments)}).guid=a.guid||(a.guid=k.guid++)),e.each(function(){k.event.add(this,t,i,r,n)})}function De(e,i,o){o?(Q.set(e,i,!1),k.event.add(e,i,{namespace:!1,handler:function(e){var t,n,r=Q.get(this,i);if(1&e.isTrigger&&this[i]){if(r.length)(k.event.special[i]||{}).delegateType&&e.stopPropagation();else if(r=s.call(arguments),Q.set(this,i,r),t=o(this,i),this[i](),r!==(n=Q.get(this,i))||t?Q.set(this,i,!1):n={},r!==n)return e.stopImmediatePropagation(),e.preventDefault(),n.value}else r.length&&(Q.set(this,i,{value:k.event.trigger(k.extend(r[0],k.Event.prototype),r.slice(1),this)}),e.stopImmediatePropagation())}})):void 0===Q.get(e,i)&&k.event.add(e,i,ke)}k.event={global:{},add:function(t,e,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.get(t);if(v){n.handler&&(n=(o=n).handler,i=o.selector),i&&k.find.matchesSelector(ie,i),n.guid||(n.guid=k.guid++),(u=v.events)||(u=v.events={}),(a=v.handle)||(a=v.handle=function(e){return"undefined"!=typeof k&&k.event.triggered!==e.type?k.event.dispatch.apply(t,arguments):void 0}),l=(e=(e||"").match(R)||[""]).length;while(l--)d=g=(s=Ee.exec(e[l])||[])[1],h=(s[2]||"").split(".").sort(),d&&(f=k.event.special[d]||{},d=(i?f.delegateType:f.bindType)||d,f=k.event.special[d]||{},c=k.extend({type:d,origType:g,data:r,handler:n,guid:n.guid,selector:i,needsContext:i&&k.expr.match.needsContext.test(i),namespace:h.join(".")},o),(p=u[d])||((p=u[d]=[]).delegateCount=0,f.setup&&!1!==f.setup.call(t,r,h,a)||t.addEventListener&&t.addEventListener(d,a)),f.add&&(f.add.call(t,c),c.handler.guid||(c.handler.guid=n.guid)),i?p.splice(p.delegateCount++,0,c):p.push(c),k.event.global[d]=!0)}},remove:function(e,t,n,r,i){var o,a,s,u,l,c,f,p,d,h,g,v=Q.hasData(e)&&Q.get(e);if(v&&(u=v.events)){l=(t=(t||"").match(R)||[""]).length;while(l--)if(d=g=(s=Ee.exec(t[l])||[])[1],h=(s[2]||"").split(".").sort(),d){f=k.event.special[d]||{},p=u[d=(r?f.delegateType:f.bindType)||d]||[],s=s[2]&&new RegExp("(^|\\.)"+h.join("\\.(?:.*\\.|)")+"(\\.|$)"),a=o=p.length;while(o--)c=p[o],!i&&g!==c.origType||n&&n.guid!==c.guid||s&&!s.test(c.namespace)||r&&r!==c.selector&&("**"!==r||!c.selector)||(p.splice(o,1),c.selector&&p.delegateCount--,f.remove&&f.remove.call(e,c));a&&!p.length&&(f.teardown&&!1!==f.teardown.call(e,h,v.handle)||k.removeEvent(e,d,v.handle),delete u[d])}else for(d in u)k.event.remove(e,d+t[l],n,r,!0);k.isEmptyObject(u)&&Q.remove(e,"handle events")}},dispatch:function(e){var t,n,r,i,o,a,s=k.event.fix(e),u=new Array(arguments.length),l=(Q.get(this,"events")||{})[s.type]||[],c=k.event.special[s.type]||{};for(u[0]=s,t=1;t\x20\t\r\n\f]*)[^>]*)\/>/gi,qe=/\s*$/g;function Oe(e,t){return A(e,"table")&&A(11!==t.nodeType?t:t.firstChild,"tr")&&k(e).children("tbody")[0]||e}function Pe(e){return e.type=(null!==e.getAttribute("type"))+"/"+e.type,e}function Re(e){return"true/"===(e.type||"").slice(0,5)?e.type=e.type.slice(5):e.removeAttribute("type"),e}function Me(e,t){var n,r,i,o,a,s,u,l;if(1===t.nodeType){if(Q.hasData(e)&&(o=Q.access(e),a=Q.set(t,o),l=o.events))for(i in delete a.handle,a.events={},l)for(n=0,r=l[i].length;n")},clone:function(e,t,n){var r,i,o,a,s,u,l,c=e.cloneNode(!0),f=oe(e);if(!(y.noCloneChecked||1!==e.nodeType&&11!==e.nodeType||k.isXMLDoc(e)))for(a=ve(c),r=0,i=(o=ve(e)).length;r").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 Vt,Gt=[],Yt=/(=)\?(?=&|$)|\?\?/;k.ajaxSetup({jsonp:"callback",jsonpCallback:function(){var e=Gt.pop()||k.expando+"_"+kt++;return this[e]=!0,e}}),k.ajaxPrefilter("json jsonp",function(e,t,n){var r,i,o,a=!1!==e.jsonp&&(Yt.test(e.url)?"url":"string"==typeof e.data&&0===(e.contentType||"").indexOf("application/x-www-form-urlencoded")&&Yt.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(Yt,"$1"+r):!1!==e.jsonp&&(e.url+=(St.test(e.url)?"&":"?")+e.jsonp+"="+r),e.converters["script json"]=function(){return o||k.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?k(C).removeProp(r):C[r]=i,e[r]&&(e.jsonpCallback=t.jsonpCallback,Gt.push(r)),o&&m(i)&&i(o[0]),o=i=void 0}),"script"}),y.createHTMLDocument=((Vt=E.implementation.createHTMLDocument("").body).innerHTML="
",2===Vt.childNodes.length),k.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=D.exec(e))?[t.createElement(i[1])]:(i=we([e],t,o),o&&o.length&&k(o).remove(),k.merge([],i.childNodes)));var r,i,o},k.fn.load=function(e,t,n){var r,i,o,a=this,s=e.indexOf(" ");return-1").append(k.parseHTML(e)).find(r):e)}).always(n&&function(e,t){a.each(function(){n.apply(this,o||[e.responseText,t,e])})}),this},k.each(["ajaxStart","ajaxStop","ajaxComplete","ajaxError","ajaxSuccess","ajaxSend"],function(e,t){k.fn[t]=function(e){return this.on(t,e)}}),k.expr.pseudos.animated=function(t){return k.grep(k.timers,function(e){return t===e.elem}).length},k.offset={setOffset:function(e,t,n){var r,i,o,a,s,u,l=k.css(e,"position"),c=k(e),f={};"static"===l&&(e.style.position="relative"),s=c.offset(),o=k.css(e,"top"),u=k.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,k.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)}},k.fn.extend({offset:function(t){if(arguments.length)return void 0===t?this:this.each(function(e){k.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"===k.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"===k.css(e,"position"))e=e.parentNode;e&&e!==r&&1===e.nodeType&&((i=k(e).offset()).top+=k.css(e,"borderTopWidth",!0),i.left+=k.css(e,"borderLeftWidth",!0))}return{top:t.top-i.top-k.css(r,"marginTop",!0),left:t.left-i.left-k.css(r,"marginLeft",!0)}}},offsetParent:function(){return this.map(function(){var e=this.offsetParent;while(e&&"static"===k.css(e,"position"))e=e.offsetParent;return e||ie})}}),k.each({scrollLeft:"pageXOffset",scrollTop:"pageYOffset"},function(t,i){var o="pageYOffset"===i;k.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)}}),k.each(["top","left"],function(e,n){k.cssHooks[n]=ze(y.pixelPosition,function(e,t){if(t)return t=_e(e,n),$e.test(t)?k(e).position()[n]+"px":t})}),k.each({Height:"height",Width:"width"},function(a,s){k.each({padding:"inner"+a,content:s,"":"outer"+a},function(r,o){k.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?k.css(e,t,i):k.style(e,t,n,i)},s,n?e:void 0,n)}})}),k.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){k.fn[n]=function(e,t){return 0a;a++)for(i in o[a])n=o[a][i],o[a].hasOwnProperty(i)&&void 0!==n&&(e[i]=t.isPlainObject(n)?t.isPlainObject(e[i])?t.widget.extend({},e[i],n):t.widget.extend({},n):n);return e},t.widget.bridge=function(e,i){var n=i.prototype.widgetFullName||e;t.fn[e]=function(o){var a="string"==typeof o,r=s.call(arguments,1),h=this;return a?this.length||"instance"!==o?this.each(function(){var i,s=t.data(this,n);return"instance"===o?(h=s,!1):s?t.isFunction(s[o])&&"_"!==o.charAt(0)?(i=s[o].apply(s,r),i!==s&&void 0!==i?(h=i&&i.jquery?h.pushStack(i.get()):i,!1):void 0):t.error("no such method '"+o+"' for "+e+" widget instance"):t.error("cannot call methods on "+e+" prior to initialization; "+"attempted to call method '"+o+"'")}):h=void 0:(r.length&&(o=t.widget.extend.apply(null,[o].concat(r))),this.each(function(){var e=t.data(this,n);e?(e.option(o||{}),e._init&&e._init()):t.data(this,n,new i(o,this))})),h}},t.Widget=function(){},t.Widget._childConstructors=[],t.Widget.prototype={widgetName:"widget",widgetEventPrefix:"",defaultElement:"
",options:{classes:{},disabled:!1,create:null},_createWidget:function(e,s){s=t(s||this.defaultElement||this)[0],this.element=t(s),this.uuid=i++,this.eventNamespace="."+this.widgetName+this.uuid,this.bindings=t(),this.hoverable=t(),this.focusable=t(),this.classesElementLookup={},s!==this&&(t.data(s,this.widgetFullName,this),this._on(!0,this.element,{remove:function(t){t.target===s&&this.destroy()}}),this.document=t(s.style?s.ownerDocument:s.document||s),this.window=t(this.document[0].defaultView||this.document[0].parentWindow)),this.options=t.widget.extend({},this.options,this._getCreateOptions(),e),this._create(),this.options.disabled&&this._setOptionDisabled(this.options.disabled),this._trigger("create",null,this._getCreateEventData()),this._init()},_getCreateOptions:function(){return{}},_getCreateEventData:t.noop,_create:t.noop,_init:t.noop,destroy:function(){var e=this;this._destroy(),t.each(this.classesElementLookup,function(t,i){e._removeClass(i,t)}),this.element.off(this.eventNamespace).removeData(this.widgetFullName),this.widget().off(this.eventNamespace).removeAttr("aria-disabled"),this.bindings.off(this.eventNamespace)},_destroy:t.noop,widget:function(){return this.element},option:function(e,i){var s,n,o,a=e;if(0===arguments.length)return t.widget.extend({},this.options);if("string"==typeof e)if(a={},s=e.split("."),e=s.shift(),s.length){for(n=a[e]=t.widget.extend({},this.options[e]),o=0;s.length-1>o;o++)n[s[o]]=n[s[o]]||{},n=n[s[o]];if(e=s.pop(),1===arguments.length)return void 0===n[e]?null:n[e];n[e]=i}else{if(1===arguments.length)return void 0===this.options[e]?null:this.options[e];a[e]=i}return this._setOptions(a),this},_setOptions:function(t){var e;for(e in t)this._setOption(e,t[e]);return this},_setOption:function(t,e){return"classes"===t&&this._setOptionClasses(e),this.options[t]=e,"disabled"===t&&this._setOptionDisabled(e),this},_setOptionClasses:function(e){var i,s,n;for(i in e)n=this.classesElementLookup[i],e[i]!==this.options.classes[i]&&n&&n.length&&(s=t(n.get()),this._removeClass(n,i),s.addClass(this._classes({element:s,keys:i,classes:e,add:!0})))},_setOptionDisabled:function(t){this._toggleClass(this.widget(),this.widgetFullName+"-disabled",null,!!t),t&&(this._removeClass(this.hoverable,null,"ui-state-hover"),this._removeClass(this.focusable,null,"ui-state-focus"))},enable:function(){return this._setOptions({disabled:!1})},disable:function(){return this._setOptions({disabled:!0})},_classes:function(e){function i(i,o){var a,r;for(r=0;i.length>r;r++)a=n.classesElementLookup[i[r]]||t(),a=e.add?t(t.unique(a.get().concat(e.element.get()))):t(a.not(e.element).get()),n.classesElementLookup[i[r]]=a,s.push(i[r]),o&&e.classes[i[r]]&&s.push(e.classes[i[r]])}var s=[],n=this;return e=t.extend({element:this.element,classes:this.options.classes||{}},e),this._on(e.element,{remove:"_untrackClassesElement"}),e.keys&&i(e.keys.match(/\S+/g)||[],!0),e.extra&&i(e.extra.match(/\S+/g)||[]),s.join(" ")},_untrackClassesElement:function(e){var i=this;t.each(i.classesElementLookup,function(s,n){-1!==t.inArray(e.target,n)&&(i.classesElementLookup[s]=t(n.not(e.target).get()))})},_removeClass:function(t,e,i){return this._toggleClass(t,e,i,!1)},_addClass:function(t,e,i){return this._toggleClass(t,e,i,!0)},_toggleClass:function(t,e,i,s){s="boolean"==typeof s?s:i;var n="string"==typeof t||null===t,o={extra:n?e:i,keys:n?t:e,element:n?this.element:t,add:s};return o.element.toggleClass(this._classes(o),s),this},_on:function(e,i,s){var n,o=this;"boolean"!=typeof e&&(s=i,i=e,e=!1),s?(i=n=t(i),this.bindings=this.bindings.add(i)):(s=i,i=this.element,n=this.widget()),t.each(s,function(s,a){function r(){return e||o.options.disabled!==!0&&!t(this).hasClass("ui-state-disabled")?("string"==typeof a?o[a]:a).apply(o,arguments):void 0}"string"!=typeof a&&(r.guid=a.guid=a.guid||r.guid||t.guid++);var h=s.match(/^([\w:-]*)\s*(.*)$/),l=h[1]+o.eventNamespace,c=h[2];c?n.on(l,c,r):i.on(l,r)})},_off:function(e,i){i=(i||"").split(" ").join(this.eventNamespace+" ")+this.eventNamespace,e.off(i).off(i),this.bindings=t(this.bindings.not(e).get()),this.focusable=t(this.focusable.not(e).get()),this.hoverable=t(this.hoverable.not(e).get())},_delay:function(t,e){function i(){return("string"==typeof t?s[t]:t).apply(s,arguments)}var s=this;return setTimeout(i,e||0)},_hoverable:function(e){this.hoverable=this.hoverable.add(e),this._on(e,{mouseenter:function(e){this._addClass(t(e.currentTarget),null,"ui-state-hover")},mouseleave:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-hover")}})},_focusable:function(e){this.focusable=this.focusable.add(e),this._on(e,{focusin:function(e){this._addClass(t(e.currentTarget),null,"ui-state-focus")},focusout:function(e){this._removeClass(t(e.currentTarget),null,"ui-state-focus")}})},_trigger:function(e,i,s){var n,o,a=this.options[e];if(s=s||{},i=t.Event(i),i.type=(e===this.widgetEventPrefix?e:this.widgetEventPrefix+e).toLowerCase(),i.target=this.element[0],o=i.originalEvent)for(n in o)n in i||(i[n]=o[n]);return this.element.trigger(i,s),!(t.isFunction(a)&&a.apply(this.element[0],[i].concat(s))===!1||i.isDefaultPrevented())}},t.each({show:"fadeIn",hide:"fadeOut"},function(e,i){t.Widget.prototype["_"+e]=function(s,n,o){"string"==typeof n&&(n={effect:n});var a,r=n?n===!0||"number"==typeof n?i:n.effect||i:e;n=n||{},"number"==typeof n&&(n={duration:n}),a=!t.isEmptyObject(n),n.complete=o,n.delay&&s.delay(n.delay),a&&t.effects&&t.effects.effect[r]?s[e](n):r!==e&&s[r]?s[r](n.duration,n.easing,o):s.queue(function(i){t(this)[e](),o&&o.call(s[0]),i()})}}),t.widget,function(){function e(t,e,i){return[parseFloat(t[0])*(u.test(t[0])?e/100:1),parseFloat(t[1])*(u.test(t[1])?i/100:1)]}function i(e,i){return parseInt(t.css(e,i),10)||0}function s(e){var i=e[0];return 9===i.nodeType?{width:e.width(),height:e.height(),offset:{top:0,left:0}}:t.isWindow(i)?{width:e.width(),height:e.height(),offset:{top:e.scrollTop(),left:e.scrollLeft()}}:i.preventDefault?{width:0,height:0,offset:{top:i.pageY,left:i.pageX}}:{width:e.outerWidth(),height:e.outerHeight(),offset:e.offset()}}var n,o=Math.max,a=Math.abs,r=/left|center|right/,h=/top|center|bottom/,l=/[\+\-]\d+(\.[\d]+)?%?/,c=/^\w+/,u=/%$/,d=t.fn.position;t.position={scrollbarWidth:function(){if(void 0!==n)return n;var e,i,s=t("
"),o=s.children()[0];return t("body").append(s),e=o.offsetWidth,s.css("overflow","scroll"),i=o.offsetWidth,e===i&&(i=s[0].clientWidth),s.remove(),n=e-i},getScrollInfo:function(e){var i=e.isWindow||e.isDocument?"":e.element.css("overflow-x"),s=e.isWindow||e.isDocument?"":e.element.css("overflow-y"),n="scroll"===i||"auto"===i&&e.widthi?"left":e>0?"right":"center",vertical:0>r?"top":s>0?"bottom":"middle"};l>p&&p>a(e+i)&&(u.horizontal="center"),c>f&&f>a(s+r)&&(u.vertical="middle"),u.important=o(a(e),a(i))>o(a(s),a(r))?"horizontal":"vertical",n.using.call(this,t,u)}),h.offset(t.extend(D,{using:r}))})},t.ui.position={fit:{left:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollLeft:s.offset.left,a=s.width,r=t.left-e.collisionPosition.marginLeft,h=n-r,l=r+e.collisionWidth-a-n;e.collisionWidth>a?h>0&&0>=l?(i=t.left+h+e.collisionWidth-a-n,t.left+=h-i):t.left=l>0&&0>=h?n:h>l?n+a-e.collisionWidth:n:h>0?t.left+=h:l>0?t.left-=l:t.left=o(t.left-r,t.left)},top:function(t,e){var i,s=e.within,n=s.isWindow?s.scrollTop:s.offset.top,a=e.within.height,r=t.top-e.collisionPosition.marginTop,h=n-r,l=r+e.collisionHeight-a-n;e.collisionHeight>a?h>0&&0>=l?(i=t.top+h+e.collisionHeight-a-n,t.top+=h-i):t.top=l>0&&0>=h?n:h>l?n+a-e.collisionHeight:n:h>0?t.top+=h:l>0?t.top-=l:t.top=o(t.top-r,t.top)}},flip:{left:function(t,e){var i,s,n=e.within,o=n.offset.left+n.scrollLeft,r=n.width,h=n.isWindow?n.scrollLeft:n.offset.left,l=t.left-e.collisionPosition.marginLeft,c=l-h,u=l+e.collisionWidth-r-h,d="left"===e.my[0]?-e.elemWidth:"right"===e.my[0]?e.elemWidth:0,p="left"===e.at[0]?e.targetWidth:"right"===e.at[0]?-e.targetWidth:0,f=-2*e.offset[0];0>c?(i=t.left+d+p+f+e.collisionWidth-r-o,(0>i||a(c)>i)&&(t.left+=d+p+f)):u>0&&(s=t.left-e.collisionPosition.marginLeft+d+p+f-h,(s>0||u>a(s))&&(t.left+=d+p+f))},top:function(t,e){var i,s,n=e.within,o=n.offset.top+n.scrollTop,r=n.height,h=n.isWindow?n.scrollTop:n.offset.top,l=t.top-e.collisionPosition.marginTop,c=l-h,u=l+e.collisionHeight-r-h,d="top"===e.my[1],p=d?-e.elemHeight:"bottom"===e.my[1]?e.elemHeight:0,f="top"===e.at[1]?e.targetHeight:"bottom"===e.at[1]?-e.targetHeight:0,m=-2*e.offset[1];0>c?(s=t.top+p+f+m+e.collisionHeight-r-o,(0>s||a(c)>s)&&(t.top+=p+f+m)):u>0&&(i=t.top-e.collisionPosition.marginTop+p+f+m-h,(i>0||u>a(i))&&(t.top+=p+f+m))}},flipfit:{left:function(){t.ui.position.flip.left.apply(this,arguments),t.ui.position.fit.left.apply(this,arguments)},top:function(){t.ui.position.flip.top.apply(this,arguments),t.ui.position.fit.top.apply(this,arguments)}}}}(),t.ui.position,t.extend(t.expr[":"],{data:t.expr.createPseudo?t.expr.createPseudo(function(e){return function(i){return!!t.data(i,e)}}):function(e,i,s){return!!t.data(e,s[3])}}),t.fn.extend({disableSelection:function(){var t="onselectstart"in document.createElement("div")?"selectstart":"mousedown";return function(){return this.on(t+".ui-disableSelection",function(t){t.preventDefault()})}}(),enableSelection:function(){return this.off(".ui-disableSelection")}}),t.ui.focusable=function(i,s){var n,o,a,r,h,l=i.nodeName.toLowerCase();return"area"===l?(n=i.parentNode,o=n.name,i.href&&o&&"map"===n.nodeName.toLowerCase()?(a=t("img[usemap='#"+o+"']"),a.length>0&&a.is(":visible")):!1):(/^(input|select|textarea|button|object)$/.test(l)?(r=!i.disabled,r&&(h=t(i).closest("fieldset")[0],h&&(r=!h.disabled))):r="a"===l?i.href||s:s,r&&t(i).is(":visible")&&e(t(i)))},t.extend(t.expr[":"],{focusable:function(e){return t.ui.focusable(e,null!=t.attr(e,"tabindex"))}}),t.ui.focusable,t.fn.form=function(){return"string"==typeof this[0].form?this.closest("form"):t(this[0].form)},t.ui.formResetMixin={_formResetHandler:function(){var e=t(this);setTimeout(function(){var i=e.data("ui-form-reset-instances");t.each(i,function(){this.refresh()})})},_bindFormResetHandler:function(){if(this.form=this.element.form(),this.form.length){var t=this.form.data("ui-form-reset-instances")||[];t.length||this.form.on("reset.ui-form-reset",this._formResetHandler),t.push(this),this.form.data("ui-form-reset-instances",t)}},_unbindFormResetHandler:function(){if(this.form.length){var e=this.form.data("ui-form-reset-instances");e.splice(t.inArray(this,e),1),e.length?this.form.data("ui-form-reset-instances",e):this.form.removeData("ui-form-reset-instances").off("reset.ui-form-reset")}}},"1.7"===t.fn.jquery.substring(0,3)&&(t.each(["Width","Height"],function(e,i){function s(e,i,s,o){return t.each(n,function(){i-=parseFloat(t.css(e,"padding"+this))||0,s&&(i-=parseFloat(t.css(e,"border"+this+"Width"))||0),o&&(i-=parseFloat(t.css(e,"margin"+this))||0)}),i}var n="Width"===i?["Left","Right"]:["Top","Bottom"],o=i.toLowerCase(),a={innerWidth:t.fn.innerWidth,innerHeight:t.fn.innerHeight,outerWidth:t.fn.outerWidth,outerHeight:t.fn.outerHeight};t.fn["inner"+i]=function(e){return void 0===e?a["inner"+i].call(this):this.each(function(){t(this).css(o,s(this,e)+"px")})},t.fn["outer"+i]=function(e,n){return"number"!=typeof e?a["outer"+i].call(this,e):this.each(function(){t(this).css(o,s(this,e,!0,n)+"px")})}}),t.fn.addBack=function(t){return this.add(null==t?this.prevObject:this.prevObject.filter(t))}),t.ui.keyCode={BACKSPACE:8,COMMA:188,DELETE:46,DOWN:40,END:35,ENTER:13,ESCAPE:27,HOME:36,LEFT:37,PAGE_DOWN:34,PAGE_UP:33,PERIOD:190,RIGHT:39,SPACE:32,TAB:9,UP:38},t.ui.escapeSelector=function(){var t=/([!"#$%&'()*+,./:;<=>?@[\]^`{|}~])/g;return function(e){return e.replace(t,"\\$1")}}(),t.fn.labels=function(){var e,i,s,n,o;return this[0].labels&&this[0].labels.length?this.pushStack(this[0].labels):(n=this.eq(0).parents("label"),s=this.attr("id"),s&&(e=this.eq(0).parents().last(),o=e.add(e.length?e.siblings():this.siblings()),i="label[for='"+t.ui.escapeSelector(s)+"']",n=n.add(o.find(i).addBack(i))),this.pushStack(n))},t.fn.scrollParent=function(e){var i=this.css("position"),s="absolute"===i,n=e?/(auto|scroll|hidden)/:/(auto|scroll)/,o=this.parents().filter(function(){var e=t(this);return s&&"static"===e.css("position")?!1:n.test(e.css("overflow")+e.css("overflow-y")+e.css("overflow-x"))}).eq(0);return"fixed"!==i&&o.length?o:t(this[0].ownerDocument||document)},t.extend(t.expr[":"],{tabbable:function(e){var i=t.attr(e,"tabindex"),s=null!=i;return(!s||i>=0)&&t.ui.focusable(e,s)}}),t.fn.extend({uniqueId:function(){var t=0;return function(){return this.each(function(){this.id||(this.id="ui-id-"+ ++t)})}}(),removeUniqueId:function(){return this.each(function(){/^ui-id-\d+$/.test(this.id)&&t(this).removeAttr("id")})}}),t.ui.ie=!!/msie [\w.]+/.exec(navigator.userAgent.toLowerCase());var n=!1;t(document).on("mouseup",function(){n=!1}),t.widget("ui.mouse",{version:"1.12.1",options:{cancel:"input, textarea, button, select, option",distance:1,delay:0},_mouseInit:function(){var e=this;this.element.on("mousedown."+this.widgetName,function(t){return e._mouseDown(t)}).on("click."+this.widgetName,function(i){return!0===t.data(i.target,e.widgetName+".preventClickEvent")?(t.removeData(i.target,e.widgetName+".preventClickEvent"),i.stopImmediatePropagation(),!1):void 0}),this.started=!1},_mouseDestroy:function(){this.element.off("."+this.widgetName),this._mouseMoveDelegate&&this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate)},_mouseDown:function(e){if(!n){this._mouseMoved=!1,this._mouseStarted&&this._mouseUp(e),this._mouseDownEvent=e;var i=this,s=1===e.which,o="string"==typeof this.options.cancel&&e.target.nodeName?t(e.target).closest(this.options.cancel).length:!1;return s&&!o&&this._mouseCapture(e)?(this.mouseDelayMet=!this.options.delay,this.mouseDelayMet||(this._mouseDelayTimer=setTimeout(function(){i.mouseDelayMet=!0},this.options.delay)),this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(e)!==!1,!this._mouseStarted)?(e.preventDefault(),!0):(!0===t.data(e.target,this.widgetName+".preventClickEvent")&&t.removeData(e.target,this.widgetName+".preventClickEvent"),this._mouseMoveDelegate=function(t){return i._mouseMove(t)},this._mouseUpDelegate=function(t){return i._mouseUp(t)},this.document.on("mousemove."+this.widgetName,this._mouseMoveDelegate).on("mouseup."+this.widgetName,this._mouseUpDelegate),e.preventDefault(),n=!0,!0)):!0}},_mouseMove:function(e){if(this._mouseMoved){if(t.ui.ie&&(!document.documentMode||9>document.documentMode)&&!e.button)return this._mouseUp(e);if(!e.which)if(e.originalEvent.altKey||e.originalEvent.ctrlKey||e.originalEvent.metaKey||e.originalEvent.shiftKey)this.ignoreMissingWhich=!0;else if(!this.ignoreMissingWhich)return this._mouseUp(e)}return(e.which||e.button)&&(this._mouseMoved=!0),this._mouseStarted?(this._mouseDrag(e),e.preventDefault()):(this._mouseDistanceMet(e)&&this._mouseDelayMet(e)&&(this._mouseStarted=this._mouseStart(this._mouseDownEvent,e)!==!1,this._mouseStarted?this._mouseDrag(e):this._mouseUp(e)),!this._mouseStarted)},_mouseUp:function(e){this.document.off("mousemove."+this.widgetName,this._mouseMoveDelegate).off("mouseup."+this.widgetName,this._mouseUpDelegate),this._mouseStarted&&(this._mouseStarted=!1,e.target===this._mouseDownEvent.target&&t.data(e.target,this.widgetName+".preventClickEvent",!0),this._mouseStop(e)),this._mouseDelayTimer&&(clearTimeout(this._mouseDelayTimer),delete this._mouseDelayTimer),this.ignoreMissingWhich=!1,n=!1,e.preventDefault()},_mouseDistanceMet:function(t){return Math.max(Math.abs(this._mouseDownEvent.pageX-t.pageX),Math.abs(this._mouseDownEvent.pageY-t.pageY))>=this.options.distance},_mouseDelayMet:function(){return this.mouseDelayMet},_mouseStart:function(){},_mouseDrag:function(){},_mouseStop:function(){},_mouseCapture:function(){return!0}}),t.ui.plugin={add:function(e,i,s){var n,o=t.ui[e].prototype;for(n in s)o.plugins[n]=o.plugins[n]||[],o.plugins[n].push([i,s[n]])},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;o.length>n;n++)t.options[o[n][0]]&&o[n][1].apply(t.element,i)}},t.widget("ui.resizable",t.ui.mouse,{version:"1.12.1",widgetEventPrefix:"resize",options:{alsoResize:!1,animate:!1,animateDuration:"slow",animateEasing:"swing",aspectRatio:!1,autoHide:!1,classes:{"ui-resizable-se":"ui-icon ui-icon-gripsmall-diagonal-se"},containment:!1,ghost:!1,grid:!1,handles:"e,s,se",helper:!1,maxHeight:null,maxWidth:null,minHeight:10,minWidth:10,zIndex:90,resize:null,start:null,stop:null},_num:function(t){return parseFloat(t)||0},_isNumber:function(t){return!isNaN(parseFloat(t))},_hasScroll:function(e,i){if("hidden"===t(e).css("overflow"))return!1;var s=i&&"left"===i?"scrollLeft":"scrollTop",n=!1;return e[s]>0?!0:(e[s]=1,n=e[s]>0,e[s]=0,n)},_create:function(){var e,i=this.options,s=this;this._addClass("ui-resizable"),t.extend(this,{_aspectRatio:!!i.aspectRatio,aspectRatio:i.aspectRatio,originalElement:this.element,_proportionallyResizeElements:[],_helper:i.helper||i.ghost||i.animate?i.helper||"ui-resizable-helper":null}),this.element[0].nodeName.match(/^(canvas|textarea|input|select|button|img)$/i)&&(this.element.wrap(t("
").css({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,e={marginTop:this.originalElement.css("marginTop"),marginRight:this.originalElement.css("marginRight"),marginBottom:this.originalElement.css("marginBottom"),marginLeft:this.originalElement.css("marginLeft")},this.element.css(e),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(e),this._proportionallyResize()),this._setupHandles(),i.autoHide&&t(this.element).on("mouseenter",function(){i.disabled||(s._removeClass("ui-resizable-autohide"),s._handles.show())}).on("mouseleave",function(){i.disabled||s.resizing||(s._addClass("ui-resizable-autohide"),s._handles.hide())}),this._mouseInit()},_destroy:function(){this._mouseDestroy();var e,i=function(e){t(e).removeData("resizable").removeData("ui-resizable").off(".resizable").find(".ui-resizable-handle").remove()};return this.elementIsWrapper&&(i(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),i(this.originalElement),this},_setOption:function(t,e){switch(this._super(t,e),t){case"handles":this._removeHandles(),this._setupHandles();break;default:}},_setupHandles:function(){var e,i,s,n,o,a=this.options,r=this;if(this.handles=a.handles||(t(".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=t(),this.handles.constructor===String)for("all"===this.handles&&(this.handles="n,e,s,w,se,sw,ne,nw"),s=this.handles.split(","),this.handles={},i=0;s.length>i;i++)e=t.trim(s[i]),n="ui-resizable-"+e,o=t("
"),this._addClass(o,"ui-resizable-handle "+n),o.css({zIndex:a.zIndex}),this.handles[e]=".ui-resizable-"+e,this.element.append(o);this._renderAxis=function(e){var i,s,n,o;e=e||this.element;for(i in this.handles)this.handles[i].constructor===String?this.handles[i]=this.element.children(this.handles[i]).first().show():(this.handles[i].jquery||this.handles[i].nodeType)&&(this.handles[i]=t(this.handles[i]),this._on(this.handles[i],{mousedown:r._mouseDown})),this.elementIsWrapper&&this.originalElement[0].nodeName.match(/^(textarea|input|select|button)$/i)&&(s=t(this.handles[i],this.element),o=/sw|ne|nw|se|n|s/.test(i)?s.outerHeight():s.outerWidth(),n=["padding",/ne|nw|n/.test(i)?"Top":/se|sw|s/.test(i)?"Bottom":/^e$/.test(i)?"Right":"Left"].join(""),e.css(n,o),this._proportionallyResize()),this._handles=this._handles.add(this.handles[i])},this._renderAxis(this.element),this._handles=this._handles.add(this.element.find(".ui-resizable-handle")),this._handles.disableSelection(),this._handles.on("mouseover",function(){r.resizing||(this.className&&(o=this.className.match(/ui-resizable-(se|sw|ne|nw|n|e|s|w)/i)),r.axis=o&&o[1]?o[1]:"se")}),a.autoHide&&(this._handles.hide(),this._addClass("ui-resizable-autohide"))},_removeHandles:function(){this._handles.remove()},_mouseCapture:function(e){var i,s,n=!1;for(i in this.handles)s=t(this.handles[i])[0],(s===e.target||t.contains(s,e.target))&&(n=!0);return!this.options.disabled&&n},_mouseStart:function(e){var i,s,n,o=this.options,a=this.element;return this.resizing=!0,this._renderProxy(),i=this._num(this.helper.css("left")),s=this._num(this.helper.css("top")),o.containment&&(i+=t(o.containment).scrollLeft()||0,s+=t(o.containment).scrollTop()||0),this.offset=this.helper.offset(),this.position={left:i,top:s},this.size=this._helper?{width:this.helper.width(),height:this.helper.height()}:{width:a.width(),height:a.height()},this.originalSize=this._helper?{width:a.outerWidth(),height:a.outerHeight()}:{width:a.width(),height:a.height()},this.sizeDiff={width:a.outerWidth()-a.width(),height:a.outerHeight()-a.height()},this.originalPosition={left:i,top:s},this.originalMousePosition={left:e.pageX,top:e.pageY},this.aspectRatio="number"==typeof o.aspectRatio?o.aspectRatio:this.originalSize.width/this.originalSize.height||1,n=t(".ui-resizable-"+this.axis).css("cursor"),t("body").css("cursor","auto"===n?this.axis+"-resize":n),this._addClass("ui-resizable-resizing"),this._propagate("start",e),!0},_mouseDrag:function(e){var i,s,n=this.originalMousePosition,o=this.axis,a=e.pageX-n.left||0,r=e.pageY-n.top||0,h=this._change[o];return this._updatePrevProperties(),h?(i=h.apply(this,[e,a,r]),this._updateVirtualBoundaries(e.shiftKey),(this._aspectRatio||e.shiftKey)&&(i=this._updateRatio(i,e)),i=this._respectSize(i,e),this._updateCache(i),this._propagate("resize",e),s=this._applyChanges(),!this._helper&&this._proportionallyResizeElements.length&&this._proportionallyResize(),t.isEmptyObject(s)||(this._updatePrevProperties(),this._trigger("resize",e,this.ui()),this._applyChanges()),!1):!1},_mouseStop:function(e){this.resizing=!1;var i,s,n,o,a,r,h,l=this.options,c=this;return this._helper&&(i=this._proportionallyResizeElements,s=i.length&&/textarea/i.test(i[0].nodeName),n=s&&this._hasScroll(i[0],"left")?0:c.sizeDiff.height,o=s?0:c.sizeDiff.width,a={width:c.helper.width()-o,height:c.helper.height()-n},r=parseFloat(c.element.css("left"))+(c.position.left-c.originalPosition.left)||null,h=parseFloat(c.element.css("top"))+(c.position.top-c.originalPosition.top)||null,l.animate||this.element.css(t.extend(a,{top:h,left:r})),c.helper.height(c.size.height),c.helper.width(c.size.width),this._helper&&!l.animate&&this._proportionallyResize()),t("body").css("cursor","auto"),this._removeClass("ui-resizable-resizing"),this._propagate("stop",e),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,n,o,a=this.options;o={minWidth:this._isNumber(a.minWidth)?a.minWidth:0,maxWidth:this._isNumber(a.maxWidth)?a.maxWidth:1/0,minHeight:this._isNumber(a.minHeight)?a.minHeight:0,maxHeight:this._isNumber(a.maxHeight)?a.maxHeight:1/0},(this._aspectRatio||t)&&(e=o.minHeight*this.aspectRatio,s=o.minWidth/this.aspectRatio,i=o.maxHeight*this.aspectRatio,n=o.maxWidth/this.aspectRatio,e>o.minWidth&&(o.minWidth=e),s>o.minHeight&&(o.minHeight=s),o.maxWidth>i&&(o.maxWidth=i),o.maxHeight>n&&(o.maxHeight=n)),this._vBoundaries=o},_updateCache:function(t){this.offset=this.helper.offset(),this._isNumber(t.left)&&(this.position.left=t.left),this._isNumber(t.top)&&(this.position.top=t.top),this._isNumber(t.height)&&(this.size.height=t.height),this._isNumber(t.width)&&(this.size.width=t.width)},_updateRatio:function(t){var e=this.position,i=this.size,s=this.axis;return this._isNumber(t.height)?t.width=t.height*this.aspectRatio:this._isNumber(t.width)&&(t.height=t.width/this.aspectRatio),"sw"===s&&(t.left=e.left+(i.width-t.width),t.top=null),"nw"===s&&(t.top=e.top+(i.height-t.height),t.left=e.left+(i.width-t.width)),t},_respectSize:function(t){var e=this._vBoundaries,i=this.axis,s=this._isNumber(t.width)&&e.maxWidth&&e.maxWidtht.width,a=this._isNumber(t.height)&&e.minHeight&&e.minHeight>t.height,r=this.originalPosition.left+this.originalSize.width,h=this.originalPosition.top+this.originalSize.height,l=/sw|nw|w/.test(i),c=/nw|ne|n/.test(i);return o&&(t.width=e.minWidth),a&&(t.height=e.minHeight),s&&(t.width=e.maxWidth),n&&(t.height=e.maxHeight),o&&l&&(t.left=r-e.minWidth),s&&l&&(t.left=r-e.maxWidth),a&&c&&(t.top=h-e.minHeight),n&&c&&(t.top=h-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")];4>e;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;this._proportionallyResizeElements.length>e;e++)t=this._proportionallyResizeElements[e],this.outerDimensions||(this.outerDimensions=this._getPaddingPlusBorderDimensions(t)),t.css({height:i.height()-this.outerDimensions.height||0,width:i.width()-this.outerDimensions.width||0})},_renderProxy:function(){var e=this.element,i=this.options;this.elementOffset=e.offset(),this._helper?(this.helper=this.helper||t("
"),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:++i.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,s=this.originalPosition;return{left:s.left+e,width:i.width-e}},n:function(t,e,i){var s=this.originalSize,n=this.originalPosition;return{top:n.top+i,height:s.height-i}},s:function(t,e,i){return{height:this.originalSize.height+i}},se:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},sw:function(e,i,s){return t.extend(this._change.s.apply(this,arguments),this._change.w.apply(this,[e,i,s]))},ne:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.e.apply(this,[e,i,s]))},nw:function(e,i,s){return t.extend(this._change.n.apply(this,arguments),this._change.w.apply(this,[e,i,s]))}},_propagate:function(e,i){t.ui.plugin.call(this,e,[i,this.ui()]),"resize"!==e&&this._trigger(e,i,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}}}),t.ui.plugin.add("resizable","animate",{stop:function(e){var i=t(this).resizable("instance"),s=i.options,n=i._proportionallyResizeElements,o=n.length&&/textarea/i.test(n[0].nodeName),a=o&&i._hasScroll(n[0],"left")?0:i.sizeDiff.height,r=o?0:i.sizeDiff.width,h={width:i.size.width-r,height:i.size.height-a},l=parseFloat(i.element.css("left"))+(i.position.left-i.originalPosition.left)||null,c=parseFloat(i.element.css("top"))+(i.position.top-i.originalPosition.top)||null;i.element.animate(t.extend(h,c&&l?{top:c,left:l}:{}),{duration:s.animateDuration,easing:s.animateEasing,step:function(){var s={width:parseFloat(i.element.css("width")),height:parseFloat(i.element.css("height")),top:parseFloat(i.element.css("top")),left:parseFloat(i.element.css("left"))};n&&n.length&&t(n[0]).css({width:s.width,height:s.height}),i._updateCache(s),i._propagate("resize",e)}})}}),t.ui.plugin.add("resizable","containment",{start:function(){var e,i,s,n,o,a,r,h=t(this).resizable("instance"),l=h.options,c=h.element,u=l.containment,d=u instanceof t?u.get(0):/parent/.test(u)?c.parent().get(0):u;d&&(h.containerElement=t(d),/document/.test(u)||u===document?(h.containerOffset={left:0,top:0},h.containerPosition={left:0,top:0},h.parentData={element:t(document),left:0,top:0,width:t(document).width(),height:t(document).height()||document.body.parentNode.scrollHeight}):(e=t(d),i=[],t(["Top","Right","Left","Bottom"]).each(function(t,s){i[t]=h._num(e.css("padding"+s))}),h.containerOffset=e.offset(),h.containerPosition=e.position(),h.containerSize={height:e.innerHeight()-i[3],width:e.innerWidth()-i[1]},s=h.containerOffset,n=h.containerSize.height,o=h.containerSize.width,a=h._hasScroll(d,"left")?d.scrollWidth:o,r=h._hasScroll(d)?d.scrollHeight:n,h.parentData={element:d,left:s.left,top:s.top,width:a,height:r}))},resize:function(e){var i,s,n,o,a=t(this).resizable("instance"),r=a.options,h=a.containerOffset,l=a.position,c=a._aspectRatio||e.shiftKey,u={top:0,left:0},d=a.containerElement,p=!0;d[0]!==document&&/static/.test(d.css("position"))&&(u=h),l.left<(a._helper?h.left:0)&&(a.size.width=a.size.width+(a._helper?a.position.left-h.left:a.position.left-u.left),c&&(a.size.height=a.size.width/a.aspectRatio,p=!1),a.position.left=r.helper?h.left:0),l.top<(a._helper?h.top:0)&&(a.size.height=a.size.height+(a._helper?a.position.top-h.top:a.position.top),c&&(a.size.width=a.size.height*a.aspectRatio,p=!1),a.position.top=a._helper?h.top:0),n=a.containerElement.get(0)===a.element.parent().get(0),o=/relative|absolute/.test(a.containerElement.css("position")),n&&o?(a.offset.left=a.parentData.left+a.position.left,a.offset.top=a.parentData.top+a.position.top):(a.offset.left=a.element.offset().left,a.offset.top=a.element.offset().top),i=Math.abs(a.sizeDiff.width+(a._helper?a.offset.left-u.left:a.offset.left-h.left)),s=Math.abs(a.sizeDiff.height+(a._helper?a.offset.top-u.top:a.offset.top-h.top)),i+a.size.width>=a.parentData.width&&(a.size.width=a.parentData.width-i,c&&(a.size.height=a.size.width/a.aspectRatio,p=!1)),s+a.size.height>=a.parentData.height&&(a.size.height=a.parentData.height-s,c&&(a.size.width=a.size.height*a.aspectRatio,p=!1)),p||(a.position.left=a.prevPosition.left,a.position.top=a.prevPosition.top,a.size.width=a.prevSize.width,a.size.height=a.prevSize.height)},stop:function(){var e=t(this).resizable("instance"),i=e.options,s=e.containerOffset,n=e.containerPosition,o=e.containerElement,a=t(e.helper),r=a.offset(),h=a.outerWidth()-e.sizeDiff.width,l=a.outerHeight()-e.sizeDiff.height;e._helper&&!i.animate&&/relative/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l}),e._helper&&!i.animate&&/static/.test(o.css("position"))&&t(this).css({left:r.left-n.left-s.left,width:h,height:l})}}),t.ui.plugin.add("resizable","alsoResize",{start:function(){var e=t(this).resizable("instance"),i=e.options;t(i.alsoResize).each(function(){var e=t(this);e.data("ui-resizable-alsoresize",{width:parseFloat(e.width()),height:parseFloat(e.height()),left:parseFloat(e.css("left")),top:parseFloat(e.css("top"))})})},resize:function(e,i){var s=t(this).resizable("instance"),n=s.options,o=s.originalSize,a=s.originalPosition,r={height:s.size.height-o.height||0,width:s.size.width-o.width||0,top:s.position.top-a.top||0,left:s.position.left-a.left||0};t(n.alsoResize).each(function(){var e=t(this),s=t(this).data("ui-resizable-alsoresize"),n={},o=e.parents(i.originalElement[0]).length?["width","height"]:["width","height","top","left"];t.each(o,function(t,e){var i=(s[e]||0)+(r[e]||0);i&&i>=0&&(n[e]=i||null)}),e.css(n)})},stop:function(){t(this).removeData("ui-resizable-alsoresize")}}),t.ui.plugin.add("resizable","ghost",{start:function(){var e=t(this).resizable("instance"),i=e.size;e.ghost=e.originalElement.clone(),e.ghost.css({opacity:.25,display:"block",position:"relative",height:i.height,width:i.width,margin:0,left:0,top:0}),e._addClass(e.ghost,"ui-resizable-ghost"),t.uiBackCompat!==!1&&"string"==typeof e.options.ghost&&e.ghost.addClass(this.options.ghost),e.ghost.appendTo(e.helper)},resize:function(){var e=t(this).resizable("instance");e.ghost&&e.ghost.css({position:"relative",height:e.size.height,width:e.size.width})},stop:function(){var e=t(this).resizable("instance");e.ghost&&e.helper&&e.helper.get(0).removeChild(e.ghost.get(0))}}),t.ui.plugin.add("resizable","grid",{resize:function(){var e,i=t(this).resizable("instance"),s=i.options,n=i.size,o=i.originalSize,a=i.originalPosition,r=i.axis,h="number"==typeof s.grid?[s.grid,s.grid]:s.grid,l=h[0]||1,c=h[1]||1,u=Math.round((n.width-o.width)/l)*l,d=Math.round((n.height-o.height)/c)*c,p=o.width+u,f=o.height+d,m=s.maxWidth&&p>s.maxWidth,g=s.maxHeight&&f>s.maxHeight,_=s.minWidth&&s.minWidth>p,v=s.minHeight&&s.minHeight>f;s.grid=h,_&&(p+=l),v&&(f+=c),m&&(p-=l),g&&(f-=c),/^(se|s|e)$/.test(r)?(i.size.width=p,i.size.height=f):/^(ne)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.top=a.top-d):/^(sw)$/.test(r)?(i.size.width=p,i.size.height=f,i.position.left=a.left-u):((0>=f-c||0>=p-l)&&(e=i._getPaddingPlusBorderDimensions(this)),f-c>0?(i.size.height=f,i.position.top=a.top-d):(f=c-e.height,i.size.height=f,i.position.top=a.top+o.height-f),p-l>0?(i.size.width=p,i.position.left=a.left-u):(p=l-e.width,i.size.width=p,i.position.left=a.left+o.width-p))}}),t.ui.resizable});/** + * Copyright (c) 2007 Ariel Flesler - aflesler ○ gmail • com | https://github.com/flesler + * Licensed under MIT + * @author Ariel Flesler + * @version 2.1.2 + */ +;(function(f){"use strict";"function"===typeof define&&define.amd?define(["jquery"],f):"undefined"!==typeof module&&module.exports?module.exports=f(require("jquery")):f(jQuery)})(function($){"use strict";function n(a){return!a.nodeName||-1!==$.inArray(a.nodeName.toLowerCase(),["iframe","#document","html","body"])}function h(a){return $.isFunction(a)||$.isPlainObject(a)?a:{top:a,left:a}}var p=$.scrollTo=function(a,d,b){return $(window).scrollTo(a,d,b)};p.defaults={axis:"xy",duration:0,limit:!0};$.fn.scrollTo=function(a,d,b){"object"=== typeof d&&(b=d,d=0);"function"===typeof b&&(b={onAfter:b});"max"===a&&(a=9E9);b=$.extend({},p.defaults,b);d=d||b.duration;var u=b.queue&&1=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/kernel_8h.html b/kernel_8h.html new file mode 100644 index 000000000..aaa3cd2f4 --- /dev/null +++ b/kernel_8h.html @@ -0,0 +1,227 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/include/kernel.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
kernel.h File Reference
+
+
+ +

内核头文件 +More...

+
#include "cstdint"
+
+Include dependency graph for kernel.h:
+
+
+ + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + +
+
+

Go to the source code of this file.

+ + + + + +

+Functions

int main (int _argc, char **_argv)
 内核入口 More...
 
+

Detailed Description

+

内核头文件

+
Author
Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
+
Version
1.0
+
Date
2023-07-15
+ +
change log:
+ + + + +
DateAuthorDescription
2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
+
+ +

Definition in file kernel.h.

+

Function Documentation

+ +

◆ main()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int main (int _argc,
char ** _argv 
)
+
+ +

内核入口

+
Parameters
+ + + +
_argc参数个数
_argv参数列表
+
+
+
Returns
int 正常返回 0
+

内核入口

+
Parameters
+ + + +
_argc参数个数
_argv参数列表
+
+
+
Returns
int 正常返回 0
+ +

Definition at line 19 of file main.cpp.

+
19  {
+
20  (void)_argc;
+
21  (void)_argv;
+
22 
+
23  // 进入死循环
+
24  while (1) {
+
25  ;
+
26  }
+
27  return 0;
+
28 }
+
+Here is the call graph for this function:
+
+
+ + + + + +
+
+Here is the caller graph for this function:
+
+
+ + + + +
+ +
+
+
+
+ + + + diff --git a/kernel_8h.js b/kernel_8h.js new file mode 100644 index 000000000..a7908fb77 --- /dev/null +++ b/kernel_8h.js @@ -0,0 +1,4 @@ +var kernel_8h = +[ + [ "main", "kernel_8h.html#a2201d4f3fe424b79dbb580041d738741", null ] +]; \ No newline at end of file diff --git a/kernel_8h__dep__incl.map b/kernel_8h__dep__incl.map new file mode 100644 index 000000000..27726d49a --- /dev/null +++ b/kernel_8h__dep__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/kernel_8h__dep__incl.md5 b/kernel_8h__dep__incl.md5 new file mode 100644 index 000000000..478895070 --- /dev/null +++ b/kernel_8h__dep__incl.md5 @@ -0,0 +1 @@ +b298ae2b896f2f820308949ec4788636 \ No newline at end of file diff --git a/kernel_8h__dep__incl.png b/kernel_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..69e886f47c407962bec8f1db041ff5de242deb63 GIT binary patch literal 11110 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 OP*PC4_gU^q(EkFEd62jO literal 0 HcmV?d00001 diff --git a/kernel_8h__incl.map b/kernel_8h__incl.map new file mode 100644 index 000000000..91c250b9c --- /dev/null +++ b/kernel_8h__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/kernel_8h__incl.md5 b/kernel_8h__incl.md5 new file mode 100644 index 000000000..45c1e4bf2 --- /dev/null +++ b/kernel_8h__incl.md5 @@ -0,0 +1 @@ +639a4c3c5261bddb4a9504666d540769 \ No newline at end of file diff --git a/kernel_8h__incl.png b/kernel_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..736010b2a414a27db2041c79c2e7825a677d32f0 GIT binary patch literal 4626 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 O52U50qgt+P8TKzJDAoA@ literal 0 HcmV?d00001 diff --git a/kernel_8h_a2201d4f3fe424b79dbb580041d738741_cgraph.map b/kernel_8h_a2201d4f3fe424b79dbb580041d738741_cgraph.map new file mode 100644 index 000000000..136bb66a1 --- /dev/null +++ b/kernel_8h_a2201d4f3fe424b79dbb580041d738741_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/kernel_8h_a2201d4f3fe424b79dbb580041d738741_cgraph.md5 b/kernel_8h_a2201d4f3fe424b79dbb580041d738741_cgraph.md5 new file mode 100644 index 000000000..4ab2b1b9e --- /dev/null +++ b/kernel_8h_a2201d4f3fe424b79dbb580041d738741_cgraph.md5 @@ -0,0 +1 @@ +2c3964342d5ba1a4049a7bfdb102bc13 \ No newline at end of file diff --git a/kernel_8h_a2201d4f3fe424b79dbb580041d738741_cgraph.png b/kernel_8h_a2201d4f3fe424b79dbb580041d738741_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..045e5e0db8be854f5cab2ff75df8f38e732b5e42 GIT binary patch literal 2472 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 literal 0 HcmV?d00001 diff --git a/kernel_8h_a2201d4f3fe424b79dbb580041d738741_icgraph.map b/kernel_8h_a2201d4f3fe424b79dbb580041d738741_icgraph.map new file mode 100644 index 000000000..ac768e7b3 --- /dev/null +++ b/kernel_8h_a2201d4f3fe424b79dbb580041d738741_icgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/kernel_8h_a2201d4f3fe424b79dbb580041d738741_icgraph.md5 b/kernel_8h_a2201d4f3fe424b79dbb580041d738741_icgraph.md5 new file mode 100644 index 000000000..58bf0ac0c --- /dev/null +++ b/kernel_8h_a2201d4f3fe424b79dbb580041d738741_icgraph.md5 @@ -0,0 +1 @@ +e4021c196cfb890b0dd70549211c6af2 \ No newline at end of file diff --git a/kernel_8h_a2201d4f3fe424b79dbb580041d738741_icgraph.png b/kernel_8h_a2201d4f3fe424b79dbb580041d738741_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..47d49a1cc719bf7e175aae527e1889fedb0b0c99 GIT binary patch literal 1588 zcmV-42Fv-0P)LTgYtKY&IOnXEcEiv)R0alD-HW$LW?3j8rPEsHmV@#cX6}X9u;w zng9Y#0D&fe0B8aTfF}4FIehr=ty{M!Ot`ov*tl`y#ful0CTj6`@Zd#JQB!B-P3;>Xqmxmw-ilP#Uq`JD=e~O)wl2Tq?o|Tm) z5C{+i35r@akRLxzUAxw=)iz3{dE&&0?Ck8VTes?Ty33a@``ZJTgTlf>lgXsl>lF&czJ2>1J$e*|9%@W5 zJUm=lT6*Qmm9eq0y1KfSmKFd&YinzIdisS67f6!yZSCE>d6Oi`>FH^U#nRN&0YB*VNRClP9kY42&)`&%Jy1ii?Xa7K>CW zEiEl|I2nd$@wm?DwS&8x^)l9Q7^?`AfeYinzVhlf9W_y7Qq%jNz@adC0s4gK_K^y<~WgcnN* zJ~zC4=`*YM z06(@G+uD!i| z+qP|dKL6agbFHnd{-+3n_^$(_=48#9_cb*?Q!<5_7#jNP?AfkaIxrXvkH@oqy~yQy zhN7c$I$%D$d-txYs;aWGGA%6)!?3GYug2&t=^w6zhVT3S&Mx$AJ9bvQF{wgy#I9OR(NweQ0000 + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/include/kernel.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
kernel.h
+
+
+Go to the documentation of this file.
1 
+
17 #ifndef SIMPLEKERNEL_KERNEL_H
+
18 #define SIMPLEKERNEL_KERNEL_H
+
19 
+
20 #include "cstdint"
+
21 
+
28 int main(int _argc, char **_argv);
+
29 
+
30 #endif /* SIMPLEKERNEL_KERNEL_H */
+
int main(int _argc, char **_argv)
内核入口
Definition: main.cpp:19
+
+
+ + + + diff --git a/libc_8c.html b/libc_8c.html new file mode 100644 index 000000000..1691861ee --- /dev/null +++ b/libc_8c.html @@ -0,0 +1,173 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/libc/libc.c File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
libc.c File Reference
+
+
+
#include "libc.h"
+
+Include dependency graph for libc.c:
+
+
+ + + + + +
+
+

Go to the source code of this file.

+ + + + + +

+Functions

int32_t libc (uint32_t _argc, uint8_t **_argv)
 入口 More...
 
+

Function Documentation

+ +

◆ libc()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int32_t libc (uint32_t _argc,
uint8_t ** _argv 
)
+
+ +

入口

+
Parameters
+ + + +
_argc参数个数
_argv参数列表
+
+
+
Returns
int32_t 正常返回 0
+ +

Definition at line 23 of file libc.c.

+
23  {
+
24  (void)_argc;
+
25  (void)_argv;
+
26 
+
27  // 进入死循环
+
28  while (1) {
+
29  ;
+
30  }
+
31 
+
32  return 0;
+
33 }
+
+
+
+
+
+ + + + diff --git a/libc_8c.js b/libc_8c.js new file mode 100644 index 000000000..90ea70af1 --- /dev/null +++ b/libc_8c.js @@ -0,0 +1,4 @@ +var libc_8c = +[ + [ "libc", "libc_8c.html#a8c836cd24760922e8c388007278d467f", null ] +]; \ No newline at end of file diff --git a/libc_8c__incl.map b/libc_8c__incl.map new file mode 100644 index 000000000..017caaef3 --- /dev/null +++ b/libc_8c__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libc_8c__incl.md5 b/libc_8c__incl.md5 new file mode 100644 index 000000000..a3b5287d7 --- /dev/null +++ b/libc_8c__incl.md5 @@ -0,0 +1 @@ +35f68b23ff83ca967f05e5f7df16fdd8 \ No newline at end of file diff --git a/libc_8c__incl.png b/libc_8c__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..6730945af4d25bc73a350f6ea28945ec06dad5c8 GIT binary patch literal 5549 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 + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/libc/libc.c Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
libc.c
+
+
+Go to the documentation of this file.
1 
+
17 #ifdef __cplusplus
+
18 extern "C" {
+
19 #endif
+
20 
+
21 #include "libc.h"
+
22 
+
23 int32_t libc(uint32_t _argc, uint8_t **_argv) {
+
24  (void)_argc;
+
25  (void)_argv;
+
26 
+
27  // 进入死循环
+
28  while (1) {
+
29  ;
+
30  }
+
31 
+
32  return 0;
+
33 }
+
34 
+
35 #ifdef __cplusplus
+
36 }
+
37 #endif
+
int32_t libc(uint32_t _argc, uint8_t **_argv)
入口
Definition: libc.c:23
+
libc 头文件
+
+
+ + + + diff --git a/libc_8h.html b/libc_8h.html new file mode 100644 index 000000000..c60a1f175 --- /dev/null +++ b/libc_8h.html @@ -0,0 +1,199 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/libc/include/libc.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
libc.h File Reference
+
+
+ +

libc 头文件 +More...

+
#include "stdint.h"
+
+Include dependency graph for libc.h:
+
+
+ + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + + +

+Functions

int32_t libc (uint32_t _argc, uint8_t **_argv)
 入口 More...
 
+

Detailed Description

+

libc 头文件

+
Author
Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
+
Version
1.0
+
Date
2023-07-15
+ +
change log:
+ + + + +
DateAuthorDescription
2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
+
+ +

Definition in file libc.h.

+

Function Documentation

+ +

◆ libc()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int32_t libc (uint32_t _argc,
uint8_t ** _argv 
)
+
+ +

入口

+
Parameters
+ + + +
_argc参数个数
_argv参数列表
+
+
+
Returns
int32_t 正常返回 0
+ +

Definition at line 23 of file libc.c.

+
23  {
+
24  (void)_argc;
+
25  (void)_argv;
+
26 
+
27  // 进入死循环
+
28  while (1) {
+
29  ;
+
30  }
+
31 
+
32  return 0;
+
33 }
+
+
+
+
+
+ + + + diff --git a/libc_8h.js b/libc_8h.js new file mode 100644 index 000000000..a06b9ba3e --- /dev/null +++ b/libc_8h.js @@ -0,0 +1,4 @@ +var libc_8h = +[ + [ "libc", "libc_8h.html#a8c836cd24760922e8c388007278d467f", null ] +]; \ No newline at end of file diff --git a/libc_8h__dep__incl.map b/libc_8h__dep__incl.map new file mode 100644 index 000000000..358ea137c --- /dev/null +++ b/libc_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/libc_8h__dep__incl.md5 b/libc_8h__dep__incl.md5 new file mode 100644 index 000000000..d2c61b2c5 --- /dev/null +++ b/libc_8h__dep__incl.md5 @@ -0,0 +1 @@ +64f56e052a522f5d633e19c7e4d3fcd1 \ No newline at end of file diff --git a/libc_8h__dep__incl.png b/libc_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..892ff3320dc6c8a3beb139f0508b4c19b598976e GIT binary patch literal 7469 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 literal 0 HcmV?d00001 diff --git a/libc_8h__incl.map b/libc_8h__incl.map new file mode 100644 index 000000000..f255631a8 --- /dev/null +++ b/libc_8h__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/libc_8h__incl.md5 b/libc_8h__incl.md5 new file mode 100644 index 000000000..d269f1c9b --- /dev/null +++ b/libc_8h__incl.md5 @@ -0,0 +1 @@ +dea2b5fff60545714b3d4c5d2fbabb95 \ No newline at end of file diff --git a/libc_8h__incl.png b/libc_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..a99191df5115d6b5ba8adb0e25b1ba03a8a6f874 GIT binary patch literal 4646 zcmcgwXH-*Nvpxa>QiCXjqEtaZrM(oTN+(ni=@Oa=U63waNC4>|N{bNcOA~mpQ3a6> zA<}yhsZs?3BFNp`yY9W;kMH+)&PvW&vywS`&pb2FGdspmUz47Ood$v+dTlK=Bk=44 zpLl9A@STNqIx|q(>1e7!r)PI=V{s}3F->Z#-8J^l-oQB--yfamIN;$=;!YNh3Hw_{ z;~v`$l}lfQTPq%j3g^Bx*{B+ly`fxW2NS~7aejQ~Q`#oZYjtpu*qsO$dUg(5E>sxEA@x`TwYJjR+2MABDs{gDdB=H zf?@DW+&CVaFmG(wxdApZO2UMJu&}W2=9E)~F)ZQB-s+&Fq-0ES=%9IU@JUyyARiwe z9*yz1URqYBeUng!qoJX(`Toqq%KKX6n|_#>@*UM?XqE09xsHzjORT8XM`ayhY7QZk zk@;+N~G^~g{H{^eLKwxOXRGBWZ!EsFyh zZE9ljt&-*P<+k?r&s|^W_JS(!VvdfE2n7Am(9owf)jLF!-pJ^Eg4`Ab1qJ6F@6Nuy zin_X^v1eU2WIF#Geq$nv_Q&fZ+tFm=+a^g*gu9U0*Xb5 z!W2Z|D^cX;+8PJ}!oYw_+>S!%t=SC*M#jq0(z?I{cN3G5KPSIs+^68|02hYBX^$KC zM@sG&W9isi>@_KeKb)YNWdV`D>4Pme3~SUjuzZ&G`E`*gh@D=TZ_RfRjEqKVsGPEm?pOTBBu zWd=ElSD2aY`7ImIHh(em5<|a3_Y0x;_;?x&8N~gnCpb9RQ=x0|=iHnPWrS@5d)4($dRoH=aXgU~n*s zk&CdrJ6eehUF=SK|6aP`G*3PD`1p9tmBjJ50dG{2lA1a_Jq;G9s-m(vT~BqE*2Tp| z4r$kI5^2dp_Qyzti>qtU;WplV1>iU=3=%93LE*FTcwaue_I$MN)b#Yp@$vU30RT%6 zA5Q=CsOQbYdP*p%XYsIW*k4NP{@-O~I@;PXadEw!o!sm(W^nAr#5>woHm=S z#K3@r@4A_hqhgN1HQQ-A`gaSDKg|#eJSH+CvDog#C%0a4z+f;ImiM8jA!!I7u=Bk= zZzxO!4-h(VDdgAUE4*q{dq;t>_A*s;jBNSDTl2rP$+D@XfJfV`J1%v#8MDbBl`@+c5*B zlP`-;;-lItB|ShEqiNP&pWbBDqbbH|J36ksylDx-tj_zj%C=QrLBZg)eAnWWjyN{* zqcSWh9SW0j89CnR;4(Ki$6zprQrVm3p0b?!K|w*Do}LdLq`e_re2g2ww?x+fYqXV)9;y?jS-2t zCS_YwwW+UOjSddl%kO>kTp+wwm>eJf1!@{pO6DEW1-$mORtClS^YdudAUqvC{mFb3 z*LFwq7iTee9HY{)Avesy!C@}+=0vrHrKOD9g!jqOKDz(4kB<-Tj!$V};iG{9?Ik@H z$k4>ZccDFgb90kfQ2%;b_o#JXU!1dH%lF-J&>;fkuU6B*d6kq-V?~?H-Z@{!+TJhL z*VEUR7DDLj6F$s_h$L%){qVx5Uy33L4icwFKScTPqi-Hsnwh1ir>`t5Ftf5oA>*>b zLGl#~c*Qb$b8~YiCM?30AqWS{J&TNl%RP?tI)`?dcC>QR$cHJeI~c7*frs?aDr}| z{_KU0c21l&e+p<_^NGXGJ|H%rRmE@!!K#F!;^K|TEo67AR*uT^^X);fIT=7E6uva( zhPR`xNQ_iaW_zIQn+Ta%S=TOhMP6W*cAr{VU#Gh+=bUgw4wb?a73p@zq1=+5t`#&_ z9Rvad{M+*Khmez_orR7c?KF&xr$2i{A4!;_(P(31<0nrfJZHUf#dnX^=Ubz?y1JN{ zm}+Zl{msLL64>w4-<}xDRc&7zc64+c`xF}L?(S}GK3?bZBjjY?G%v!pyu$LsOub)a zRn_+4&H}T5?jgWv{7}4g@6b3-&Tq(hzad~Zda`-wid3_=Dnt0$(yZwzBj(rFd*?ks z*gt(b1>T|+)ox%^cv8Fmsi^_QBk9nY^lNvy_4sJC*T-vfsuqqdEG*m@t8VS@XWU!n z;i*OHN_~fo6`ieY&Om*3;s}204Ga1apRlhtFzBF}N--@AG$wjM%~h9OxYFs2WggdtWuV%vX3;4?Nst z63znjAbxIcZen6$eSLjo!~}_)Jw6VS&Z>|@xw~(I99_E@gD3=`1uZ)7bs{Exo%SDI z(n=DWtZT=$LR$JJZjoW5zXcO2b%!f6b| zJf}6i6HqUjnwoyz-e$5*<6EDh#$eK0_e`prB>MX8u(2m8-fO)qapZNk%^YW&sou6c zG;+*Y4O7V?xVFeD2Qs`D6KWiDwZrCac!iM&w`3=>lK1xaTmBMtlyRPvfgrGHP@?=u z4L`pR)_mmR++E~(GTN#Uum-@UPyI5TTwH$d4H}4uhy=*LCWYqRAMeG!$#Bm1v%gA< z-v}ydY@{KM$59jowD`Y%8q9``qr*}TWfhFOM}u}#V^+TP=`>{Wy&EWyYZF55DAgX_ z-#8qGm@hd%5-#Y|;?81?D=z)fBj(^BCXwr&f~x1q%*+%P5s{RTIAisoppkO(h!6K? zd)t3zkmTfqnZ+3teh4@PULHX4Z&z??5ceO!B_!Z%hL2O0YI$BD3d_nw#JR=E_WNAv z?gkg})42uOU)WoTbI9j*)38$)iMmzSM5n4j`JDWsHt7eJSU*UY*b(^WI3O@k?$74M z)qCJgupu5T_kS;@-MqHxX8SNPFR)**xA{Ep46Km8AAflOGCU1`t=hyzwNaI&ym`YEL6O!liN~hOWS^K!mA3Sz1oIi z9z-c0v%k0D%vGSWOn+hRDlNW1+`iomu=94=hBkE|wod@X+3_hcq3V1R;a{|Sfg}ap znSr?5sNwDX*RlLMwdv@Ng2GMqK1mlryTK$*D72o7NF;KncI6g3pbLsk8%~>MUkDk8 z`r3O)I1gRl*h&?*uyT!{;mV04r-vnSy8_*~apil88xAz@}9i-qid?dtVk%6kVSr5{Q%) zStqGUFtV^eT=|d0szU!rLNVpYB*GDzv<{h?p0L6j8*O&J8Fu~}{oUX z2z0@s;`Vj|Ee2hi%6IbBR8%^9UNshI2n-5IlOC9wGKateh|jz=VmdoxRHITvKRDv(6T%E`60>Dfx0zW09W|4~CN?t=+}bbf&C!M6p~x1ZGQCD>wFVzP1f&IyHg ztEE*{Ra;xD#uO_kWJX59M3(H4+_-z^TdUM#Rm{szk#{uX=CF}*)$Ryiih+y^Upk^1 z{PE`?v5dHDIz_hWe?%WM)p6r8lx^lZLyudTTa^tG1#U6i%oGUoMzP1lme8}9z%E6j0toUh0o|XYWGb8n zBl~seA*ladT{95_`vLw41_2C=nvCIzV(SHJ>M+>i?CFv&PB;ukO%P&c0Op7boXNN0 zT4-wc|IDbUxR)#U20$x<+_VDt`0)?~xWAq&K_|wUIt6RuwyYpCE-~z>c=0oa7A&K*qGDqe)Z1SmG#@^&LUS7%56#Vg{an<6!VIrxi`#2}`P--@XnXFi zzJ7u>&)X<6D7x+2C^8gBiW%dJ&_X9CCttmKb$6*Ra52r)cVps#m6g0hCkzTx;|1BI z%j#=a;(rZByPBH&*Dn!rlujEDW+a6uoUT)ZN363J7@i$k-m6G6&=(C2S1Ruy1v>Q6`N=O1y^9p*#H0l literal 0 HcmV?d00001 diff --git a/libc_8h_source.html b/libc_8h_source.html new file mode 100644 index 000000000..e06b3a1c9 --- /dev/null +++ b/libc_8h_source.html @@ -0,0 +1,117 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/libc/include/libc.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
libc.h
+
+
+Go to the documentation of this file.
1 
+
17 #ifndef SIMPLEKERNEL_LIBC_H
+
18 #define SIMPLEKERNEL_LIBC_H
+
19 
+
20 #ifdef __cplusplus
+
21 extern "C" {
+
22 #endif
+
23 
+
24 #include "stdint.h"
+
25 
+
32 int32_t libc(uint32_t _argc, uint8_t **_argv);
+
33 
+
34 #ifdef __cplusplus
+
35 }
+
36 #endif
+
37 
+
38 #endif /* SIMPLEKERNEL_LIBC_H */
+
int32_t libc(uint32_t _argc, uint8_t **_argv)
入口
Definition: libc.c:23
+
+
+ + + + diff --git a/libcxx_8cpp.html b/libcxx_8cpp.html new file mode 100644 index 000000000..9ef98265d --- /dev/null +++ b/libcxx_8cpp.html @@ -0,0 +1,191 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/libcxx/libcxx.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
libcxx.cpp File Reference
+
+
+ +

libcxx cpp +More...

+
#include "libcxx.h"
+
+Include dependency graph for libcxx.cpp:
+
+
+ + + + + +
+
+

Go to the source code of this file.

+ + + + + +

+Functions

int32_t libcxx (uint32_t _argc, uint8_t **_argv)
 入口 More...
 
+

Detailed Description

+

libcxx cpp

+
Author
Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
+
Version
1.0
+
Date
2023-07-15
+ +
change log:
+ + + + +
DateAuthorDescription
2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
+
+ +

Definition in file libcxx.cpp.

+

Function Documentation

+ +

◆ libcxx()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int32_t libcxx (uint32_t _argc,
uint8_t ** _argv 
)
+
+ +

入口

+
Parameters
+ + + +
_argc参数个数
_argv参数列表
+
+
+
Returns
int32_t 正常返回 0
+ +

Definition at line 19 of file libcxx.cpp.

+
19  {
+
20  (void)_argc;
+
21  (void)_argv;
+
22 
+
23  // 进入死循环
+
24  while (1) {
+
25  ;
+
26  }
+
27 
+
28  return 0;
+
29 }
+
+
+
+
+
+ + + + diff --git a/libcxx_8cpp.js b/libcxx_8cpp.js new file mode 100644 index 000000000..0f98de18f --- /dev/null +++ b/libcxx_8cpp.js @@ -0,0 +1,4 @@ +var libcxx_8cpp = +[ + [ "libcxx", "libcxx_8cpp.html#a1e7046ac65ca1fc2e305cdf450e3fdac", null ] +]; \ No newline at end of file diff --git a/libcxx_8cpp__incl.map b/libcxx_8cpp__incl.map new file mode 100644 index 000000000..0cf20a191 --- /dev/null +++ b/libcxx_8cpp__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/libcxx_8cpp__incl.md5 b/libcxx_8cpp__incl.md5 new file mode 100644 index 000000000..5d92f3f38 --- /dev/null +++ b/libcxx_8cpp__incl.md5 @@ -0,0 +1 @@ +5b64d33aff74ffd1d0ef05019d63a14c \ No newline at end of file diff --git a/libcxx_8cpp__incl.png b/libcxx_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..3730ccd12ea30531f06bee80a75061f2223c2aea GIT binary patch literal 6054 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 literal 0 HcmV?d00001 diff --git a/libcxx_8cpp_source.html b/libcxx_8cpp_source.html new file mode 100644 index 000000000..ff784cd89 --- /dev/null +++ b/libcxx_8cpp_source.html @@ -0,0 +1,115 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/libcxx/libcxx.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
libcxx.cpp
+
+
+Go to the documentation of this file.
1 
+
17 #include "libcxx.h"
+
18 
+
19 int32_t libcxx(uint32_t _argc, uint8_t **_argv) {
+
20  (void)_argc;
+
21  (void)_argv;
+
22 
+
23  // 进入死循环
+
24  while (1) {
+
25  ;
+
26  }
+
27 
+
28  return 0;
+
29 }
+
int32_t libcxx(uint32_t _argc, uint8_t **_argv)
入口
Definition: libcxx.cpp:19
+
libcxx 头文件
+
+
+ + + + diff --git a/libcxx_8h.html b/libcxx_8h.html new file mode 100644 index 000000000..64f15a734 --- /dev/null +++ b/libcxx_8h.html @@ -0,0 +1,199 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/libcxx/include/libcxx.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
libcxx.h File Reference
+
+
+ +

libcxx 头文件 +More...

+
#include "cstdint"
+
+Include dependency graph for libcxx.h:
+
+
+ + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + +
+
+

Go to the source code of this file.

+ + + + + +

+Functions

int32_t libcxx (uint32_t _argc, uint8_t **_argv)
 入口 More...
 
+

Detailed Description

+

libcxx 头文件

+
Author
Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
+
Version
1.0
+
Date
2023-07-15
+ +
change log:
+ + + + +
DateAuthorDescription
2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
+
+ +

Definition in file libcxx.h.

+

Function Documentation

+ +

◆ libcxx()

+ +
+
+ + + + + + + + + + + + + + + + + + +
int32_t libcxx (uint32_t _argc,
uint8_t ** _argv 
)
+
+ +

入口

+
Parameters
+ + + +
_argc参数个数
_argv参数列表
+
+
+
Returns
int32_t 正常返回 0
+ +

Definition at line 19 of file libcxx.cpp.

+
19  {
+
20  (void)_argc;
+
21  (void)_argv;
+
22 
+
23  // 进入死循环
+
24  while (1) {
+
25  ;
+
26  }
+
27 
+
28  return 0;
+
29 }
+
+
+
+
+
+ + + + diff --git a/libcxx_8h.js b/libcxx_8h.js new file mode 100644 index 000000000..d27a06ec8 --- /dev/null +++ b/libcxx_8h.js @@ -0,0 +1,4 @@ +var libcxx_8h = +[ + [ "libcxx", "libcxx_8h.html#a1e7046ac65ca1fc2e305cdf450e3fdac", null ] +]; \ No newline at end of file diff --git a/libcxx_8h__dep__incl.map b/libcxx_8h__dep__incl.map new file mode 100644 index 000000000..b71278d54 --- /dev/null +++ b/libcxx_8h__dep__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/libcxx_8h__dep__incl.md5 b/libcxx_8h__dep__incl.md5 new file mode 100644 index 000000000..09654b486 --- /dev/null +++ b/libcxx_8h__dep__incl.md5 @@ -0,0 +1 @@ +d467d005464516760b633a2f04fc9371 \ No newline at end of file diff --git a/libcxx_8h__dep__incl.png b/libcxx_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..aa11a48559307293805bc916d22d47f7c05f201e GIT binary patch literal 8148 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 EUt*qMGynhq literal 0 HcmV?d00001 diff --git a/libcxx_8h__incl.map b/libcxx_8h__incl.map new file mode 100644 index 000000000..b17710e00 --- /dev/null +++ b/libcxx_8h__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/libcxx_8h__incl.md5 b/libcxx_8h__incl.md5 new file mode 100644 index 000000000..99edcbfcf --- /dev/null +++ b/libcxx_8h__incl.md5 @@ -0,0 +1 @@ +16bf2348e97f7f3088321c0d22596ec5 \ No newline at end of file diff --git a/libcxx_8h__incl.png b/libcxx_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..d62c6639483a2cc33b59451ebad5dbcc33d887f6 GIT binary patch literal 5067 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 literal 0 HcmV?d00001 diff --git a/libcxx_8h_source.html b/libcxx_8h_source.html new file mode 100644 index 000000000..54415419d --- /dev/null +++ b/libcxx_8h_source.html @@ -0,0 +1,109 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/libcxx/include/libcxx.h Source File + + + + + + + + + + + + + +

+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
libcxx.h
+
+
+Go to the documentation of this file.
1 
+
17 #ifndef SIMPLEKERNEL_LIBCXX_H
+
18 #define SIMPLEKERNEL_LIBCXX_H
+
19 
+
20 #include "cstdint"
+
21 
+
28 int32_t libcxx(uint32_t _argc, uint8_t **_argv);
+
29 
+
30 #endif /* SIMPLEKERNEL_LIBCXX_H */
+
int32_t libcxx(uint32_t _argc, uint8_t **_argv)
入口
Definition: libcxx.cpp:19
+
+
+ + + + diff --git a/load__elf_8cpp.html b/load__elf_8cpp.html new file mode 100644 index 000000000..3091823bb --- /dev/null +++ b/load__elf_8cpp.html @@ -0,0 +1,143 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/boot/load_elf.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
load_elf.cpp File Reference
+
+
+ +

加载 elf 文件 +More...

+
#include <array>
+#include <cstring>
+#include <memory>
+#include <span>
+#include "load_elf.h"
+#include "ostream.hpp"
+
+Include dependency graph for load_elf.cpp:
+
+
+ + + + + + + + + + + + + +
+
+

Go to the source code of this file.

+

Detailed Description

+

加载 elf 文件

+
Author
Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
+
Version
1.0
+
Date
2023-07-15
+ +
change log:
+ + + + +
DateAuthorDescription
2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
+
+ +

Definition in file load_elf.cpp.

+
+
+ + + + diff --git a/load__elf_8cpp__incl.map b/load__elf_8cpp__incl.map new file mode 100644 index 000000000..5d2fc025e --- /dev/null +++ b/load__elf_8cpp__incl.map @@ -0,0 +1,13 @@ + + + + + + + + + + + + + diff --git a/load__elf_8cpp__incl.md5 b/load__elf_8cpp__incl.md5 new file mode 100644 index 000000000..f70f9dedc --- /dev/null +++ b/load__elf_8cpp__incl.md5 @@ -0,0 +1 @@ +26b3fef77ec63635ecc8694380ca1d00 \ No newline at end of file diff --git a/load__elf_8cpp__incl.png b/load__elf_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..744e75664d4345e7a15837d9096d1b8203a66434 GIT binary patch literal 24514 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 + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/boot/load_elf.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
load_elf.cpp
+
+
+Go to the documentation of this file.
1 
+
17 #include <array>
+
18 #include <cstring>
+
19 #include <memory>
+
20 #include <span>
+
21 
+
22 #include "load_elf.h"
+
23 #include "ostream.hpp"
+
24 
+
25 namespace {
+
26 
+
33 auto char2wchar(wchar_t *_dst, const char *_src) -> size_t {
+
34  size_t idx = 0;
+
35  while (_src[idx] != '\0') {
+
36  _dst[idx] = _src[idx];
+
37  idx++;
+
38  }
+
39  return idx;
+
40 }
+
41 
+
43 constexpr const uint32_t ONE_TAB_SIZE = 8;
+
45 constexpr const uint32_t TWO_TAB_SIZE = 16;
+
47 constexpr const uint32_t ALIGN_TWO = 10;
+
48 
+
49 } // namespace
+
50 
+
51 Elf::Elf(wchar_t *_kernel_image_filename) {
+
52  EFI_STATUS status = EFI_SUCCESS;
+
53  // 打开文件系统协议
+
54  status = LibLocateProtocol(&FileSystemProtocol,
+
55  reinterpret_cast<void **>(&file_system_protocol));
+
56  if (EFI_ERROR(status)) {
+
57  debug << L"LibLocateProtocol failed: " << status << ostream::endl;
+
58  throw std::runtime_error("EFI_ERROR(status)");
+
59  }
+
60 
+
61  // 打开根文件系统
+
62  status = uefi_call_wrapper(file_system_protocol->OpenVolume, 2,
+ +
64  if (EFI_ERROR(status)) {
+
65  debug << L"OpenVolume failed: " << status << ostream::endl;
+
66  throw std::runtime_error("EFI_ERROR(status)");
+
67  }
+
68 
+
69  // 打开 elf 文件
+
70  status = uefi_call_wrapper(root_file_system->Open, 5, root_file_system, &elf,
+
71  _kernel_image_filename, EFI_FILE_MODE_READ,
+
72  EFI_FILE_READ_ONLY);
+
73 
+
74  if (EFI_ERROR(status)) {
+
75  debug << L"Open failed: " << status << ostream::endl;
+
76  throw std::runtime_error("EFI_ERROR(status)");
+
77  }
+
78 
+
79  // 获取 elf 文件大小
+
80  try {
+ +
82  } catch (std::runtime_error &_e) {
+
83  debug << L"get_file_size failed: " << _e.what() << ostream::endl;
+
84  throw std::runtime_error(_e.what());
+
85  }
+
86  debug << L"Kernel file size: " << elf_file_size << ostream::endl;
+
87 
+
88  // 分配 elf 文件缓存
+
89  status = uefi_call_wrapper(gBS->AllocatePool, 3, EfiLoaderData, elf_file_size,
+ +
91 
+
92  if (EFI_ERROR(status)) {
+
93  debug << L"AllocatePool failed: " << status << ostream::endl;
+
94  throw std::runtime_error("EFI_ERROR(status)");
+
95  }
+
96 
+
97  // 将内核文件读入内存
+
98  status = uefi_call_wrapper(elf->Read, 3, (EFI_FILE *)elf, &elf_file_size,
+ +
100  if (EFI_ERROR(status)) {
+
101  debug << L"Read failed: " << status << ostream::endl;
+
102  throw std::runtime_error("EFI_ERROR(status)");
+
103  }
+
104 
+
105  file = std::span<uint8_t>(static_cast<uint8_t *>(elf_file_buffer),
+
106  elf_file_size);
+
107 
+
108  // 检查 elf 头数据
+
109  auto check_elf_identity_ret = check_elf_identity();
+
110  if (!check_elf_identity_ret) {
+
111  debug << L"NOT valid ELF file" << ostream::endl;
+
112  throw std::runtime_error("check_elf_identity_ret == false");
+
113  }
+
114 
+
115  // 读取 ehdr
+
116  get_ehdr();
+
117  print_ehdr();
+
118  // 读取 phdr
+
119  get_phdr();
+
120  print_phdr();
+
121  // 读取 shdr
+
122  get_shdr();
+
123  print_shdr();
+
124 }
+
125 
+ +
127  try {
+
128  EFI_STATUS status = EFI_SUCCESS;
+
129  // 关闭 elf 文件
+
130  status = uefi_call_wrapper(elf->Close, 1, elf);
+
131  if (EFI_ERROR(status)) {
+
132  debug << L"Close failed: " << status << ostream::endl;
+
133  throw std::runtime_error("EFI_ERROR(status)");
+
134  }
+
136  } catch (std::runtime_error &_e) {
+
137  debug << L"~Elf failed: " << _e.what() << ostream::endl;
+
138  }
+
139 }
+
140 
+
141 auto Elf::load_kernel_image() const -> uint64_t {
+
142  uintptr_t image_base = 0;
+
143  uintptr_t image_begin = 0;
+
144  try {
+
145  // load_program_sections();
+
146  size_t size = 0;
+
147  for (uint64_t i = 0; i < ehdr.e_phnum; i++) {
+
148  if (phdr[i].p_type != PT_LOAD) {
+
149  continue;
+
150  }
+
151  phdr[i].p_vaddr;
+
152  size += phdr[i].p_memsz;
+
153  }
+
154  auto section_page_count = EFI_SIZE_TO_PAGES(size);
+
155  auto status =
+
156  uefi_call_wrapper(gBS->AllocatePages, 4, AllocateAnyPages,
+
157  EfiLoaderCode, section_page_count, &image_base);
+
158  if (EFI_ERROR(status)) {
+
159  debug << L"AllocatePages failed: " << status << ostream::endl;
+
160  throw std::runtime_error("EFI_ERROR(status)");
+
161  }
+
162 
+
163  for (auto &i : phdr) {
+
164  if (i.p_type != PT_LOAD) {
+
165  continue;
+
166  }
+
167  memcpy((void *)(image_base + i.p_vaddr), file.data() + i.p_offset,
+
168  i.p_memsz);
+
169  }
+
170 
+
171  } catch (std::runtime_error &_e) {
+
172  debug << L"load_kernel_image: " << _e.what() << ostream::endl;
+
173  }
+
174  debug << L"load_kernel_image: " << ostream::hex_X << image_base << L" "
+
175  << ostream::hex_X << ehdr.e_entry << L" " << ostream::hex_X
+
176  << image_begin << ostream::endl;
+
177 
+
178  return image_base + ehdr.e_entry - image_begin;
+
179 }
+
180 
+
181 auto Elf::load() const -> uintptr_t {
+
182  // 记录 AllocatePages 分配出的物理地址
+
183  uintptr_t image_base = 0;
+
184  // 计算需要的内存页
+
185  auto section_page_count = EFI_SIZE_TO_PAGES(elf_file_size);
+
186  // 将整个 elf 文件映射到内存,方便后续读取
+
187  auto status =
+
188  uefi_call_wrapper(gBS->AllocatePages, 4, AllocateAnyPages, EfiLoaderCode,
+
189  section_page_count, &image_base);
+
190  if (EFI_ERROR(status)) {
+
191  debug << L"AllocatePages failed: " << status << ostream::endl;
+
192  throw std::runtime_error("EFI_ERROR(status)");
+
193  }
+
194  // 将 elf 复制到分配的物理内存中
+
195  std::memcpy(reinterpret_cast<void *>(image_base), file.data(),
+
196  section_page_count * EFI_PAGE_SIZE);
+
197 
+
198  debug << L"AllocatePages section_page_count: " << section_page_count
+
199  << L" image_base: " << ostream::hex_X << image_base << ostream::endl;
+
200  return image_base + ehdr.e_entry;
+
201 }
+
202 
+
203 auto Elf::get_file_size() const -> size_t {
+
204  // 获取 elf 文件大小
+
205  auto *elf_file_info = LibFileInfo(elf);
+
206  auto file_size = elf_file_info->FileSize;
+
207  return file_size;
+
208 }
+
209 
+
210 auto Elf::check_elf_identity() const -> bool {
+
211  if ((file[EI_MAG0] != ELFMAG0) || (file[EI_MAG1] != ELFMAG1) ||
+
212  (file[EI_MAG2] != ELFMAG2) || (file[EI_MAG3] != ELFMAG3)) {
+
213  debug << L"Fatal Error: Invalid ELF header" << ostream::endl;
+
214  return false;
+
215  }
+
216  if (file[EI_CLASS] == ELFCLASS32) {
+
217  debug << L"Found 32bit executable but NOT SUPPORT" << ostream::endl;
+
218  return false;
+
219  }
+
220  if (file[EI_CLASS] == ELFCLASS64) {
+
221  debug << L"Found 64bit executable" << ostream::endl;
+
222  } else {
+
223  debug << L"Fatal Error: Invalid executable" << ostream::endl;
+
224  return false;
+
225  }
+
226  return true;
+
227 }
+
228 
+ +
230  ehdr = *reinterpret_cast<const Elf64_Ehdr *>(file.data());
+
231 }
+
232 
+
233 void Elf::print_ehdr() const {
+
234  debug << L" Magic: ";
+
235  for (auto idx : ehdr.e_ident) {
+
236  debug << ostream::hex_x << idx << L" ";
+
237  }
+
238  debug << ostream::endl;
+
239 
+
240  debug << L" Class: ";
+
241  switch (ehdr.e_ident[EI_CLASS]) {
+
242  case ELFCLASSNONE: {
+
243  debug << L"Invalid class";
+
244  break;
+
245  }
+
246  case ELFCLASS32: {
+
247  debug << L"ELF32";
+
248  break;
+
249  }
+
250  case ELFCLASS64: {
+
251  debug << L"ELF64";
+
252  break;
+
253  }
+
254  default: {
+
255  debug << ehdr.e_ident[EI_CLASS];
+
256  break;
+
257  }
+
258  }
+
259  debug << ostream::endl;
+
260 
+
261  debug << L" Data: ";
+
262  switch (ehdr.e_ident[EI_DATA]) {
+
263  case ELFDATANONE: {
+
264  debug << L"Invalid data encoding";
+
265  break;
+
266  }
+
267  case ELFDATA2LSB: {
+
268  debug << L"2's complement, little endian";
+
269  break;
+
270  }
+
271  case ELFDATA2MSB: {
+
272  debug << L"2's complement, big endian";
+
273  break;
+
274  }
+
275  default: {
+
276  debug << ehdr.e_ident[EI_DATA];
+
277  break;
+
278  }
+
279  }
+
280  debug << ostream::endl;
+
281 
+
282  debug << L" Version: "
+
283  << ehdr.e_ident[EI_VERSION] << L" ";
+
284  switch (ehdr.e_ident[EI_VERSION]) {
+
285  case EV_NONE: {
+
286  debug << L"Invalid ELF version";
+
287  break;
+
288  }
+
289  case EV_CURRENT: {
+
290  debug << L"Current version";
+
291  break;
+
292  }
+
293  default: {
+
294  debug << ehdr.e_ident[EI_VERSION];
+
295  break;
+
296  }
+
297  }
+
298  debug << ostream::endl;
+
299 
+
300  debug << L" OS/ABI: ";
+
301  switch (ehdr.e_ident[EI_OSABI]) {
+
302  case ELFOSABI_SYSV: {
+
303  debug << L"UNIX System V ABI";
+
304  break;
+
305  }
+
306  default: {
+
307  debug << ehdr.e_ident[EI_OSABI];
+
308  break;
+
309  }
+
310  }
+
311  debug << ostream::endl;
+
312 
+
313  debug << L" ABI Version: "
+
314  << ehdr.e_ident[EI_ABIVERSION] << ostream::endl;
+
315 
+
316  debug << L" Type: ";
+
317  switch (ehdr.e_type) {
+
318  case ET_NONE: {
+
319  debug << L"No file type";
+
320  break;
+
321  }
+
322  case ET_REL: {
+
323  debug << L"Relocatable file";
+
324  break;
+
325  }
+
326  case ET_EXEC: {
+
327  debug << L"Executable file";
+
328  break;
+
329  }
+
330  case ET_DYN: {
+
331  debug << L"DYN (Shared object file)";
+
332  break;
+
333  }
+
334  case ET_CORE: {
+
335  debug << L"Core file";
+
336  break;
+
337  }
+
338  default: {
+
339  debug << ehdr.e_type;
+
340  break;
+
341  }
+
342  }
+
343  debug << ostream::endl;
+
344 
+
345  debug << L" Machine: ";
+
346  switch (ehdr.e_machine) {
+
347  case EM_X86_64: {
+
348  debug << L"AMD x86-64 architecture";
+
349  break;
+
350  }
+
351  case EM_RISCV: {
+
352  debug << L"RISC-V";
+
353  break;
+
354  }
+
355  case EM_AARCH64: {
+
356  debug << L"ARM AARCH64";
+
357  break;
+
358  }
+
359  default: {
+
360  debug << ehdr.e_machine;
+
361  break;
+
362  }
+
363  }
+
364  debug << ostream::endl;
+
365 
+
366  debug << L" Version: " << ostream::hex_x
+
367  << ehdr.e_version << ostream::endl;
+
368  debug << L" Entry point address: " << ostream::hex_x
+
369  << ehdr.e_entry << ostream::endl;
+
370  debug << L" Start of program headers: " << ehdr.e_phoff
+
371  << L" (bytes into file)" << ostream::endl;
+
372  debug << L" Start of section headers: " << ehdr.e_shoff
+
373  << L" (bytes into file)" << ostream::endl;
+
374  debug << L" Flags: " << ostream::hex_x
+
375  << ehdr.e_flags << ostream::endl;
+
376  debug << L" Size of this header: " << ehdr.e_ehsize
+
377  << L" (bytes)" << ostream::endl;
+
378  debug << L" Size of program headers: " << ehdr.e_phentsize
+
379  << L" (bytes)" << ostream::endl;
+
380  debug << L" Number of program headers: " << ehdr.e_phnum
+
381  << ostream::endl;
+
382  debug << L" Size of section headers: " << ehdr.e_shentsize
+
383  << L" (bytes)" << ostream::endl;
+
384  debug << L" Number of section headers: " << ehdr.e_shnum
+
385  << ostream::endl;
+
386  debug << L" Section header string table index: " << ehdr.e_shstrndx
+
387  << ostream::endl;
+
388 }
+
389 
+ +
391  phdr = std::span<Elf64_Phdr>(
+
392  reinterpret_cast<Elf64_Phdr *>(file.data() + ehdr.e_phoff), ehdr.e_phnum);
+
393 }
+
394 
+
395 void Elf::print_phdr() const {
+
396  debug << L"\nProgram Headers:" << ostream::endl;
+
397  debug << L" "
+
398  L"Type\t\tOffset\t\tVirtAddr\tPhysAddr\tFileSiz\t\tMemSiz\t\tFlags"
+
399  L"\tAlign"
+
400  << ostream::endl;
+
401  for (uint64_t i = 0; i < ehdr.e_phnum; i++) {
+
402  switch (phdr[i].p_type) {
+
403  case PT_NULL: {
+
404  debug << L" NULL\t\t";
+
405  break;
+
406  }
+
407 
+
408  case PT_LOAD: {
+
409  debug << L" LOAD\t\t";
+
410  break;
+
411  }
+
412  case PT_DYNAMIC: {
+
413  debug << L" DYNAMIC\t";
+
414  break;
+
415  }
+
416  case PT_INTERP: {
+
417  debug << L" INTERP\t";
+
418  break;
+
419  }
+
420  case PT_NOTE: {
+
421  debug << L" NOTE\t\t";
+
422  break;
+
423  }
+
424  case PT_SHLIB: {
+
425  debug << L" SHLIB\t\t";
+
426  break;
+
427  }
+
428  case PT_PHDR: {
+
429  debug << L" PHDR\t\t";
+
430  break;
+
431  }
+
432  case PT_TLS: {
+
433  debug << L" TLS\t\t";
+
434  break;
+
435  }
+
436  case PT_NUM: {
+
437  debug << L" NUM\t\t";
+
438  break;
+
439  }
+
440  case PT_LOOS: {
+
441  debug << L" LOOS\t\t";
+
442  break;
+
443  }
+
444  case PT_GNU_EH_FRAME: {
+
445  debug << L" GNU_EH_FRAME\t";
+
446  break;
+
447  }
+
448  case PT_GNU_STACK: {
+
449  debug << L" GNU_STACK\t";
+
450  break;
+
451  }
+
452  case PT_GNU_RELRO: {
+
453  debug << L" GNU_RELRO\t";
+
454  break;
+
455  }
+
456  case PT_GNU_PROPERTY: {
+
457  debug << L" GNU_PROPERTY\t";
+
458  break;
+
459  }
+
460  case PT_SUNWBSS: {
+
461  debug << L" SUNWBSS\t\t";
+
462  break;
+
463  }
+
464  case PT_SUNWSTACK: {
+
465  debug << L" SUNWSTACK\t";
+
466  break;
+
467  }
+
468  case PT_HIOS: {
+
469  debug << L" HIOS\t\t";
+
470  break;
+
471  }
+
472  case PT_LOPROC: {
+
473  debug << L" LOPROC\t\t";
+
474  break;
+
475  }
+
476  case PT_HIPROC: {
+
477  debug << L" HIPROC\t\t";
+
478  break;
+
479  }
+
480  default: {
+
481  debug << L" Unknown " << ostream::hex_X << phdr[i].p_type << L"\t";
+
482  break;
+
483  }
+
484  }
+
485 
+
486  debug << ostream::hex_X << phdr[i].p_offset << L"\t";
+
487  debug << ostream::hex_X << phdr[i].p_vaddr << L"\t";
+
488  debug << ostream::hex_X << phdr[i].p_paddr << L"\t";
+
489  debug << ostream::hex_X << phdr[i].p_filesz << L"\t";
+
490  debug << ostream::hex_X << phdr[i].p_memsz << L"\t";
+
491 
+
492  switch (phdr[i].p_flags) {
+
493  case PF_X: {
+
494  debug << L"E\t";
+
495  break;
+
496  }
+
497  case PF_W: {
+
498  debug << L"W\t";
+
499  break;
+
500  }
+
501  case PF_R: {
+
502  debug << L"R\t";
+
503  break;
+
504  }
+
505  case PF_MASKOS: {
+
506  debug << L"OS-specific\t";
+
507  break;
+
508  }
+
509  case PF_MASKPROC: {
+
510  debug << L"Processor-specific\t";
+
511  break;
+
512  }
+
513  case (PF_X | PF_R): {
+
514  debug << L"R E\t";
+
515  break;
+
516  }
+
517  case (PF_W | PF_R): {
+
518  debug << L"RW\t";
+
519  break;
+
520  }
+
521  default: {
+
522  debug << L"Unknown " << ostream::hex_x << phdr[i].p_flags << L"\t";
+
523  break;
+
524  }
+
525  }
+
526  debug << ostream::hex_x << phdr[i].p_align << ostream::endl;
+
527  }
+
528 }
+
529 
+ +
531  shdr = std::span<Elf64_Shdr>(
+
532  reinterpret_cast<Elf64_Shdr *>(file.data() + ehdr.e_shoff), ehdr.e_shnum);
+
533  // 将 shstrtab 的内容复制到 shstrtab_buf 中
+
534 
+
535  memcpy(shstrtab_buf.data(), file.data() + shdr[ehdr.e_shstrndx].sh_offset,
+
536  shdr[ehdr.e_shstrndx].sh_size);
+
537 }
+
538 
+
539 void Elf::print_shdr() const {
+
540  debug << L"\nSection Headers:" << ostream::endl;
+
541  debug << L" [Nr] "
+
542  L"Name\t\t\tType\t\tAddress\t\tOffset\t\tSize\t\tEntSize\t\tFl"
+
543  L"ags\tLink\tInfo\tAlign"
+
544  << ostream::endl;
+
545  for (uint64_t i = 0; i < ehdr.e_shnum; i++) {
+
546  debug << L" [";
+
547  // 对齐
+
548  if (i < ALIGN_TWO) {
+
549  debug << L" ";
+
550  }
+
551  debug << i << L"] ";
+
552 
+
553  std::array<wchar_t, SECTION_BUF_SIZE> buf = {0};
+
554  auto char2wchar_ret = char2wchar(
+
555  buf.data(),
+
556  reinterpret_cast<const char *>(shstrtab_buf.data() + shdr[i].sh_name));
+
557  debug << (const wchar_t *)buf.data() << L"\t";
+
558 
+
559  if (char2wchar_ret <= TWO_TAB_SIZE) {
+
560  debug << L"\t";
+
561  }
+
562  if (char2wchar_ret <= ONE_TAB_SIZE) {
+
563  debug << L"\t";
+
564  }
+
565  if (char2wchar_ret <= 1) {
+
566  debug << L"\t";
+
567  }
+
568  switch (shdr[i].sh_type) {
+
569  case SHT_NULL: {
+
570  debug << L"NULL\t\t";
+
571  break;
+
572  }
+
573  case SHT_PROGBITS: {
+
574  debug << L"PROGBITS\t";
+
575  break;
+
576  }
+
577  case SHT_SYMTAB: {
+
578  debug << L"SYMTAB\t\t";
+
579  break;
+
580  }
+
581  case SHT_STRTAB: {
+
582  debug << L"STRTAB\t\t";
+
583  break;
+
584  }
+
585  case SHT_RELA: {
+
586  debug << L"RELA\t\t";
+
587  break;
+
588  }
+
589  case SHT_HASH: {
+
590  debug << L"HASH\t\t";
+
591  break;
+
592  }
+
593  case SHT_DYNAMIC: {
+
594  debug << L"DYNAMIC\t\t";
+
595  break;
+
596  }
+
597  case SHT_NOTE: {
+
598  debug << L"NOTE\t\t";
+
599  break;
+
600  }
+
601  case SHT_NOBITS: {
+
602  debug << L"NOBITS\t\t";
+
603  break;
+
604  }
+
605  case SHT_REL: {
+
606  debug << L"REL\t\t";
+
607  break;
+
608  }
+
609  case SHT_SHLIB: {
+
610  debug << L"SHLIB\t\t";
+
611  break;
+
612  }
+
613  case SHT_DYNSYM: {
+
614  debug << L"DYNSYM\t\t";
+
615  break;
+
616  }
+
617  case SHT_INIT_ARRAY: {
+
618  debug << L"INIT_ARRAY\t";
+
619  break;
+
620  }
+
621  case SHT_FINI_ARRAY: {
+
622  debug << L"FINI_ARRAY\t";
+
623  break;
+
624  }
+
625  case SHT_PREINIT_ARRAY: {
+
626  debug << L"PREINIT_ARRAY\t\t";
+
627  break;
+
628  }
+
629  case SHT_GROUP: {
+
630  debug << L"GROUP\t\t";
+
631  break;
+
632  }
+
633  case SHT_SYMTAB_SHNDX: {
+
634  debug << L"SYMTAB_SHNDX\t\t";
+
635  break;
+
636  }
+
637  case SHT_RELR: {
+
638  debug << L"RELR\t\t";
+
639  break;
+
640  }
+
641  case SHT_NUM: {
+
642  debug << L"NUM\t\t";
+
643  break;
+
644  }
+
645  case SHT_LOOS: {
+
646  debug << L"LOOS\t\t";
+
647  break;
+
648  }
+
649  case SHT_GNU_ATTRIBUTES: {
+
650  debug << L"GNU_ATTRIBUTE\t\t";
+
651  break;
+
652  }
+
653  case SHT_GNU_HASH: {
+
654  debug << L"GNU_HASH\t";
+
655  break;
+
656  }
+
657  case SHT_GNU_LIBLIST: {
+
658  debug << L"GNU_LIBLIST\t\t";
+
659  break;
+
660  }
+
661  case SHT_CHECKSUM: {
+
662  debug << L"CHECKSUM\t\t";
+
663  break;
+
664  }
+
665  case SHT_SUNW_move: {
+
666  debug << L"SUNW_move\t\t";
+
667  break;
+
668  }
+
669  case SHT_SUNW_COMDAT: {
+
670  debug << L"SUNW_COMDAT\t\t";
+
671  break;
+
672  }
+
673  case SHT_SUNW_syminfo: {
+
674  debug << L"SUNW_syminfo\t\t";
+
675  break;
+
676  }
+
677  case SHT_GNU_verdef: {
+
678  debug << L"GNU_verdef\t\t";
+
679  break;
+
680  }
+
681  case SHT_GNU_verneed: {
+
682  debug << L"GNU_verneed\t";
+
683  break;
+
684  }
+
685  case SHT_GNU_versym: {
+
686  debug << L"GNU_versym\t";
+
687  break;
+
688  }
+
689  case SHT_LOPROC: {
+
690  debug << L"LOPROC\t\t";
+
691  break;
+
692  }
+
693  case SHT_HIPROC: {
+
694  debug << L"HIPROC\t\t";
+
695  break;
+
696  }
+
697  case SHT_LOUSER: {
+
698  debug << L"LOUSER\t\t";
+
699  break;
+
700  }
+
701  case SHT_HIUSER: {
+
702  debug << L"HIUSER\t\t";
+
703  break;
+
704  }
+
705  default: {
+
706  debug << L"Unknown " << ostream::hex_X << shdr[i].sh_type << L"\t";
+
707 
+
708  break;
+
709  }
+
710  }
+
711 
+
712  debug << ostream::hex_X << shdr[i].sh_addr << L"\t";
+
713  debug << ostream::hex_x << shdr[i].sh_offset << L"\t\t";
+
714  debug << ostream::hex_X << shdr[i].sh_size << L"\t";
+
715  debug << ostream::hex_X << shdr[i].sh_entsize << L"\t";
+
716 
+
717  switch (shdr[i].sh_flags) {
+
718  case 0: {
+
719  debug << L"0\t";
+
720  break;
+
721  }
+
722  case SHF_WRITE: {
+
723  debug << L"WRITE\t";
+
724  break;
+
725  }
+
726  case SHF_ALLOC: {
+
727  debug << L"A\t";
+
728  break;
+
729  }
+
730  case SHF_EXECINSTR: {
+
731  debug << L"EXECINSTR\t";
+
732  break;
+
733  }
+
734  case SHF_MERGE: {
+
735  debug << L"MERGE\t";
+
736  break;
+
737  }
+
738  case SHF_STRINGS: {
+
739  debug << L"STRINGS\t";
+
740  break;
+
741  }
+
742  case SHF_INFO_LINK: {
+
743  debug << L"INFO_LINK\t";
+
744  break;
+
745  }
+
746  case SHF_LINK_ORDER: {
+
747  debug << L"LINK_ORDER\t";
+
748  break;
+
749  }
+
750  case SHF_OS_NONCONFORMING: {
+
751  debug << L"OS_NONCONFORMING\t";
+
752  break;
+
753  }
+
754  case SHF_GROUP: {
+
755  debug << L"GROUP\t";
+
756  break;
+
757  }
+
758  case SHF_TLS: {
+
759  debug << L"TLS\t";
+
760  break;
+
761  }
+
762  case SHF_COMPRESSED: {
+
763  debug << L"COMPRESSED\t";
+
764  break;
+
765  }
+
766  case SHF_MASKOS: {
+
767  debug << L"MASKOS\t";
+
768  break;
+
769  }
+
770  case SHF_MASKPROC: {
+
771  debug << L"MASKPROC\t";
+
772  break;
+
773  }
+
774  case SHF_GNU_RETAIN: {
+
775  debug << L"GNU_RETAIN\t";
+
776  break;
+
777  }
+
778  case SHF_ORDERED: {
+
779  debug << L"ORDERED\t";
+
780  break;
+
781  }
+
782  case SHF_EXCLUDE: {
+
783  debug << L"EXCLUDE\t";
+
784  break;
+
785  }
+
786  case (SHF_WRITE | SHF_ALLOC): {
+
787  debug << L"WA\t";
+
788  break;
+
789  }
+
790  case (SHF_ALLOC | SHF_MERGE): {
+
791  debug << L"AM\t";
+
792  break;
+
793  }
+
794  case (SHF_ALLOC | SHF_EXECINSTR): {
+
795  debug << L"AX\t";
+
796  break;
+
797  }
+
798  case (SHF_MERGE | SHF_STRINGS): {
+
799  debug << L"MS\t";
+
800  break;
+
801  }
+
802  default: {
+
803  debug << L"Unknown " << ostream::hex_X << shdr[i].sh_flags << L"\t";
+
804  break;
+
805  }
+
806  }
+
807 
+
808  debug << shdr[i].sh_link << L"\t";
+
809  debug << shdr[i].sh_info << L"\t";
+
810  debug << shdr[i].sh_addralign << L"\t";
+
811  debug << ostream::endl;
+
812  }
+
813 }
+
814 
+
815 void Elf::load_sections(const Elf64_Phdr &_phdr) const {
+
816  EFI_STATUS status = EFI_SUCCESS;
+
817  void *data = nullptr;
+
818  // 计算使用的内存页数
+
819  auto section_page_count = EFI_SIZE_TO_PAGES(_phdr.p_memsz);
+
820 
+
821  // 设置文件偏移到 p_offset
+
822  status = uefi_call_wrapper(elf->SetPosition, 2, elf, _phdr.p_offset);
+
823  if (EFI_ERROR(status)) {
+
824  debug << L"SetPosition failed: " << status << ostream::endl;
+
825  throw std::runtime_error("memory_map == nullptr");
+
826  }
+
827  uintptr_t aaa = 0;
+
828  // status = uefi_call_wrapper(gBS->AllocatePages, 4, AllocateAddress,
+
829  // EfiLoaderData, section_page_count,
+
830  // (EFI_PHYSICAL_ADDRESS*)&_phdr.p_paddr);
+
831  status = uefi_call_wrapper(gBS->AllocatePages, 4, AllocateAnyPages,
+
832  EfiLoaderData, section_page_count, &aaa);
+
833  debug << L"_phdr.p_paddr: [" << status << L"] [" << section_page_count
+
834  << L"] " << ostream::hex_X << aaa << ostream::endl;
+
835  if (EFI_ERROR(status)) {
+
836  debug << L"AllocatePages AllocateAddress failed: " << status
+
837  << ostream::endl;
+
838  throw std::runtime_error("EFI_ERROR(status)");
+
839  }
+
840 
+
841  if (_phdr.p_filesz > 0) {
+
842  auto buffer_read_size = _phdr.p_filesz;
+
843  // 为 program_data 分配内存
+
844  status = uefi_call_wrapper(gBS->AllocatePool, 3, EfiLoaderCode,
+
845  buffer_read_size, (void **)&data);
+
846  if (EFI_ERROR(status)) {
+
847  debug << L"AllocatePool failed: " << status << ostream::endl;
+
848  throw std::runtime_error("EFI_ERROR(status)");
+
849  }
+
850  // 读数据
+
851  status =
+
852  uefi_call_wrapper(elf->Read, 3, elf, &buffer_read_size, (void *)data);
+
853  if (EFI_ERROR(status)) {
+
854  debug << L"Read failed: " << status << ostream::endl;
+
855  throw std::runtime_error("EFI_ERROR(status)");
+
856  }
+
857 
+
858  // 将读出来的数据复制到其对应的物理地址
+
859  uefi_call_wrapper(gBS->CopyMem, 3,
+
860  reinterpret_cast<void *>(aaa + _phdr.p_paddr), data,
+
861  _phdr.p_filesz);
+
862 
+
863  // 释放 program_data
+
864  status = uefi_call_wrapper(gBS->FreePool, 1, data);
+
865  if (EFI_ERROR(status)) {
+
866  debug << L"FreePool failed: " << status << ostream::endl;
+
867  throw std::runtime_error("EFI_ERROR(status)");
+
868  }
+
869  }
+
870 
+
871  // 计算填充大小
+
872  auto *zero_fill_start =
+
873  reinterpret_cast<void *>(aaa + _phdr.p_paddr + _phdr.p_filesz);
+
874  auto zero_fill_count = _phdr.p_memsz - _phdr.p_filesz;
+
875  if (zero_fill_count > 0) {
+
876  debug << L"Debug: Zero-filling " << zero_fill_count
+
877  << L" bytes at address '" << ostream::hex_x << zero_fill_start << L"'"
+
878  << ostream::endl;
+
879 
+
880  // 将填充部分置 0
+
881  uefi_call_wrapper(gBS->SetMem, 3, zero_fill_start, zero_fill_count, 0);
+
882  }
+
883 }
+
884 
+ +
886  uint64_t loaded = 0;
+
887  for (uint64_t i = 0; i < ehdr.e_phnum; i++) {
+
888  if (phdr[i].p_type != PT_LOAD) {
+
889  continue;
+
890  }
+
891  load_sections(phdr[i]);
+
892  loaded++;
+
893  }
+
894 
+
895  if (loaded == 0) {
+
896  debug << L"Fatal Error: No loadable program segments found in Kernel image "
+
897  << ostream::endl;
+
898  throw std::runtime_error("loaded == 0");
+
899  }
+
900 }
+
Elf(wchar_t *_kernel_image_filename)
Definition: load_elf.cpp:51
+
auto check_elf_identity() const -> bool
Definition: load_elf.cpp:210
+
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL * file_system_protocol
Definition: load_elf.h:166
+
void get_shdr()
Definition: load_elf.cpp:530
+
void load_sections(const Elf64_Phdr &_phdr) const
Definition: load_elf.cpp:815
+
~Elf()
Definition: load_elf.cpp:126
+
auto get_file_size() const -> size_t
Definition: load_elf.cpp:203
+
EFI_FILE * root_file_system
Definition: load_elf.h:167
+
size_t elf_file_size
elf 文件大小
Definition: load_elf.h:171
+
void print_shdr() const
Definition: load_elf.cpp:539
+
void get_phdr()
Definition: load_elf.cpp:390
+
void print_ehdr() const
Definition: load_elf.cpp:233
+
void load_program_sections() const
Definition: load_elf.cpp:885
+
std::span< Elf64_Phdr > phdr
Definition: load_elf.h:177
+
void * elf_file_buffer
elf 文件内容缓冲区
Definition: load_elf.h:173
+
std::span< Elf64_Shdr > shdr
Definition: load_elf.h:178
+
auto load_kernel_image() const -> uint64_t
Definition: load_elf.cpp:141
+
std::array< uint8_t, SECTION_BUF_SIZE > shstrtab_buf
shstrtab 缓冲
Definition: load_elf.h:182
+
EFI_FILE * elf
elf 文件指针
Definition: load_elf.h:169
+
Elf64_Ehdr ehdr
Definition: load_elf.h:176
+
auto load() const -> uintptr_t
Definition: load_elf.cpp:181
+
std::span< uint8_t > file
elf 文件访问
Definition: load_elf.h:175
+
void get_ehdr()
Definition: load_elf.cpp:229
+
void print_phdr() const
Definition: load_elf.cpp:395
+
static auto endl(ostream &_ostream) -> ostream &
Definition: ostream.cpp:42
+
static auto hex_x(ostream &_ostream) -> ostream &
Definition: ostream.cpp:32
+
static auto hex_X(ostream &_ostream) -> ostream &
Definition: ostream.cpp:37
+
load_elf h
+
ostream hpp
+
static ostream debug
全局输出流
Definition: ostream.hpp:194
+
+
+ + + + diff --git a/load__elf_8h.html b/load__elf_8h.html new file mode 100644 index 000000000..ea7ee7ca1 --- /dev/null +++ b/load__elf_8h.html @@ -0,0 +1,164 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/boot/include/load_elf.h File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+ +
+
load_elf.h File Reference
+
+
+ +

load_elf h +More...

+
#include <array>
+#include <elf.h>
+#include <span>
+#include <utility>
+#include "efi.h"
+#include "efilib.h"
+
+Include dependency graph for load_elf.h:
+
+
+ + + + + + + + + +
+
+This graph shows which files directly or indirectly include this file:
+
+
+ + + + + + + + +
+
+

Go to the source code of this file.

+ + + + + + + + +

+Classes

class  Graphics
 
class  Memory
 
class  Elf
 
+

Detailed Description

+

load_elf h

+
Author
Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
+
Version
1.0
+
Date
2023-07-15
+ +
change log:
+ + + + +
DateAuthorDescription
2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
+
+ +

Definition in file load_elf.h.

+
+
+ + + + diff --git a/load__elf_8h__dep__incl.map b/load__elf_8h__dep__incl.map new file mode 100644 index 000000000..b496ade9d --- /dev/null +++ b/load__elf_8h__dep__incl.map @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/load__elf_8h__dep__incl.md5 b/load__elf_8h__dep__incl.md5 new file mode 100644 index 000000000..d6c50571f --- /dev/null +++ b/load__elf_8h__dep__incl.md5 @@ -0,0 +1 @@ +488c1386824bdf5d311d72aa2e759b47 \ No newline at end of file diff --git a/load__elf_8h__dep__incl.png b/load__elf_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..a8f0f81fc061769f40b62ca88d4a8d777038d2be GIT binary patch literal 21424 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 + + + + + + + + diff --git a/load__elf_8h__incl.md5 b/load__elf_8h__incl.md5 new file mode 100644 index 000000000..3ffad2a9e --- /dev/null +++ b/load__elf_8h__incl.md5 @@ -0,0 +1 @@ +e0cb9e3fef6d16f708489885420bf8a2 \ No newline at end of file diff --git a/load__elf_8h__incl.png b/load__elf_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..63ce9350edf25182ced7f5826a2677ae806b8ab5 GIT binary patch literal 11768 zcmZ{K1yog0x9*{l21)5qx)dpC>26RO6r@X}IiyIJbc1+6y1PrdySuylF8@338*jXE zA25J(&fa^iS>K#%&M!z=Q3@071sVhb!IY5}SA{^}Ccyt;sPN#ojlFX?_=9XLCnXMf z`uCmD2#bM0s30=pqUtUw2McB*&wJ(|$1>E?Aq*0@;wM(xIJh~}I2SDRXp?HCzN@16 z62U(jjrmG_sD8jQ(lT6DKfv)JiHhLhs<^mb)$Qd3ipmYO4+ z@FOc)@6ko|5My4AD{wsZMr-72Ho9LON?9gFaM6m+F)=aCHo8}X%frIL;^Vb6H3@I0 zyuG~*yly1;qeL8@4GPDQ1Ox>BbIEl?ps{+TK^kG#ICQdqSDjTQ|t9m z7ZnwS5AVHB(ck=#TE-Nh^nVp>-7{FXGRZ~-w zmXxBJ$@6y)RzG*SNhn2Xj9&g?Ng0(Q%g^E%E!Mx-s>1-&`1&) z85u%C!tJ35O5w#CdlPl_@q!QKSd>Dcg!W(!O21arXV0FYp=FKj1Y%QeHgQu^`$%R> zNJxYcbG9ukG=fcYad9y)FfcOi%#@pL^Giigu(GiM1%4G5_it)?JY1-+t;}>y_PRb^ z`Ho5Y_;_avWTqZL3oU8f5KG#$#0vYgKV90{*-1b^0P#LQ|0*ab$TjpE1|uaUjgh8X zanH6UYJxr;?(Y7{%X3}-i_3N6FsG`eH8nO?@30}OsHi9>7ZS-9QWgUT85tSbn<|b7 z4Nc*;P6FNp47>CVs7`vY<(`>zcW=+p(Xm!bKZJ;#Ldc^gD{Ivk2_5*vpFe+O<>Zzc zT+5yIG%+zTt*s9Rl6hdieyM9{WbOfL+HDVK%F41<81M z2|>ISVf1u#E-o(H+uIDx%(k-?c{MfHeevwp$yMd$qm2<~DR- z&G&&=3Q9`0R#q$w4BDl}o%veD5XjEX&URP zFE6hz7LOb824A>7ii!EQusPSnsGMyL@o;l%YHI2?dDOi?SU6x> z&dkI#ysoONivbY{WRVyF@c{30JY@h?$x~lZ$X-ie0HWHMn&0u&-6@>C?I!K1v0uX? z=l}Klx2c82Y`wFsg2I4KwT(*NI2;19clagp5jPx!l*dM1PR`NU`Rd|AqWj0(<%^tx z0xL^PQe51q)YJv;r(o29lKFIc#gxByS}X1d(QoYTMUhKp_Q%K74^az5`1$!IB_&}> z=|#Y&a&vi|4^t8oN!)7b(ST0{J*U6Dy(J_d;7shtrWD#=Y^<-W)NmOCdht5n#`SAu zU}wihL)-n@?aw_>{lb7QTPi}bSaJj|5Fp9J%~tyMP)3ZqpE%9IY-L|di{V_A^>#g~ ztxjxg>^tYf{=a{7i;Hc)e5r9h(*N)wF*DO>iXR>FBRt&eY*PU!7P$1z*V|t*F?A(8 zR5y@f=;xNXYTL?+ikkG_bLHSBC=`l-Bxq5Kmd9kaZq%;Je69K_5 zmRXC5f#H*>DVq5#fZeGn=abdWhuaIC5<@t*=LP79VB1(ript8$#DZ?;-4T?S7#I-9 z@87=xP_Awo4EHpOQsDr6M1Y5{vYI))J8C8(B66G?9Uo5-hCYUo@&KTov8qZ-qj2t( znwp-T2EdqcMj1{a*h^lyJ-+C@jsUm#u~SoAyrb-M-|E_0K*4hy9Fa_AGIH`9LIR4U zE)Kk&%8l*q8mpPI#5ZQao_%+h2Vao zB0c=TyAaRe<^Rq}txCnzH^?BZ$tX!nqfSzb@WOXfQo(T)><6@G8S`R1i^c}o)EM#x zAJGY}zqzb+Z0zj*=4^XN{?*vroO}Cs%y|@x9Eesdv3(iOuSqhx;^ph&(7eLJg;JBi zva(aKubLr5xfeFfoW}J$zsAVux?86cI2cG$P*g<0|8;wFAUP0&WVDLa(eX?!p6%t!mz=~H%*@O{r8at~sJ=j` zHGn~EY;19HaY8~uU+Ume^X8{#+9De4w1aTZ8dcQQzpk_)QBtM@+)_y91`uqowQRk2 zywZMibJNt+#A7p0%xyId5H(<*XIl#4thgV5I6_QM${RDRYLC$ESW?j~bYX{;ay;72 ze|{O&^9djgTEJ`LjvwHG_ERfW8URjy{#@VKcx%`K(a@N1J=<*U=BLsJVPo2#CYUTj zRZ~}&#%pg35H=(GV}OSS;X9q{DD?DLV$LPf-rnAN=OZi(jDo_#haFftA?wHUF(u*5 zJ-az3W@cKvAmDrmICQ8W>HCRL4S(SRTHxW~F)&zC$(9V#uT`PKl_OsT+oQPr4iub| z^U{~9w6s*G$|@*0Sgf3{y0FRf&Ve^2IvTG6!ijkD&p*0aTa7w{2`DHiNJvN)3N#pc z`|S0DaN8SCb|>;9BO_N=jR`|KSL{B1{K!kDIA{G)TboSSt05yJBQta5sQC#bq{DL? z-*ut}P!ln07AUK#&el3^r3t#%eaJ6qk3ZA&>;MKWxcpvPdIDmkv7rITa&dkRATa;e zukmlmz*w!Vt-u=qL;_$R930H*M(7dLhT@rIji+}+vS=FrB)eB%vqGOt|0!X24~K`W zX}pefg-i$3`hUGRzSY9w zWbxHCTG}%f`pM~OhKBR0=$CReZ+-wk`#;syM-2_9({+&AK$2k9(a|})72AzDxlGM( zd~|bnZ}zx}7NI)d88bVauf4py+(w_X)XKmL$;m8)KtPdVW@~%2yxej()z&5kT&PJ9 z`Qgj*Me)7JoEb`rr4FXEah*t(p zuU!6Zabwf~1&b_0nPI9(@14Us>Jj8er72^*;-P z5cu%n1IP_(T3Sa_#YX>Ag6D9lFM9s7Vt#%;HibY9^vUb_^XD&L=74;by@q{IIj4Ul&KQR*+SYo4;@YAU zk3LaVkpRvoQBfm1W3Z7{AIGi1#Kc7NFJCIE$sof3V}{a&%V(^76j149cZys6P=wvi zf3zC@jE_e_LdrzHyV&Eg7|(rUHaI>${xdF4zriJ{UexEJXBNGn(Tg)t9#K?XT^;x| zI5X8CJ)gC#Zd`P#nw$k0ANUR1>Y|?)4iFq+u}+tvqGEcrGsMKiq&BB>_=O%878XDZ zP){x{E^hZ8uo^UZxXQ}*f+9R6HFb`Agqo6)5&;1L;Q=Vk&4$tnGcu^?ID8&< z=cd+UeY)SNq726hL2v zfM^i-pNO_L#2Ke{c~YQ|&SWF9k%P)`m6Vm0fgPT)ro6SB1c6I8#c;m%@ANr40ZOy^ zxURr;2pQCy3bhUSe>s^VY#N~YQdza!VApV1&vNBeO3>uxoU5`kGV%%p zepg*GLiC{ifg%|UjF^@dZV^-khlmIeD!f?tbK>#ogoS|vh={sYdaGfBacPtDJGvbG zMynU3OWZtL)Ts4yK2F}n6gd9S;~Sn(aM%EWA_FUI6YCOw`e|yanU~8TpT20jtDYKe zFc$vn*XcXwrro`Kets-9)!o~A7hPR@dHIvY##ak7sJrcfNi8i`bJe65M@xlAcX`FO zjbC@(+uN`CA|cQ#j&J7gEHW-Nzd2gCi;LCBDUh!!*?wbhoSr7gxDcdJ^Z0PrE~WAb zy}$VsTQstx<32KSi<9#R1M{v>hsV4p`Xo45uiqI1d906lwYXWo*g)8IDD4If?H3!$ zDxID7c17@HjQk!-;LLjW zbW>aVSy55z&mUs5!Ge-1?tN1i=wssQ20`M__3Zq){N!XYL6^u%qjpNAbT=&0$sm5w zgPy+(86#~Zp_^*3xS@oR1=~1F>(3yRxCI3GsHts_4G$*r>5H_DiV9d-`;1VZK;fel z8ym{3g~x87SWs-MUt(BLUVd@BqDN^hA|d(vVA{TKx&|uJ@<+(i?VF<|s;{;VCFPsn zPdj7Gb+wF(){5y~ZGWYebmzd$i?wIp)YWf$V>j=v=9n0RsP&pWb?^z}zV1yjqXkra z>hZ@U{k^?+7GD?mpJ+^GH`vb144Nu>nV-w>c$=T-*S_B5S)a^Ig7F(>*0E4;OzgPq zc1q{IP&Zt|8*$joc^n)n@95l|m{3y=eOg?d-E4GEq@cj%=NCkP*CcuI?Uqy!@lV00 z`G!P?joy&x=%k?MfxP^RJDXC^r3qW_nT1u=gzxTz!@>qgI7CbyZhM%ul0r7zSl`vV ztaSX?6i+i*uJJ~NxPH>0-GOTal5_NkON<`sEq6@}OO4_z1}zO)$wZX~?jU27ZFT_teA@YJNT6<8xHp z*|tg*eva)CVdmR7buwzFgQwseIcD}38sIbAc^4Tvyg1f3a}_HJO!#MKy(>+?M0UG=39 zqN%}DOS(l?ML9a-DjmOA7F z)YW+xr+)uL4ro*3_&)eI%#roEaK`U*?$Ll~FT@jQnkN1CU6g>&P++8L! zGNz{qU%kS6=~SOrTKf6^8UYI{W?`QH`b9NcOa~CnplP_+KBW%s>vfV(3XxrjP5EqNJhW{Zw)6_Ly1>J$9`4d)q~Po7t~9rKKD5wXtfyf4KJh zfWtvEEsd(0+SS(^I04*=aW2IKJHxxn8AV0SXiJF(rQT=pNw+tnIsPcvWn6DH4h~o+ zi&B4OW-`@oQZa&b(9FcN+uo+HTlaH#wC!V!-F#P=rXPx>ToyH=D4U)vuM5X)zt!-~ zS$;+31lK)PyC=Qx1hzJYii2M1Qcl=54U~a zkv9uIWOLi3@Y~Fb1XZER;B-wbMN-YoNF?(F?(Ny~yq@(uU2i{HB8j%luc|U{|K9g- zSDz|y6FCq!9{A;FGju+ZTEDU~49_|szoEfqS>&pOBPha&3RP8WN<2H@YOi{rea+N_ zR&8|PEl;(i_^*#Tlv5)!{FakPMn*CN1BKBx_;~MJ9ztk;XrpiZpm}pP_gg_rM`s2O zF2BDYS*D1Z%E#he*70eu$D;rbwGn+HOV|fp)f&d`KzHFPE%w+PIr;(vVHqhYJ+uR{ zRi6t|h(Ab|pQ^x8imA8F?kq}apX3g`u!7rH5K)B3rk0w%nu|zCq>9gpE!3Q-8bIAu zMw}TdIxj9PKR-R%RNFR3e+(I|W$cC(6kM+N1ZGPfjDnl&*C>b5w`5^@xyj2H>|Jy! z46yeT6PQIsQ%^Tre))U-)^nyZHWb7}G+?_lStD&rO{~EYSJ7fTDx(dI-T65I7uWWe zogqV`W6j|dh1C|Z8(9)-9YTU6c(kC4OdBM|m*w(sJ7?RhXKno%1-Xbqcu@q66+TE~ z4p+j<>!!lIn@#Vdu;nC!c@^_OvV%ui8CrXL3@z;#J^?`-3(3*?ryLmlV7DWcz0VC1 z0v^-PG3xcFEk5lJn8KcJwRCBimJx*qd`y+y6ZxdSCTWVD_SiJk#}}H}qq}+>ONMr>#@T+TdmQ-U$4+@|N;T2ZVx7@EAZoy-4|qvu8zH-!Uecy9{DAcOy$!j{QJu}4esRU z#5J?y>ar$Sx_eWBaj_G!xwGLv;@BD?kRLy;F=HlQsyCIX4c8r2+rnacI*`!2WNrBQ z#-C|7!~Lx-HejxGLUKL`jy_$0`kSS-C%vTxR#3Ge7mbXd>~nIeUTA)jyj3`pmHs<6 zGLsZ{Nsrhw3QgMF0_0A}SvA@E{-+QV#nkGPukNozr(Wo!Z5?I*H zb-?LcRo8l%9NNS;aW3fN2TaV^zIbwuP`LJFhX$9uCT!vifNZsmjS@p?B^^niQ_pO= zo#=U}JD;y*AQ>^~_%+4Yj7O0_=IMrx9_sK7i#8_6$0xtkO*~eyIGtmqrPUAp;GpzL z|La#QNvndu%*=`{!{fHg-(=}Z=}eE;Ye*mej!#Z@v>F9#H`U?e;r2Hh(^i5_iakQp z{3UUQNo;1Do=RtMBYrm)E-Ejmgm=(}Ilj z^8i1miW=7^J(nuXXMf<99M+4s+|LpG7zc=erz+B-X0U|v#w`5&?2h2foiRZjgoKMr zS;Wx6FFMK-FB3KA<@MiWl*oQJQwAiNna@B@eL-^JY?lCfkXacbZTxJt@MpGL6%{3i zi=GEZPh9N9R`)IlFRX7vNoYBq*0n$MOgHce@ZF3R>2U)cm0%(}otgfDnIRU9lKrWS zwKjKkS#02Rzgpc6gVW;KxXy4|q7>>M9rkuw>crSIP%%Z@aD8-Sx7Zcup~Ty zQpmRVM3j_~uJkKbsaPUhhj#CaPT`ZYM|i8q+3SbWY!xIzBeJCQ*_ zH(VbR{#Zn0WW1%7+BGI0go1wCLA=3zR@RrzO<^N)x%%DRBzpPj=FffdW@eTJCb$^s zK<1zEQww#m-*!~RGzd&C_ea2fwFg||RXCm=Q8od@_=odd-v}nY>E6Ctf_C1Y7B)3~ zP>GVyyuW*fj}08s$LqPHY_H9t*?S91QqFY#wty`Vjl+Af%gbBE`ko|jWt}f}gMj1Y z{?fOHhjFm~qz#Uaw$Pb-@~p<3EWICE>$VLG{gy6FsiQOJzx;a^sEBD714BUU{qtc1 z&`z*5aqJp6P_oLlK%YB}O+DQl-~rVcGBQQ`ch{p?f{Ozkf=S#J@`lGwiA*v!MA6y$ zjp&4gtyMh593~{B!qy>=>ynaR{Fg*yRrRXitFmuRmY%BO7W2~0f9t8o8{is5@qT;qN&j~ct~Uq9e1*|@$2LD zp3m3pYooKhSeOdD-}d2RW@PE`W~{IvEiEEvo#>PW@1J|StJ$n}P6ugZwS~6n{+M)A0MLg( zcvGNHNIzp4DTOK8*($IqoYg?n)$C$7(tPZDV1RYYT&(H0ZzmJ^>@`kHJXQ((pQI@Z z{MyiKdz+Vg`PHudH<=A+Y9ocre+iP0OFl3MFc9=Ag56H@rk#f{zpa;W@ak_9oQd@jRD7e5=!Y!TB=#v z+RM&pVcLI{9v_Y~zxLog{rU5KuG-uhn{*Lvqr&NAwHyKEFl);A(`$PW0`1=~E`ZwY zR(K7TUiS9#HYN)=ZU#9Y$zTTasO}-K~|d{85!t>n5q2N-kw7E!GG-9Rjwe@X-TW7LRpK5W93t;Z+T+k5T}0lu{7t@6==(G@Q3K>(VUlD$Y>#|PA?m%kPxQKRSWSoihCufB= z6z5l6U6d_#qWtcH&c>zn3!xZxh_^UR+Pi88fbrJCPk2H8(a|sDvvv#M5V*q0b%Lo- zkFMW_bPo103p?#{e)kD79;PbvLpgZ;`to3*p6caBdF90k68hj`eSD9xJp=;A3Lp?6 zI9Mnr$3J*Iu5Am}V(}B39~I>L4I24tasoQtpBY-sKb@Jmy+?2yp&1J!g<+8g@427A z!6{)=KGq-jP(?}C)d`xI2x@59^OM~?xVPu3)Vst-_H^hss%K^EpR$#|C8%&{Xj55PQB3f(&Fp!lJ?`&@ zhyBfl94^k?*mbxc_h+*x?F9Mr)ogj~^{YBmSsqvtWf0 zzFL0{x?$BejlsdP@y5!jBCw}qXwRoCkgeW1S1mtn5)cK63qTjWKs#q1e}1-?kuA>W zB(SC?1$0u7{>d2Fe)HHk(oHYhtKu});sctC%{W1b+{sS{@TrB(#uA2}o^M{2%KRwU zT*}vq;kIq+GDYyw3TGj_TkV7%KiTXYQC=PDJqzjF)Cpe{$W(Qoo=McLUFEf1BxcFl z({^;lL(eb4l)(qBU1rUMY$Y9KhV?2n zuMaGjsqaWeMv6I6i%3^j9b{!KkOt8~bHm)+fQU_C>C&rsKf32+$#Kir(-R45x&=nw zpmM0QnnBEynE2r8`uUA%%5tMWb(FLfw~mw)s8h4kp%msuoWy5aC;sTDE^hnN2;8J9 zsx(V=5~Oc_3s2%YsaP_*Kim$R4GEQKlQC)Rv`$|yhT}^DIx&_Hc#+Ykd5wE+5D18{F)7y9qo0>W6wHxdQJ2L-BPbf7 zhq@^(&eHHcBCno5Lxd0XE79IJYQGio+zqPk_E83f$4t4B=e06C1o)#J@89DU{@ly>a7FdI%Ljm>Z_olf&NgjLP5nx+U^>J2AO_x3;Rr#6!rNV6w`pkc2)M_QK0jk) zJM`4kdmbQWWBr*H)!0U8dy+Lte!lh=v@?3~4dCHW$yC;9Vq^r}nIyz{Nnfm%)8QEsJ_>C^h=G&?e&o&RLXgRZWpQ}zZ(Wo>r?gC>f@LOs1F29t#q<%=aagds7-&Nf4x+3C^I(E)RSU%xm% zoGeI5{(g7wUH9MIy(1D@sqlR-I^!L4p!uW4go=tRX05o(J^HXeTgH675O3$BM^D74 zc2Nh%9d-jRIax4K&K1S^v?f{pQjWttSoC}?Iqq^}rM)02>G$kx*B>THCnpm>dRPJQ14wGrY>%* z_kp}Np@xJs>VqJBv_z@%VTK{#p1G@9l0Q{3M-}vr;UMBPt;5Q5!^-Xp{9_UHGHxIJ7MVm^oUU;+pP%k1`9uGkAND_8`1?7h&CN|PE!-X|EG)DH z6}*}n>01l@BmScssjo72{jhACEdv|iHqrbtUAM6is z5}=)HV60|tZVq@DGcz;V-SAFY?oWvhi6MX(25Nm>U0pEYcmP9H3PFxXN$b+*IeyyY zA4rlvh3h0HCYqX>3c9aWtkTe>0ESbTq)z=e*4sTW&_*iis!ut3S++NkuQjg*CPEdp zABxaeAS3+Ki@5PzU^GbqMw{FFa;VX)6B84sp1Z5HetJF4XPX1GIH=+@BP}h9<3}!aO}Z02KxdbwGbjsmTDTiHU>5?tB}X-rqAcL?6?GgoI?glU&0=i~$HofG3ih zpFfn$Q*7-5p7suq$dr|Fd_<-zEs2&40JR7xD^Gp5#Hc+@z?G&j_uUFW0Ayrjz;Oc% zm%+b(MTlOIk{-?1I)X8!I@3f)$2yqcY&%d(L9Y%Mc#rbZ()0lz=+;q11=mLe(9~`& zrVPf$#-<8&q^NNE2L^ml*RVao*vdYFk4IuK(QLx-rEjB_#ZKbOI!a zavaR7Ku=HJfn|3n zNp^8@dUW*Y@GxLVQCnMEV+D>Gg#c@Vuhczxt?HQMx_DLqOks6+rMZ=u1}@#|MEXX-G?@`?&Tf`W%y-!TDZ0w5+LAtS>>667~2q4%Xm z?cdn~>7D`Sbv~R26gW-}jttd2FyDSU-%*35={h($rE(bgf~i+|xg)qrCdk`1zatXR zwgSX5!LiisoP&o)*nSo9N-3G!8eEp8ny0U?4`c(+TX~dO9_e;fdWn+Om9Xc9;`)s5 zthS@Sq?_pjEs*BW4WNJ=JFPR)J|h-o(-U_bn+(7rwpa|TUddN?|& ziWRuFwbgC>ptG4$JWYG0MP2-Y)7U>TaRz7%mzcQb+rdX9qyV9)es!eZ5qSJ3_Pmofv`)%n@k-s3-|0QO=UpqXrM zPtUl}DHs?)AMbB0r-}yp`Yf%i0HX^~GfiG6is`RzZ}XaTVdP0nD*zV*tf~9!6BA2I zX5ilu__wf@mKGrB#MD%}fNNQ9?%%<|B1pOu zq0g&odU~nE)!*A6Unk1j4}_V$PUPLEl5Ob59TFsv4wWML;cgZjF#nYPO>>Txjp}K0 zeO;QFLbt^X+IjI;K~Ild=pDnivS~F=A?=qXlA!`owSLSvOStq@PX@xIfC?S`>VM}i e|Jy>>6WrD}9@7Y|rENgvhR8@LiWi9)`u-P=7 + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/boot/include/load_elf.h Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
load_elf.h
+
+
+Go to the documentation of this file.
1 
+
17 #ifndef SIMPLEKERNEL_LOAD_ELF_H
+
18 #define SIMPLEKERNEL_LOAD_ELF_H
+
19 
+
20 #include <array>
+
21 #include <elf.h>
+
22 #include <span>
+
23 #include <utility>
+
24 
+
25 #ifdef __cplusplus
+
26 extern "C" {
+
27 #endif
+
28 
+
29 #include "efi.h"
+
30 #include "efilib.h"
+
31 
+
32 #ifdef __cplusplus
+
33 }
+
34 #endif
+
35 
+
39 class Graphics {
+
40 public:
+
44  Graphics();
+
45 
+
49  ~Graphics() = default;
+
50 
+
53  Graphics(const Graphics &) = delete;
+
54  Graphics(Graphics &&) = delete;
+
55  auto operator=(const Graphics &) -> Graphics & = delete;
+
56  auto operator=(Graphics &&) -> Graphics & = delete;
+
58 
+
65  void set_mode(
+
66  EFI_GRAPHICS_PIXEL_FORMAT _format = PixelBlueGreenRedReserved8BitPerColor,
+
67  uint32_t _width = DEFAULT_WIDTH, uint32_t _height = DEFAULT_HEIGHT) const;
+
68 
+
72  void print_info() const;
+
73 
+
74 private:
+
77  static constexpr const uint32_t DEFAULT_WIDTH = 1920;
+
78  static constexpr const uint32_t DEFAULT_HEIGHT = 1080;
+
81  EFI_GRAPHICS_OUTPUT_PROTOCOL *gop = nullptr;
+
82 };
+
83 
+
87 class Memory {
+
88 public:
+
92  Memory();
+
93 
+
97  ~Memory() = default;
+
98 
+
101  Memory(const Memory &) = delete;
+
102  Memory(Memory &&) = delete;
+
103  auto operator=(const Memory &) -> Memory & = delete;
+
104  auto operator=(Memory &&) -> Memory & = delete;
+
106 
+
110  void print_info();
+
111 
+
112 private:
+
115  uint64_t desc_count = 0;
+
116  EFI_MEMORY_DESCRIPTOR *memory_map = nullptr;
+
117  uint64_t map_key = 0;
+
118  uint64_t desc_size = 0;
+
119  uint32_t desc_version = 0;
+
121 
+
125  void flush_desc();
+
126 };
+
127 
+
131 class Elf {
+
132 public:
+
137  explicit Elf(wchar_t *_kernel_image_filename);
+
138 
+
142  ~Elf();
+
143 
+
146  Elf(const Elf &) = delete;
+
147  Elf(Elf &&) = delete;
+
148  auto operator=(const Elf &) -> Elf & = delete;
+
149  auto operator=(Elf &&) -> Elf & = delete;
+
151 
+
156  [[nodiscard]] auto load_kernel_image() const -> uint64_t;
+
157 
+
161  auto load() const -> uintptr_t;
+
162 
+
163 private:
+
166  EFI_SIMPLE_FILE_SYSTEM_PROTOCOL *file_system_protocol = nullptr;
+
167  EFI_FILE *root_file_system = nullptr;
+
169  EFI_FILE *elf = nullptr;
+
171  size_t elf_file_size = 0;
+
173  void *elf_file_buffer = nullptr;
+
175  std::span<uint8_t> file = {};
+
176  Elf64_Ehdr ehdr = {};
+
177  std::span<Elf64_Phdr> phdr = {};
+
178  std::span<Elf64_Shdr> shdr = {};
+
180  static constexpr const size_t SECTION_BUF_SIZE = 1024;
+
182  std::array<uint8_t, SECTION_BUF_SIZE> shstrtab_buf = {};
+
184 
+
189  [[nodiscard]] auto get_file_size() const -> size_t;
+
190 
+
195  [[nodiscard]] auto check_elf_identity() const -> bool;
+
196 
+
200  void get_ehdr();
+
201 
+
205  void print_ehdr() const;
+
206 
+
210  void get_phdr();
+
211 
+
215  void print_phdr() const;
+
216 
+
220  void get_shdr();
+
221 
+
225  void print_shdr() const;
+
226 
+
231  void load_sections(const Elf64_Phdr &_phdr) const;
+
232 
+
236  void load_program_sections() const;
+
237 };
+
238 
+
239 #endif /* SIMPLEKERNEL_LOAD_ELF_H */
+
Definition: load_elf.h:131
+
Elf(wchar_t *_kernel_image_filename)
Definition: load_elf.cpp:51
+
auto operator=(const Elf &) -> Elf &=delete
+
auto check_elf_identity() const -> bool
Definition: load_elf.cpp:210
+
EFI_SIMPLE_FILE_SYSTEM_PROTOCOL * file_system_protocol
Definition: load_elf.h:166
+
void get_shdr()
Definition: load_elf.cpp:530
+
void load_sections(const Elf64_Phdr &_phdr) const
Definition: load_elf.cpp:815
+
~Elf()
Definition: load_elf.cpp:126
+
auto get_file_size() const -> size_t
Definition: load_elf.cpp:203
+
EFI_FILE * root_file_system
Definition: load_elf.h:167
+
size_t elf_file_size
elf 文件大小
Definition: load_elf.h:171
+
void print_shdr() const
Definition: load_elf.cpp:539
+
void get_phdr()
Definition: load_elf.cpp:390
+
void print_ehdr() const
Definition: load_elf.cpp:233
+
void load_program_sections() const
Definition: load_elf.cpp:885
+
Elf(const Elf &)=delete
+
std::span< Elf64_Phdr > phdr
Definition: load_elf.h:177
+
Elf(Elf &&)=delete
+
void * elf_file_buffer
elf 文件内容缓冲区
Definition: load_elf.h:173
+
std::span< Elf64_Shdr > shdr
Definition: load_elf.h:178
+
auto load_kernel_image() const -> uint64_t
Definition: load_elf.cpp:141
+
std::array< uint8_t, SECTION_BUF_SIZE > shstrtab_buf
shstrtab 缓冲
Definition: load_elf.h:182
+
EFI_FILE * elf
elf 文件指针
Definition: load_elf.h:169
+
Elf64_Ehdr ehdr
Definition: load_elf.h:176
+
auto operator=(Elf &&) -> Elf &=delete
+
auto load() const -> uintptr_t
Definition: load_elf.cpp:181
+
std::span< uint8_t > file
elf 文件访问
Definition: load_elf.h:175
+
void get_ehdr()
Definition: load_elf.cpp:229
+
static constexpr const size_t SECTION_BUF_SIZE
section 缓冲区大小
Definition: load_elf.h:180
+
void print_phdr() const
Definition: load_elf.cpp:395
+ +
static constexpr const uint32_t DEFAULT_HEIGHT
Definition: load_elf.h:78
+
void set_mode(EFI_GRAPHICS_PIXEL_FORMAT _format=PixelBlueGreenRedReserved8BitPerColor, uint32_t _width=DEFAULT_WIDTH, uint32_t _height=DEFAULT_HEIGHT) const
Definition: graphics.cpp:37
+
EFI_GRAPHICS_OUTPUT_PROTOCOL * gop
Definition: load_elf.h:81
+
~Graphics()=default
+
auto operator=(Graphics &&) -> Graphics &=delete
+
Graphics(const Graphics &)=delete
+
Graphics(Graphics &&)=delete
+
auto operator=(const Graphics &) -> Graphics &=delete
+
void print_info() const
Definition: graphics.cpp:78
+
static constexpr const uint32_t DEFAULT_WIDTH
Definition: load_elf.h:77
+
Graphics()
Definition: graphics.cpp:22
+ +
uint64_t desc_count
Definition: load_elf.h:115
+
void flush_desc()
Definition: memory.cpp:22
+
~Memory()=default
+
auto operator=(Memory &&) -> Memory &=delete
+
EFI_MEMORY_DESCRIPTOR * memory_map
Definition: load_elf.h:116
+
Memory()
Definition: memory.cpp:30
+
uint32_t desc_version
Definition: load_elf.h:119
+
void print_info()
Definition: memory.cpp:32
+
Memory(const Memory &)=delete
+
uint64_t desc_size
Definition: load_elf.h:118
+
Memory(Memory &&)=delete
+
auto operator=(const Memory &) -> Memory &=delete
+
uint64_t map_key
Definition: load_elf.h:117
+
+
+ + + + diff --git a/md_0__xE5_xB7_xA5_xE5_x85_xB7_xE9_x93_xBE.html b/md_0__xE5_xB7_xA5_xE5_x85_xB7_xE9_x93_xBE.html new file mode 100644 index 000000000..55c932259 --- /dev/null +++ b/md_0__xE5_xB7_xA5_xE5_x85_xB7_xE9_x93_xBE.html @@ -0,0 +1,187 @@ + + + + + + + +SimpleKernel: SimpleKernel 工具链 + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
SimpleKernel 工具链
+
+
+

SimpleKernel 为了保证在各个平台上的可用性,选择了较为通用的工具链,主要分为三个部分

+
    +
  1. 构建系统

    +

    使用 CMake 对代码进行管理,同时控制编译选项

    +
  2. +
  3. 内核的编译

    +

    使用 GCC 工具链

    +
  4. +
  5. 模拟器

    +

    对于 x86/x86_64 架构,支持 bochs 与 qemu

    +

    arm/aarch64/riscv64 架构,使用 qemu

    +
  6. +
  7. 辅助脚本

    +

    主要用于环境变量管理,如 ./run.sh 是用来编译并运行内核,./tools/env.sh 则规定了需要的参数。

    +

    此外还有模拟器配置,如 ./bochsrc_linux.txt

    +
  8. +
+

+CMake

+

CMake 可以分为两个部分

+
    +
  1. 主要 cmake 规则

    +

    所有 CMakeLists.txt 文件,规定了内核的编译方式。

      +
    • ./CMakeLists.txt

      +

      设置了一些 CMake 选项,并在最后通过 add_subdirectory(${${SimpleKernel_SOURCE_DIR}/src}) 将控制权转移到 ./src/CMakeLists.txt

      +
    • +
    • ./src/CMakeLists.txt

      +

      规定了 gcc 的编译选项,指定生成的二进制文件名称,并规定生成二进制文件所需的模块

      +
    • +
    • ./src/*/CMakeLists.txt

      +

      各个模块的编译规则

      +
    • +
    +
  2. +
  3. 辅助 cmake 规则

    +

    用于辅助主要规则,保存在 ./cmake 目录下

      +
    • toolchain_*.cmake 用于判断依赖是否已安装
    • +
    • header_files.cmake 用于添加头文件
    • +
    • find_asm_files.cmake 用于将汇编文件添加到编译列表
    • +
    • arch_detector.cmake 用于判断目标架构
    • +
    +
  4. +
+

更多细节请查看注释。

+

项目地址:CMake

+

+GCC

+

GCC 需要根据目标平台与宿主机进行配置,即 target 与 host。

+

一般而言,网上有编译好的可以直接拿来用。

+

以 target=riscv64,host=osx 为例,可以在 https://github.com/riscv/homebrew-riscv 找到现成的,只需要按照说明安装即可。

+

对于特殊情况,可能需要自己手动编译 gcc,大致步骤如下^1

+
    +
  1. 安装依赖
  2. +
  3. 下载源码
  4. +
  5. 配置
  6. +
  7. 编译
  8. +
+

其中比较重要的地方是第三步,需要根据需要进行配置,你可以参考 ./tools/x86_64-elf-gcc.sh 的内容进行编译。

+

项目地址:GCC, the GNU Compiler Collection - GNU Project

+

+bochs

+

bochs 是专门用于 x86/x86_64 的虚拟机。

+

./tools/bochsrc_*.txt 规定了虚拟机的配置选项

+

./tools/bochsinit 规定在虚拟机启动后执行的命令

+

项目地址:bochs: The Open Source IA-32 Emulation Project (Home Page)

+

更多细节请查看注释

+

+qemu

+

qemu 是支持范围更大的虚拟机,支持多种架构。

+

安装:

+

项目地址:QEMU

+

+辅助脚本

+
    +
  • ./tools/env.sh

    +

    设置目标架构,并根据设置的目标架构初始化相关变量。

    +

    更多细节请查看注释。

    +
  • +
  • ./run.sh

    +

    根据 tools/env.sh 的设置在虚拟机中运行内核。

    +

    更多细节请查看注释。

    +
  • +
+

+相关文档

+

关于交叉编译的一些说明:https://wiki.osdev.org/GCC_Cross-Compiler

+

arm 工具链:https://developer.arm.com/tools-and-software/open-source-software/developer-tools/gnu-toolchain/gnu-a/downloads

+

riscv 工具链:https://github.com/riscv/riscv-gnu-toolchain

+
+
+
+ + + + diff --git a/md_1__xE7_xB3_xBB_xE7_xBB_x9F_xE5_x90_xAF_xE5_x8A_xA8.html b/md_1__xE7_xB3_xBB_xE7_xBB_x9F_xE5_x90_xAF_xE5_x8A_xA8.html new file mode 100644 index 000000000..1a005e827 --- /dev/null +++ b/md_1__xE7_xB3_xBB_xE7_xBB_x9F_xE5_x90_xAF_xE5_x8A_xA8.html @@ -0,0 +1,146 @@ + + + + + + + +SimpleKernel: SimpleKernel 启动 + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
SimpleKernel 启动
+
+
+

内核实际上也是一个程序,它从链接脚本规定的入口点(ENTRY(_start))开始执行,但在这一步之前,还得让硬件知道 _start 的位置,这一步骤 SImpleKernel 使用了一些开源的引导程序来辅助这一过程,你可以在 osdev 看看具体的流程^1,这里不再赘述。

+

+IA32

+

IA32 包括 i386(或 x86) 与 x86_64,它们在细节上有部分区别。

+

SimpleKernel 使用 grub2 进行辅助,跳过与机器打交道的部分,由 grub2 进行最最开始的设置,我们只需要处理从 _start 开始的代码即可。

+

相比其它架构,IA32 有太多历史包袱,这导致它的启动过程比较麻烦,尤其是实模式(16bit),保护模式(32bit),以及长模式(64bit)的切换十分复杂。幸运的是,grub2 已经帮我们进入了保护模式,这使得我们可以暂时跳过相关模式的设置。

+
    +
  • grub2^2

    +

    一个引导程序,在 linux 中有广泛的应用,这里只使用了它最基础的功能。

    +
  • +
  • multiboot2^3

    +

    这是一个引导标准,一般用于 pc 的启动,任何符合 multiboot2 标准的内核都可以通过支持 multiboot2 标准的引导程序启动。

    +

    这个标准在内核中的表现为 ia32/*/boot.S 中的

    +

    ```assembly // 声明这一段代码以 32 位模式编译 .code32

    +

    // multiboot2 文件头 // 计算头长度 .SET HEADER_LENGTH, multiboot_header_end - multiboot_header // 计算校验和 .SET CHECKSUM, -(MULTIBOOT2_HEADER_MAGIC + MULTIBOOT_ARCHITECTURE_I386 + HEADER_LENGTH) // 8 字节对齐 .align MULTIBOOT_HEADER_ALIGN // 声明所属段 .section .multiboot_header multiboot_header: // 魔数 .long MULTIBOOT2_HEADER_MAGIC // 架构 .long MULTIBOOT_ARCHITECTURE_I386 // 头长度 .long HEADER_LENGTH // 校验和 .long CHECKSUM // 添加其它内容在此,详细信息见 Multiboot2 Specification version 2.0.pdf .short MULTIBOOT_HEADER_TAG_END // 结束标记 .short 0 .long 8 multiboot_header_end: ```

    +

    只要在内核开始部分检测到符合 multiboot2 规定的数据,就认为这是一个符合规范的内核,引导程序会在对硬件进行初始化后将控制权交给 _start

    +
  • +
  • x86

    +

    由于 grub 已经进入了保护模式,我们不需要做什么多余的事情,在设置栈指针后直接进入 C 函数 kernel_main 执行即可。

      +
    • 执行流

      +

      模拟器 -> grub2 -> _start(boot.S ) -> kernel_main(kernel_main.cpp)

      +
    • +
    +
  • +
  • x86_64

    +

    TODO

    +
  • +
+

更多细节请查看注释。

+

+RISCV

+

riscv 相较 IA32 非常新,其标准至今还在更新,它没有 IA32 那么多的遗留问题与设计冗余,所以简单不少。

+

引导程序使用了 opensbi,与 grub 类似,opensbi 将硬件设置为 S 态后跳转到我们的代码中,但相比 ia32/grub 的繁琐,riscv/opensbi 更为精炼。

+
    +
  • opensbi^4

    +

    在 riscv 设备启动时,会进入 M(Machine) 态,这是 riscv 架构中权限最高的一级,可以操作所有硬件资源,opensbi 会在这一级进行一些设置,然后切换到 S(Supervisor) 态执行内核代码,S 态可以访问到的资源是 M 态的子集。

    +
  • +
+

同样,在设置栈地址后跳转到 kernel_main 执行。

+
    +
  • 执行流

    +

    模拟器 -> opensbi -> _start(boot.S) -> kernel_main(kernel_main.cpp)

    +
  • +
+

更多细节请查看注释。

+

+相关文档

+
+
+
+ + + + diff --git a/md__home_runner_work_SimpleKernel_SimpleKernel_README.html b/md__home_runner_work_SimpleKernel_SimpleKernel_README.html new file mode 100644 index 000000000..63f2c1d1a --- /dev/null +++ b/md__home_runner_work_SimpleKernel_SimpleKernel_README.html @@ -0,0 +1,192 @@ + + + + + + + +SimpleKernel: README + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
README
+
+
+

codecov workflow

+

+boot

+

+本分支新增特性

+

参考 MRNIU/cmake-kernel 的构建系统,包括以下特性

+
    +
  • [x] 对第三方依赖的支持/构建

    +

    自动下载并编译第三方依赖

    +

    自动生成相关 licence

    +

    目前支持的第三方资源

    +
  • +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
第三方内容 描述 类型 正在使用
CPM cmake 包管理 cmake module
CPMLicences.cmake 为第三方包生成 licence cmake module
google/googletest 测试
easylogingpp 日志
rttr c++ 反射库,在设备驱动部分用
Format.cmake 代码格式化,支持 clang-format 与 cmake-format cmake module
FreeImage 图片渲染
Freetype 字体渲染
opensbi riscv 引导
gnu-efi gnu uefi 引导
ovmf qemu 使用的 uefi 固件 bin
edk2 构建 qemu 使用的 uefi 固件 ovmf
libcxxrt c++ 运行时支持
+
    +
  • [x] 文档生成

    +

    使用 doxygen 从生成文档

    +
  • +
  • [x] 构建内核

    +

    生成内核 elf 文件

    +
  • +
  • [x] 运行内核

    +

    在 qemu 上运行内核

    +
  • +
  • [x] 代码格式化

    +

    格式化全部代码

    +
  • +
  • [x] 测试

    +

    单元测试 集成测试 系统测试

    +
  • +
  • [x] CI

    +

    github action、codecov

    +
  • +
  • [x] 调试

    +

    使用 make debug 等进入调试模式

    +
  • +
+

从系统启动到进入内核

+
    +
  • x86_64,aarch64 通过 uefi 进行引导
  • +
  • riscv64 通过 opensbi 进行引导
  • +
+

+已支持的全部特性

+
    +
  • [x] build

    +

    内核构建与调试

    +
  • +
  • [x] doxygen

    +

    基于 doxygen 的文档生成

    +
  • +
  • [x] CI

    +

    github action,github pages,code coverage,ut it st

    +
  • +
  • [x] x86_64

    +

    基于 gnu-efi 的 x86_64 uefi 引导

    +
  • +
  • [x] riscv64

    +

    基于 opensbi 的 riscv64 架构支持

    +
  • +
  • [x] 3rd

    +

    对依赖的第三方库的自动下载、编译

    +
  • +
+
+
+
+ + + + diff --git a/md__home_runner_work_SimpleKernel_SimpleKernel_test_system_test_gnu_efi_test_README.html b/md__home_runner_work_SimpleKernel_SimpleKernel_test_system_test_gnu_efi_test_README.html new file mode 100644 index 000000000..f3a6ce98d --- /dev/null +++ b/md__home_runner_work_SimpleKernel_SimpleKernel_test_system_test_gnu_efi_test_README.html @@ -0,0 +1,107 @@ + + + + + + + +SimpleKernel: gnu_efi_test + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
gnu_efi_test
+
+
+

使用 gnu-efi 加载内核。

+

步骤:

+
    +
  1. 在 qemu 中运行
  2. +
  3. 读取 kernel elf 文件
  4. +
  5. 读取机器内存信息
  6. +
  7. 读取机器显示信息
  8. +
+
+
+
+ + + + diff --git a/md__home_runner_work_SimpleKernel_SimpleKernel_tools_Clion__xE4_xBD_xBF_xE7_x94_xA8_xE8_xAF_xB4_xE6_x98_x8E.html b/md__home_runner_work_SimpleKernel_SimpleKernel_tools_Clion__xE4_xBD_xBF_xE7_x94_xA8_xE8_xAF_xB4_xE6_x98_x8E.html new file mode 100644 index 000000000..b65fe43ec --- /dev/null +++ b/md__home_runner_work_SimpleKernel_SimpleKernel_tools_Clion__xE4_xBD_xBF_xE7_x94_xA8_xE8_xAF_xB4_xE6_x98_x8E.html @@ -0,0 +1,165 @@ + + + + + + + +SimpleKernel: CLion 配置及使用 + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
CLion 配置及使用
+
+
+

+配置

+

导入配置

+

2022-01-17 16.29.12

+

2022-01-22 19.49.01

+

2022-01-22 19.49.07

+

+使用

+

osx+QEMU+RISCV64

+
    +
  1. 生成 CMake

    +

    2022-01-16 22.41.38

    +

    执行后会在根目录生成三个文件夹,用于存放生成的文件

    +

    2022-01-16 22.42.21

    +

    CLion 输出

    +

    2022-01-16 22.42.56

    +
  2. +
  3. 构建 kernel.elf

    +

    2022-01-22 19.53.12

    +
  4. +
  5. 选择你需要构建的版本

    +

    2022-01-22 19.53.34

    +
  6. +
  7. 构建

    +

    2022-01-22 19.54.15

    +

    正常输出为

    +

    2022-01-16 22.44.30

    +

    同时会在 build_riscv64/bin 文件夹内生成文件

    +

    2022-01-16 22.45.14

    +
  8. +
  9. 运行

    +

    2022-01-22 19.55.16

    +
  10. +
+
虚拟机串口输出
+
+![2022-01-16 22.48.24](.Clion_usage.assets/2022-01-16%2022.48.24.png)
+

+

osx+Bochs+i386

+
    +
  1. 生成 CMake

    +

    2022-01-16 22.41.38

    +

    执行后会在根目录生成三个文件夹,用于存放生成的文件

    +

    2022-01-16 22.42.21

    +

    CLion 输出

    +

    2022-01-16 22.52.00

    +
  2. +
  3. 构建 kernel.elf

    +

    2022-01-22 19.56.23

    +
  4. +
  5. 选择你需要构建的版本

    +

    2022-01-22 19.56.31

    +
  6. +
  7. 构建

    +

    2022-01-22 19.57.31

    +

    正常输出为

    +

    2022-01-16 22.54.02

    +

    同时会在 build_i386/bin 文件夹内生成文件

    +

    2022-01-16 22.45.14

    +
  8. +
  9. 运行

    +

    2022-01-22 19.58.14

    +

    输出

    +

    2022-01-16 22.56.43

    +
  10. +
+
+
+
+ + + + diff --git a/md_docker.html b/md_docker.html new file mode 100644 index 000000000..65cbba99e --- /dev/null +++ b/md_docker.html @@ -0,0 +1,138 @@ + + + + + + + +SimpleKernel: 构建 Docker 并通过 ssh 使用 + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
构建 Docker 并通过 ssh 使用
+
+
+

+构建 Docker image

+

构建 image

+
cd SimpleKernel
+
docker build -t SimpleKernel-docker .
+

+启动容器,并配置 ssh

+

运行以下命令启动容器:

+
docker run --name SimpleKernel-container -itd -p 233:22 -v ./:/home/zone/SimpleKernel SimpleKernel-docker
+

进入 docker container ubuntu 命令行环境

+
docker exec -it SimpleKernel-container /bin/zsh
+

+配置 ssh

+

在本地创建 RSA Key:

+
# 检查是否已经存在 RSA key:
+
ls ~/.ssh
+
# 如果已经存在 id_rsa.pub 则忽略后续步骤,否则继续
+
# 将 <comment> 替换为你想要的任意字符串
+
ssh-keygen -t rsa -b 2048 -C "<comment>"
+

运行 cat ~/.ssh/id_rsa.pub, 然后复制内容。

+

回到容器中

+
    +
  • 默认用户 zone:zone
  • +
+
ssh -p 233 zone@localhost
+
# 输入密码
+

创建 /home/zone/.ssh/authorized_keys,并粘贴。

+

ssh 登录 ubuntu:

+
ssh -p 233 zone@localhost
+

此时应该能够直接登录,不再需要输入密码

+

+配置 vscode

+
    +
  • 安装Remote - SSH 插件
  • +
  • 打开Command Palette: CMD+Shift+P
  • +
  • 输入Remote-SSH: Add New SSH Host...
  • +
  • 输入SSH命令: ssh -p 233 zone@localhost
  • +
  • 登录成功后,在打开的窗口中打开文件夹。
  • +
+
+
+
+ + + + diff --git a/memory_8cpp.html b/memory_8cpp.html new file mode 100644 index 000000000..5f9dfb0e2 --- /dev/null +++ b/memory_8cpp.html @@ -0,0 +1,139 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/boot/memory.cpp File Reference + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
memory.cpp File Reference
+
+
+ +

内存相关 +More...

+
#include <stdexcept>
+#include "load_elf.h"
+#include "ostream.hpp"
+
+Include dependency graph for memory.cpp:
+
+
+ + + + + + + + + + + + +
+
+

Go to the source code of this file.

+

Detailed Description

+

内存相关

+
Author
Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
+
Version
1.0
+
Date
2023-07-15
+ +
change log:
+ + + + +
DateAuthorDescription
2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
+
+ +

Definition in file memory.cpp.

+
+
+ + + + diff --git a/memory_8cpp__incl.map b/memory_8cpp__incl.map new file mode 100644 index 000000000..9f9c79116 --- /dev/null +++ b/memory_8cpp__incl.map @@ -0,0 +1,12 @@ + + + + + + + + + + + + diff --git a/memory_8cpp__incl.md5 b/memory_8cpp__incl.md5 new file mode 100644 index 000000000..ef59ee0f1 --- /dev/null +++ b/memory_8cpp__incl.md5 @@ -0,0 +1 @@ +bc7c482e43470c98d20448be7ffbe517 \ No newline at end of file diff --git a/memory_8cpp__incl.png b/memory_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..df70b3c350bfedebad54d0448f451e878998c09c GIT binary patch literal 18863 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 + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/boot/memory.cpp Source File + + + + + + + + + + + + + +
+
+ + + + + + +
+
SimpleKernel +  0.0.1 +
+
+
+ + + + + + + +
+
+ +
+
+
+ +
+ +
+
+ + +
+ +
+ +
+
+
memory.cpp
+
+
+Go to the documentation of this file.
1 
+
17 #include <stdexcept>
+
18 
+
19 #include "load_elf.h"
+
20 #include "ostream.hpp"
+
21 
+ +
23  memory_map = LibMemoryMap(&desc_count, &map_key, &desc_size, &desc_version);
+
24  if (memory_map == nullptr) {
+
25  debug << L"LibMemoryMap failed: memory_map == nullptr" << ostream::endl;
+
26  throw std::runtime_error("memory_map == nullptr");
+
27  }
+
28 }
+
29 
+ +
31 
+ +
33  flush_desc();
+
34  debug << L"Type\t\t\t\tPages\tPhysicalStart\tVirtualStart\tAttribute"
+
35  << ostream::endl;
+
36  for (uint64_t i = 0; i < desc_count; i++) {
+
37  auto *MMap = reinterpret_cast<EFI_MEMORY_DESCRIPTOR *>(
+
38  (reinterpret_cast<uint8_t *>(memory_map)) + i * desc_size);
+
39 
+
40  switch (MMap->Type) {
+
41  case EfiReservedMemoryType: {
+
42  debug << L"iReservedMemoryType\t\t";
+
43  break;
+
44  }
+
45  case EfiLoaderCode: {
+
46  debug << L"EfiLoaderCode\t\t\t";
+
47  break;
+
48  }
+
49  case EfiLoaderData: {
+
50  debug << L"EfiLoaderData\t\t\t";
+
51  break;
+
52  }
+
53  case EfiBootServicesCode: {
+
54  debug << L"EfiBootServicesCode\t\t";
+
55  break;
+
56  }
+
57  case EfiBootServicesData: {
+
58  debug << L"EfiBootServicesData\t\t";
+
59  break;
+
60  }
+
61  case EfiRuntimeServicesCode: {
+
62  debug << L"EfiRuntimeServicesCode\t\t";
+
63  break;
+
64  }
+
65  case EfiRuntimeServicesData: {
+
66  debug << L"EfiRuntimeServicesData\t\t";
+
67  break;
+
68  }
+
69  case EfiConventionalMemory: {
+
70  debug << L"EfiConventionalMemory\t\t";
+
71  break;
+
72  }
+
73  case EfiUnusableMemory: {
+
74  debug << L"EfiUnusableMemory\t\t";
+
75  break;
+
76  }
+
77  case EfiACPIReclaimMemory: {
+
78  debug << L"EfiACPIReclaimMemory\t\t";
+
79  break;
+
80  }
+
81  case EfiACPIMemoryNVS: {
+
82  debug << L"EfiACPIMemoryNVS\t\t";
+
83  break;
+
84  }
+
85  case EfiMemoryMappedIO: {
+
86  debug << L"EfiMemoryMappedIO\t\t";
+
87  break;
+
88  }
+
89  case EfiMemoryMappedIOPortSpace: {
+
90  debug << L"EfiMemoryMappedIOPortSpace\t\t";
+
91  break;
+
92  }
+
93  case EfiPalCode: {
+
94  debug << L"EfiPalCode\t\t";
+
95  break;
+
96  }
+
97  case EfiMaxMemoryType: {
+
98  debug << L"EfiMaxMemoryType\t\t";
+
99  break;
+
100  }
+
101  default: {
+
102  debug << L"Unknown " << ostream::hex_x << MMap->Type << L"\t\t";
+
103  break;
+
104  }
+
105  }
+
106 
+
107  debug << MMap->NumberOfPages << L"\t" << ostream::hex_X
+
108  << MMap->PhysicalStart << L"\t" << ostream::hex_X
+
109  << MMap->VirtualStart << L"\t" << ostream::hex_X << MMap->Attribute
+
110  << ostream::endl;
+
111  }
+
112  debug << L"map_key: " << ostream::hex_X << map_key << ostream::endl;
+
113 }
+
uint64_t desc_count
Definition: load_elf.h:115
+
void flush_desc()
Definition: memory.cpp:22
+
EFI_MEMORY_DESCRIPTOR * memory_map
Definition: load_elf.h:116
+
Memory()
Definition: memory.cpp:30
+
uint32_t desc_version
Definition: load_elf.h:119
+
void print_info()
Definition: memory.cpp:32
+
uint64_t desc_size
Definition: load_elf.h:118
+
uint64_t map_key
Definition: load_elf.h:117
+
static auto endl(ostream &_ostream) -> ostream &
Definition: ostream.cpp:42
+
static auto hex_x(ostream &_ostream) -> ostream &
Definition: ostream.cpp:32
+
static auto hex_X(ostream &_ostream) -> ostream &
Definition: ostream.cpp:37
+
load_elf h
+
ostream hpp
+
static ostream debug
全局输出流
Definition: ostream.hpp:194
+
+
+ + + + diff --git a/menu.js b/menu.js new file mode 100644 index 000000000..2fe2214f2 --- /dev/null +++ b/menu.js @@ -0,0 +1,51 @@ +/* + @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 initMenu(relPath,searchEnabled,serverSide,searchPage,search) { + function makeTree(data,relPath) { + var result=''; + if ('children' in data) { + result+=''; + } + return result; + } + + $('#main-nav').append(makeTree(menudata,relPath)); + $('#main-nav').children(':first').addClass('sm sm-dox').attr('id','main-menu'); + if (searchEnabled) { + if (serverSide) { + $('#main-menu').append('
  • '); + } else { + $('#main-menu').append('
  • '); + } + } + $('#main-menu').smartmenus(); +} +/* @license-end */ diff --git a/menudata.js b/menudata.js new file mode 100644 index 000000000..419b1dc42 --- /dev/null +++ b/menudata.js @@ -0,0 +1,80 @@ +/* + @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:"Related Pages",url:"pages.html"}, +{text:"Classes",url:"annotated.html",children:[ +{text:"Class List",url:"annotated.html"}, +{text:"Class Index",url:"classes.html"}, +{text:"Class Members",url:"functions.html",children:[ +{text:"All",url:"functions.html",children:[ +{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:"l",url:"functions.html#index_l"}, +{text:"m",url:"functions.html#index_m"}, +{text:"o",url:"functions.html#index_o"}, +{text:"p",url:"functions.html#index_p"}, +{text:"r",url:"functions.html#index_r"}, +{text:"s",url:"functions.html#index_s"}, +{text:"v",url:"functions.html#index_v"}, +{text:"x",url:"functions.html#index_x"}, +{text:"~",url:"functions.html#index__7E"}]}, +{text:"Functions",url:"functions_func.html",children:[ +{text:"c",url:"functions_func.html#index_c"}, +{text:"e",url:"functions_func.html#index_e"}, +{text:"f",url:"functions_func.html#index_f"}, +{text:"g",url:"functions_func.html#index_g"}, +{text:"h",url:"functions_func.html#index_h"}, +{text:"l",url:"functions_func.html#index_l"}, +{text:"m",url:"functions_func.html#index_m"}, +{text:"o",url:"functions_func.html#index_o"}, +{text:"p",url:"functions_func.html#index_p"}, +{text:"s",url:"functions_func.html#index_s"}, +{text:"~",url:"functions_func.html#index__7E"}]}, +{text:"Variables",url:"functions_vars.html"}, +{text:"Enumerations",url:"functions_enum.html"}, +{text:"Enumerator",url:"functions_eval.html"}]}]}, +{text:"Files",url:"files.html",children:[ +{text:"File List",url:"files.html"}, +{text:"File Members",url:"globals.html",children:[ +{text:"All",url:"globals.html",children:[ +{text:"_",url:"globals.html#index__5F"}, +{text:"a",url:"globals.html#index_a"}, +{text:"d",url:"globals.html#index_d"}, +{text:"e",url:"globals.html#index_e"}, +{text:"i",url:"globals.html#index_i"}, +{text:"k",url:"globals.html#index_k"}, +{text:"l",url:"globals.html#index_l"}, +{text:"m",url:"globals.html#index_m"}, +{text:"p",url:"globals.html#index_p"}, +{text:"t",url:"globals.html#index_t"}, +{text:"w",url:"globals.html#index_w"}]}, +{text:"Functions",url:"globals_func.html"}, +{text:"Variables",url:"globals_vars.html"}, +{text:"Macros",url:"globals_defs.html"}]}]}]} diff --git a/nav_f.png b/nav_f.png new file mode 100644 index 0000000000000000000000000000000000000000..72a58a529ed3a9ed6aa0c51a79cf207e026deee2 GIT binary patch literal 153 zcmeAS@N?(olHy`uVBq!ia0vp^j6iI`!2~2XGqLUlQVE_ejv*C{Z|{2ZH7M}7UYxc) zn!W8uqtnIQ>_z8U literal 0 HcmV?d00001 diff --git a/nav_g.png b/nav_g.png new file mode 100644 index 0000000000000000000000000000000000000000..2093a237a94f6c83e19ec6e5fd42f7ddabdafa81 GIT binary patch literal 95 zcmeAS@N?(olHy`uVBq!ia0vp^j6lrB!3HFm1ilyoDK$?Q$B+ufw|5PB85lU25BhtE tr?otc=hd~V+ws&_A@j8Fiv!KF$B+ufw|5=67#uj90@pIL wZ=Q8~_Ju`#59=RjDrmm`tMD@M=!-l18IR?&vFVdQ&MBb@0HFXL=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'); + } + if ($('#nav-tree-contents .item:first').hasClass('selected')) { + $('#nav-sync').css('top','30px'); + } else { + $('#nav-sync').css('top','5px'); + } + 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@{VPM$7~Ar*{o?;hlAFyLXmaDC0y znK1_#cQqJWPES%4Uujug^TE?jMft$}Eq^WaR~)%f)vSNs&gek&x%A9X9sM + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/boot/ostream.cpp File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    ostream.cpp File Reference
    +
    +
    + +

    输出 +More...

    +
    #include "ostream.hpp"
    +
    +Include dependency graph for ostream.cpp:
    +
    +
    + + + + + + +
    +
    +

    Go to the source code of this file.

    + + + + +

    +Functions

    auto wait_for_input (EFI_INPUT_KEY *_key) -> EFI_STATUS
     
    +

    Detailed Description

    +

    输出

    +
    Author
    Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
    +
    Version
    1.0
    +
    Date
    2023-07-15
    + +
    change log:
    + + + + +
    DateAuthorDescription
    2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
    +
    + +

    Definition in file ostream.cpp.

    +

    Function Documentation

    + +

    ◆ wait_for_input()

    + +
    +
    + + + + + + + + +
    auto wait_for_input (EFI_INPUT_KEY * _key) -> EFI_STATUS
    +
    +

    等待输入

    Parameters
    + + +
    _key输入的按键
    +
    +
    +
    Returns
    efi 错误码
    + +

    Definition at line 19 of file ostream.cpp.

    +
    19  {
    +
    20  EFI_STATUS status = EFI_SUCCESS;
    +
    21  do {
    +
    22  status = uefi_call_wrapper(ST->ConIn->ReadKeyStroke, 2, ST->ConIn, _key);
    +
    23  } while (EFI_NOT_READY == status);
    +
    24 
    +
    25  return status;
    +
    26 }
    +
    +
    +
    +
    +
    + + + + diff --git a/ostream_8cpp.js b/ostream_8cpp.js new file mode 100644 index 000000000..834f0e4eb --- /dev/null +++ b/ostream_8cpp.js @@ -0,0 +1,4 @@ +var ostream_8cpp = +[ + [ "wait_for_input", "ostream_8cpp.html#a27887edc523c98e888002e7756434ef9", null ] +]; \ No newline at end of file diff --git a/ostream_8cpp__incl.map b/ostream_8cpp__incl.map new file mode 100644 index 000000000..7817327eb --- /dev/null +++ b/ostream_8cpp__incl.map @@ -0,0 +1,6 @@ + + + + + + diff --git a/ostream_8cpp__incl.md5 b/ostream_8cpp__incl.md5 new file mode 100644 index 000000000..a0a3658ff --- /dev/null +++ b/ostream_8cpp__incl.md5 @@ -0,0 +1 @@ +6d111122eadf8fe16224a32c1bd307ca \ No newline at end of file diff --git a/ostream_8cpp__incl.png b/ostream_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..10dcc3084390442223e65415eb2ecd0af084026a GIT binary patch literal 7831 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 + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/boot/ostream.cpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    ostream.cpp
    +
    +
    +Go to the documentation of this file.
    1 
    +
    17 #include "ostream.hpp"
    +
    18 
    +
    19 [[maybe_unused]] auto wait_for_input(EFI_INPUT_KEY *_key) -> EFI_STATUS {
    +
    20  EFI_STATUS status = EFI_SUCCESS;
    +
    21  do {
    +
    22  status = uefi_call_wrapper(ST->ConIn->ReadKeyStroke, 2, ST->ConIn, _key);
    +
    23  } while (EFI_NOT_READY == status);
    +
    24 
    +
    25  return status;
    +
    26 }
    +
    27 
    +
    28 auto ostream::operator<<(ostream &(*_ostream)(ostream &)) -> ostream & {
    +
    29  return _ostream(*this);
    +
    30 }
    +
    31 
    +
    32 auto ostream::hex_x(ostream &_ostream) -> ostream & {
    +
    33  _ostream.mode = ostream::x;
    +
    34  return _ostream;
    +
    35 }
    +
    36 
    +
    37 auto ostream::hex_X(ostream &_ostream) -> ostream & {
    +
    38  _ostream.mode = ostream::X;
    +
    39  return _ostream;
    +
    40 }
    +
    41 
    +
    42 auto ostream::endl(ostream &_ostream) -> ostream & { return _ostream << L'\n'; }
    + +
    auto operator<<(_t _val) -> ostream &
    Definition: ostream.hpp:116
    +
    static auto endl(ostream &_ostream) -> ostream &
    Definition: ostream.cpp:42
    +
    @ X
    16 进制 X
    Definition: ostream.hpp:105
    +
    @ x
    16 进制 x
    Definition: ostream.hpp:103
    +
    mode_t mode
    输出流模式
    Definition: ostream.hpp:110
    +
    static auto hex_x(ostream &_ostream) -> ostream &
    Definition: ostream.cpp:32
    +
    static auto hex_X(ostream &_ostream) -> ostream &
    Definition: ostream.cpp:37
    +
    auto wait_for_input(EFI_INPUT_KEY *_key) -> EFI_STATUS
    Definition: ostream.cpp:19
    +
    ostream hpp
    +
    +
    + + + + diff --git a/ostream_8hpp.html b/ostream_8hpp.html new file mode 100644 index 000000000..a5766ab6d --- /dev/null +++ b/ostream_8hpp.html @@ -0,0 +1,229 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/boot/include/ostream.hpp File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    ostream.hpp File Reference
    +
    +
    + +

    ostream hpp +More...

    +
    #include "efi.h"
    +#include "efilib.h"
    +
    +Include dependency graph for ostream.hpp:
    +
    +
    + + + + + +
    +
    +This graph shows which files directly or indirectly include this file:
    +
    +
    + + + + + + + + + +
    +
    +

    Go to the source code of this file.

    + + + + +

    +Classes

    class  ostream
     
    + + + +

    +Functions

    auto wait_for_input (EFI_INPUT_KEY *_key) -> EFI_STATUS
     
    + + + + +

    +Variables

    static ostream debug
     全局输出流 More...
     
    +

    Detailed Description

    +

    ostream hpp

    +
    Author
    Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
    +
    Version
    1.0
    +
    Date
    2023-07-15
    + +
    change log:
    + + + + +
    DateAuthorDescription
    2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
    +
    + +

    Definition in file ostream.hpp.

    +

    Function Documentation

    + +

    ◆ wait_for_input()

    + +
    +
    + + + + + + + + +
    auto wait_for_input (EFI_INPUT_KEY * _key) -> EFI_STATUS
    +
    +

    等待输入

    Parameters
    + + +
    _key输入的按键
    +
    +
    +
    Returns
    efi 错误码
    + +

    Definition at line 19 of file ostream.cpp.

    +
    19  {
    +
    20  EFI_STATUS status = EFI_SUCCESS;
    +
    21  do {
    +
    22  status = uefi_call_wrapper(ST->ConIn->ReadKeyStroke, 2, ST->ConIn, _key);
    +
    23  } while (EFI_NOT_READY == status);
    +
    24 
    +
    25  return status;
    +
    26 }
    +
    +
    +
    +

    Variable Documentation

    + +

    ◆ debug

    + +
    +
    + + + + + +
    + + + + +
    ostream debug
    +
    +static
    +
    + +

    全局输出流

    + +

    Definition at line 194 of file ostream.hpp.

    + +
    +
    +
    +
    + + + + diff --git a/ostream_8hpp.js b/ostream_8hpp.js new file mode 100644 index 000000000..c11074bef --- /dev/null +++ b/ostream_8hpp.js @@ -0,0 +1,6 @@ +var ostream_8hpp = +[ + [ "ostream", "classostream.html", "classostream" ], + [ "wait_for_input", "ostream_8hpp.html#a27887edc523c98e888002e7756434ef9", null ], + [ "debug", "ostream_8hpp.html#a48c0732d1726c996d7fad294439777fc", null ] +]; \ No newline at end of file diff --git a/ostream_8hpp__dep__incl.map b/ostream_8hpp__dep__incl.map new file mode 100644 index 000000000..d2cb2337d --- /dev/null +++ b/ostream_8hpp__dep__incl.map @@ -0,0 +1,9 @@ + + + + + + + + + diff --git a/ostream_8hpp__dep__incl.md5 b/ostream_8hpp__dep__incl.md5 new file mode 100644 index 000000000..7e541c2a0 --- /dev/null +++ b/ostream_8hpp__dep__incl.md5 @@ -0,0 +1 @@ +b79c59bd30e433125ddae803d7852884 \ No newline at end of file diff --git a/ostream_8hpp__dep__incl.png b/ostream_8hpp__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..601e8d71986fbc0af62992c356fd0051e9afa8ce GIT binary patch literal 29838 zcmZ^L1wfT;v+bsl?rs#2Mp9A%0Tn4J>99y?6r@{9R78-Fk}fIf4n;vqx{*$$^Umw{ z|L5Lw?)mvX0cG>YF6L;uuyMYuuEA&M7+ z2$uk3bLh{v^cLFg!^BMjhXt9b8yVW%u`F!={;)QFr$0tXLi(?d7<;pKDvJO9pfmrE zf9dUaLqlFhShqjv85$8W;6|%B(Y!L4C*-!KZx?qResuAlM@`(ifB&Ldq6C_|ySrVS ze1;CET4LjPl`|~|87Zk|WwT&RXlQ6PBmC5M{IllR0}`vj)-dvNV{{mjrf{M#^5cI# zME-g0fBuU{;`Fo`gOr=<*aHozrCI07`(MaTj#i6C`2*mWvTqBjUW9q4F@;}eMjqZ_ z@ppPM?fvR)4z;7p(ibC9UU2uq`aG(*w?PEnT?IYbuEJoe9_$gi4}YOp1bNYSj5D{&(97Q zm&Pgu$jHgJTZrWv$HolD9>DxbcU1_;!(eR6@Q}uLLY6FKVWJQMR+&3^$&vys)hO3-8y$@z^hDS$d`!a9iUbxWYhk?Tq zqatFx__4z#ySke0z4()0BmR!|Nc!F^^%SLbeV8K5+@k;Eo#IcQ&`}4+$M}o*1H{hB zVs;5Xq)KFZ3Ua$)8#1!8S|%r%cy#l9v$C>AhtfETun>bbZZq!&!y90SPiAYwCC#Vo z%28&$X*Y%|pD=$^jrZp>thkn=jgAtt9}oTg+bJ+O*rFqfk&BnN^(~(v-TLPIm)H6g zwzPZeV>n=sfq{W6Qd0D$Ub~cTYr}q_p}2_>j`B}Weij(Uyni1~EPH_R+*@nd z`_yCR-HNre%MwYl=f+hA>8B*GIqvi=NgGNP)z}SXD7lK}tS|{#U^+QFYiekqP@ykg z_y+_8kWeYzxY5+nfkPIiIOk@cLs)3q5QXe`Umw|%+U;PHi(>g5&CTdUL_`M*@1MMU z_bxOcfi7~ixS)p*#USB;>XAL>ZEkKBbevVpH?E<&bm@}ye$h=SaxkrB?%*(3h>Sn> zleJ;<^YcnFeGA{>1I$~3n|}Nt5q{LIc=P6k7vbTK>!YHrt*vH*xjHn0W~lsvf|BQl zPKj5YvD@0(n)l_7meOB-xi5I-N;52vrjAZf=IyxVfdL8_)7I|p4Qp#|-y^0#PW9y0 z+X8i%hK7bT^z@e7vu&NBf&p*6$@Ajf=<$A(EcHzfh*Y^nt z@*J;Oxw-LTV`DqNer+aKm-hR!*n^QxOs-SMEo%43)$V0%Y|w+Qw=;e?OpW*gwLcyk zwsCr=j*g@=bHVhz*W z8hg^vG(OHy`tZATMS+#f+qZA^tDG*OK79H_rX0=G7EDOLHR-ttrjj+XFK(A!BU8y; zQBm=IgPMv;Y^?I%2cZ40H+3;lRK!F_M;GzPFE1CJce)Di63D_ME>4XKe6~OOwY?pi zEe7{^e={ULKE7QvcVYgnkcfyag+;kYL`5ka>AU^arza;{MLwtaA3uKF+TT|`KRY$I zvI?v7+;9H&jUWJr82iIBDRCJl6t6)U?qYY6f{F@mh20p(x039_f(@mEy7o z(-;)g)af5SpqRaONR^_Q_;%jf@YvYcM9_;9jaAqwsHqX<=H*YZ61Xw`um*y zNpWy-X$8At3Cz8-dYPNMnWw1MAD^0kdg1%~?Ck7oPoGNs{{4G;VZlv(eQ*FA7zsIf zz}K(0)+X!d!83l|tUpeWDU?}9tSaO7@ZV_VVqj#%ke{DVN0?Rjo{(N_`n9@jQ*#hL zD_NMJ)4U3=arI8}%G1MNaog*aQx@M7L_a&uVKXo?ZqL6~mp3(K?(OZR8$3Aq(_;x! zeJA{gXl-px(0M`C-0^kP4=}838$&NIucyzRvGVZ|Mny%TR`fI`Yuult3zB}WbfXGW zM0_pyuo8Srm*8;t8P~Y6UcE}|RK)=2H&VBCgX{YB>kt?yb)6@x zU2W25`UuO*lVD>)UBXnpJop9QWYfn>x%1=UY%rL;ehq_#7QA8eXAIeG#BOrBE{u^vn77Ol` zVl(@klsGg%6cT7Sxq>)tusEBNPYcQ3M^+avUS#3q#919G>Hr%irJx8zf~uI9?$dEt zS0TGm5kB3~ME(llzfa}ujz=()%q=Uc%McrIEG;dcAIyXZii!PnyXn8SW(zjiGBLrZ zF0)G^EiJuuxR{duWU5|8Rkf8^?gaJZ$rHP{98zPeM=(~l75#qzLC0seb-JJV_b~MI z^zscWi99@Z<0St>45vVmz}gF0wnJQIx_tREvj6a8UteETYexq=Z1?H$e#h5Xo|( z`|_Hz#CGJ$+E^v=#>NIL=XHR0^+zi_04gwG&n3XR(>Jd=Orw&$_U;7+1)0ybhUwS1 z@!h(0Yhc6lwR2ylTlbeQO<5`4FZ4{kC~=4w8fV+Ww~sd)#64{LJzx<20|VN&V-V`WFE&F1cjvG&kn`~P=T4$aPSPc^3p+bIX12Bj7#J9zYibZY5Xm%Eob2z94oAgo zeYBiL`l+C*s;Z#ZkxK-lRK?(85OS2oX9SUButNG#EeS71B@nRCEO^OaRSpadxr@}< z#Q6yTvjbkgCPy`nj#iJj{omkC&8W#I=2Yn==CZeT54__AXM6(#1B+i@V^O}~u^D7M zDCos(8$CDcZ~!5cFAf(o!Qg1<=)~x}ZOqJkS5{V(rYvo2#@4(6JC}OdjH*=+bR+X? z@RpH1UK4)v_N~RzkJP7YB^`n;OByrVgsWd*Ec(2`NlC_~r-+l&l=+Lf2G~Ot*?0{r z2$YnR^y@rCAu?jCtE&$W4_|`=0kKq2SlDLwSTu84mi|R(=(TItd`Iozo!*JsPytv9 zI5;?bQLLKf&c-1j+ls zX>OjJG?|k`{I>@=ku!jvG^PhL%|TCR!#KD4ZVSM-_{9|!?GSQ`?Z(6a7JdL1c=P5> zWRlh}dDn=Fjl2ADb8xPj9Y)g9*lK@&<@xL|gN~rc7ccMvLqgaE1c>eJ?e|^I?l1xb z6%rCch{nc5jV72V#GB3Jo}1L8hbM=BAg&ucYzn|3rKKGyJo-Cmwmrnpr!g&taVGo5#E_ai`$bv1H)`{r<7LA{$Kx*9x!GB> z2M@65>FH6s3W<;YXQcZVof$QLE&1Q$oq5~34CjaA%F^g);=aDVVz+ez3Q9_#L}*|v zFaXW)4o_e++ildQW)P~gb90*mFOV1C|MJRhNF51G{h@CP_=1#?Z`&5Slfs*u<^K}d zOqX}-W0ft9jVO4SvBx+tr*A28%zl1;#vVp?y}DBFZ^OtrE%rAifL09 z-1~I@g7@j}keHV`1WLiyLvW1mBplgp-M%fAUdxo8RcDWcMoGGVLZez=GU_Gr57|t|4YuBJi)Q#Hg)h5WF9HNs&!6i%}SH!tD{H zQ857XDS32RWMmlk_V)BkEU=_yWYAE+XATbLqDd(!u~0Ok))WBtvG3mPud$!1eI~4> zrL_g5Xck;|;QROV6;Gxn^Mfzlerq;bW+lJb`d?I)>C2ZdOH&PUx`jp;e0+RR*B(5$ zRDbgOHca6I42GOTwGjv^LO~xcO1f_tA>r2B+Z*KzTlww1IPuKPjG&Ovbw@{`$!Cj< zt?lj2U%%oZKz--*KLliLJI~32I#{%j;$p$^&yE;Z;t9Iq1VX~YZ-?7a{(rH0xWv-1 zU>Sm8`*MF4cxIN^Tic!N(bG9u$z;i!Fpq64S^zyu-v|T&e+jG5)C+s{Q0asD5nAK@*`^6$AMo%qZ()2B!z1X5n zA<0b@*`&IE_Aslscqx3!N4*h*nU`IZ8r*1>mR5dQsgT9gtul&plh!B+2qYx&%q5d0a8OQA}lJWh9bzz2!sbI&eHBN`gdS0Vo(D zre_Cp#74DGNg-(4IU6Ex4exaTK}-|S$oKc+;-mGhtGWXN1JeP-vc6SSSL+WK=n)ME zxB!WNMet&ufhYL8X|V4$2*kwks=;MtA}8BQpVQmkhA**`+G zM)n-Gfv~8ksZn{nL~D$o6`r1(!$2W{8G%1{v(%bkIN+#<%WbH!320C#{rcxu5$uA{ zETDLU>$yc%S_*fa7rr$Wo424)AP=<0nR)sH>AfnZefD+2f!- zd+c&sSXyp_lV|~j0`@|`>@lgy^X(g`-8vdX4g#`>xA+M_ifW21W1N6#@axxi)19lp z!{)8C#;APA%0i$rP>IHg3FGwCUeMZtLqbB@MRP*iEC3`<_bM~Dnfja#a;ZMw=~ZTZ z{RM@Bb#I?(2??4^LWt>K`N2BR+~Rgm4DcJ@x2Afzi>vlyqL;{MS=i?|>JMfyXJ?%p zwk@dmP5J%hQv;KeF;NMJeqDlkW zN*0DGCMMP_rsJyzF%jaQZe=9}M{ZtfPHt()r&~=H@LVnv9&Bd18#w|L@}H--{n7!Vyi^Mn65KZ)u+8 zzW7R&fc8q!oeo$-Krz?Si*nF&gZDck>2ZLq!|A7>puqLhwYT3`uPy)p(7)pLq24`_ zL-a8sLf{3V>lK+$`d9x%P#E54K+l2ahWGBx0E^auw!NT4dqVu;KduzGyP0w-9mbKM_biQCQ#J}E)us18( z`+XD=*E22`{#A|Eb?@E{nV**q3{jqYt?u2CAnGaTbC$KW{frQw+Pk1v_9EE@RaJr# zYaJFg_Mw)a6%1@KM@*4?Fl(xu&}z28@XdFYdco^88dqXm1Hc#)6N7fR9+;I$C-T6~E)s(MY(eFuysj=4H#fJ# z*7S8nC8b=i+R{>CB4*hL2*&e^i{L03o5iH0q@H?s%!2BS=zWF8HNib{=e4~hpt^E? zbJsUEj?Booh`7n}^78N9zwFl?&rY6!GRg*Wk*lk#1{XzkPL7{^s>YZuUy_fFsE(eV zLXLJC5ZE6>L&_EwY`_Oc2Y(XQo$ie_Z#}tFzEj=jQuA^Cx6`+j&A`r1AB&Cg7?SWC zKl*Eqf7R&o`oHd{`&?D`B3}4BQq*P-#1U`hr%y#JEK4J~raXsea1TNKkP%5b(M*#2!rb8^=X60O(F_Pqsac%%BF4Ti6xrmj`3f(5r@wTP z_%V}mx-;e}1=S>`#(Al@gP9KjqctHXCy#`rLDQFfVVX(ZuIkRFNa6JHfy#7hL zoBo4qja2s^Qi&cV)Ymh;xpj%j=Q)Lm$Fezi7O_!T0AJuhE#}%I>4xh6ugtX0IeEQW zfsiqiGwHT6K44v-7Nj&Z!-ea1LjR>Ri8B56S?&`B!OQ$)&ye>bnPYkt1tGyj{d#E< zfqIF|kuz)S6|f&tEv?@UziyrOJackldiA;}H9y~*=$4n)g|#(ame(WKI7*wQn|9^q za#LIpe6-vA*A}y>FY^^pG&jF_Bh4zUdb>;c!2?2HDZd$*A_>isU*>JjrolmMHMO6B z6m9#r6O%GKzjFI)U07Pa`9Ygo=t;7iy!=Ob?!o7du{B{45v|p(tCF@p)dmX6%QqMM z$g8SG*hF?VLtlJtrGLVpc>jJi3HQ&R+y+L^+ZwMC7Z!>+xY|v6>P~Ee)O~krcWA{& zoPf?{Q2|R?nde=?o>hf9GS>LNSZ-JF!2_MnZ@gq4)VZr(_su?lgK_S>FGeG05}cJx z$Fn2&=GLGG0Mo; zj)Y>Kz4i;UM6q0}MehW$Q#5kIofmKe16A98r2b6umQL%YqNDRrACqdqApSgicKkrX zLj>(f-7bA%;wTeGMf>ej}%v)U7#3XWO2R$Q;nuV`myFpZRm*(3g{gr2_WjvO~ExMtzCk{l-v{Kw?tC%o;DuPPh3Shmh{W?vybMY2eD= zrJA_bZyvbo{Px#{I#0U2D+IU>?NjI8%-F%*Z|U%3Ar7jo+||oLKz7k2F>ky{JJ+ksFL(?NPPQXF% zQB*^50?6uo1cZl=-iNxF-fsE$zECVF(MayT$53JacPc+C3GsB*hZv6@*{EDx`wr_i zKzUFY2<$Onq9D$^t)bbK)^_DquFkE=QtnkF3?*0MBez&1R5^m)zh~4- z099he>@VILO|8%^bYp6P6(6s?*I@A}KAtp~sN6q1oI+h%2wNeX=Y=Q!}=o2w<%X{}I`}*+g zr+x$L4^3B|i;2H?v8*OC@+xdk&{Wf|vxott9nsk|d%V^GsJl}AUCRP^I6Hf~#*%UN z3hnDRE_d`%H@HOuV3pL>J*AJbQ+{+g{P=M8JbhFR$$Ud@8x3Vq!kS+|ef^@fDaugK zol)HWB)GbI>0x%=ziR=~qIgTXZeDySD6}0?Ur+erg&UfNbxnrn$D$`;-lq>imVuPn zwg&fVnQ@Ct5P)e^#Sx=b%knvpjdz_8)=+R~5bgkqbB|QmXRp1@TON2x&?q9K^ z4ix(b0aq)32Qh^ZE>1YPlvxXwH08jMy!SrYCXknRQ%L=M{2)A6eCgGt*Twb| z?2=UYjMI4L40TOJuD|mRI z%{v7NP8HUtPX*1%b3d@E2~S= zGD8adPwH&afanAVlbsw-sn5)W)KzC!N4f6VVxOIE&K*phzk)*(c(?;-ckoR}O1Q!A$--~E6Z=jtP%DVl5f?nwSux1jWVeDQI$oFRxl;EAFDretCTvmpHmThJBmsa!z1Y79$yXk?877ror69 zJzKfjKi$uP$xHoV=cc%Ia^}f4>3u9XJLjAb6bf^qIX@aof4UIwXpsHM=3BxpDZf#t zHvQ-2<(n*VJc1C308&^SZ21{v7oT1c4&SP5@B(OoUcSf~6DnlpdjSvc>+~#J+s<-} zkXJP^1V!Ez?z8WRxEg`PI#*`AATqr|in+c_8+qcEvNH6Hj|(6M5J7HuZ;#5s?XB25 z3R664>dW80U+sBU__~V{@QLEnrv!VO4Zc9DVTWWF{t1Ba@znmurbMa&Nr2`F7Z5E{Mkh`HA^emF$X{mK|TTAsWddux7v{BvEW9#dc6N=y5|!1Fh;I%p_RLwQcT z?qWr5Y`B3YSoC){$^K?s)*-OWyQxP?HJRVKb^1fFMBl}8`?Zu`sg*KZqSy`prINV-g&IK)&ZYf*v}IF;##y9f zpK#o3C|;|yg2awZ#pm%MoV!0cgxQ;Ud;4kucAiBEE^zv`v(qjim+TEfPa=G&kT{c3 zM9#04#A>ww(eaTOxaeGBQp8NtqB)uUBYt2l*{6OQC8>Kvl)(*H>2nrtji+n_jZ&zWkE0wa3(XbICJ) zWkvGja4`v0Qd>)xoD4N_E)6!m!#{RcDYtefLgP%6gKva0Es?U`vXP? zH_<_53Jg$?Q;nZ(Gb@R+lHjy#X{f2RACy;DC-6M>mha3ys##sLB@9!{U+)VGRoO?f z+G!P5pFJ{H2qUaFI0t{+1xTM75?Hx^4Z-Xp*>Y3!dshfCTG^FnAp#Q0HL&91{ceIo z4a&%5;pxMNR8|bKE9g~5ew@h%1X*gCY0EnIrs}anUyNc33s0_v(A_$n%PkiV@plT_FgzMHtvV4PG60ntAx9~NKTbX3!9JT;5 zSl`^r{K4+{l|p@Of<7o()`P6{;h}ZSH~Ww#wsJ*Lr)!i~a?c9$l!(BN{L<5PUSC$m zmgg4jcUuPNBJ+1erJS#b5)hG-Ie|8e@nJhrb#juZ`F*6U*G{?7RaYF?k=gk#6o`-m zI7nOfr{J{#m|)}ASh?vRsS?lse3u`0Pa!xz>@j`1JD36t&fM147vf7}bJ~7^cD>Iz z7O(LUBg9YDJDUV{lNIZF&wqdM*`D-_wgk0fl)rRL3oHD1-&7IeIPl7?t(Hjws+^cl zpA3PRQONSD0-93&MoB?2j``!cnx&o|{nMwz&JV2E*pQmUf%k7>Cz>IoI0B))c**z% z!c<@V2F>rn2U!sp*K&Z-1%g?rfH5sC)#lYA%b8e?ij}*JJAdKj>u<{tF-LWXPhrm0 z9~%YQnfiF)ou4eq@)}ECD5||;9Ij&>ZB%#-csL;LAg|-MmcxRE=40=loCN~_Nb*Yy z)^3^=XfRR)v}bF_x7EqM+mzPOz}{+s9X_BBJ_dn+moIPbxi;$nrAkjr^X`rF!#Ktt z!m+pC9U|!N)>>M`T8hh{-9N7AkBXQfRLR=9o`hE|dCkuk^+-+gdO`JAngFoz$c5WXvd>A1c!2tF zAcLtc1TR2Ki`6XnYk1i9B8Lg32Z>7NL+};Dk4+TRD%29J`K~1jSz=CcRm6Zr{QfmH zx77Re`Jc!mmKc#gdt)J6Ga(&NiiJC)=EkLh7yA5J>u^+b+#OhhYFv$AB4cIR%r zaM}F&HP>NYMLLRE9Wvfw**R6@EZqsex=h#@Gb(hW7E{i#ea_+|lBB53*M?I^`Exp+ z?N78k-KmVarffIc{bJ=ZZh)CZ+4F#J%So-sn1m- zO)V`Hc2$Nc;6`7?*ROO&)h>hpM{a;+0r+LRyi5nB1X#cxKoo53?`N{N zcS9r#$P8y_IorkEQOxK<7>-pg>@bj3By-8nkAp-Z)!G-ixpd%N5W#nRV%>gfZDz(C z2Or-OeyvXB=FLk{j5XveFWT6~edI7&3x5i#oXmu@ZS6jIIXt+5`J!}tzae_a?P{Hp zS~nqsECVNI_``=vxCCIS#_BoRvtMIZRaEoOUsj$?<$-*MjnX%K-wde3#02BX`6>!0 z#M_`SAynlNa%8l!maV@6HVF;yYAP@+{~mnV(^JaqVC%Y|$Uwi_$N+vh6^mNZ3fA4b z*rCQbFqP@)BF6<)$pA&ZyI3!Z8f58vWV^1F<<;caW%KmSX=u7 z3m+c>&mTVYnqINyF&cAZQesP^LSma1HA8#reFUc?TkKp)z99DIO9qXQh2RusjIPkN zwPesax5k~%o8pCOft?8{MbKodzw)S4mpf%X+bwdios`B0VZ3PF$)n(7Q(BG{vnu$_ z4=l{mTfRI51PA5}R_Zryh?0>x(SL8t-jLLw6qJ-QbgrgjTUm#V(cIJmiLAACTq#8* zk7GkjbR9~H55h!T)q#RfA8ad@qd~I4v!ykV{F@DVKp11b|4!CR;^Q59B1=nfkzSDCdzozVgUc); zx`%S1+n!F)!;@GsMfPZv|9xn-Fzk6+a%x%G@4X*yfFS@m1ob*Yt8~oV{8aG4;L8VT z8%syKcqeByN2u)><=Wm#0gToSB!MXXN0rOM;uGyfH)kog6Tds}y_jIkiv0?a?j2beiWIS z+Qq3V4p1Rm;%Va{L`QFC5E86gi)sY6h*2Kq62w64DrK2yc7My{tMq zqQG7SNU1wmG>4vVw_UIuKfwQ4;2G$bMr2m3B6FkPX7t@V9xg5opF2_(t!DZLzZ2eu zRztb4;((V(UFQo>!vUqgRB5G=95B$oGcxAMq7>xhlIiRM;mwXe?tPAYlS zBR9S9Fl+r)c4Ymj7`i}1Ew#;%tUo0W4cE$xpZ+(x*>6{8&y*Kgiz50L>N|##$uXIx zIMPs3mJV|k5*i7Os`r2Q&UU8%UWq;?s7BA9uY_=UdJ;py6C-CaM^dK!uRa_mhc*S` zD$Apt8KWxgjscvo)Xy%$_g&{0Q@B!C1Jc4O9EqSie#JkkRaAynV8; zcTH@&xUg!Z)N%dOlJ_P=oladpfos-_;b5~vB0~}oFS-jCstWj{n$?YSIKObcrtbF<(H8mjU6V_>OOVDVtrJwcBfA}-$3-<*e?w! zQ9>#p%Nq?-l>J%69RoQgf}-o`aLzVv-cENP;QM_AmK#B7##cypZIOMo9Q^qekv#zv zB}%!|!ZA`ZFp#BqvCzc27?7HrQI2wK4m7VV9&(J0{ky9#6B9!wYG^O+U7Ye^4imL$ zCV>osKyBkS&7s&g+OxwYm~g1(LnT1gBG6MD=T&M+SQ6gT&!mRXuzo9)-cq z@hPzHS?XEopvzq(6AC7(6F#5K){NTPahcwF%%+9pM+UpTa<`9^(l(Ftz=?spZ~&s$ z6Bjjn0052abI!UnR8&;ab!o)~(Uq2ZF%gCZITz43ANmf5gAG7UldQ6bWI*er5+&E! z9P{g~mAw9PVt%)a!|F<>c^)a8@##hyoC``BK`bj=eJ zYPi%L5wv)qZ`j4%RvZOwF^0C~^@h7h-Kb>-&l5rCH z@-mjYv4-OS7w5q-@yyoav`JVFO?5rJtVV>Uot->TyzyY>o%z>Vx%4eQmuVAy|fj{CqrW{(+t(Z{(mDbvEy=?k15+ORvo=ieq|v z2S9~4F5r|={K4Vc99QgDrSJ>~^ap8DXcnL`LIk8?(PGbK*&Z#|g8ZXap^Ccy>9K&>;qT4ulRxA% zTw3X7+d$UGt95uV!-XG4_?C;p>8bi2JJ7$siQ43t)BYH3}7QWK!z_)RmP9r>50Qo=Jxa?o2baMEHD5{L~A z@ud$w(4%9>(6GGv0K0%s^*s3GHTpGkokfktlG~)>`#=A zZ#Ij`raU~%l<=%LtGf*go0eYmp+cAcTb+dU8+Ig~ftBo;TWCN_3#J#vX}rA^1f4S2kyK5LAO$P>24-l(i4&=n6;^S1c_VxDQ+BS$5+|pO zBMNbJ<}XzeBps&N-trw2H8t(el@C1xu(9%x4m&)AxFhw`Cv12c!d3zH0sS52kI6RV z5-3t~aXFRV00A9@UU`7i5fKE_>+2{VA7%4U5xu*dD;2PAu22?&hpd|n5j$I-hLI5w zJ3GcxkI7|M3AcP<&QlKSG%H^q6X0G7iAj{BT;^ZQXXrw5jmhUkn1Vu3<>L2j^tK@U z&5mF~0*ae;KLgrkUf%i+$3e65Rjf_~sQZC4y&#TiaBZlLiCDiOM;1wy+Sme4=Qvyg@r9CJ{;`Q(sasEtsrG2G_my>m+i=Y86BlySN`n< z7y;ffI}cK2tYTuvdx@;H&Cgj+S|e4Qb5Z|IEz70GP_%yC*LO?$?BEd>H+RQm-EE<# zf}DO?6`EKtdSs=T=*7GH+^%M@8{kuAsWTJN(_@D#u9S)R-xhsRo6Fw5)T;(n;eBpZ zigh5arFEyR6c!oqLIEr>05V8~;-`F!q+djrlESx(yERY%mg#lOKmGfcyoAI~%bUwE zO)r{@TFMtdE$GXXLYNLTRtg{1gpOupnmPWyPpq1<(K2;M(Y<%4P8Z;7tA%FzzJXd``)!$9EZ5wY`HH9st`pg?33WV2lxS{ zOE{*<>PvfwFo9bEkjVl@%jEejrC*T5ibbx0;!(FzJtO}^7NKo!Km?E+YR%T%O>b-m zR}W4VnK}Z1t)oFvgpwgrIO7dxw^|@3A#P3E+WRS()r{1SXtRxer$Wy@ zabhU0knCQcbsMjJ7Ji-0l}qOX6c(qK*wJI$s1^t1695ZRHUioQK+^#t$ce)lsFm5Y zkOVlwR%;5oM~jBGTlv=eBUE{hwNaA0nnIhv_xe__NDQEAIXQ=j_Mw)n+LYq+@dGgW zw{JOUq<$XmC5A+8{dSsukDDg;n2v>rP6XxW$An}~G}9ByjG1;x2m@MEybXduM6;>6 zxMJ>oDvEvk?ON-}VLH?|J3r&Q#wZV-lAD`+W=3eZ;T-)%cvq0wcCYg3^in62u42L~ zKr||yZIEjMCnIad%Tt48V{;eU4Jm*e{mW;dP>|MvQfoixI(^H-*@rYZC(3%!Sz9Q8 zE9UzGfgOIoxgaBh3{sUy*{@QhQ|rO@mEaIXy9^C3B*q1XbW9JKTE2|a`-+N@)X~(u zy3jKf1zvP*qUH@OY64KZHbj(yqN1S6NsA9EjCtn82VDZx8rm+L`iU}Q(F)>WquIcQ zL1+P{5De)+@Nq~`cXOk{h02B~Mw=4nMbCdq;xF|j$awCVot+$lYcz2FbxR1;E?PwK z>FjiYW^puN{!r_>+ycm6ENoNd<{ z-g*Ej-BnbiJKJx#2xTyV5fSn`>o%bvHG*8}4_`jljBQ7vG^IocNQjvtu6ui5zJG-t z6WfDD@JA91qZ$+=bveGE$jGXS+i529lw95MbJ3NP2_37rE82tsZ5TNGX~kO~Nq9lr z3WqY2@&vVnSO2aBFlLKUgZALzI#2Ny#g#!gr4w(#O#;_)Skp)EPW*E1&Yh$m3f6GM zBbe4PfqdD;-OPARhZEY{*&{$c`2!Q{5UQF$v>CV!1zxSS&&Ck(aI%hoENAr;l8#jT zCv?#=3(=KR4?n0Fr<)hkFnN<=VY&Oa#S44QtbH?!`CA=J!=WYMcItt3cEm%;ss3?# ze@b8m$m`DL6!lztmD$NtTBheeB3mXyH?G^D%|_6&L-KJD-n2`EfXwH}>T-q_c31}E z`RV2*UZVp_Ca*VsY_4^{&Ca|ys%tz6$-SOGCm|#A&r0^l4d6-d{utgf0XtDTk73x@)exQd|kEZyTv{X3#2um6m!oF+cnoWaYN0M^#Ug+N0zOjsl}gG zFg_4a3nVwTg(s{Fu&{jS*XA&WjZ5I^3PFBcDjr1k1W@(9B!MF1(=QWPb9sBg=jNH#8WcX`X6O$UA*#m z-y1r+`gfEwTE4{#E3d9Yt=M`UREgZW-NpHagM&TR!-HzSwqc^i-F>ttp_iO;lsyE*&>28*}IZYSE~*8>%A#16B1x^fB(+OeZ2cVb+=+R zveL84b#K?wb8mBYHZ3AFR0E1ijjEg%yVbJSCUdL@M2&SSKlUW$CeP2`|CN8Q^o_2r z?k(uV`ZbVqH`eFu@KM&#$d9Go^jK3U2M^iQbM?wLgQDd2zu zP4Z?)+sNn9Ras0F9~jFC&T$blk<)t8v8tR_*h@JSZ5NxE81d>A8F({;vCJ|RYHRJR zn!$-;CMe%Ws$ij?33BcoP&r)!{Y(+eawcOB+_+0B@R1HtgOEGwh)vQ|gN2g9G4jgEVs9($JR6ngheoi}j10wW8{i~-$wLzrQw4BIfN1{lVv0|2 zUS8hT0dzJiTqI)!aD{SM_(uEg{rhxCDa^U)x=Y7GIu!(Yw#MZ24XQ6!<1c;8Tbf#A=#DAO9czFj>H6L+Iq>gxm=5>C=^b{Sx`CI;2&5x+&o4!4@kz28Pg+N$K$#cjBt5D!5KS z{?;wL?i9JA2|0Mo;o%|DQ44KQ$PFb>Exp2fYkBAZ+PbEv&eo^4)<%S(Fm8? z0yu>9y+gl*S!*b%1l&MTe|BV}t*!kyIyy2k2yP$%p)xHkO~ceQ8ZJ3Odg+jXAw8nd znv5z)VX1}gz9>d1q(d=#5Q*i~NN2nAqFR=y{ctfFVq^{8r;7XKrQWn-{2!H46Gn&D z=jQ{VOBPBi^Rf#H+Q8+MK)tR}l@r#rRSTdl&S=+mB=94frq0jYRo{ydhEwr1gJl<% z7I?`(*}s*Qm4mA*l;tPT-F@jP@a zESD*{yYKV=KP$Df3Kfw2g(h_`pw|c*o+!cP9rUN11s)xF+`oVSF*SKxROt^IP)DiZ zJwTLF4Y51g{ajr=TiPQF6&+B5lv@m~$h;=CG(&~PtM@T$_C_nVfB#W`{!uaP zxN-UHKASL)&9gsd-})qMBI21BBT6Ql?pfx$JN#7TymSc*iWSrL7~%GjgoK1L(?Kj> z=)zsE*r2)UbkWw<77Ez0*!m8w@@{7lI$yHVh}$!uw&!?Vgi{Ud#GLfTvg>dtd8vGO=@xwaRPv6-W9WQa>~{W9ayo?G!T%NO$RMGY+YlUyC(QnYq;?&iI1 z{pWfpgEa+PdG%GBx0lKfSrmyx@nQ@n63ZtC2L=M65pUHf{09m2?qK5Juyb%=Q&LiL z@$e|v+VaACfl|I@KZyAIAbe^zNl7}m;p6e+$Bob_Ktf9!2G<5?xX6 z2E#QP$UO}cxmi-8c%->fTwJ(d3%jC-ry z67C^isK_(j^6dY$1oo!t`ua3*%%SuW7~2czRAZHuo$R}`XQlO?Sbkn3og`=Q`@K?z zobOowUbVz~ZwD3v{=I5H|NE-d2|ynvwD?MzW{Gk@$b{02C-sLMa32tI9LYJ=cCw@3 zGjhicwD<-=*9mf?&eGCj0y+^Dm&laozb}B@BCp-ra)2T?DVf|H9%OYqe|)%(96vZn z9BPTUDCA}#=sI?#BKJ#3 zvSpt8_IMXAu*TlH0Zb?rm`e1h7qg6qA~Y__5;97@NlZ$DJ3w9}OFv7S*qEDBXgFvS z;Ns#6g$n{6LmTIt`1qT!-JEdpwekkb9)72@wzvPubXQML87`8U-`G%t+c?V1n$Wo~ zUl!7z>rRrg0yhg6ZY@J+*Zj)LExkgc-VIY-T_qG;e`KKD5Md{-o33$ZeHA(%7$Rwf zm1@qRjrszLl8OpSJi**^2CY2~e`hW^{`8TBru8GRs<6-{xMicvVMZQqS?LxLtAqhz< zDr*@_$i9WjRdy<6$ymyknv%v+vQ#p1WlaqYk(4D(ktMtPb5_5r>w50%exCbzz5HQD z&3wP-_dJjDI6lX5ywBzBG?(wAm5m%HmYmIw4>TEN-w*Wc7W#A*4dbo8jagRnIQ5yu zC$po^{akD759*G5{w~Jd?nc$gi3U7E8(5eXH&|hLj~>;cud8KnM2kS49gMn@xT$+G1)5NuY%pUf@|6r_%|+r%crFnsv>Rkw?Er#3ys zTWS6J_0n(wJkbv%v0{ZEwgScS8P{cR-Yq0!jowl<>}%v&0KG{*bUXe2{e9i?&&qiu zlRY;-H)y5zXVW!1kKf~K4{>7EIf}h5QL7Z9-pM!-S|v)JL6@R0AO+HIA2|GTSQCzE zpC%XG(6HaucKw`e*S^PRxfL3?F78aaj;_H;+prz6Ildze&C@7K?%mtGM!}u9^)@~- zawqTk9qqnH(KWpj;4<+WhwWE_wZZ08R8-*lBxGfCYlYzCB-PH6wBH-|AIB%zIJc-s zWo#g~Ca(!@(jOCyxWJf(&BN}fHd zzNwdF`S=W%w9BUh3clm{uD)b=@^d&g*7jIHY}vMfs$~|mlFRSQmQq6*ECGgCO2qc% zm4fYb`!?;M;6R#8rJ-@TP=ZR%d%6RQ&KbQV>2&$M*$vIRG0$_iw>KmnX|Szcf1bg_ zaFUGwB{*e3)0_Cc{^9mhPmUq z_i>dK2k`j=UzugGG6s_YqCMm*Y4z#hcG4Pa*-*?q{Yn1EK zGAa06^6wocC#NA%i!+J+dpohUHSqgmL*n}EhyU4LS&>rdZ_lXz-hJ<^w>dpt@A7k- z&dI^tAH5V{2{i{z$LOmJ7gb4>*q>Sr(%8+^ROZoDLMgs}!pm<=3?)ol$28mL`+pdNjnUHr4diO}#adLo4O6<*JNg_xynneq@4weZ~UY2I1lM& zh6}scKL0HC&YfN%nOjiHkZeL43P%Se2~NqQ*8;B4_LP05P5B;3Bwuzl9?Os)K~Fe* zZfGAvc#mu$xP$XM&OSy;)>Z^mocQ>75`aQ5Lw7JA1x%N86R*hXqBOn_A3w(2;AdcN z{~D=(4##r;%-@6f&p-WRe0Qphc5{Q<5(Mg-Ird!z+3LWcpr^qC8&3f-hd$xSMZ>Q% zh!aJpudA=m@?mz79!l&Bb7s#z<1;o4r$vPH$N-r`S}K<=TgHXx?=cV**Y~bg%TC`2 zUltoJ{6eVZNj)!&$LGTH^23OqL{IEM4{SFi*dB^0=wMs|Ar1pox|l84pd1ryy3+NvnA9Ku$Ym zGY^Gu1qnrKmdIAhoIqiYWCc@+bw!UvIS^3~lbN(28MBxQwjRCFwDY-V_QdEw4G zwzBH$Z#soUMIH8UmJ!nN&nX$uv}E+U%!Tf$kzfgguuxcmxn)_ znd$Zz=ZEz3{~u3NMob+6?9^Ezq=$18>M=RlTyP(zgFJKK;K8#2&OQ*GoWlgPPR4Rl zl9QeDbnYA?L57Hk$dnALdSTmOs%=nE5Rh^#)1tc}WUMD{SDUdRvpvSb>4Cyz^_AUJ zUA?qEJ|#MtSH3Ae*51#~$hNgyTPw`z48y{RCQ}>H+EpblwXrhBDOPzf!$QQ7 z#!ZvyeNT_6LtJtX;W**Vpf(hxa&I%?FRE#15OfcAi3cuS3zx50(E}KsYnOZ;+hYIz zc^ixi=>?j)@Wycc-C!=k{SpEWOAdGrH0Gn*zB*~VOAF94C=Pmu5BtM`QcbE^x_R^c zQt!*fa@>!*TZ#!6Gc{FA&(;W`B4)MP_U&9og{K4C+AO5EY_YaKnbeG%I<3jLb&Ge| zvSsc)?|Ddw1ENFhutXjQ%fWr%vmj~iU$}4zQlSK%2I>;bVL*6zu5;jxvJlQ-quVMdURHLK6DDV0clrI&YDpD+%#h zK7S5D*EI?5{HE}I8gOz>sp#u-hAl?rBloth!zb(R9PuX&;Z03Vr`+61Ymzh^Mh6|r z;}mlnWTqPcz~ahb^I+oA6kK>w+c-CWX!qff$-8`MTqbZ9cj@Sy2aa%n?SFxd6(@#P z%@DMk%gM{*p1G)1@#puYf6h|U+SF-wmaSl0|nVo%+ZE>&nWBS7YplSap zc56|e!DaC(zINS1^h-zEC~%s@s6XzSCiO7l#gcdMl0NL&fN8-rh)9Ch(+V|AA>0<0 z3(pyH-kIGgPti(E=wU>1u&{V9I^H6hHPZIs15)W96-v8QEU;3RKZWN;d2AWWQF*eq zZ$UfHjD_#8+dipH)79I*-wy^`O@qyR(4dnR)-H>F@=gql< zCV2oBL+lzKY}e7zVV7d2cLIdcH#+3RW>9CzD=OMFY++e!+eQ&q@;s1+B1{tyewJis zWf6J06SF)O+Jp7Ulb@@_$6AqrcwSuW2l*D=3}M(mHP>7X0)tN#G?VN3`CEmyoLm&A zqBCU?1m&E#|hIjTt2o+Im^m#@xCe z(O8mVyIY%`vE7dcJ432`-hg2Qw_V9hO2ukw6X3S8@z<_vzELkv~A8D5Eutnfk zICk^UZOxQ@HRwxBWT1p3gtFJe`2b(`+xR2t2h89Rz>}Mss+(}Pfa3zv)CIK4ce`gk%Xt$Y-H_-D zv@*ecT2x$HmABCR4?DlYQ!P*VM_f+OK1f$W3c`}zrlmDwyjNvn9>8G$q@5`!@b>qF zE?M2!7=n0@(?4Bb!!eedWtcvQP-@W@qFYLta83OuO?m!-MdGNr_{$5USsG&8jLOn>JI#Qw1@N0*S0k`qC zM_O{!f~1U(+Cj1=mwvt7+FN=T@q1Wdq>Mzo%9n=R@Eb`5IJ$?eZ`$U?-KmeH*t#Sl9|70Xrwa zuzh%=PtOb@*G!!{RS2r;2@8vth%(AvzrOm)S_aV4on8W`RP&Cg9v(?ni5CjJfW3?? zYfLC`2~{Vb5mE7>b6WA-Bv!8cTJ`K){{QA<}?JASlsX6Lc4$aFrC28uvu_ZA~za`Az^}OU)8Je(h7}D$jO8( zk$?FvlSD^IM}&zYgSrFa76l~@|B{zEePWC_^6uSB(Yh0W@P#ngfXh(@Nf6WLA{gah zL@(x;yIFVaNnnSIQwaVQ${XS7lmrVPJ5a`-9Vh272{H^x3?cae;2H01y(lBqWfz8B zd)}*qcl{1ToXK;}2At|*t=HoWwCP{-E39Q$PG`{bjwM_a~JrPzRBz9YX0lS z%ia0=_(iC_e@o54=`(%z`0U=>uTh4jj@=P?C@u;VQ-m(tAmPFigh4c(1I8kZ#^5Xp z%`-Wq(u-~mPV;$dmdr?X;73Fh5n8r3=?{hjkt-AHS zZQWK17;aiCAyKozHM?jb5=iTj*J^q9F0of1M6ldpJ31;u0ygwduNJO?3y8MP{PE!~ zHpj@wNI1;luYe%$ZQ2&I(z*lXl96p@3yhsu?Ok1K2Q&3;Zl9IRq`MRv+7!in)HMCV zGi3@2lFcn_Cg5lipwX>cpB#=1XBVCxnk#y`n+q!iS=#E>0fXk1=V_9xI)}>WY_yZq zY?wA_8&KMCjY9x><|l^%oI14$&I^SC?34!F3WD7Sl$}W5i_k=vxn)b9mK><_e?ZHI z1fFHgupO~74wrCAyKuJ;w}X<=!>{V;VUe!J^7bkQ}wNww^?J04ytTpa2f-G%^yw zO_7y=#OV7{QD12--$#Z&%}mnH(5Fc26ZSKiPf%Milp0ai1O5F(hwnk+w6Vxn6oL3W z7uv(px<+%WJ%_TR7=DA?4 z5#}*m*sSoyimrci!3{l#pnxl$BP7I2rBZ?BoP&^l5lo)JaKme%Jhu2)&*U@kwYGW< z%!Ip-YPGWi>@e=B{PPd?g2{C5)~z*2$1UHwbqOF&VIAYwoK9CLMYbK6sngE?xyf7r znfUfyOu6Ju#wmNb%?s3ddynzTMDNhi34OCCF(zNrG)(LI6lS?5uhUUpnN3~SCl<7m zsuWyjJ($~RrCC{7?|dh|`(`4g5LX&1tOzJ>V}aM1Ac(`YobO^UvU)I%{;nUYT`NxGzR;>r@{x7mycp@L!#;=OFcP)w-S=83Up zm%F)bU0uO|m7Bu<-kW{^^~E!B1O-0a1Xa4oR3kO7(XOLjzO@h!fxwUPzh#@;xtr0d z=^8s;N8>y3343C9U*8|7*C6C`P}KL7#xtzqk|X84nenyyO+cs377@8y(T(d;57+Vb zRsvU(Alk`HL)FLw--*I^h4_Vx)u|89=OEb&Ip$HZGEK5;RW@zt|E<*B?tLw1?$NO) zmN|TDLPQa~FMffzs;Vji)K@$n(QDzI94Td9Rr5yPkjj}6=OpwZCEDrb-L^xb)Cxxc zPP2^57Wf66LV_Q8*%oL6GUg|~t(1-j(p1iOd@IO;-DBUINdl7SdFR(0r%+x-&}iC| zX1y?isftr{3kwK1jku<)ED(5G2(1@z&WGlmL;LY8=gg^~$wz?Sb~8VphIoc}4S1Dh zE7PpG@K8y51)=C*2^mr z`;n9I8Pz}Xx0FnB?H=e2C#cj~EZ7d%7ItY#xf2fD$n)qGQ}P|B0fDTF`iWOBU+z#- z`-2Ze86poY3&+^XG~1K%5l@SdluED>T}=h5;RQ>zLYvW+wY& ztw9r>`gYju4N9JU0dT9HH#ZxL7hiyh+h=LH8o3=k6qMLD<;RHWTvJ0zaDz3k&?@M6Pn9Dj_O&<_x^8FQa#LX)p1)w`_(6ua^T{@X-i21h1rDIvbcoF+^4Fl8r~p7^-WQTJZAcC^b7sqIx%q6uV7D2 z&&i1lFr2vGm}%}`sSK`K685IOrl!ld67iv&oT4#~J>15v?k3KPm%3xa=385S#a2D} z47P5b+{L$a%Lf3t)18vC$+)5JVnRZ*X-x}Gs^Hv!UY^%=bvB|P%nI5z7sdrV`*{7fZBS=$wbx0o7}pyY0{3H-@4j92!p!S% z8@oQ6hk7vDdNr1Jek|8t%&e?YIHG+rVXEZASK@dCSMdm#B%U;HqgqPVtSM}x!Ffqc zTzd1s8jd;K4}}qs#kVKbpaWng;?=r`_0$F)y%&G}8DbaZ$j7;Qm;Sh=>E&rm2e1ejWPc2b~TKI)o*o9(aH3#@eMx)&jB8V zKhAV{cRQnS2eDO0TZ4WXD_iG}O8__am>r=d*`9o??2dA!P?s&Ki17H9obtkC;qe8* zfx`l7JVs+F&8atUPD3F9+EYpK2?z$a-X6mFH;Mf>5|}yMv-4S3Fy*SCx?%mnfB*c? zQA3TMp0RO8fwEacZ`c0S^VupYo_*6uwtl?dcmgYUfu)tzb~pq0Y__ z%pXz~1styqeqx->O$a)X+)vot`uiHuq86~nvMQ_a|$ zoWodeiqhHbPxLpG#77KFriMzg8iq&B%zlcijV+Vn0|Nse_>3vQYTxsn@UfH@f-ORW zF`84KpiE}Fx;hWi-m@1k4u)DdQ&hRJ!9p)s=-GWz(y`~NB6Un6^wf_Dt;H^*FhSP)NUh)RLB!wdvxPi)HNzim9d2b<90_ z2L_ms%rlXzs1dYl{lAsT99T?~6!WJAng(s{m{%KBNdgXtVdIL3iD@6=g!10d4(`v;d9n)4m|h(Z@*pP>`Ex!-wMo?NyP z<%cC@&~+FHug$Y>t0S${TQc_Ew;7f%Rynb5Y_tdouz$S#y!?jqLfRaJ+kJ>bYv2Sv zaye~W9-AGH&CQ&+yAq#*4HyHx8d`+RtFECjujY2_z+@htOS@BUpiV>2(=*St8O1y` z$hhdL`tz@Xca9C?28>PsyAYL;af+f-Cr_TnLh-CBDX(d1*^W>(6(_M++Z!IIE1NeM zti4^xrG=0u~MYg&-yqhAok#@!6#)BD@Eh>x_fXqdPJ5A^ofNMYry| z`Q%E#G?bX)>;~Z`@9)R7qKa2;`{|#v4tKVrzwuwHG%06r+TARu&~T@=LrBAFCCUOP z^FmGn&dUNco>YYeOvABC=lV%n?#-JwL=D6#TP^MF{wM+bF}-GX*>_GVU%zo<)yq}8 zZcJf5yZrR@f?K9v8Xv+6JONV{w)~7+lLt9GY2nQ<$=b`-ZJt`7_kxMflj{w)`*gt) zi@B_LDJOE|3KV~GJc09r9$vg(H3>C6$vX1jb%8^7bn< zM;>G|1W@U$0p{@0qfi+9`Gub%M*_&uSvXgI4WY*}1Ss$dd;C>KxllgKesPk1?9m}A z45Up%RlTc)euA;~@wX8X5w%I2kQnyGWvZl3IU+}*)T8{(aqm!n|EU4bU!JgZU@n@M zh9_8Rd#dS&h``$a_bSYfA5$3N(D+b6g7K^_^7W0giON|&2ub~VW@gPhSIOW&RK%gR zR5ZV!K=ExFWB8dJ^+NwphP>48YS}Na%jnVgqtYDJFbYKiIKu%T_Z2%sw!!@3F0vb7 z(kK+Xu_;fOf`dsm9)xh0h-evAM{!?j4ZO{ArHV-&_pi@%ss33l==MOw>fdVdaDdnj z_}FGdM@VfmY=kyfO4Odpv*8Tqr zYiDwd9M6V_E9pCa8V*bg)H(#ra}Fj%<2ws2mj9|b#+P<&>sVXKyvvY3S-%PWL3s@g zI2R!dI?*R2eCj3RnuUdhNxktB<!0Y{yoeFql$R)1lqP9Y+8!Q~Sty3AJ|14=20u-0|B`2O zR_r84_C?-2FR3{lI8Vd}6|6$}1`F*yh%}N5>hC{fQ_I;`L7uw$yDn+B}@JN+9vYSCDYEiix{g_1>ZgT+x#3; zIlqJaA!6qBNAkVmP + + + + diff --git a/ostream_8hpp__incl.md5 b/ostream_8hpp__incl.md5 new file mode 100644 index 000000000..47028b0a5 --- /dev/null +++ b/ostream_8hpp__incl.md5 @@ -0,0 +1 @@ +a0cbfe8bddfe20cc4abc5bd8900a7903 \ No newline at end of file diff --git a/ostream_8hpp__incl.png b/ostream_8hpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..fc66a091b223977b3918000f23e68895f86bfa9d GIT binary patch literal 6214 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 + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/boot/include/ostream.hpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    ostream.hpp
    +
    +
    +Go to the documentation of this file.
    1 
    +
    17 #ifndef SIMPLEKERNEL_OSTREAM_HPP
    +
    18 #define SIMPLEKERNEL_OSTREAM_HPP
    +
    19 
    +
    20 #ifdef __cplusplus
    +
    21 extern "C" {
    +
    22 #endif
    +
    23 
    +
    24 #include "efi.h"
    +
    25 #include "efilib.h"
    +
    26 
    +
    27 #ifdef __cplusplus
    +
    28 }
    +
    29 #endif
    +
    30 
    +
    36 [[maybe_unused]] auto wait_for_input(EFI_INPUT_KEY *_key) -> EFI_STATUS;
    +
    37 
    +
    41 class ostream {
    +
    42 public:
    +
    46  ostream() = default;
    +
    47 
    +
    51  ~ostream() = default;
    +
    52 
    +
    55  ostream(const ostream &) = delete;
    +
    56  ostream(ostream &&) = delete;
    +
    57  auto operator=(const ostream &) -> ostream & = delete;
    +
    58  auto operator=(ostream &&) -> ostream & = delete;
    +
    60 
    +
    67  template <class _t> inline auto operator<<(_t _val) -> ostream &;
    +
    68 
    +
    74  auto operator<<(ostream &(*_ostream)(ostream &)) -> ostream &;
    +
    75 
    +
    81  static auto hex_x(ostream &_ostream) -> ostream &;
    +
    82 
    +
    88  static auto hex_X(ostream &_ostream) -> ostream &;
    +
    89 
    +
    95  static auto endl(ostream &_ostream) -> ostream &;
    +
    96 
    +
    97 private:
    +
    101  enum mode_t : uint8_t {
    +
    103  x,
    +
    105  X,
    +
    107  d,
    +
    108  };
    + +
    111 };
    +
    112 
    +
    115 
    +
    116 template <class _t> auto ostream::operator<<(_t _val) -> ostream & {
    +
    117  *this << (uint64_t)_val;
    +
    118  return *this;
    +
    119 }
    +
    120 
    +
    121 template <> inline auto ostream::operator<<(int32_t _val) -> ostream & {
    +
    122  if (mode == d) {
    +
    123  Print(L"%d", _val);
    +
    124  } else if (mode == x) {
    +
    125  Print(L"0x%x", _val);
    +
    126  } else if (mode == X) {
    +
    127  Print(L"0x%X", _val);
    +
    128  }
    +
    129  mode = d;
    +
    130  return *this;
    +
    131 }
    +
    132 
    +
    133 template <> inline auto ostream::operator<<(uint32_t _val) -> ostream & {
    +
    134  if (mode == d) {
    +
    135  Print(L"%d", _val);
    +
    136  } else if (mode == x) {
    +
    137  Print(L"0x%x", _val);
    +
    138  } else if (mode == X) {
    +
    139  Print(L"0x%X", _val);
    +
    140  }
    +
    141  mode = d;
    +
    142  return *this;
    +
    143 }
    +
    144 
    +
    145 template <> inline auto ostream::operator<<(int64_t _val) -> ostream & {
    +
    146  if (mode == d) {
    +
    147  Print(L"%ld", _val);
    +
    148  } else if (mode == x) {
    +
    149  Print(L"0x%x", _val);
    +
    150  } else if (mode == X) {
    +
    151  Print(L"0x%X", _val);
    +
    152  }
    +
    153  mode = d;
    +
    154  return *this;
    +
    155 }
    +
    156 
    +
    157 template <> inline auto ostream::operator<<(uint64_t _val) -> ostream & {
    +
    158  if (mode == d) {
    +
    159  Print(L"%ld", _val);
    +
    160  } else if (mode == x) {
    +
    161  Print(L"0x%x", _val);
    +
    162  } else if (mode == X) {
    +
    163  Print(L"0x%X", _val);
    +
    164  }
    +
    165  mode = d;
    +
    166  return *this;
    +
    167 }
    +
    168 
    +
    169 template <> inline auto ostream::operator<<(wchar_t _val) -> ostream & {
    +
    170  Print(L"%c", _val);
    +
    171  mode = d;
    +
    172  return *this;
    +
    173 }
    +
    174 
    +
    175 template <> inline auto ostream::operator<<(const wchar_t *_val) -> ostream & {
    +
    176  Print(L"%s", _val);
    +
    177  mode = d;
    +
    178  return *this;
    +
    179 }
    +
    180 
    +
    181 template <> inline auto ostream::operator<<(void *_val) -> ostream & {
    +
    182  *this << reinterpret_cast<uint64_t>(_val);
    +
    183  return *this;
    +
    184 }
    +
    185 
    +
    186 template <> inline auto ostream::operator<<(const void *_val) -> ostream & {
    +
    187  *this << reinterpret_cast<uint64_t>(_val);
    +
    188  return *this;
    +
    189 }
    +
    190 
    +
    192 
    +
    194 static ostream debug;
    +
    195 
    +
    196 #endif /* SIMPLEKERNEL_OSTREAM_HPP */
    + +
    auto operator<<(_t _val) -> ostream &
    Definition: ostream.hpp:116
    +
    static auto endl(ostream &_ostream) -> ostream &
    Definition: ostream.cpp:42
    + +
    @ d
    10 进制 d
    Definition: ostream.hpp:107
    +
    @ X
    16 进制 X
    Definition: ostream.hpp:105
    +
    @ x
    16 进制 x
    Definition: ostream.hpp:103
    +
    ~ostream()=default
    +
    mode_t mode
    输出流模式
    Definition: ostream.hpp:110
    +
    static auto hex_x(ostream &_ostream) -> ostream &
    Definition: ostream.cpp:32
    +
    auto operator=(ostream &&) -> ostream &=delete
    +
    ostream(const ostream &)=delete
    +
    ostream(ostream &&)=delete
    +
    ostream()=default
    +
    auto operator=(const ostream &) -> ostream &=delete
    +
    static auto hex_X(ostream &_ostream) -> ostream &
    Definition: ostream.cpp:37
    +
    auto wait_for_input(EFI_INPUT_KEY *_key) -> EFI_STATUS
    Definition: ostream.cpp:19
    +
    static ostream debug
    全局输出流
    Definition: ostream.hpp:194
    +
    +
    + + + + diff --git a/pages.html b/pages.html new file mode 100644 index 000000000..715a4e669 --- /dev/null +++ b/pages.html @@ -0,0 +1,108 @@ + + + + + + + +SimpleKernel: Related Pages + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    Related Pages
    +
    +
    +
    Here is a list of all related documentation pages:
    +
    +
    + + + + diff --git a/project__config_8h.html b/project__config_8h.html new file mode 100644 index 000000000..4183fb289 --- /dev/null +++ b/project__config_8h.html @@ -0,0 +1,164 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/project_config.h File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    project_config.h File Reference
    +
    +
    + +

    project_config 头文件,此文件由 cmake 自动生成,不要手动修改 +More...

    +
    #include "cstdint"
    +
    +Include dependency graph for project_config.h:
    +
    +
    + + + + +
    +
    +This graph shows which files directly or indirectly include this file:
    +
    +
    + + + + + +
    +
    +

    Go to the source code of this file.

    + + + + +

    +Macros

    #define KERNEL_NAME   (wchar_t *)L"kernel.elf"
     
    +

    Detailed Description

    +

    project_config 头文件,此文件由 cmake 自动生成,不要手动修改

    +
    Author
    Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
    +
    Version
    1.0
    +
    Date
    2023-09-09
    + +
    change log:
    + + + + +
    DateAuthorDescription
    2023-09-09Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
    +
    + +

    Definition in file project_config.h.

    +

    Macro Definition Documentation

    + +

    ◆ KERNEL_NAME

    + +
    +
    + + + + +
    #define KERNEL_NAME   (wchar_t *)L"kernel.elf"
    +
    + +

    Definition at line 22 of file project_config.h.

    + +
    +
    +
    +
    + + + + diff --git a/project__config_8h.js b/project__config_8h.js new file mode 100644 index 000000000..fb9ebfabe --- /dev/null +++ b/project__config_8h.js @@ -0,0 +1,4 @@ +var project__config_8h = +[ + [ "KERNEL_NAME", "project__config_8h.html#a69e7bc540e11270eeecd410c206297fe", null ] +]; \ No newline at end of file diff --git a/project__config_8h__dep__incl.map b/project__config_8h__dep__incl.map new file mode 100644 index 000000000..e3c135e5f --- /dev/null +++ b/project__config_8h__dep__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/project__config_8h__dep__incl.md5 b/project__config_8h__dep__incl.md5 new file mode 100644 index 000000000..bfb0c506c --- /dev/null +++ b/project__config_8h__dep__incl.md5 @@ -0,0 +1 @@ +21d230ff8f7970341a56e8119f3862b7 \ No newline at end of file diff --git a/project__config_8h__dep__incl.png b/project__config_8h__dep__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..1e017be03f6f91e5bd158cab08b1a6fac7db3609 GIT binary patch literal 11308 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 literal 0 HcmV?d00001 diff --git a/project__config_8h__incl.map b/project__config_8h__incl.map new file mode 100644 index 000000000..003f81efe --- /dev/null +++ b/project__config_8h__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/project__config_8h__incl.md5 b/project__config_8h__incl.md5 new file mode 100644 index 000000000..ab45963ce --- /dev/null +++ b/project__config_8h__incl.md5 @@ -0,0 +1 @@ +985f416082befe8dfebe1c07bf987188 \ No newline at end of file diff --git a/project__config_8h__incl.png b/project__config_8h__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..bdbc1e108c5b76b40693e50cae73623ed5e152ca GIT binary patch literal 4922 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 + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/project_config.h Source File + + + + + + + + + + + + + +

    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    project_config.h
    +
    +
    +Go to the documentation of this file.
    1 
    +
    17 #ifndef SIMPLEKERNEL_PROJECT_CONFIG_H
    +
    18 #define SIMPLEKERNEL_PROJECT_CONFIG_H
    +
    19 
    +
    20 #include "cstdint"
    +
    21 
    +
    22 #define KERNEL_NAME (wchar_t *)L"kernel.elf"
    +
    23 
    +
    24 #endif /* SIMPLEKERNEL_PROJECT_CONFIG_H */
    +
    +
    + + + + diff --git a/resize.js b/resize.js new file mode 100644 index 000000000..e1ad0fe3b --- /dev/null +++ b/resize.js @@ -0,0 +1,140 @@ +/* + @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 initResizable() +{ + var cookie_namespace = 'doxygen'; + var sidenav,navtree,content,header,collapsed,collapsedWidth=0,barWidth=6,desktop_vp=768,titleHeight; + + function readCookie(cookie) + { + 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 0; + } + + function writeCookie(cookie, val, expiration) + { + if (val==undefined) return; + if (expiration == null) { + 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 + "; expires=" + expiration+"; path=/"; + } + + function resizeWidth() + { + var windowWidth = $(window).width() + "px"; + var sidenavWidth = $(sidenav).outerWidth(); + content.css({marginLeft:parseInt(sidenavWidth)+"px"}); + writeCookie('width',sidenavWidth-barWidth, null); + } + + function restoreWidth(navWidth) + { + var windowWidth = $(window).width() + "px"; + content.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() - headerHeight - footerHeight; + content.css({height:windowHeight + "px"}); + navtree.css({height:windowHeight + "px"}); + sidenav.css({height:windowHeight + "px"}); + var width=$(window).width(); + if (width!=collapsedWidth) { + if (width=desktop_vp) { + if (!collapsed) { + collapseExpand(); + } + } else if (width>desktop_vp && collapsedWidth0) { + restoreWidth(0); + collapsed=true; + } + else { + var width = readCookie('width'); + if (width>200 && width<$(window).width()) { restoreWidth(width); } else { restoreWidth(200); } + collapsed=false; + } + } + + 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 = readCookie('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); + $(".ui-resizable-handle").dblclick(collapseExpand); + $(window).on('load',resizeHeight); +} +/* @license-end */ diff --git a/riscv64_2arch_8cpp.html b/riscv64_2arch_8cpp.html new file mode 100644 index 000000000..1f91bcaab --- /dev/null +++ b/riscv64_2arch_8cpp.html @@ -0,0 +1,345 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/arch/riscv64/arch.cpp File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    arch.cpp File Reference
    +
    +
    + +

    arch cpp +More...

    +
    #include "cstdint"
    +#include "sbi/sbi_ecall_interface.h"
    +
    +Include dependency graph for arch.cpp:
    +
    +
    + + + + + +
    +
    +

    Go to the source code of this file.

    + + + + +

    +Classes

    struct  sbiret_t
     
    + + + + + + + +

    +Functions

    sbiret_t ecall (unsigned long _arg0, unsigned long _arg1, unsigned long _arg2, unsigned long _arg3, unsigned long _arg4, unsigned long _arg5, int _fid, int _eid)
     
    void put_char (const char _c)
     
    int arch (int, char **)
     
    +

    Detailed Description

    +

    arch cpp

    +
    Author
    Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
    +
    Version
    1.0
    +
    Date
    2023-07-15
    + +
    change log:
    + + + + +
    DateAuthorDescription
    2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
    +
    + +

    Definition in file arch.cpp.

    +

    Function Documentation

    + +

    ◆ arch()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    int arch (int ,
    char **  
    )
    +
    + +

    Definition at line 58 of file arch.cpp.

    +
    58  {
    +
    59  put_char('H');
    +
    60  put_char('e');
    +
    61  put_char('l');
    +
    62  put_char('l');
    +
    63  put_char('W');
    +
    64  put_char('o');
    +
    65  put_char('r');
    +
    66  put_char('l');
    +
    67  put_char('d');
    +
    68  put_char('!');
    +
    69 
    +
    70  return 0;
    +
    71 }
    +
    void put_char(const char _c)
    Definition: arch.cpp:53
    +
    +Here is the call graph for this function:
    +
    +
    + + + + + +
    + +
    +
    + +

    ◆ ecall()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    sbiret_t ecall (unsigned long _arg0,
    unsigned long _arg1,
    unsigned long _arg2,
    unsigned long _arg3,
    unsigned long _arg4,
    unsigned long _arg5,
    int _fid,
    int _eid 
    )
    +
    + +

    Definition at line 32 of file arch.cpp.

    +
    34  {
    +
    35  sbiret_t ret;
    +
    36  register uintptr_t a0 asm("a0") = (uintptr_t)(_arg0);
    +
    37  register uintptr_t a1 asm("a1") = (uintptr_t)(_arg1);
    +
    38  register uintptr_t a2 asm("a2") = (uintptr_t)(_arg2);
    +
    39  register uintptr_t a3 asm("a3") = (uintptr_t)(_arg3);
    +
    40  register uintptr_t a4 asm("a4") = (uintptr_t)(_arg4);
    +
    41  register uintptr_t a5 asm("a5") = (uintptr_t)(_arg5);
    +
    42  register uintptr_t a6 asm("a6") = (uintptr_t)(_fid);
    +
    43  register uintptr_t a7 asm("a7") = (uintptr_t)(_eid);
    +
    44  asm("ecall"
    +
    45  : "+r"(a0), "+r"(a1)
    +
    46  : "r"(a2), "r"(a3), "r"(a4), "r"(a5), "r"(a6), "r"(a7)
    +
    47  : "memory");
    +
    48  ret.error = a0;
    +
    49  ret.value = a1;
    +
    50  return ret;
    +
    51 }
    + +
    long value
    返回值
    Definition: arch.cpp:29
    +
    long error
    错误码
    Definition: arch.cpp:27
    +
    +Here is the caller graph for this function:
    +
    +
    + + + + + +
    + +
    +
    + +

    ◆ put_char()

    + +
    +
    + + + + + + + + +
    void put_char (const char _c)
    +
    + +

    Definition at line 53 of file arch.cpp.

    +
    53  {
    +
    54  ecall(_c, 0, 0, 0, 0, 0, 0, SBI_EXT_0_1_CONSOLE_PUTCHAR);
    +
    55  return;
    +
    56 }
    +
    sbiret_t ecall(unsigned long _arg0, unsigned long _arg1, unsigned long _arg2, unsigned long _arg3, unsigned long _arg4, unsigned long _arg5, int _fid, int _eid)
    Definition: arch.cpp:32
    +
    +Here is the call graph for this function:
    +
    +
    + + + + +
    +
    +Here is the caller graph for this function:
    +
    +
    + + + + +
    + +
    +
    +
    +
    + + + + diff --git a/riscv64_2arch_8cpp.js b/riscv64_2arch_8cpp.js new file mode 100644 index 000000000..087db3a87 --- /dev/null +++ b/riscv64_2arch_8cpp.js @@ -0,0 +1,7 @@ +var riscv64_2arch_8cpp = +[ + [ "sbiret_t", "structsbiret__t.html", "structsbiret__t" ], + [ "arch", "riscv64_2arch_8cpp.html#a03bc8720ee66b4d5ef3b10b00d92294f", null ], + [ "ecall", "riscv64_2arch_8cpp.html#ae588de26fa6132129a1743b8df8fc982", null ], + [ "put_char", "riscv64_2arch_8cpp.html#a3743e5195a085e51d92eb812991cce47", null ] +]; \ No newline at end of file diff --git a/riscv64_2arch_8cpp__incl.map b/riscv64_2arch_8cpp__incl.map new file mode 100644 index 000000000..ea2e08a77 --- /dev/null +++ b/riscv64_2arch_8cpp__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/riscv64_2arch_8cpp__incl.md5 b/riscv64_2arch_8cpp__incl.md5 new file mode 100644 index 000000000..1c4288eba --- /dev/null +++ b/riscv64_2arch_8cpp__incl.md5 @@ -0,0 +1 @@ +b3f5c217531f38a578fc981cb9b597bd \ No newline at end of file diff --git a/riscv64_2arch_8cpp__incl.png b/riscv64_2arch_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..8fd60de67b1bf832bc2c9b91a3d48f6bf8688bf5 GIT binary patch literal 7251 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 literal 0 HcmV?d00001 diff --git a/riscv64_2arch_8cpp_a03bc8720ee66b4d5ef3b10b00d92294f_cgraph.map b/riscv64_2arch_8cpp_a03bc8720ee66b4d5ef3b10b00d92294f_cgraph.map new file mode 100644 index 000000000..56e7471a0 --- /dev/null +++ b/riscv64_2arch_8cpp_a03bc8720ee66b4d5ef3b10b00d92294f_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/riscv64_2arch_8cpp_a03bc8720ee66b4d5ef3b10b00d92294f_cgraph.md5 b/riscv64_2arch_8cpp_a03bc8720ee66b4d5ef3b10b00d92294f_cgraph.md5 new file mode 100644 index 000000000..1d4e711d2 --- /dev/null +++ b/riscv64_2arch_8cpp_a03bc8720ee66b4d5ef3b10b00d92294f_cgraph.md5 @@ -0,0 +1 @@ +d73635b169c8973d53c22d27233cf8c2 \ No newline at end of file diff --git a/riscv64_2arch_8cpp_a03bc8720ee66b4d5ef3b10b00d92294f_cgraph.png b/riscv64_2arch_8cpp_a03bc8720ee66b4d5ef3b10b00d92294f_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..9e46bcec200bb44b33d841e931797c74d5318565 GIT binary patch literal 2531 zcmY*bc{J307yl(?n#U5OjEOOJ88Q^gqtJ|I2HCO$7^GB z+ptOwIYoRYR#XfjMX30ak{T2$N^^A(<)6jNK|rQIOLt>MFlBZJkwON%&|_M>ZPF4I zZ%`S+@}4b(V@F@f%*k9b@SLBJs^TTK*@hb%-C3eO3&EUCjjHMw;TKx5z?;}B(g(hf8GqHyf#;My!{9B*hIs= z3sG)3A|fjy!bw$CK&@PLXLG!P&Nf#<;JVfgQ&UrwPyV_~Bt|wh`8mI6ELV%|$%9Eg zy`|(M5gQ**rBXMSm#4hxW98(OMoAbFnU$V?0tRb$uS$RZTtQJ$joife=H1xXc>46| z$>xyw`zMgdnHB$_%_RXr!KR?ivR*C2>x1(*iH?p`66y08IXgN=`Hsh2A|cO6C920Q z>zq$#M~5LEAKBqjQ&V$oab{*FE-sE$O^}mGB$ShzFZeGz-?%ZGD2pe^4fB}2nS2`n zla%ap#{67gmz9;BYz&I5(R;8p*xruC!l6xjIt_wRQ-mV8}Yyt2GZ zAQFY4;q&wJ`T6;yqobQYCcCzoV`F$6&dSCnFd!g5FRz3l#(Fm`E^4T#sApwM4Ud@7 zNDJBL?!5Y)x}9?3wx6G$w|6B$4hn_3RIy!MUDwuC(CDf+Z`72O^eudsNC(oUrl!CS zkBp8A^7FIC$F;S!T^9`v4Z*BnOQfZxTU%R68Je1!N-;4V)4jdDZEbDC!0v`%9gD%> z2U@;(xt%`D%gbW10AOQrJS8P%b72IH#kLQ8gy=?hoCY3E1_#-aSkF^7rC_kky&cJd z0wt?g{wJ%X^nxe)`UHTZVq&%=63N>7n6Pk;F9wUnj*N_4%<=l#83zEr3_;lZuA{>P zm}Z>4x4~iG7|6Po#s_$Kc(B-PupQR6wo*F25Q;81LNI^wW8C?7E=K@oujOw-dS~3P zfBIOzZpP(qKq}q8&~Y*r*485*3e9ewK>#ROSuB~{Tv&*=wWT(3LIW!EM0%MdV`F0? zv1fT18Jc~EIeWG!Cx>?JkFexk4YPd90{}QC z;89FW3<$TTrVE@r4-jCLT;J{Ca=(Ps)Qwd5M3;V2PmJ0_3(<}ZUq{DwM@Q`UvB=q3 zy$Sl7W?VsG#ePc*0O;4ow(<)KE-Wl4Gd}a!Sw>$UV{L8udwZ|aeP&52$CHg31J(+5 z=`TG!)1#xKt(21|(}N4vzbnFE`vp%7`)21qtmNe_9MUmYa-)&joZ)>8T@8)r_SG#d z`^|SvLPDD30eJF@qcH*8_s?-uJDx-~N7# z&1N@Hf4I{~=gyszN$egN5CU4$~zB&}pCDCfhx zgy8JlP%ap722uL)mT0uAo?b(XKA+B~N4S^*OR?=w!}GpUQrQ(16%2-nkI!0GRu+@V1X(Mb zT~$+KZSicTh7*JY>q$&Z?CI(8)Y|DyMwgY9t*x672+kNdjYe}g^`^Xhpuc}q_*~1yin4>K7~rP^sda#%^jKc>5YzxA`l2KhCHhdu)_{%8N{^tMh;VOx4NB$;QSeGc$8(X=!a8gearC8`KC; z{dAFL!G>t5@Qa6m)aMJAF4ga^8b6>=cBzvOjSJDNbhMR~m7A+;)r|q9tLxXIqN0il z45!WQ&IU6<{>g4!8oT}b@id{ZpaTR5gggld|D_=}p=Vm;$ibKgoyLAql@3b7i zlgZCYOT&H>SbvvWO>Y+1;@^geLfL(NIw<$>L3>4(+z>%X=uB_!aG z%4sM2D~J+Wyow5c@SY|SA8F)^a`y5{Xmw`X;ujEb?2s+p-CK;8VAGZHBQ1y>k3PiZ zky90~UmMfKK{BwN$qm?rBW}SYd7P$Fo&Q(u|Iz)FuplJ(?3R$LFv#?*597&LIg#X) z6qsa(*e&_}gLa98Gdm%AFTJ-OTrdb#J%vI6j_N!-JW>6T_A9?0yu88{9_k@YluRnm o3kjd$-MiQN|6huKl8o&G5~V)`S7ix{;I9oJ8k*wDE;@((3oskq7XSbN literal 0 HcmV?d00001 diff --git a/riscv64_2arch_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.map b/riscv64_2arch_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.map new file mode 100644 index 000000000..572eaf99a --- /dev/null +++ b/riscv64_2arch_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/riscv64_2arch_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.md5 b/riscv64_2arch_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.md5 new file mode 100644 index 000000000..ef805543c --- /dev/null +++ b/riscv64_2arch_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.md5 @@ -0,0 +1 @@ +324c1b79377d55c73d7440880f096ab3 \ No newline at end of file diff --git a/riscv64_2arch_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.png b/riscv64_2arch_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..1fe1a48a050aee9a5139896639f40dc8b658e633 GIT binary patch literal 2082 zcmV+-2;KLIP)$JP zJ!)oCqt5!gTl38GJpZ-)vDPy)%Ox5a85uz!usu4lwJQ(^tVIaFz-9^I7uYNz`~sV0 z_vaUCYilVgDzZi`vqD5f1ZuU~+GR{hQBe`KwYAnRP&a)Ya9E*=830Q8_s|->aTkYc?FS@bK_4 z&yq7$d3ia>$;o5332T0V%@V>duvtR*1vYEeg+DDVjT<*^Si1~?1%!u(Q&Lhg?)JBu zb>SBXCTm)RKO-Z9s;Vk$moaO+e*J+RJBleU{}0{W{njpL+L{*O7g(0jID%gPn7w=d zMR4#zcJ2BHzy0=*fq@}wmo}|fB>ZV{)Tux6<4_d93=H_OO9Xp0xE@$`d-Cvxqudk1jCr_eMsfdY*p|G%!{{H`;;aXc; zQLEKNM@N&Al0toby{RobI~%!N&ZbS9P^na$J$sf<@9G}im%V%U5)~E2?c2A%_3&8H z2tz|gZry4kJ^h~q2mhU4ektX~jYb9shb=NgPfrh7Sy?Pvv+qE{kT7JeXYvMO0-%nOP4O? z^5x6y-@l)8=g#5k>N;V+Lx&F0-ri1JTpU}rY?;(td3kwscXxC2=uxCnDSEx02M-<) z5fK4Eb#*lwjRu)ahEAs=FE5Xa7cU|biOA2-2f%1F($dm`Mx(*U$A`$sNYnV&uU|*2 z)v|2aGQ{GUe{mcQdSBllm6Z>;c=5kDJ3F#vO9+XHVXRvhh)5)w(%3t9?xerJAH80W zR4PTQ)e;vMM}2)gVzHQ%loZ~+eap3L*YNT2p}f4DnwlDvN+nmXUIk!yc$kL|ACi=m zgulN(J9g}_*uGE1V&RXCjb+uURRE||DyplixpU_ZN~O|LQvlG_)y2Jg_b4qb#n;yt zz-*3$gam?uf&kdIZ5yXgpXSY*H@LgIo8BW9iwO)2BtAZ#yLaz?7XG-nID&(NEn4?< zF*IZZpr@yw%aPfmTwJKEtmMg)CjLTlHqo#NhnJ&T3Eqoc!Ydvr$}9UV>K19<=b{b%p}nx%!8mlsB(kyo!? zjd{=~^6uR`a&vRhXf&)|y_z|5=5XP{1+#ViRF?n%zP{ZYIr7&j_qT+1?|M0Kpkh+* zwX+j5G-Slr*A21w1@7*BlL|h-qD6}ki^X(xbs?2X&DvkSe97?eFfA=DrZfMj*RNlr zQmLq@s30;j5@%;;PMkPFSy|bn=C%ZjuKB~l!Uzlu2`KtKRhRaLB9 zxsu-AUW$v0KkK_-!2+H>eai6gFcOJm!g)MBJ&A~jprD`twOWn4yE`>CHAtmW)0%%g z0|Nt$jEvyqR!_UtTrBcbRUArhQ zE;gf_2Mh3aLxkN=paq845Hf-21wH=;e?Cm9p#Ukd;bs#o&6~F%a7aAM$C@4tc z=b!zje6>4s<_tkWL2TW+6;Dr3GBYztO-(f|H%m)PS+QaT3WWlHe}5Vp8j#E7EMB~r zf`S56Di!nR&qu9R6CWRM$zA>;(Vw5*FnSAUO-;?D2T4myBRM&l&6_t{yug_xCnpCF z4-c!~65P@8o;7PUh(sbpBCxZQpiqRceft{Z@@3fDk9~DbOiTpE{>P7*YBbMde1)pB z*s@13z1Z1FSie4y?c0Asp$Ngr$ + + + diff --git a/riscv64_2arch_8cpp_a3743e5195a085e51d92eb812991cce47_icgraph.md5 b/riscv64_2arch_8cpp_a3743e5195a085e51d92eb812991cce47_icgraph.md5 new file mode 100644 index 000000000..aabad590e --- /dev/null +++ b/riscv64_2arch_8cpp_a3743e5195a085e51d92eb812991cce47_icgraph.md5 @@ -0,0 +1 @@ +fd5925e2302d4226baef254d7034f15a \ No newline at end of file diff --git a/riscv64_2arch_8cpp_a3743e5195a085e51d92eb812991cce47_icgraph.png b/riscv64_2arch_8cpp_a3743e5195a085e51d92eb812991cce47_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..86df6013afb3d158d82507bb8df5e6f5b24c0a6c GIT binary patch literal 1918 zcmV-^2Z8vBP)#xK4@i}j}?|aVS+;b^DpASGFWI#eK0P^<(ng&7|Xc`D&G!W82(?CcAO#>lKuua3~^IKb6gWT!=JaW1G;lqbP>kf`I5Yj-?d_k}8 zt*$m&t#+?BG!JnV3PopUXGppx#TA`~s%l1{40~(DA0GOEgsMGx+5?$D~?Tkiq+io8ZESg*{*XeY} zjvXs1Dypccc>er3o{yqve}6xocDYsHnWW{OQxDcxFvajZi4e&(Fs&Ot04yR|*$){P^+0 z!otUoACvuFfs8b_Z{G$0cs!nG&z_Z)m8GPl96EFeFS>N;Qb$KeUS1xRN-ZfVdGqGY zojZ3p9FDgwvNSFgs!#m!ms^y$;DUcHh?B>VU8 zUm&1HqxtaR!?|h$z<1R*_e1iq%BQmI*4Sx1i^HJMCA=8+>ucI?UcY{gVOV>6dqF_~olb9RYHDk1 zBT9*hCOJ9TJU7bp$ z%FfP?j*jl=={ck3Mq@*OVSbX^K;g*&b zd`**>m`Kb}0T2^2TU^W!xcO2T8v1Ka(?modv$I|q zIXO9LX=%4^-Ez5HyLRmY0Hmg-c6N4d-MV#haZ+IXF0IG#Z&qatpHgAU&leCnwj} z*JBvQU@(+QWoc>Yd^KBJTQf5=MIup3N=ko!|Mw3|!<@)SDgc1XWmQ$}>*+bw-CgtB zZv|`CFh~U{E-u#TbW*AG(W6INtrnj|6bi+=ckiT9X-!Sd?%lhI${2<{dGbUg5-srW zskXM3%jKRpaRS3Io6VM$l{H^YHk++bDC+9!3JVJ_Uc9(x&mL0B7l7jbHiE%mkjZ3W z_ + + + + diff --git a/riscv64_2arch_8cpp_ae588de26fa6132129a1743b8df8fc982_icgraph.md5 b/riscv64_2arch_8cpp_ae588de26fa6132129a1743b8df8fc982_icgraph.md5 new file mode 100644 index 000000000..9a8f9c15e --- /dev/null +++ b/riscv64_2arch_8cpp_ae588de26fa6132129a1743b8df8fc982_icgraph.md5 @@ -0,0 +1 @@ +576d8458c0ec170027decc114100571b \ No newline at end of file diff --git a/riscv64_2arch_8cpp_ae588de26fa6132129a1743b8df8fc982_icgraph.png b/riscv64_2arch_8cpp_ae588de26fa6132129a1743b8df8fc982_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..2adace680ee3eba1bfb874c3f80f0bd848caa0f6 GIT binary patch literal 2425 zcmV-<35NEGP)|s*sQndke7za=Bb25;=~?yU=B$LT(BE}3H@YWR)65@b?A_4?K>@8tBB9SN}BEsG(X6D$j zW7Bfrcnks|7U(eugjk@*AP{1)wa0ioUTtlyjZgZ?1EWd=X=!N+h2rD1xxnWb1VSv( zWACY{xu2CKQ!3R4gMHRX2L=Y7KY!jXr?xx$_Endc-yRrvZf_yhXNI}^&z8~Av6>oX zP0f8e-9;n{jE`TtW{tPKMSU*(@rUM@U)qX_u7CaYmx+mi7{+5Tme^aAb+F_)hG7_j zASjA*IGi7U{BiQ@7#@$8o0}UE5wT>+lKT4kSFc`WWMptSoTW>brlh32dGp4&+rx(s zqoSf{G}`Lbt8d=CX|<|YgGGx-0Dx!D{&V*1ZyPtBSiAOELBTb(T5DNpJRUD6Cnqc{ zj7FpJ`TTqL?iusFy}fVWzHLlvG#Ug!Mn^}tZQIt`+PZu9ZUjN*c)M*@R84Ft%W6je zIF92T9Ro*>T;=hOVpv&it@72Yw-yvMK0aPvUM?1kF$~Mj&K@2fHs+6wjg^;|OC%DZ zPjn%*QvgA2-?bs_#)9dHk)o%ITaNZmoH!D^Z94aoQa8v>FMd2 zZGl34eSJ?)PkMU#u3fw4C@?80$@Hk2*ivTIh-h#e*XwZrKznXWo53et`{y`IDGhUWo0FTAO!^luV23|Dk`GW=`AfS4<0-a z2n2U^*Z1_~$y)+J z!RF1SXV3mNF=6U;nVOm!5fMS7(Xz6#yu7@wT)DCkF_uMj?v`4J9zxOUalPK4)9LTt z?LKheA6#zk-o58<-Rhk8q8%9-xqJ8Sp+kq5OeU2|O-)UG{P=NiZ?9IXy?_6HR#w*X z<;z`MTrdoqxhE8r`v)RT(Utb@I zL|U<8#m9%cySp0`6bc0ZFg`wR%1JdE8jE$n0<~u0>^yToa2(g^Z~#DCTmORx{RrYo zr@tK@e(B-iI(LD-zP?k_8jWTl^308@DJ^9RKm4Hj{(EBAK)bn7XWKL}p$7oGd#6(< z+7*g+50AgMwf#3d97oZayFX8!JOKbqTXs7%H00vqf}$vk#hSK%OH0eeix&q528>-t zKR>?()@2%Idu(`kSR#?gBNGRl;KAq|B zzh^ds0RTKbJrM-Cdi5%eMw^_lS663eXO&7-T3X6vGC$sp&1Pd5wr9_t%F0UP$brdZPIhc8 zfJ)T~g*=N7H-)~wr!#ttOh$D&1Bc@-kpyksy3WIcX8IcCii(O28#eIy{L0EojYbn6 z9}fWF@px5LRbgRaFJHdQ%F3GDnaN~!bad!+Ix>0Yb}=ieCbpC*`1{j|4t{a*^^Y@2 zB-CKQ$zK^*I(2H( zrcF*xP5^-1+*}TalbM+*kx06`y8{9OJUu;AQd08s^J8LSPMP(%fY-nf@ zi^UH3PgTa}2GQS=l$YNwF20VU=){Dc!B`>|2gS$pzxrx=_uX_oJRa}h!Gk+?>>xz0 ztw0du(xpp@iHU@sB`oYGwR(h1M)i7}&tEPQtrH6Umo8mAqn@Kjk2>a_vi zL4N>^Mv05#$Hnmj1AQFujlw4knM_)}+A}dRC^j~L#d5Q^9BTqS_MUCqg7@u$#~=`5fgXcEhy{8K0wIp)ZZsN=x3^<`%B9h0957Iy37wst_LeX! zBO@czKCPI+V`8z`R(j09(f(OgrBXR&pgsrWa=BbCx3`K};c~fCe + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/arch/riscv64/arch.cpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    arch.cpp
    +
    +
    +Go to the documentation of this file.
    1 
    +
    17 #ifdef __cplusplus
    +
    18 extern "C" {
    +
    19 #endif
    +
    20 
    +
    21 #include "cstdint"
    +
    22 
    +
    23 #include "sbi/sbi_ecall_interface.h"
    +
    24 
    +
    25 struct sbiret_t {
    +
    27  long error;
    +
    29  long value;
    +
    30 };
    +
    31 
    +
    32 sbiret_t ecall(unsigned long _arg0, unsigned long _arg1, unsigned long _arg2,
    +
    33  unsigned long _arg3, unsigned long _arg4, unsigned long _arg5,
    +
    34  int _fid, int _eid) {
    +
    35  sbiret_t ret;
    +
    36  register uintptr_t a0 asm("a0") = (uintptr_t)(_arg0);
    +
    37  register uintptr_t a1 asm("a1") = (uintptr_t)(_arg1);
    +
    38  register uintptr_t a2 asm("a2") = (uintptr_t)(_arg2);
    +
    39  register uintptr_t a3 asm("a3") = (uintptr_t)(_arg3);
    +
    40  register uintptr_t a4 asm("a4") = (uintptr_t)(_arg4);
    +
    41  register uintptr_t a5 asm("a5") = (uintptr_t)(_arg5);
    +
    42  register uintptr_t a6 asm("a6") = (uintptr_t)(_fid);
    +
    43  register uintptr_t a7 asm("a7") = (uintptr_t)(_eid);
    +
    44  asm("ecall"
    +
    45  : "+r"(a0), "+r"(a1)
    +
    46  : "r"(a2), "r"(a3), "r"(a4), "r"(a5), "r"(a6), "r"(a7)
    +
    47  : "memory");
    +
    48  ret.error = a0;
    +
    49  ret.value = a1;
    +
    50  return ret;
    +
    51 }
    +
    52 
    +
    53 void put_char(const char _c) {
    +
    54  ecall(_c, 0, 0, 0, 0, 0, 0, SBI_EXT_0_1_CONSOLE_PUTCHAR);
    +
    55  return;
    +
    56 }
    +
    57 
    +
    58 int arch(int, char **) {
    +
    59  put_char('H');
    +
    60  put_char('e');
    +
    61  put_char('l');
    +
    62  put_char('l');
    +
    63  put_char('W');
    +
    64  put_char('o');
    +
    65  put_char('r');
    +
    66  put_char('l');
    +
    67  put_char('d');
    +
    68  put_char('!');
    +
    69 
    +
    70  return 0;
    +
    71 }
    +
    72 
    +
    73 #ifdef __cplusplus
    +
    74 }
    +
    75 #endif
    +
    int32_t arch(uint32_t _argc, uint8_t **_argv)
    Definition: arch.cpp:19
    +
    void put_char(const char _c)
    Definition: arch.cpp:53
    +
    sbiret_t ecall(unsigned long _arg0, unsigned long _arg1, unsigned long _arg2, unsigned long _arg3, unsigned long _arg4, unsigned long _arg5, int _fid, int _eid)
    Definition: arch.cpp:32
    + +
    long value
    返回值
    Definition: arch.cpp:29
    +
    long error
    错误码
    Definition: arch.cpp:27
    +
    +
    + + + + diff --git a/search/all_0.html b/search/all_0.html new file mode 100644 index 000000000..1ec5b2d59 --- /dev/null +++ b/search/all_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_0.js b/search/all_0.js new file mode 100644 index 000000000..d7425f6cb --- /dev/null +++ b/search/all_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['0_5f工具链_2emd_0',['0_工具链.md',['../0___xE5_xB7_xA5_xE5_x85_xB7_xE9_x93_xBE_8md.html',1,'']]] +]; diff --git a/search/all_1.html b/search/all_1.html new file mode 100644 index 000000000..9f80e9043 --- /dev/null +++ b/search/all_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_1.js b/search/all_1.js new file mode 100644 index 000000000..88b8610fa --- /dev/null +++ b/search/all_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['1_5f系统启动_2emd_1',['1_系统启动.md',['../1___xE7_xB3_xBB_xE7_xBB_x9F_xE5_x90_xAF_xE5_x8A_xA8_8md.html',1,'']]] +]; diff --git a/search/all_10.html b/search/all_10.html new file mode 100644 index 000000000..3bf11961f --- /dev/null +++ b/search/all_10.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_10.js b/search/all_10.js new file mode 100644 index 000000000..faf4843f7 --- /dev/null +++ b/search/all_10.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['phdr_73',['phdr',['../classElf.html#a4a9108833faee1fb3608716720636eb1',1,'Elf']]], + ['print_5fehdr_74',['print_ehdr',['../classElf.html#a34d57d143f7782f3c630f6ddb1f16948',1,'Elf']]], + ['print_5finfo_75',['print_info',['../classGraphics.html#ad860b4ad2f72a6332cb4a850839ff5e5',1,'Graphics::print_info()'],['../classMemory.html#a81aabf1a13f96ce935d6157a9520b83a',1,'Memory::print_info()']]], + ['print_5fphdr_76',['print_phdr',['../classElf.html#aff0728535c76009acc8d78cbece772fe',1,'Elf']]], + ['print_5fshdr_77',['print_shdr',['../classElf.html#a25345e29535844c992d1a45bf12e2e57',1,'Elf']]], + ['project_5fconfig_2eh_78',['project_config.h',['../project__config_8h.html',1,'']]], + ['put_5fchar_79',['put_char',['../riscv64_2arch_8cpp.html#a3743e5195a085e51d92eb812991cce47',1,'put_char(const char _c): arch.cpp'],['../test_2system__test_2opensbi__test_2boot_8cpp.html#a3743e5195a085e51d92eb812991cce47',1,'put_char(const char _c): boot.cpp']]] +]; diff --git a/search/all_11.html b/search/all_11.html new file mode 100644 index 000000000..c9f79d289 --- /dev/null +++ b/search/all_11.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_11.js b/search/all_11.js new file mode 100644 index 000000000..516a44104 --- /dev/null +++ b/search/all_11.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['readme_80',['README',['../md__home_runner_work_SimpleKernel_SimpleKernel_README.html',1,'']]], + ['readme_2emd_81',['README.md',['../README_8md.html',1,'(Global Namespace)'],['../test_2system__test_2gnu__efi__test_2README_8md.html',1,'(Global Namespace)']]], + ['root_5ffile_5fsystem_82',['root_file_system',['../classElf.html#a2401458a0b098dcccfa120bb64c12afd',1,'Elf']]] +]; diff --git a/search/all_12.html b/search/all_12.html new file mode 100644 index 000000000..ab934722c --- /dev/null +++ b/search/all_12.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_12.js b/search/all_12.js new file mode 100644 index 000000000..0d94870fc --- /dev/null +++ b/search/all_12.js @@ -0,0 +1,10 @@ +var searchData= +[ + ['sbiret_5ft_83',['sbiret_t',['../structsbiret__t.html',1,'']]], + ['section_5fbuf_5fsize_84',['SECTION_BUF_SIZE',['../classElf.html#aead66f632e243546cc5cef1a654b404e',1,'Elf']]], + ['set_5fmode_85',['set_mode',['../classGraphics.html#a04e4caa540b0612a56adc590971715b6',1,'Graphics']]], + ['shdr_86',['shdr',['../classElf.html#a6a780ca4b86b353ef42ac64f9d64c845',1,'Elf']]], + ['shstrtab_5fbuf_87',['shstrtab_buf',['../classElf.html#a87eb8da130b534167a0e4a0047d78d18',1,'Elf']]], + ['simplekernel_20启动_88',['SimpleKernel 启动',['../md_1__xE7_xB3_xBB_xE7_xBB_x9F_xE5_x90_xAF_xE5_x8A_xA8.html',1,'']]], + ['simplekernel_20工具链_89',['SimpleKernel 工具链',['../md_0__xE5_xB7_xA5_xE5_x85_xB7_xE9_x93_xBE.html',1,'']]] +]; diff --git a/search/all_13.html b/search/all_13.html new file mode 100644 index 000000000..51172c2f3 --- /dev/null +++ b/search/all_13.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_13.js b/search/all_13.js new file mode 100644 index 000000000..515b75346 --- /dev/null +++ b/search/all_13.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['test_90',['TEST',['../integration__test_2example_8cpp.html#ab52dc74bff6a4efe73d9412400be38d9',1,'TEST(example, test_group1): example.cpp'],['../unit__test_2example_8cpp.html#ab52dc74bff6a4efe73d9412400be38d9',1,'TEST(example, test_group1): example.cpp']]] +]; diff --git a/search/all_14.html b/search/all_14.html new file mode 100644 index 000000000..afecf5634 --- /dev/null +++ b/search/all_14.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_14.js b/search/all_14.js new file mode 100644 index 000000000..b62dfbcf8 --- /dev/null +++ b/search/all_14.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['value_91',['value',['../structsbiret__t.html#a78449f5d7934aa1a6cd54351b16cc00d',1,'sbiret_t']]] +]; diff --git a/search/all_15.html b/search/all_15.html new file mode 100644 index 000000000..69f382b31 --- /dev/null +++ b/search/all_15.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_15.js b/search/all_15.js new file mode 100644 index 000000000..c50b8a0e3 --- /dev/null +++ b/search/all_15.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['wait_5ffor_5finput_92',['wait_for_input',['../ostream_8hpp.html#a27887edc523c98e888002e7756434ef9',1,'wait_for_input(EFI_INPUT_KEY *_key) -> EFI_STATUS: ostream.cpp'],['../ostream_8cpp.html#a27887edc523c98e888002e7756434ef9',1,'wait_for_input(EFI_INPUT_KEY *_key) -> EFI_STATUS: ostream.cpp']]] +]; diff --git a/search/all_16.html b/search/all_16.html new file mode 100644 index 000000000..b19867ad9 --- /dev/null +++ b/search/all_16.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_16.js b/search/all_16.js new file mode 100644 index 000000000..ab1640d44 --- /dev/null +++ b/search/all_16.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['x_93',['X',['../classostream.html#a2f1697fb486d2afcde8e8a5b7f6608f6a53178dc78826d4f620fd4cf2dbe52284',1,'ostream']]], + ['x_94',['x',['../classostream.html#a2f1697fb486d2afcde8e8a5b7f6608f6abe6defa90d521b92be9e4b072c89dbf7',1,'ostream']]] +]; diff --git a/search/all_17.html b/search/all_17.html new file mode 100644 index 000000000..1ad5d34b4 --- /dev/null +++ b/search/all_17.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_17.js b/search/all_17.js new file mode 100644 index 000000000..2b161bb26 --- /dev/null +++ b/search/all_17.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['_7eelf_95',['~Elf',['../classElf.html#a184a984a3da808368593a45f06005bd3',1,'Elf']]], + ['_7egraphics_96',['~Graphics',['../classGraphics.html#a6832d01237ef9bff8d34f0882d86970c',1,'Graphics']]], + ['_7ememory_97',['~Memory',['../classMemory.html#a2b517b46ae4b070d9f6a7b6d9efeb7a1',1,'Memory']]], + ['_7eostream_98',['~ostream',['../classostream.html#a36fe66b87e7d9f5bca462383b1b347a3',1,'ostream']]] +]; diff --git a/search/all_18.html b/search/all_18.html new file mode 100644 index 000000000..507d0f856 --- /dev/null +++ b/search/all_18.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_18.js b/search/all_18.js new file mode 100644 index 000000000..53c1caa71 --- /dev/null +++ b/search/all_18.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['构建_20docker_20并通过_20ssh_20使用_99',['构建 Docker 并通过 ssh 使用',['../md_docker.html',1,'']]] +]; diff --git a/search/all_2.html b/search/all_2.html new file mode 100644 index 000000000..02cfffc2e --- /dev/null +++ b/search/all_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_2.js b/search/all_2.js new file mode 100644 index 000000000..93ad15905 --- /dev/null +++ b/search/all_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_5fstart_2',['_start',['../test_2system__test_2gnu__efi__test_2main_8cpp.html#a078e7d7a89207ea1c3575850e0fff462',1,'main.cpp']]] +]; diff --git a/search/all_3.html b/search/all_3.html new file mode 100644 index 000000000..39767b85b --- /dev/null +++ b/search/all_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_3.js b/search/all_3.js new file mode 100644 index 000000000..aadcc1cc4 --- /dev/null +++ b/search/all_3.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['arch_3',['arch',['../aarch64_2arch_8cpp.html#a6e72ac01cbd693797621b4ee1d02c9e5',1,'arch(uint32_t _argc, uint8_t **_argv): arch.cpp'],['../arch_8cpp.html#a6e72ac01cbd693797621b4ee1d02c9e5',1,'arch(uint32_t _argc, uint8_t **_argv): arch.cpp'],['../arch_8h.html#a6e72ac01cbd693797621b4ee1d02c9e5',1,'arch(uint32_t _argc, uint8_t **_argv): arch.cpp'],['../riscv64_2arch_8cpp.html#a03bc8720ee66b4d5ef3b10b00d92294f',1,'arch(int, char **): arch.cpp'],['../x86__64_2arch_8cpp.html#a6e72ac01cbd693797621b4ee1d02c9e5',1,'arch(uint32_t _argc, uint8_t **_argv): arch.cpp']]], + ['arch_2ecpp_4',['arch.cpp',['../aarch64_2arch_8cpp.html',1,'(Global Namespace)'],['../arch_8cpp.html',1,'(Global Namespace)'],['../riscv64_2arch_8cpp.html',1,'(Global Namespace)'],['../x86__64_2arch_8cpp.html',1,'(Global Namespace)']]], + ['arch_2eh_5',['arch.h',['../arch_8h.html',1,'']]] +]; diff --git a/search/all_4.html b/search/all_4.html new file mode 100644 index 000000000..fc40463c8 --- /dev/null +++ b/search/all_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_4.js b/search/all_4.js new file mode 100644 index 000000000..9b88bb76b --- /dev/null +++ b/search/all_4.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['boot_2ecpp_6',['boot.cpp',['../src_2boot_2boot_8cpp.html',1,'(Global Namespace)'],['../test_2system__test_2gnu__efi__test_2boot_8cpp.html',1,'(Global Namespace)'],['../test_2system__test_2opensbi__test_2boot_8cpp.html',1,'(Global Namespace)']]], + ['boot_2eh_7',['boot.h',['../boot_8h.html',1,'']]] +]; diff --git a/search/all_5.html b/search/all_5.html new file mode 100644 index 000000000..9dd9344b0 --- /dev/null +++ b/search/all_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_5.js b/search/all_5.js new file mode 100644 index 000000000..cb7235269 --- /dev/null +++ b/search/all_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['check_5felf_5fidentity_8',['check_elf_identity',['../classElf.html#a0eb12fc4d607d5c2ba473a3882a50276',1,'Elf']]], + ['clion_20使用说明_2emd_9',['Clion 使用说明.md',['../Clion_01_xE4_xBD_xBF_xE7_x94_xA8_xE8_xAF_xB4_xE6_x98_x8E_8md.html',1,'']]], + ['clion_20配置及使用_10',['CLion 配置及使用',['../md__home_runner_work_SimpleKernel_SimpleKernel_tools_Clion__xE4_xBD_xBF_xE7_x94_xA8_xE8_xAF_xB4_xE6_x98_x8E.html',1,'']]] +]; diff --git a/search/all_6.html b/search/all_6.html new file mode 100644 index 000000000..f1e516d75 --- /dev/null +++ b/search/all_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_6.js b/search/all_6.js new file mode 100644 index 000000000..20f429985 --- /dev/null +++ b/search/all_6.js @@ -0,0 +1,14 @@ +var searchData= +[ + ['d_11',['d',['../classostream.html#a2f1697fb486d2afcde8e8a5b7f6608f6a16426222a71c446926e9ee5aef5ef53a',1,'ostream']]], + ['debug_12',['debug',['../ostream_8hpp.html#a48c0732d1726c996d7fad294439777fc',1,'ostream.hpp']]], + ['default_5fheight_13',['DEFAULT_HEIGHT',['../classGraphics.html#a036aee49398070f73600101bac34a29f',1,'Graphics']]], + ['default_5fwidth_14',['DEFAULT_WIDTH',['../classGraphics.html#ad960ad754a9ee99b9cdae1bcebd6804b',1,'Graphics']]], + ['desc_5fcount_15',['desc_count',['../classMemory.html#a0a3d91c1e74ac3776a8992e17c73b33c',1,'Memory']]], + ['desc_5fsize_16',['desc_size',['../classMemory.html#aa9e9794c5b03c7a5c7900c273b17c065',1,'Memory']]], + ['desc_5fversion_17',['desc_version',['../classMemory.html#a78b8170be31c2b6f3717a4cffb27244e',1,'Memory']]], + ['docker_2emd_18',['docker.md',['../docker_8md.html',1,'']]], + ['driver_19',['driver',['../driver_8cpp.html#a06475316d2443b94d393c59426f08649',1,'driver(uint32_t _argc, uint8_t **_argv): driver.cpp'],['../driver_8h.html#a06475316d2443b94d393c59426f08649',1,'driver(uint32_t _argc, uint8_t **_argv): driver.cpp']]], + ['driver_2ecpp_20',['driver.cpp',['../driver_8cpp.html',1,'']]], + ['driver_2eh_21',['driver.h',['../driver_8h.html',1,'']]] +]; diff --git a/search/all_7.html b/search/all_7.html new file mode 100644 index 000000000..8ddbf6c8e --- /dev/null +++ b/search/all_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_7.js b/search/all_7.js new file mode 100644 index 000000000..bd744a72b --- /dev/null +++ b/search/all_7.js @@ -0,0 +1,13 @@ +var searchData= +[ + ['ecall_22',['ecall',['../riscv64_2arch_8cpp.html#ae588de26fa6132129a1743b8df8fc982',1,'ecall(unsigned long _arg0, unsigned long _arg1, unsigned long _arg2, unsigned long _arg3, unsigned long _arg4, unsigned long _arg5, int _fid, int _eid): arch.cpp'],['../test_2system__test_2opensbi__test_2boot_8cpp.html#ae588de26fa6132129a1743b8df8fc982',1,'ecall(unsigned long _arg0, unsigned long _arg1, unsigned long _arg2, unsigned long _arg3, unsigned long _arg4, unsigned long _arg5, int _fid, int _eid): boot.cpp']]], + ['efi_5fmain_23',['efi_main',['../src_2boot_2boot_8cpp.html#a888070898d2d56fa4c1654a3c8409719',1,'efi_main(EFI_HANDLE _image_handle, [[maybe_unused]] EFI_SYSTEM_TABLE *_system_table): boot.cpp'],['../test_2system__test_2gnu__efi__test_2boot_8cpp.html#a888070898d2d56fa4c1654a3c8409719',1,'efi_main(EFI_HANDLE _image_handle, [[maybe_unused]] EFI_SYSTEM_TABLE *_system_table): boot.cpp']]], + ['ehdr_24',['ehdr',['../classElf.html#aa938244c41792cd337c27e7989496900',1,'Elf']]], + ['elf_25',['Elf',['../classElf.html',1,'Elf'],['../classElf.html#a004d82ec887bbe8da9588c9c88041c07',1,'Elf::Elf(wchar_t *_kernel_image_filename)'],['../classElf.html#a47b294082f1ed9196c086aed53704c96',1,'Elf::Elf(const Elf &)=delete'],['../classElf.html#a5eccc90005cd47ce0d7e34db5a5159ef',1,'Elf::Elf(Elf &&)=delete']]], + ['elf_26',['elf',['../classElf.html#a8cdfe3309959985aa774604b6ec9da86',1,'Elf']]], + ['elf_5ffile_5fbuffer_27',['elf_file_buffer',['../classElf.html#a656cc0c33708cae16ff34547eb8f8c85',1,'Elf']]], + ['elf_5ffile_5fsize_28',['elf_file_size',['../classElf.html#a24d94ce5a17e48b96ae4e82de062e7e4',1,'Elf']]], + ['endl_29',['endl',['../classostream.html#a271664830d4cda9da6c7c0b4c04a8ed2',1,'ostream']]], + ['error_30',['error',['../structsbiret__t.html#a907730633f8936f3e11a4a10aa8a8442',1,'sbiret_t']]], + ['example_2ecpp_31',['example.cpp',['../integration__test_2example_8cpp.html',1,'(Global Namespace)'],['../unit__test_2example_8cpp.html',1,'(Global Namespace)']]] +]; diff --git a/search/all_8.html b/search/all_8.html new file mode 100644 index 000000000..83c55ae22 --- /dev/null +++ b/search/all_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_8.js b/search/all_8.js new file mode 100644 index 000000000..327902ccc --- /dev/null +++ b/search/all_8.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['file_32',['file',['../classElf.html#adf9ed3472f22d8d149e627394ea442ea',1,'Elf']]], + ['file_5fsystem_5fprotocol_33',['file_system_protocol',['../classElf.html#a0f7dcccb310a1b259b0dc72f292a8629',1,'Elf']]], + ['flush_5fdesc_34',['flush_desc',['../classMemory.html#a0d7799e95e8dda035f91d14e2febcfcd',1,'Memory']]] +]; diff --git a/search/all_9.html b/search/all_9.html new file mode 100644 index 000000000..1e263c134 --- /dev/null +++ b/search/all_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_9.js b/search/all_9.js new file mode 100644 index 000000000..ec21db019 --- /dev/null +++ b/search/all_9.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['get_5fehdr_35',['get_ehdr',['../classElf.html#aea825c7f4d213298f8a60b961c27cd6e',1,'Elf']]], + ['get_5ffile_5fsize_36',['get_file_size',['../classElf.html#a23bfd5acab462921c7e0f8b958fe5936',1,'Elf']]], + ['get_5fphdr_37',['get_phdr',['../classElf.html#a3074fcc38da6769775c9f685b02ab47c',1,'Elf']]], + ['get_5fshdr_38',['get_shdr',['../classElf.html#a135ba996115f8bd77521be56b1cf7767',1,'Elf']]], + ['gnu_5fefi_5ftest_39',['gnu_efi_test',['../md__home_runner_work_SimpleKernel_SimpleKernel_test_system_test_gnu_efi_test_README.html',1,'']]], + ['gop_40',['gop',['../classGraphics.html#a0684dbe06b0ddeb8577869b9a5993443',1,'Graphics']]], + ['graphics_41',['Graphics',['../classGraphics.html',1,'Graphics'],['../classGraphics.html#af2e8fe67fd31ec263c843a6e28b29d3c',1,'Graphics::Graphics()'],['../classGraphics.html#abe2f13f24a1d35c55fdac10a282744eb',1,'Graphics::Graphics(const Graphics &)=delete'],['../classGraphics.html#ac19c4971eef9958a863e425ddd6936b4',1,'Graphics::Graphics(Graphics &&)=delete']]], + ['graphics_2ecpp_42',['graphics.cpp',['../graphics_8cpp.html',1,'']]] +]; diff --git a/search/all_a.html b/search/all_a.html new file mode 100644 index 000000000..3a6cac108 --- /dev/null +++ b/search/all_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_a.js b/search/all_a.js new file mode 100644 index 000000000..f463383f0 --- /dev/null +++ b/search/all_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['hex_5fx_43',['hex_x',['../classostream.html#a4ec6f2934351244c566df995f0aa6d99',1,'ostream']]], + ['hex_5fx_44',['hex_X',['../classostream.html#afaa63ab1ab5310f2e4ccaeaf26a1d9f9',1,'ostream']]] +]; diff --git a/search/all_b.html b/search/all_b.html new file mode 100644 index 000000000..130deb4ed --- /dev/null +++ b/search/all_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_b.js b/search/all_b.js new file mode 100644 index 000000000..48b1c618f --- /dev/null +++ b/search/all_b.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['imagebase_45',['ImageBase',['../src_2boot_2boot_8cpp.html#a3c37e763c85d8c042a579e38a938e53e',1,'ImageBase(): boot.cpp'],['../test_2system__test_2gnu__efi__test_2boot_8cpp.html#a3c37e763c85d8c042a579e38a938e53e',1,'ImageBase(): boot.cpp']]] +]; diff --git a/search/all_c.html b/search/all_c.html new file mode 100644 index 000000000..3dd5af06d --- /dev/null +++ b/search/all_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_c.js b/search/all_c.js new file mode 100644 index 000000000..30febe1f8 --- /dev/null +++ b/search/all_c.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['kernel_2eh_46',['kernel.h',['../kernel_8h.html',1,'']]], + ['kernel_5fname_47',['KERNEL_NAME',['../project__config_8h.html#a69e7bc540e11270eeecd410c206297fe',1,'project_config.h']]] +]; diff --git a/search/all_d.html b/search/all_d.html new file mode 100644 index 000000000..af7f2f0f5 --- /dev/null +++ b/search/all_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_d.js b/search/all_d.js new file mode 100644 index 000000000..8bb309380 --- /dev/null +++ b/search/all_d.js @@ -0,0 +1,15 @@ +var searchData= +[ + ['libc_48',['libc',['../libc_8h.html#a8c836cd24760922e8c388007278d467f',1,'libc(uint32_t _argc, uint8_t **_argv): libc.c'],['../libc_8c.html#a8c836cd24760922e8c388007278d467f',1,'libc(uint32_t _argc, uint8_t **_argv): libc.c']]], + ['libc_2ec_49',['libc.c',['../libc_8c.html',1,'']]], + ['libc_2eh_50',['libc.h',['../libc_8h.html',1,'']]], + ['libcxx_51',['libcxx',['../libcxx_8h.html#a1e7046ac65ca1fc2e305cdf450e3fdac',1,'libcxx(uint32_t _argc, uint8_t **_argv): libcxx.cpp'],['../libcxx_8cpp.html#a1e7046ac65ca1fc2e305cdf450e3fdac',1,'libcxx(uint32_t _argc, uint8_t **_argv): libcxx.cpp']]], + ['libcxx_2ecpp_52',['libcxx.cpp',['../libcxx_8cpp.html',1,'']]], + ['libcxx_2eh_53',['libcxx.h',['../libcxx_8h.html',1,'']]], + ['load_54',['load',['../classElf.html#abec14f617596cbe75854cdff875a4db2',1,'Elf']]], + ['load_5felf_2ecpp_55',['load_elf.cpp',['../load__elf_8cpp.html',1,'']]], + ['load_5felf_2eh_56',['load_elf.h',['../load__elf_8h.html',1,'']]], + ['load_5fkernel_5fimage_57',['load_kernel_image',['../classElf.html#a75355dba9bf23ee591ef52c04b688cea',1,'Elf']]], + ['load_5fprogram_5fsections_58',['load_program_sections',['../classElf.html#a3502161430e3a3c1896c2d92df03c71e',1,'Elf']]], + ['load_5fsections_59',['load_sections',['../classElf.html#a1764987395919b2725a85a17f904f245',1,'Elf']]] +]; diff --git a/search/all_e.html b/search/all_e.html new file mode 100644 index 000000000..e25df423a --- /dev/null +++ b/search/all_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_e.js b/search/all_e.js new file mode 100644 index 000000000..00a0d2374 --- /dev/null +++ b/search/all_e.js @@ -0,0 +1,11 @@ +var searchData= +[ + ['main_60',['main',['../boot_8h.html#a2201d4f3fe424b79dbb580041d738741',1,'main(int _argc, char **_argv): main.cpp'],['../kernel_8h.html#a2201d4f3fe424b79dbb580041d738741',1,'main(int _argc, char **_argv): main.cpp'],['../src_2kernel_2main_8cpp.html#a2201d4f3fe424b79dbb580041d738741',1,'main(int _argc, char **_argv): main.cpp'],['../test_2system__test_2gnu__efi__test_2main_8cpp.html#a2201d4f3fe424b79dbb580041d738741',1,'main(int _argc, char **_argv): main.cpp'],['../test_2system__test_2opensbi__test_2boot_8cpp.html#a2c3f6775325c30275d11c6abee2db6a0',1,'main(int, char **): boot.cpp']]], + ['main_2ecpp_61',['main.cpp',['../src_2kernel_2main_8cpp.html',1,'(Global Namespace)'],['../test_2system__test_2gnu__efi__test_2main_8cpp.html',1,'(Global Namespace)']]], + ['map_5fkey_62',['map_key',['../classMemory.html#ae10ce4cd40c83a10d3b598eee63adefd',1,'Memory']]], + ['memory_63',['Memory',['../classMemory.html',1,'Memory'],['../classMemory.html#a585d7bb6fc6f2237bcebf94a86b7dd99',1,'Memory::Memory()'],['../classMemory.html#a99380a9fcf78020c641ee9c9274b912c',1,'Memory::Memory(const Memory &)=delete'],['../classMemory.html#ac9ab40541f6c3c44c8614c8ee3babea5',1,'Memory::Memory(Memory &&)=delete']]], + ['memory_2ecpp_64',['memory.cpp',['../memory_8cpp.html',1,'']]], + ['memory_5fmap_65',['memory_map',['../classMemory.html#a49d7d63bc05c1e0ac8d1440b9a4bcfeb',1,'Memory']]], + ['mode_66',['mode',['../classostream.html#a4396e13ad0894ad44f20d6d9f7e7c8c5',1,'ostream']]], + ['mode_5ft_67',['mode_t',['../classostream.html#a2f1697fb486d2afcde8e8a5b7f6608f6',1,'ostream']]] +]; diff --git a/search/all_f.html b/search/all_f.html new file mode 100644 index 000000000..b23da6ce4 --- /dev/null +++ b/search/all_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/all_f.js b/search/all_f.js new file mode 100644 index 000000000..a8eef8961 --- /dev/null +++ b/search/all_f.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['operator_3c_3c_68',['operator<<',['../classostream.html#a2643ac8ead35ca1f28bea37ba5cf851f',1,'ostream::operator<<(_t _val) -> ostream &'],['../classostream.html#a5ac0609ad3452aaa7bd6fd75b91e5f9c',1,'ostream::operator<<(ostream &(*_ostream)(ostream &)) -> ostream &'],['../classostream.html#a8dca8e73225d0f9512443ea24faf8b3d',1,'ostream::operator<<(int32_t _val) -> ostream &'],['../classostream.html#a258ca91236f62de861bb8a1e04766710',1,'ostream::operator<<(uint32_t _val) -> ostream &'],['../classostream.html#a1bd56786510d46836ddeb65905ec1203',1,'ostream::operator<<(int64_t _val) -> ostream &'],['../classostream.html#a233fec38d499fccab307b259564f6325',1,'ostream::operator<<(uint64_t _val) -> ostream &'],['../classostream.html#a3c55533daa16724d2680a234a3350183',1,'ostream::operator<<(wchar_t _val) -> ostream &'],['../classostream.html#a85799be0e32d03eb176ec894b54e05df',1,'ostream::operator<<(const wchar_t *_val) -> ostream &'],['../classostream.html#ac6dd77ac76d20ff385d380223a0b6e5d',1,'ostream::operator<<(void *_val) -> ostream &'],['../classostream.html#a4cdfa5a7e5af785bc2466465dd294a8c',1,'ostream::operator<<(const void *_val) -> ostream &']]], + ['operator_3d_69',['operator=',['../classostream.html#a8e20e8645ba3335b7fea9cf248cc6e5b',1,'ostream::operator=(ostream &&) -> ostream &=delete'],['../classostream.html#af3d4de9430a737b62ca78e1b8fad2635',1,'ostream::operator=(const ostream &) -> ostream &=delete'],['../classElf.html#ab8554ff6a26fc6bc9466b1ed097f62cc',1,'Elf::operator=(Elf &&) -> Elf &=delete'],['../classElf.html#a0cf4a40c154a379fab396f3b57e1b271',1,'Elf::operator=(const Elf &) -> Elf &=delete'],['../classMemory.html#a486d18dc915927190cb52471b7308ae6',1,'Memory::operator=(Memory &&) -> Memory &=delete'],['../classMemory.html#ad9e7a4cbd22f78011c39393458e5c04e',1,'Memory::operator=(const Memory &) -> Memory &=delete'],['../classGraphics.html#a8a1573ebe9ac7b724f54f773f66e4290',1,'Graphics::operator=(Graphics &&) -> Graphics &=delete'],['../classGraphics.html#acd4c5b29614f7f19b47b09e75920abab',1,'Graphics::operator=(const Graphics &) -> Graphics &=delete']]], + ['ostream_70',['ostream',['../classostream.html#a9470e15eae20f768804f345cdcb64878',1,'ostream::ostream()'],['../classostream.html',1,'ostream'],['../classostream.html#ae717c9ef2f8248133d4f319bea8eac74',1,'ostream::ostream(ostream &&)=delete'],['../classostream.html#af02b22e37aeacbd7b927c9499e2e7434',1,'ostream::ostream()=default']]], + ['ostream_2ecpp_71',['ostream.cpp',['../ostream_8cpp.html',1,'']]], + ['ostream_2ehpp_72',['ostream.hpp',['../ostream_8hpp.html',1,'']]] +]; diff --git a/search/classes_0.html b/search/classes_0.html new file mode 100644 index 000000000..af8159ee6 --- /dev/null +++ b/search/classes_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_0.js b/search/classes_0.js new file mode 100644 index 000000000..653787654 --- /dev/null +++ b/search/classes_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['elf_100',['Elf',['../classElf.html',1,'']]] +]; diff --git a/search/classes_1.html b/search/classes_1.html new file mode 100644 index 000000000..576e91689 --- /dev/null +++ b/search/classes_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_1.js b/search/classes_1.js new file mode 100644 index 000000000..3b403f8a9 --- /dev/null +++ b/search/classes_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['graphics_101',['Graphics',['../classGraphics.html',1,'']]] +]; diff --git a/search/classes_2.html b/search/classes_2.html new file mode 100644 index 000000000..956405e5a --- /dev/null +++ b/search/classes_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_2.js b/search/classes_2.js new file mode 100644 index 000000000..9dad139be --- /dev/null +++ b/search/classes_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['memory_102',['Memory',['../classMemory.html',1,'']]] +]; diff --git a/search/classes_3.html b/search/classes_3.html new file mode 100644 index 000000000..d33343bc1 --- /dev/null +++ b/search/classes_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_3.js b/search/classes_3.js new file mode 100644 index 000000000..f0658adc7 --- /dev/null +++ b/search/classes_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['ostream_103',['ostream',['../classostream.html',1,'']]] +]; diff --git a/search/classes_4.html b/search/classes_4.html new file mode 100644 index 000000000..8430b07fe --- /dev/null +++ b/search/classes_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/classes_4.js b/search/classes_4.js new file mode 100644 index 000000000..a8284ca20 --- /dev/null +++ b/search/classes_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['sbiret_5ft_104',['sbiret_t',['../structsbiret__t.html',1,'']]] +]; diff --git a/search/close.svg b/search/close.svg new file mode 100644 index 000000000..a933eea1a --- /dev/null +++ b/search/close.svg @@ -0,0 +1,31 @@ + + + + + + image/svg+xml + + + + + + + + diff --git a/search/defines_0.html b/search/defines_0.html new file mode 100644 index 000000000..15cc3de38 --- /dev/null +++ b/search/defines_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/defines_0.js b/search/defines_0.js new file mode 100644 index 000000000..78153a41c --- /dev/null +++ b/search/defines_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['kernel_5fname_197',['KERNEL_NAME',['../project__config_8h.html#a69e7bc540e11270eeecd410c206297fe',1,'project_config.h']]] +]; diff --git a/search/enums_0.html b/search/enums_0.html new file mode 100644 index 000000000..141fff57b --- /dev/null +++ b/search/enums_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/enums_0.js b/search/enums_0.js new file mode 100644 index 000000000..8334bf820 --- /dev/null +++ b/search/enums_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['mode_5ft_193',['mode_t',['../classostream.html#a2f1697fb486d2afcde8e8a5b7f6608f6',1,'ostream']]] +]; diff --git a/search/enumvalues_0.html b/search/enumvalues_0.html new file mode 100644 index 000000000..0d131d95b --- /dev/null +++ b/search/enumvalues_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/enumvalues_0.js b/search/enumvalues_0.js new file mode 100644 index 000000000..212d6f2b0 --- /dev/null +++ b/search/enumvalues_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['d_194',['d',['../classostream.html#a2f1697fb486d2afcde8e8a5b7f6608f6a16426222a71c446926e9ee5aef5ef53a',1,'ostream']]] +]; diff --git a/search/enumvalues_1.html b/search/enumvalues_1.html new file mode 100644 index 000000000..cd9187ab3 --- /dev/null +++ b/search/enumvalues_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/enumvalues_1.js b/search/enumvalues_1.js new file mode 100644 index 000000000..b3a583890 --- /dev/null +++ b/search/enumvalues_1.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['x_195',['X',['../classostream.html#a2f1697fb486d2afcde8e8a5b7f6608f6a53178dc78826d4f620fd4cf2dbe52284',1,'ostream']]], + ['x_196',['x',['../classostream.html#a2f1697fb486d2afcde8e8a5b7f6608f6abe6defa90d521b92be9e4b072c89dbf7',1,'ostream']]] +]; diff --git a/search/files_0.html b/search/files_0.html new file mode 100644 index 000000000..9498842a6 --- /dev/null +++ b/search/files_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_0.js b/search/files_0.js new file mode 100644 index 000000000..f42b92012 --- /dev/null +++ b/search/files_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['0_5f工具链_2emd_105',['0_工具链.md',['../0___xE5_xB7_xA5_xE5_x85_xB7_xE9_x93_xBE_8md.html',1,'']]] +]; diff --git a/search/files_1.html b/search/files_1.html new file mode 100644 index 000000000..7050ef48a --- /dev/null +++ b/search/files_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_1.js b/search/files_1.js new file mode 100644 index 000000000..15fba0f1b --- /dev/null +++ b/search/files_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['1_5f系统启动_2emd_106',['1_系统启动.md',['../1___xE7_xB3_xBB_xE7_xBB_x9F_xE5_x90_xAF_xE5_x8A_xA8_8md.html',1,'']]] +]; diff --git a/search/files_2.html b/search/files_2.html new file mode 100644 index 000000000..497cdf5c7 --- /dev/null +++ b/search/files_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_2.js b/search/files_2.js new file mode 100644 index 000000000..604d53af4 --- /dev/null +++ b/search/files_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['arch_2ecpp_107',['arch.cpp',['../aarch64_2arch_8cpp.html',1,'(Global Namespace)'],['../arch_8cpp.html',1,'(Global Namespace)'],['../riscv64_2arch_8cpp.html',1,'(Global Namespace)'],['../x86__64_2arch_8cpp.html',1,'(Global Namespace)']]], + ['arch_2eh_108',['arch.h',['../arch_8h.html',1,'']]] +]; diff --git a/search/files_3.html b/search/files_3.html new file mode 100644 index 000000000..1ba106b2d --- /dev/null +++ b/search/files_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_3.js b/search/files_3.js new file mode 100644 index 000000000..621eb11cd --- /dev/null +++ b/search/files_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['boot_2ecpp_109',['boot.cpp',['../src_2boot_2boot_8cpp.html',1,'(Global Namespace)'],['../test_2system__test_2gnu__efi__test_2boot_8cpp.html',1,'(Global Namespace)'],['../test_2system__test_2opensbi__test_2boot_8cpp.html',1,'(Global Namespace)']]], + ['boot_2eh_110',['boot.h',['../boot_8h.html',1,'']]] +]; diff --git a/search/files_4.html b/search/files_4.html new file mode 100644 index 000000000..753b7b109 --- /dev/null +++ b/search/files_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_4.js b/search/files_4.js new file mode 100644 index 000000000..2e7f6cf55 --- /dev/null +++ b/search/files_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['clion_20使用说明_2emd_111',['Clion 使用说明.md',['../Clion_01_xE4_xBD_xBF_xE7_x94_xA8_xE8_xAF_xB4_xE6_x98_x8E_8md.html',1,'']]] +]; diff --git a/search/files_5.html b/search/files_5.html new file mode 100644 index 000000000..7b6affd7f --- /dev/null +++ b/search/files_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_5.js b/search/files_5.js new file mode 100644 index 000000000..13d49e5e9 --- /dev/null +++ b/search/files_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['docker_2emd_112',['docker.md',['../docker_8md.html',1,'']]], + ['driver_2ecpp_113',['driver.cpp',['../driver_8cpp.html',1,'']]], + ['driver_2eh_114',['driver.h',['../driver_8h.html',1,'']]] +]; diff --git a/search/files_6.html b/search/files_6.html new file mode 100644 index 000000000..802ebf715 --- /dev/null +++ b/search/files_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_6.js b/search/files_6.js new file mode 100644 index 000000000..82855c790 --- /dev/null +++ b/search/files_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['example_2ecpp_115',['example.cpp',['../integration__test_2example_8cpp.html',1,'(Global Namespace)'],['../unit__test_2example_8cpp.html',1,'(Global Namespace)']]] +]; diff --git a/search/files_7.html b/search/files_7.html new file mode 100644 index 000000000..365e6484f --- /dev/null +++ b/search/files_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_7.js b/search/files_7.js new file mode 100644 index 000000000..b57ace3ca --- /dev/null +++ b/search/files_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['graphics_2ecpp_116',['graphics.cpp',['../graphics_8cpp.html',1,'']]] +]; diff --git a/search/files_8.html b/search/files_8.html new file mode 100644 index 000000000..3df0f2fae --- /dev/null +++ b/search/files_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_8.js b/search/files_8.js new file mode 100644 index 000000000..0ec7bb273 --- /dev/null +++ b/search/files_8.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['kernel_2eh_117',['kernel.h',['../kernel_8h.html',1,'']]] +]; diff --git a/search/files_9.html b/search/files_9.html new file mode 100644 index 000000000..52f8b6c07 --- /dev/null +++ b/search/files_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_9.js b/search/files_9.js new file mode 100644 index 000000000..98e17f436 --- /dev/null +++ b/search/files_9.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['libc_2ec_118',['libc.c',['../libc_8c.html',1,'']]], + ['libc_2eh_119',['libc.h',['../libc_8h.html',1,'']]], + ['libcxx_2ecpp_120',['libcxx.cpp',['../libcxx_8cpp.html',1,'']]], + ['libcxx_2eh_121',['libcxx.h',['../libcxx_8h.html',1,'']]], + ['load_5felf_2ecpp_122',['load_elf.cpp',['../load__elf_8cpp.html',1,'']]], + ['load_5felf_2eh_123',['load_elf.h',['../load__elf_8h.html',1,'']]] +]; diff --git a/search/files_a.html b/search/files_a.html new file mode 100644 index 000000000..11d4c117b --- /dev/null +++ b/search/files_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_a.js b/search/files_a.js new file mode 100644 index 000000000..29d4e490a --- /dev/null +++ b/search/files_a.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['main_2ecpp_124',['main.cpp',['../src_2kernel_2main_8cpp.html',1,'(Global Namespace)'],['../test_2system__test_2gnu__efi__test_2main_8cpp.html',1,'(Global Namespace)']]], + ['memory_2ecpp_125',['memory.cpp',['../memory_8cpp.html',1,'']]] +]; diff --git a/search/files_b.html b/search/files_b.html new file mode 100644 index 000000000..9fc83436a --- /dev/null +++ b/search/files_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_b.js b/search/files_b.js new file mode 100644 index 000000000..a0580afd5 --- /dev/null +++ b/search/files_b.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['ostream_2ecpp_126',['ostream.cpp',['../ostream_8cpp.html',1,'']]], + ['ostream_2ehpp_127',['ostream.hpp',['../ostream_8hpp.html',1,'']]] +]; diff --git a/search/files_c.html b/search/files_c.html new file mode 100644 index 000000000..c266b4c25 --- /dev/null +++ b/search/files_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_c.js b/search/files_c.js new file mode 100644 index 000000000..b8e41e0a7 --- /dev/null +++ b/search/files_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['project_5fconfig_2eh_128',['project_config.h',['../project__config_8h.html',1,'']]] +]; diff --git a/search/files_d.html b/search/files_d.html new file mode 100644 index 000000000..d2ca3c1ca --- /dev/null +++ b/search/files_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/files_d.js b/search/files_d.js new file mode 100644 index 000000000..c847b505b --- /dev/null +++ b/search/files_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['readme_2emd_129',['README.md',['../README_8md.html',1,'(Global Namespace)'],['../test_2system__test_2gnu__efi__test_2README_8md.html',1,'(Global Namespace)']]] +]; diff --git a/search/functions_0.html b/search/functions_0.html new file mode 100644 index 000000000..eb4c5014c --- /dev/null +++ b/search/functions_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_0.js b/search/functions_0.js new file mode 100644 index 000000000..f18d659c0 --- /dev/null +++ b/search/functions_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['_5fstart_130',['_start',['../test_2system__test_2gnu__efi__test_2main_8cpp.html#a078e7d7a89207ea1c3575850e0fff462',1,'main.cpp']]] +]; diff --git a/search/functions_1.html b/search/functions_1.html new file mode 100644 index 000000000..ef4088b89 --- /dev/null +++ b/search/functions_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_1.js b/search/functions_1.js new file mode 100644 index 000000000..c4c9581a6 --- /dev/null +++ b/search/functions_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['arch_131',['arch',['../aarch64_2arch_8cpp.html#a6e72ac01cbd693797621b4ee1d02c9e5',1,'arch(uint32_t _argc, uint8_t **_argv): arch.cpp'],['../arch_8cpp.html#a6e72ac01cbd693797621b4ee1d02c9e5',1,'arch(uint32_t _argc, uint8_t **_argv): arch.cpp'],['../arch_8h.html#a6e72ac01cbd693797621b4ee1d02c9e5',1,'arch(uint32_t _argc, uint8_t **_argv): arch.cpp'],['../riscv64_2arch_8cpp.html#a03bc8720ee66b4d5ef3b10b00d92294f',1,'arch(int, char **): arch.cpp'],['../x86__64_2arch_8cpp.html#a6e72ac01cbd693797621b4ee1d02c9e5',1,'arch(uint32_t _argc, uint8_t **_argv): arch.cpp']]] +]; diff --git a/search/functions_2.html b/search/functions_2.html new file mode 100644 index 000000000..ca5aa10e6 --- /dev/null +++ b/search/functions_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_2.js b/search/functions_2.js new file mode 100644 index 000000000..b8d1fa16d --- /dev/null +++ b/search/functions_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['check_5felf_5fidentity_132',['check_elf_identity',['../classElf.html#a0eb12fc4d607d5c2ba473a3882a50276',1,'Elf']]] +]; diff --git a/search/functions_3.html b/search/functions_3.html new file mode 100644 index 000000000..d79f55b8e --- /dev/null +++ b/search/functions_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_3.js b/search/functions_3.js new file mode 100644 index 000000000..ae9fe2e90 --- /dev/null +++ b/search/functions_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['driver_133',['driver',['../driver_8cpp.html#a06475316d2443b94d393c59426f08649',1,'driver(uint32_t _argc, uint8_t **_argv): driver.cpp'],['../driver_8h.html#a06475316d2443b94d393c59426f08649',1,'driver(uint32_t _argc, uint8_t **_argv): driver.cpp']]] +]; diff --git a/search/functions_4.html b/search/functions_4.html new file mode 100644 index 000000000..1657cad0d --- /dev/null +++ b/search/functions_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_4.js b/search/functions_4.js new file mode 100644 index 000000000..62d31b7ff --- /dev/null +++ b/search/functions_4.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['ecall_134',['ecall',['../riscv64_2arch_8cpp.html#ae588de26fa6132129a1743b8df8fc982',1,'ecall(unsigned long _arg0, unsigned long _arg1, unsigned long _arg2, unsigned long _arg3, unsigned long _arg4, unsigned long _arg5, int _fid, int _eid): arch.cpp'],['../test_2system__test_2opensbi__test_2boot_8cpp.html#ae588de26fa6132129a1743b8df8fc982',1,'ecall(unsigned long _arg0, unsigned long _arg1, unsigned long _arg2, unsigned long _arg3, unsigned long _arg4, unsigned long _arg5, int _fid, int _eid): boot.cpp']]], + ['efi_5fmain_135',['efi_main',['../src_2boot_2boot_8cpp.html#a888070898d2d56fa4c1654a3c8409719',1,'efi_main(EFI_HANDLE _image_handle, [[maybe_unused]] EFI_SYSTEM_TABLE *_system_table): boot.cpp'],['../test_2system__test_2gnu__efi__test_2boot_8cpp.html#a888070898d2d56fa4c1654a3c8409719',1,'efi_main(EFI_HANDLE _image_handle, [[maybe_unused]] EFI_SYSTEM_TABLE *_system_table): boot.cpp']]], + ['elf_136',['Elf',['../classElf.html#a004d82ec887bbe8da9588c9c88041c07',1,'Elf::Elf(wchar_t *_kernel_image_filename)'],['../classElf.html#a47b294082f1ed9196c086aed53704c96',1,'Elf::Elf(const Elf &)=delete'],['../classElf.html#a5eccc90005cd47ce0d7e34db5a5159ef',1,'Elf::Elf(Elf &&)=delete']]], + ['endl_137',['endl',['../classostream.html#a271664830d4cda9da6c7c0b4c04a8ed2',1,'ostream']]] +]; diff --git a/search/functions_5.html b/search/functions_5.html new file mode 100644 index 000000000..9301d6b9c --- /dev/null +++ b/search/functions_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_5.js b/search/functions_5.js new file mode 100644 index 000000000..13d6ea2fe --- /dev/null +++ b/search/functions_5.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['flush_5fdesc_138',['flush_desc',['../classMemory.html#a0d7799e95e8dda035f91d14e2febcfcd',1,'Memory']]] +]; diff --git a/search/functions_6.html b/search/functions_6.html new file mode 100644 index 000000000..9c4f5fc65 --- /dev/null +++ b/search/functions_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_6.js b/search/functions_6.js new file mode 100644 index 000000000..baf295fce --- /dev/null +++ b/search/functions_6.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['get_5fehdr_139',['get_ehdr',['../classElf.html#aea825c7f4d213298f8a60b961c27cd6e',1,'Elf']]], + ['get_5ffile_5fsize_140',['get_file_size',['../classElf.html#a23bfd5acab462921c7e0f8b958fe5936',1,'Elf']]], + ['get_5fphdr_141',['get_phdr',['../classElf.html#a3074fcc38da6769775c9f685b02ab47c',1,'Elf']]], + ['get_5fshdr_142',['get_shdr',['../classElf.html#a135ba996115f8bd77521be56b1cf7767',1,'Elf']]], + ['graphics_143',['Graphics',['../classGraphics.html#af2e8fe67fd31ec263c843a6e28b29d3c',1,'Graphics::Graphics()'],['../classGraphics.html#abe2f13f24a1d35c55fdac10a282744eb',1,'Graphics::Graphics(const Graphics &)=delete'],['../classGraphics.html#ac19c4971eef9958a863e425ddd6936b4',1,'Graphics::Graphics(Graphics &&)=delete']]] +]; diff --git a/search/functions_7.html b/search/functions_7.html new file mode 100644 index 000000000..46b5c0f61 --- /dev/null +++ b/search/functions_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_7.js b/search/functions_7.js new file mode 100644 index 000000000..f4d0c703c --- /dev/null +++ b/search/functions_7.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['hex_5fx_144',['hex_x',['../classostream.html#a4ec6f2934351244c566df995f0aa6d99',1,'ostream']]], + ['hex_5fx_145',['hex_X',['../classostream.html#afaa63ab1ab5310f2e4ccaeaf26a1d9f9',1,'ostream']]] +]; diff --git a/search/functions_8.html b/search/functions_8.html new file mode 100644 index 000000000..31a1d9503 --- /dev/null +++ b/search/functions_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_8.js b/search/functions_8.js new file mode 100644 index 000000000..5b8809bf5 --- /dev/null +++ b/search/functions_8.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['libc_146',['libc',['../libc_8h.html#a8c836cd24760922e8c388007278d467f',1,'libc(uint32_t _argc, uint8_t **_argv): libc.c'],['../libc_8c.html#a8c836cd24760922e8c388007278d467f',1,'libc(uint32_t _argc, uint8_t **_argv): libc.c']]], + ['libcxx_147',['libcxx',['../libcxx_8h.html#a1e7046ac65ca1fc2e305cdf450e3fdac',1,'libcxx(uint32_t _argc, uint8_t **_argv): libcxx.cpp'],['../libcxx_8cpp.html#a1e7046ac65ca1fc2e305cdf450e3fdac',1,'libcxx(uint32_t _argc, uint8_t **_argv): libcxx.cpp']]], + ['load_148',['load',['../classElf.html#abec14f617596cbe75854cdff875a4db2',1,'Elf']]], + ['load_5fkernel_5fimage_149',['load_kernel_image',['../classElf.html#a75355dba9bf23ee591ef52c04b688cea',1,'Elf']]], + ['load_5fprogram_5fsections_150',['load_program_sections',['../classElf.html#a3502161430e3a3c1896c2d92df03c71e',1,'Elf']]], + ['load_5fsections_151',['load_sections',['../classElf.html#a1764987395919b2725a85a17f904f245',1,'Elf']]] +]; diff --git a/search/functions_9.html b/search/functions_9.html new file mode 100644 index 000000000..9a8e4290c --- /dev/null +++ b/search/functions_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_9.js b/search/functions_9.js new file mode 100644 index 000000000..38e23df91 --- /dev/null +++ b/search/functions_9.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['main_152',['main',['../boot_8h.html#a2201d4f3fe424b79dbb580041d738741',1,'main(int _argc, char **_argv): main.cpp'],['../kernel_8h.html#a2201d4f3fe424b79dbb580041d738741',1,'main(int _argc, char **_argv): main.cpp'],['../src_2kernel_2main_8cpp.html#a2201d4f3fe424b79dbb580041d738741',1,'main(int _argc, char **_argv): main.cpp'],['../test_2system__test_2gnu__efi__test_2main_8cpp.html#a2201d4f3fe424b79dbb580041d738741',1,'main(int _argc, char **_argv): main.cpp'],['../test_2system__test_2opensbi__test_2boot_8cpp.html#a2c3f6775325c30275d11c6abee2db6a0',1,'main(int, char **): boot.cpp']]], + ['memory_153',['Memory',['../classMemory.html#a585d7bb6fc6f2237bcebf94a86b7dd99',1,'Memory::Memory()'],['../classMemory.html#a99380a9fcf78020c641ee9c9274b912c',1,'Memory::Memory(const Memory &)=delete'],['../classMemory.html#ac9ab40541f6c3c44c8614c8ee3babea5',1,'Memory::Memory(Memory &&)=delete']]] +]; diff --git a/search/functions_a.html b/search/functions_a.html new file mode 100644 index 000000000..5ecc152ca --- /dev/null +++ b/search/functions_a.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_a.js b/search/functions_a.js new file mode 100644 index 000000000..f2689a9b7 --- /dev/null +++ b/search/functions_a.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['operator_3c_3c_154',['operator<<',['../classostream.html#a5ac0609ad3452aaa7bd6fd75b91e5f9c',1,'ostream::operator<<(ostream &(*_ostream)(ostream &)) -> ostream &'],['../classostream.html#a8dca8e73225d0f9512443ea24faf8b3d',1,'ostream::operator<<(int32_t _val) -> ostream &'],['../classostream.html#a258ca91236f62de861bb8a1e04766710',1,'ostream::operator<<(uint32_t _val) -> ostream &'],['../classostream.html#a1bd56786510d46836ddeb65905ec1203',1,'ostream::operator<<(int64_t _val) -> ostream &'],['../classostream.html#a233fec38d499fccab307b259564f6325',1,'ostream::operator<<(uint64_t _val) -> ostream &'],['../classostream.html#a3c55533daa16724d2680a234a3350183',1,'ostream::operator<<(wchar_t _val) -> ostream &'],['../classostream.html#a85799be0e32d03eb176ec894b54e05df',1,'ostream::operator<<(const wchar_t *_val) -> ostream &'],['../classostream.html#ac6dd77ac76d20ff385d380223a0b6e5d',1,'ostream::operator<<(void *_val) -> ostream &'],['../classostream.html#a4cdfa5a7e5af785bc2466465dd294a8c',1,'ostream::operator<<(const void *_val) -> ostream &'],['../classostream.html#a2643ac8ead35ca1f28bea37ba5cf851f',1,'ostream::operator<<(_t _val) -> ostream &']]], + ['operator_3d_155',['operator=',['../classGraphics.html#acd4c5b29614f7f19b47b09e75920abab',1,'Graphics::operator=()'],['../classostream.html#a8e20e8645ba3335b7fea9cf248cc6e5b',1,'ostream::operator=(ostream &&) -> ostream &=delete'],['../classostream.html#af3d4de9430a737b62ca78e1b8fad2635',1,'ostream::operator=(const ostream &) -> ostream &=delete'],['../classElf.html#ab8554ff6a26fc6bc9466b1ed097f62cc',1,'Elf::operator=(Elf &&) -> Elf &=delete'],['../classElf.html#a0cf4a40c154a379fab396f3b57e1b271',1,'Elf::operator=(const Elf &) -> Elf &=delete'],['../classMemory.html#a486d18dc915927190cb52471b7308ae6',1,'Memory::operator=(Memory &&) -> Memory &=delete'],['../classMemory.html#ad9e7a4cbd22f78011c39393458e5c04e',1,'Memory::operator=(const Memory &) -> Memory &=delete'],['../classGraphics.html#a8a1573ebe9ac7b724f54f773f66e4290',1,'Graphics::operator=()']]], + ['ostream_156',['ostream',['../classostream.html#af02b22e37aeacbd7b927c9499e2e7434',1,'ostream::ostream()=default'],['../classostream.html#a9470e15eae20f768804f345cdcb64878',1,'ostream::ostream(const ostream &)=delete'],['../classostream.html#ae717c9ef2f8248133d4f319bea8eac74',1,'ostream::ostream(ostream &&)=delete']]] +]; diff --git a/search/functions_b.html b/search/functions_b.html new file mode 100644 index 000000000..e301fedd7 --- /dev/null +++ b/search/functions_b.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_b.js b/search/functions_b.js new file mode 100644 index 000000000..963b56456 --- /dev/null +++ b/search/functions_b.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['print_5fehdr_157',['print_ehdr',['../classElf.html#a34d57d143f7782f3c630f6ddb1f16948',1,'Elf']]], + ['print_5finfo_158',['print_info',['../classGraphics.html#ad860b4ad2f72a6332cb4a850839ff5e5',1,'Graphics::print_info()'],['../classMemory.html#a81aabf1a13f96ce935d6157a9520b83a',1,'Memory::print_info()']]], + ['print_5fphdr_159',['print_phdr',['../classElf.html#aff0728535c76009acc8d78cbece772fe',1,'Elf']]], + ['print_5fshdr_160',['print_shdr',['../classElf.html#a25345e29535844c992d1a45bf12e2e57',1,'Elf']]], + ['put_5fchar_161',['put_char',['../riscv64_2arch_8cpp.html#a3743e5195a085e51d92eb812991cce47',1,'put_char(const char _c): arch.cpp'],['../test_2system__test_2opensbi__test_2boot_8cpp.html#a3743e5195a085e51d92eb812991cce47',1,'put_char(const char _c): boot.cpp']]] +]; diff --git a/search/functions_c.html b/search/functions_c.html new file mode 100644 index 000000000..c4f326877 --- /dev/null +++ b/search/functions_c.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_c.js b/search/functions_c.js new file mode 100644 index 000000000..c17b0b60f --- /dev/null +++ b/search/functions_c.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['set_5fmode_162',['set_mode',['../classGraphics.html#a04e4caa540b0612a56adc590971715b6',1,'Graphics']]] +]; diff --git a/search/functions_d.html b/search/functions_d.html new file mode 100644 index 000000000..7a1ed065d --- /dev/null +++ b/search/functions_d.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_d.js b/search/functions_d.js new file mode 100644 index 000000000..fcc497d28 --- /dev/null +++ b/search/functions_d.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['test_163',['TEST',['../integration__test_2example_8cpp.html#ab52dc74bff6a4efe73d9412400be38d9',1,'TEST(example, test_group1): example.cpp'],['../unit__test_2example_8cpp.html#ab52dc74bff6a4efe73d9412400be38d9',1,'TEST(example, test_group1): example.cpp']]] +]; diff --git a/search/functions_e.html b/search/functions_e.html new file mode 100644 index 000000000..22d2a6bf5 --- /dev/null +++ b/search/functions_e.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_e.js b/search/functions_e.js new file mode 100644 index 000000000..32a58e631 --- /dev/null +++ b/search/functions_e.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['wait_5ffor_5finput_164',['wait_for_input',['../ostream_8hpp.html#a27887edc523c98e888002e7756434ef9',1,'wait_for_input(EFI_INPUT_KEY *_key) -> EFI_STATUS: ostream.cpp'],['../ostream_8cpp.html#a27887edc523c98e888002e7756434ef9',1,'wait_for_input(EFI_INPUT_KEY *_key) -> EFI_STATUS: ostream.cpp']]] +]; diff --git a/search/functions_f.html b/search/functions_f.html new file mode 100644 index 000000000..54b7dee08 --- /dev/null +++ b/search/functions_f.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/functions_f.js b/search/functions_f.js new file mode 100644 index 000000000..c3df57d65 --- /dev/null +++ b/search/functions_f.js @@ -0,0 +1,7 @@ +var searchData= +[ + ['_7eelf_165',['~Elf',['../classElf.html#a184a984a3da808368593a45f06005bd3',1,'Elf']]], + ['_7egraphics_166',['~Graphics',['../classGraphics.html#a6832d01237ef9bff8d34f0882d86970c',1,'Graphics']]], + ['_7ememory_167',['~Memory',['../classMemory.html#a2b517b46ae4b070d9f6a7b6d9efeb7a1',1,'Memory']]], + ['_7eostream_168',['~ostream',['../classostream.html#a36fe66b87e7d9f5bca462383b1b347a3',1,'ostream']]] +]; diff --git a/search/mag_sel.svg b/search/mag_sel.svg new file mode 100644 index 000000000..03626f64a --- /dev/null +++ b/search/mag_sel.svg @@ -0,0 +1,74 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/search/nomatches.html b/search/nomatches.html new file mode 100644 index 000000000..2b9360b6b --- /dev/null +++ b/search/nomatches.html @@ -0,0 +1,13 @@ + + + + + + + + +
    +
    No Matches
    +
    + + diff --git a/search/pages_0.html b/search/pages_0.html new file mode 100644 index 000000000..8517b48f0 --- /dev/null +++ b/search/pages_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_0.js b/search/pages_0.js new file mode 100644 index 000000000..a26b828a4 --- /dev/null +++ b/search/pages_0.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['clion_20配置及使用_198',['CLion 配置及使用',['../md__home_runner_work_SimpleKernel_SimpleKernel_tools_Clion__xE4_xBD_xBF_xE7_x94_xA8_xE8_xAF_xB4_xE6_x98_x8E.html',1,'']]] +]; diff --git a/search/pages_1.html b/search/pages_1.html new file mode 100644 index 000000000..a0fb67963 --- /dev/null +++ b/search/pages_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_1.js b/search/pages_1.js new file mode 100644 index 000000000..410229105 --- /dev/null +++ b/search/pages_1.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['gnu_5fefi_5ftest_199',['gnu_efi_test',['../md__home_runner_work_SimpleKernel_SimpleKernel_test_system_test_gnu_efi_test_README.html',1,'']]] +]; diff --git a/search/pages_2.html b/search/pages_2.html new file mode 100644 index 000000000..084edfd03 --- /dev/null +++ b/search/pages_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_2.js b/search/pages_2.js new file mode 100644 index 000000000..008db6894 --- /dev/null +++ b/search/pages_2.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['readme_200',['README',['../md__home_runner_work_SimpleKernel_SimpleKernel_README.html',1,'']]] +]; diff --git a/search/pages_3.html b/search/pages_3.html new file mode 100644 index 000000000..c0b45b0fc --- /dev/null +++ b/search/pages_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_3.js b/search/pages_3.js new file mode 100644 index 000000000..b4e16c81d --- /dev/null +++ b/search/pages_3.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['simplekernel_20启动_201',['SimpleKernel 启动',['../md_1__xE7_xB3_xBB_xE7_xBB_x9F_xE5_x90_xAF_xE5_x8A_xA8.html',1,'']]], + ['simplekernel_20工具链_202',['SimpleKernel 工具链',['../md_0__xE5_xB7_xA5_xE5_x85_xB7_xE9_x93_xBE.html',1,'']]] +]; diff --git a/search/pages_4.html b/search/pages_4.html new file mode 100644 index 000000000..0f05c2e73 --- /dev/null +++ b/search/pages_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/pages_4.js b/search/pages_4.js new file mode 100644 index 000000000..dc61f0ebb --- /dev/null +++ b/search/pages_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['构建_20docker_20并通过_20ssh_20使用_203',['构建 Docker 并通过 ssh 使用',['../md_docker.html',1,'']]] +]; diff --git a/search/search.css b/search/search.css new file mode 100644 index 000000000..9074198f8 --- /dev/null +++ b/search/search.css @@ -0,0 +1,257 @@ +/*---------------- Search Box */ + +#MSearchBox { + white-space : nowrap; + background: white; + border-radius: 0.65em; + box-shadow: inset 0.5px 0.5px 3px 0px #555; + z-index: 102; +} + +#MSearchBox .left { + display: inline-block; + vertical-align: middle; + height: 1.4em; +} + +#MSearchSelect { + display: inline-block; + vertical-align: middle; + height: 1.4em; + padding: 0 0 0 0.3em; + margin: 0; +} + +#MSearchField { + display: inline-block; + vertical-align: middle; + width: 7.5em; + height: 1.1em; + margin: 0 0.15em; + padding: 0; + line-height: 1em; + border:none; + color: #909090; + outline: none; + font-family: Arial, Verdana, sans-serif; + -webkit-border-radius: 0px; + border-radius: 0px; + background: none; +} + + +#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 { + height: 1.4em; + padding: 0.3em; + margin: 0; +} + +.MSearchBoxActive #MSearchField { + color: #000000; +} + +#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 filter selection */ + +#MSearchSelectWindow { + display: none; + position: absolute; + left: 0; top: 0; + border: 1px solid #90A5CE; + background-color: #F9FAFC; + 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 Arial, Verdana, sans-serif; + padding-left: 2px; + padding-right: 12px; + border: 0px; +} + +span.SelectionMark { + margin-right: 4px; + font-family: monospace; + outline-style: none; + text-decoration: none; +} + +a.SelectItem { + display: block; + outline-style: none; + color: #000000; + text-decoration: none; + padding-left: 6px; + padding-right: 12px; +} + +a.SelectItem:focus, +a.SelectItem:active { + color: #000000; + outline-style: none; + text-decoration: none; +} + +a.SelectItem:hover { + color: #FFFFFF; + background-color: #3D578C; + 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 #000; + background-color: #EEF1F7; + z-index:10000; +} + +/* ----------------------------------- */ + + +#SRIndex { + clear:both; + padding-bottom: 15px; +} + +.SREntry { + font-size: 10pt; + padding-left: 1ex; +} + +.SRPage .SREntry { + font-size: 8pt; + padding: 1px 5px; +} + +body.SRPage { + margin: 5px 2px; +} + +.SRChildren { + padding-left: 3ex; padding-bottom: .5em +} + +.SRPage .SRChildren { + display: none; +} + +.SRSymbol { + font-weight: bold; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + text-decoration: none; + outline: none; +} + +a.SRScope { + display: block; + color: #425E97; + font-family: Arial, Verdana, sans-serif; + 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: Arial, Verdana, sans-serif; +} + +.SRPage .SRStatus { + padding: 2px 5px; + font-size: 8pt; + font-style: italic; + font-family: Arial, Verdana, sans-serif; +} + +.SRResult { + display: none; +} + +div.searchresults { + margin-left: 10px; + margin-right: 10px; +} + +/*---------------- External search page results */ + +.searchresult { + background-color: #F0F3F8; +} + +.pages b { + color: white; + padding: 5px 5px 3px 5px; + background-image: url("../tab_a.png"); + 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 000000000..fb226f734 --- /dev/null +++ b/search/search.js @@ -0,0 +1,816 @@ +/* + @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 resultsPage; + var resultsPageWithSearch; + var hasResultsPage; + + var idx = indexSectionsWithContent[this.searchIndex].indexOf(idxChar); + if (idx!=-1) + { + var hexCode=idx.toString(16); + resultsPage = this.resultsPath + '/' + indexSectionNames[this.searchIndex] + '_' + hexCode + this.extension; + resultsPageWithSearch = resultsPage+'?'+escape(searchValue); + hasResultsPage = true; + } + else // nothing available for this search term + { + resultsPage = this.resultsPath + '/nomatches' + this.extension; + resultsPageWithSearch = resultsPage; + hasResultsPage = false; + } + + window.frames.MSearchResults.location = resultsPageWithSearch; + var domPopupSearchResultsWindow = this.DOMPopupSearchResultsWindow(); + + if (domPopupSearchResultsWindow.style.display!='block') + { + var domSearchBox = this.DOMSearchBox(); + this.DOMSearchClose().style.display = 'inline-block'; + if (this.insideFrame) + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + domPopupSearchResultsWindow.style.position = 'relative'; + domPopupSearchResultsWindow.style.display = 'block'; + var width = document.body.clientWidth - 8; // the -8 is for IE :-( + domPopupSearchResultsWindow.style.width = width + 'px'; + domPopupSearchResults.style.width = width + 'px'; + } + else + { + var domPopupSearchResults = this.DOMPopupSearchResults(); + var left = getXPos(domSearchBox) + 150; // domSearchBox.offsetWidth; + var top = getYPos(domSearchBox) + 20; // domSearchBox.offsetHeight + 1; + domPopupSearchResultsWindow.style.display = 'block'; + left -= domPopupSearchResults.offsetWidth; + domPopupSearchResultsWindow.style.top = top + 'px'; + domPopupSearchResultsWindow.style.left = left + 'px'; + } + } + + this.lastSearchValue = searchValue; + this.lastResultsPage = resultsPage; + } + + // -------- 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'; + + var searchField = this.DOMSearchField(); + + if (searchField.value == this.searchLabel) // clear "Search" term upon entry + { + searchField.value = ''; + this.searchActive = true; + } + } + else if (!isActive) // directly remove the panel + { + this.DOMSearchBox().className = 'MSearchBoxInactive'; + this.DOMSearchField().value = this.searchLabel; + this.searchActive = false; + this.lastSearchValue = '' + this.lastResultsPage = ''; + } + } +} + +// ----------------------------------------------------------------------- + +// 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 + { + parent.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 + { + parent.searchBox.CloseResultsWindow(); + parent.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 + { + parent.searchBox.CloseResultsWindow(); + parent.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() +{ + var results = document.getElementById("SRResults"); + for (var e=0; e(R!W8j_r#qQ#gnr4kAxdU#F0+OBry$Z+ z_0PMi;P|#{d%mw(dnw=jM%@$onTJa%@6Nm3`;2S#nwtVFJI#`U@2Q@@JCCctagvF- z8H=anvo~dTmJ2YA%wA6IHRv%{vxvUm|R)kgZeo zmX%Zb;mpflGZdXCTAgit`||AFzkI#z&(3d4(htA?U2FOL4WF6wY&TB#n3n*I4+hl| z*NBpo#FA92vEu822WQ%mvv4FO#qs` BFGc_W literal 0 HcmV?d00001 diff --git a/search/search_r.png b/search/search_r.png new file mode 100644 index 0000000000000000000000000000000000000000..1af5d21ee13e070d7600f1c4657fde843b953a69 GIT binary patch literal 553 zcmeAS@N?(olHy`uVBq!ia0vp^LO?9c!2%@BXHTsJQY`6?zK#qG8~eHcB(ehe3dtTp zz6=bxGZ+|(`xqD=STHa&U1eaXVrO7DwS|Gf*oA>XrmV$GYcEhOQT(QLuS{~ooZ2P@v=Xc@RKW@Irliv8_;wroU0*)0O?temdsA~70jrdux+`@W7 z-N(<(C)L?hOO?KV{>8(jC{hpKsws)#Fh zvsO>IB+gb@b+rGWaO&!a9Z{!U+fV*s7TS>fdt&j$L%^U@Epd$~Nl7e8wMs5Z1yT$~ z28I^8hDN#u<{^fLRz?<9hUVG^237_Jy7tbuQ8eV{r(~v8;?@w8^gA7>fx*+&&t;uc GLK6VEQpiUD literal 0 HcmV?d00001 diff --git a/search/searchdata.js b/search/searchdata.js new file mode 100644 index 000000000..ad2a30842 --- /dev/null +++ b/search/searchdata.js @@ -0,0 +1,39 @@ +var indexSectionsWithContent = +{ + 0: "01_abcdefghiklmoprstvwx~构", + 1: "egmos", + 2: "01abcdegklmopr", + 3: "_acdefghlmopstw~", + 4: "defgimprsv", + 5: "m", + 6: "dx", + 7: "k", + 8: "cgrs构" +}; + +var indexSectionNames = +{ + 0: "all", + 1: "classes", + 2: "files", + 3: "functions", + 4: "variables", + 5: "enums", + 6: "enumvalues", + 7: "defines", + 8: "pages" +}; + +var indexSectionLabels = +{ + 0: "All", + 1: "Classes", + 2: "Files", + 3: "Functions", + 4: "Variables", + 5: "Enumerations", + 6: "Enumerator", + 7: "Macros", + 8: "Pages" +}; + diff --git a/search/variables_0.html b/search/variables_0.html new file mode 100644 index 000000000..1e477c08c --- /dev/null +++ b/search/variables_0.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_0.js b/search/variables_0.js new file mode 100644 index 000000000..a6d897174 --- /dev/null +++ b/search/variables_0.js @@ -0,0 +1,9 @@ +var searchData= +[ + ['debug_169',['debug',['../ostream_8hpp.html#a48c0732d1726c996d7fad294439777fc',1,'ostream.hpp']]], + ['default_5fheight_170',['DEFAULT_HEIGHT',['../classGraphics.html#a036aee49398070f73600101bac34a29f',1,'Graphics']]], + ['default_5fwidth_171',['DEFAULT_WIDTH',['../classGraphics.html#ad960ad754a9ee99b9cdae1bcebd6804b',1,'Graphics']]], + ['desc_5fcount_172',['desc_count',['../classMemory.html#a0a3d91c1e74ac3776a8992e17c73b33c',1,'Memory']]], + ['desc_5fsize_173',['desc_size',['../classMemory.html#aa9e9794c5b03c7a5c7900c273b17c065',1,'Memory']]], + ['desc_5fversion_174',['desc_version',['../classMemory.html#a78b8170be31c2b6f3717a4cffb27244e',1,'Memory']]] +]; diff --git a/search/variables_1.html b/search/variables_1.html new file mode 100644 index 000000000..ea73d9a49 --- /dev/null +++ b/search/variables_1.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_1.js b/search/variables_1.js new file mode 100644 index 000000000..afccc0848 --- /dev/null +++ b/search/variables_1.js @@ -0,0 +1,8 @@ +var searchData= +[ + ['ehdr_175',['ehdr',['../classElf.html#aa938244c41792cd337c27e7989496900',1,'Elf']]], + ['elf_176',['elf',['../classElf.html#a8cdfe3309959985aa774604b6ec9da86',1,'Elf']]], + ['elf_5ffile_5fbuffer_177',['elf_file_buffer',['../classElf.html#a656cc0c33708cae16ff34547eb8f8c85',1,'Elf']]], + ['elf_5ffile_5fsize_178',['elf_file_size',['../classElf.html#a24d94ce5a17e48b96ae4e82de062e7e4',1,'Elf']]], + ['error_179',['error',['../structsbiret__t.html#a907730633f8936f3e11a4a10aa8a8442',1,'sbiret_t']]] +]; diff --git a/search/variables_2.html b/search/variables_2.html new file mode 100644 index 000000000..0580462e9 --- /dev/null +++ b/search/variables_2.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_2.js b/search/variables_2.js new file mode 100644 index 000000000..976145c0a --- /dev/null +++ b/search/variables_2.js @@ -0,0 +1,5 @@ +var searchData= +[ + ['file_180',['file',['../classElf.html#adf9ed3472f22d8d149e627394ea442ea',1,'Elf']]], + ['file_5fsystem_5fprotocol_181',['file_system_protocol',['../classElf.html#a0f7dcccb310a1b259b0dc72f292a8629',1,'Elf']]] +]; diff --git a/search/variables_3.html b/search/variables_3.html new file mode 100644 index 000000000..0d69e7619 --- /dev/null +++ b/search/variables_3.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_3.js b/search/variables_3.js new file mode 100644 index 000000000..9edcf942b --- /dev/null +++ b/search/variables_3.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['gop_182',['gop',['../classGraphics.html#a0684dbe06b0ddeb8577869b9a5993443',1,'Graphics']]] +]; diff --git a/search/variables_4.html b/search/variables_4.html new file mode 100644 index 000000000..a4b6506bb --- /dev/null +++ b/search/variables_4.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_4.js b/search/variables_4.js new file mode 100644 index 000000000..3fbfcb913 --- /dev/null +++ b/search/variables_4.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['imagebase_183',['ImageBase',['../src_2boot_2boot_8cpp.html#a3c37e763c85d8c042a579e38a938e53e',1,'ImageBase(): boot.cpp'],['../test_2system__test_2gnu__efi__test_2boot_8cpp.html#a3c37e763c85d8c042a579e38a938e53e',1,'ImageBase(): boot.cpp']]] +]; diff --git a/search/variables_5.html b/search/variables_5.html new file mode 100644 index 000000000..7e345d16c --- /dev/null +++ b/search/variables_5.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_5.js b/search/variables_5.js new file mode 100644 index 000000000..d6fa0eea7 --- /dev/null +++ b/search/variables_5.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['map_5fkey_184',['map_key',['../classMemory.html#ae10ce4cd40c83a10d3b598eee63adefd',1,'Memory']]], + ['memory_5fmap_185',['memory_map',['../classMemory.html#a49d7d63bc05c1e0ac8d1440b9a4bcfeb',1,'Memory']]], + ['mode_186',['mode',['../classostream.html#a4396e13ad0894ad44f20d6d9f7e7c8c5',1,'ostream']]] +]; diff --git a/search/variables_6.html b/search/variables_6.html new file mode 100644 index 000000000..7d48e75e2 --- /dev/null +++ b/search/variables_6.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_6.js b/search/variables_6.js new file mode 100644 index 000000000..d63913681 --- /dev/null +++ b/search/variables_6.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['phdr_187',['phdr',['../classElf.html#a4a9108833faee1fb3608716720636eb1',1,'Elf']]] +]; diff --git a/search/variables_7.html b/search/variables_7.html new file mode 100644 index 000000000..5c2634092 --- /dev/null +++ b/search/variables_7.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_7.js b/search/variables_7.js new file mode 100644 index 000000000..bfc5e741c --- /dev/null +++ b/search/variables_7.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['root_5ffile_5fsystem_188',['root_file_system',['../classElf.html#a2401458a0b098dcccfa120bb64c12afd',1,'Elf']]] +]; diff --git a/search/variables_8.html b/search/variables_8.html new file mode 100644 index 000000000..dc9ec54a5 --- /dev/null +++ b/search/variables_8.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_8.js b/search/variables_8.js new file mode 100644 index 000000000..1c2fdf2c1 --- /dev/null +++ b/search/variables_8.js @@ -0,0 +1,6 @@ +var searchData= +[ + ['section_5fbuf_5fsize_189',['SECTION_BUF_SIZE',['../classElf.html#aead66f632e243546cc5cef1a654b404e',1,'Elf']]], + ['shdr_190',['shdr',['../classElf.html#a6a780ca4b86b353ef42ac64f9d64c845',1,'Elf']]], + ['shstrtab_5fbuf_191',['shstrtab_buf',['../classElf.html#a87eb8da130b534167a0e4a0047d78d18',1,'Elf']]] +]; diff --git a/search/variables_9.html b/search/variables_9.html new file mode 100644 index 000000000..7b0147509 --- /dev/null +++ b/search/variables_9.html @@ -0,0 +1,37 @@ + + + + + + + + + + +
    +
    Loading...
    +
    + +
    Searching...
    +
    No Matches
    + +
    + + diff --git a/search/variables_9.js b/search/variables_9.js new file mode 100644 index 000000000..4c580fcea --- /dev/null +++ b/search/variables_9.js @@ -0,0 +1,4 @@ +var searchData= +[ + ['value_192',['value',['../structsbiret__t.html#a78449f5d7934aa1a6cd54351b16cc00d',1,'sbiret_t']]] +]; diff --git a/splitbar.png b/splitbar.png new file mode 100644 index 0000000000000000000000000000000000000000..fe895f2c58179b471a22d8320b39a4bd7312ec8e GIT binary patch literal 314 zcmeAS@N?(olHy`uVBq!ia0vp^Yzz!63>-{AmhX=Jf(#6djGiuzAr*{o?=JLmPLyc> z_*`QK&+BH@jWrYJ7>r6%keRM@)Qyv8R=enp0jiI>aWlGyB58O zFVR20d+y`K7vDw(hJF3;>dD*3-?v=<8M)@x|EEGLnJsniYK!2U1 Y!`|5biEc?d1`HDhPgg&ebxsLQ02F6;9RL6T literal 0 HcmV?d00001 diff --git a/src_2boot_2boot_8cpp.html b/src_2boot_2boot_8cpp.html new file mode 100644 index 000000000..120930118 --- /dev/null +++ b/src_2boot_2boot_8cpp.html @@ -0,0 +1,303 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/boot/boot.cpp File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    boot.cpp File Reference
    +
    +
    + +

    boot cpp +More...

    +
    #include <exception>
    +#include <stdexcept>
    +#include "load_elf.h"
    +#include "ostream.hpp"
    +#include "project_config.h"
    +
    +Include dependency graph for boot.cpp:
    +
    +
    + + + + + + + + + + + + + + + +
    +
    +

    Go to the source code of this file.

    + + + + +

    +Functions

    EFI_STATUS EFIAPI efi_main (EFI_HANDLE _image_handle, [[maybe_unused]] EFI_SYSTEM_TABLE *_system_table)
     
    + + + +

    +Variables

    uintptr_t ImageBase = 0
     
    +

    Detailed Description

    +

    boot cpp

    +
    Author
    Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
    +
    Version
    1.0
    +
    Date
    2023-07-15
    + +
    change log:
    + + + + +
    DateAuthorDescription
    2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
    +
    + +

    Definition in file boot.cpp.

    +

    Function Documentation

    + +

    ◆ efi_main()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    EFI_STATUS EFIAPI efi_main (EFI_HANDLE _image_handle,
    [[maybe_unused] ] EFI_SYSTEM_TABLE * _system_table 
    )
    +
    + +

    Definition at line 27 of file boot.cpp.

    +
    28  {
    +
    29  EFI_STATUS status = EFI_SUCCESS;
    +
    30  uint64_t kernel_addr = 0;
    +
    31  try {
    +
    32  // 输出 efi 信息
    +
    33  EFI_LOADED_IMAGE *loaded_image = nullptr;
    +
    34  status = LibLocateProtocol(&LoadedImageProtocol,
    +
    35  reinterpret_cast<void **>(&loaded_image));
    +
    36  if (EFI_ERROR(status)) {
    +
    37  debug << L"LibLocateProtocol: " << status << ostream::endl;
    +
    38  }
    +
    39 
    +
    40  debug << L"Revision: " << ostream::hex_X << loaded_image->Revision
    +
    41  << ostream::endl;
    +
    42  debug << L"ParentHandle: " << ostream::hex_X
    +
    43  << loaded_image->ParentHandle << ostream::endl;
    +
    44  debug << L"SystemTable: " << ostream::hex_X << loaded_image->SystemTable
    +
    45  << ostream::endl;
    +
    46  debug << L"DeviceHandle: " << ostream::hex_X
    +
    47  << loaded_image->DeviceHandle << ostream::endl;
    +
    48  debug << L"FilePath: " << ostream::hex_X << loaded_image->FilePath
    +
    49  << ostream::endl;
    +
    50  debug << L"Reserved: " << ostream::hex_X << loaded_image->Reserved
    +
    51  << ostream::endl;
    +
    52  debug << L"LoadOptionsSize: " << ostream::hex_X
    +
    53  << loaded_image->LoadOptionsSize << ostream::endl;
    +
    54  debug << L"LoadOptions: " << ostream::hex_X << loaded_image->LoadOptions
    +
    55  << ostream::endl;
    +
    56  debug << L"ImageBase: " << ostream::hex_X << loaded_image->ImageBase
    +
    57  << ostream::endl;
    +
    58  debug << L"ImageSize: " << ostream::hex_X << loaded_image->ImageSize
    +
    59  << ostream::endl;
    +
    60  debug << L"ImageCodeType: " << ostream::hex_X
    +
    61  << loaded_image->ImageCodeType << ostream::endl;
    +
    62  debug << L"ImageDataType: " << ostream::hex_X
    +
    63  << loaded_image->ImageDataType << ostream::endl;
    +
    64  debug << L"Unload: " << ostream::hex_X << loaded_image->Unload
    +
    65  << ostream::endl;
    +
    66 
    +
    67  // 初始化 Graphics
    +
    68  auto graphics = Graphics();
    +
    69  // 打印图形信息
    +
    70  graphics.print_info();
    +
    71  // 设置为 1920*1080
    +
    72  graphics.set_mode();
    +
    73  // 初始化 Memory
    +
    74  auto memory = Memory();
    +
    75  memory.print_info();
    +
    76  // 加载内核
    +
    77  auto elf = Elf(KERNEL_NAME);
    +
    78  // kernel_addr = elf.load_kernel_image();
    +
    79  kernel_addr = elf.load();
    +
    80  } catch (const std::exception &_e) {
    +
    81  debug << L"Fatal Error: " << _e.what() << ostream::endl;
    +
    82  return EFI_LOAD_ERROR;
    +
    83  }
    +
    84  debug << L"Set Kernel Entry Point to: [" << ostream::hex_X << kernel_addr
    +
    85  << L"]" << ostream::endl;
    +
    86  // 退出 boot service
    +
    87  uint64_t desc_count = 0;
    +
    88  EFI_MEMORY_DESCRIPTOR *memory_map = nullptr;
    +
    89  uint64_t map_key = 0;
    +
    90  uint64_t desc_size = 0;
    +
    91  uint32_t desc_version = 0;
    +
    92  memory_map = LibMemoryMap(&desc_count, &map_key, &desc_size, &desc_version);
    +
    93  if (memory_map == nullptr) {
    +
    94  debug << L"LibMemoryMap failed: memory_map == nullptr" << ostream::endl;
    +
    95  throw std::runtime_error("memory_map == nullptr");
    +
    96  }
    +
    97  status = uefi_call_wrapper(gBS->ExitBootServices, 2, _image_handle, map_key);
    +
    98  if (EFI_ERROR(status)) {
    +
    99  debug << L"ExitBootServices failed, Memory Map has Changed " << status
    +
    100  << ostream::endl;
    +
    101  }
    +
    102 
    +
    103  auto kernel_entry = (void (*)())kernel_addr;
    +
    104  kernel_entry();
    +
    105 
    +
    106  return EFI_SUCCESS;
    +
    107 }
    +
    Definition: load_elf.h:131
    + + +
    static auto endl(ostream &_ostream) -> ostream &
    Definition: ostream.cpp:42
    +
    static auto hex_X(ostream &_ostream) -> ostream &
    Definition: ostream.cpp:37
    +
    static ostream debug
    全局输出流
    Definition: ostream.hpp:194
    +
    #define KERNEL_NAME
    +
    +Here is the call graph for this function:
    +
    +
    + + + + + +
    + +
    +
    +

    Variable Documentation

    + +

    ◆ ImageBase

    + +
    +
    + + + + +
    uintptr_t ImageBase = 0
    +
    + +

    Definition at line 24 of file boot.cpp.

    + +
    +
    +
    +
    + + + + diff --git a/src_2boot_2boot_8cpp.js b/src_2boot_2boot_8cpp.js new file mode 100644 index 000000000..52801bb82 --- /dev/null +++ b/src_2boot_2boot_8cpp.js @@ -0,0 +1,5 @@ +var src_2boot_2boot_8cpp = +[ + [ "efi_main", "src_2boot_2boot_8cpp.html#a888070898d2d56fa4c1654a3c8409719", null ], + [ "ImageBase", "src_2boot_2boot_8cpp.html#a3c37e763c85d8c042a579e38a938e53e", null ] +]; \ No newline at end of file diff --git a/src_2boot_2boot_8cpp__incl.map b/src_2boot_2boot_8cpp__incl.map new file mode 100644 index 000000000..9e76b5b8a --- /dev/null +++ b/src_2boot_2boot_8cpp__incl.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/src_2boot_2boot_8cpp__incl.md5 b/src_2boot_2boot_8cpp__incl.md5 new file mode 100644 index 000000000..11f6e32a7 --- /dev/null +++ b/src_2boot_2boot_8cpp__incl.md5 @@ -0,0 +1 @@ +6925502c333940a5942d947c0f1e43e9 \ No newline at end of file diff --git a/src_2boot_2boot_8cpp__incl.png b/src_2boot_2boot_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..050455cd921af0b4a1ac0e41e983310a144995a6 GIT binary patch literal 22674 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

    ?#8(XV4O!h#T2Wk!h+UfJbtRfIj0HFc&YYdEE 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 Ct`|rE literal 0 HcmV?d00001 diff --git a/src_2boot_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.map b/src_2boot_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.map new file mode 100644 index 000000000..fb23e87c5 --- /dev/null +++ b/src_2boot_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/src_2boot_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.md5 b/src_2boot_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.md5 new file mode 100644 index 000000000..3a82e714d --- /dev/null +++ b/src_2boot_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.md5 @@ -0,0 +1 @@ +c919a711eb6c38a48a716051eed472e4 \ No newline at end of file diff --git a/src_2boot_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.png b/src_2boot_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..f32593b5044885ba6f93c10a17d5edf2517fe0a1 GIT binary patch literal 4850 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 PBjBdC0rH)uZN&coL + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/boot/boot.cpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    boot.cpp
    +
    +
    +Go to the documentation of this file.
    1 
    +
    17 #include <exception>
    +
    18 #include <stdexcept>
    +
    19 
    +
    20 #include "load_elf.h"
    +
    21 #include "ostream.hpp"
    +
    22 #include "project_config.h"
    +
    23 
    +
    24 uintptr_t ImageBase = 0;
    +
    25 
    +
    26 extern "C" [[maybe_unused]] EFI_STATUS EFIAPI
    +
    27 efi_main(EFI_HANDLE _image_handle,
    +
    28  [[maybe_unused]] EFI_SYSTEM_TABLE *_system_table) {
    +
    29  EFI_STATUS status = EFI_SUCCESS;
    +
    30  uint64_t kernel_addr = 0;
    +
    31  try {
    +
    32  // 输出 efi 信息
    +
    33  EFI_LOADED_IMAGE *loaded_image = nullptr;
    +
    34  status = LibLocateProtocol(&LoadedImageProtocol,
    +
    35  reinterpret_cast<void **>(&loaded_image));
    +
    36  if (EFI_ERROR(status)) {
    +
    37  debug << L"LibLocateProtocol: " << status << ostream::endl;
    +
    38  }
    +
    39 
    +
    40  debug << L"Revision: " << ostream::hex_X << loaded_image->Revision
    +
    41  << ostream::endl;
    +
    42  debug << L"ParentHandle: " << ostream::hex_X
    +
    43  << loaded_image->ParentHandle << ostream::endl;
    +
    44  debug << L"SystemTable: " << ostream::hex_X << loaded_image->SystemTable
    +
    45  << ostream::endl;
    +
    46  debug << L"DeviceHandle: " << ostream::hex_X
    +
    47  << loaded_image->DeviceHandle << ostream::endl;
    +
    48  debug << L"FilePath: " << ostream::hex_X << loaded_image->FilePath
    +
    49  << ostream::endl;
    +
    50  debug << L"Reserved: " << ostream::hex_X << loaded_image->Reserved
    +
    51  << ostream::endl;
    +
    52  debug << L"LoadOptionsSize: " << ostream::hex_X
    +
    53  << loaded_image->LoadOptionsSize << ostream::endl;
    +
    54  debug << L"LoadOptions: " << ostream::hex_X << loaded_image->LoadOptions
    +
    55  << ostream::endl;
    +
    56  debug << L"ImageBase: " << ostream::hex_X << loaded_image->ImageBase
    +
    57  << ostream::endl;
    +
    58  debug << L"ImageSize: " << ostream::hex_X << loaded_image->ImageSize
    +
    59  << ostream::endl;
    +
    60  debug << L"ImageCodeType: " << ostream::hex_X
    +
    61  << loaded_image->ImageCodeType << ostream::endl;
    +
    62  debug << L"ImageDataType: " << ostream::hex_X
    +
    63  << loaded_image->ImageDataType << ostream::endl;
    +
    64  debug << L"Unload: " << ostream::hex_X << loaded_image->Unload
    +
    65  << ostream::endl;
    +
    66 
    +
    67  // 初始化 Graphics
    +
    68  auto graphics = Graphics();
    +
    69  // 打印图形信息
    +
    70  graphics.print_info();
    +
    71  // 设置为 1920*1080
    +
    72  graphics.set_mode();
    +
    73  // 初始化 Memory
    +
    74  auto memory = Memory();
    +
    75  memory.print_info();
    +
    76  // 加载内核
    +
    77  auto elf = Elf(KERNEL_NAME);
    +
    78  // kernel_addr = elf.load_kernel_image();
    +
    79  kernel_addr = elf.load();
    +
    80  } catch (const std::exception &_e) {
    +
    81  debug << L"Fatal Error: " << _e.what() << ostream::endl;
    +
    82  return EFI_LOAD_ERROR;
    +
    83  }
    +
    84  debug << L"Set Kernel Entry Point to: [" << ostream::hex_X << kernel_addr
    +
    85  << L"]" << ostream::endl;
    +
    86  // 退出 boot service
    +
    87  uint64_t desc_count = 0;
    +
    88  EFI_MEMORY_DESCRIPTOR *memory_map = nullptr;
    +
    89  uint64_t map_key = 0;
    +
    90  uint64_t desc_size = 0;
    +
    91  uint32_t desc_version = 0;
    +
    92  memory_map = LibMemoryMap(&desc_count, &map_key, &desc_size, &desc_version);
    +
    93  if (memory_map == nullptr) {
    +
    94  debug << L"LibMemoryMap failed: memory_map == nullptr" << ostream::endl;
    +
    95  throw std::runtime_error("memory_map == nullptr");
    +
    96  }
    +
    97  status = uefi_call_wrapper(gBS->ExitBootServices, 2, _image_handle, map_key);
    +
    98  if (EFI_ERROR(status)) {
    +
    99  debug << L"ExitBootServices failed, Memory Map has Changed " << status
    +
    100  << ostream::endl;
    +
    101  }
    +
    102 
    +
    103  auto kernel_entry = (void (*)())kernel_addr;
    +
    104  kernel_entry();
    +
    105 
    +
    106  return EFI_SUCCESS;
    +
    107 }
    +
    Definition: load_elf.h:131
    + + +
    static auto endl(ostream &_ostream) -> ostream &
    Definition: ostream.cpp:42
    +
    static auto hex_X(ostream &_ostream) -> ostream &
    Definition: ostream.cpp:37
    +
    load_elf h
    +
    ostream hpp
    +
    static ostream debug
    全局输出流
    Definition: ostream.hpp:194
    +
    project_config 头文件,此文件由 cmake 自动生成,不要手动修改
    +
    #define KERNEL_NAME
    +
    uintptr_t ImageBase
    Definition: boot.cpp:24
    +
    EFI_STATUS EFIAPI efi_main(EFI_HANDLE _image_handle, [[maybe_unused]] EFI_SYSTEM_TABLE *_system_table)
    Definition: boot.cpp:27
    +
    +
    + + + + diff --git a/src_2kernel_2main_8cpp.html b/src_2kernel_2main_8cpp.html new file mode 100644 index 000000000..4e12ae5c7 --- /dev/null +++ b/src_2kernel_2main_8cpp.html @@ -0,0 +1,200 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/main.cpp File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    main.cpp File Reference
    +
    +
    + +

    内核入口 +More...

    +
    #include "kernel.h"
    +
    +Include dependency graph for main.cpp:
    +
    +
    + + + + + +
    +
    +

    Go to the source code of this file.

    + + + + + +

    +Functions

    int main (int _argc, char **_argv)
     入口 More...
     
    +

    Detailed Description

    +

    内核入口

    +
    Author
    Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
    +
    Version
    1.0
    +
    Date
    2023-07-15
    + +
    change log:
    + + + + +
    DateAuthorDescription
    2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
    +
    + +

    Definition in file main.cpp.

    +

    Function Documentation

    + +

    ◆ main()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    int main (int _argc,
    char ** _argv 
    )
    +
    + +

    入口

    +

    内核入口

    +
    Parameters
    + + + +
    _argc参数个数
    _argv参数列表
    +
    +
    +
    Returns
    int 正常返回 0
    + +

    Definition at line 19 of file main.cpp.

    +
    19  {
    +
    20  (void)_argc;
    +
    21  (void)_argv;
    +
    22 
    +
    23  // 进入死循环
    +
    24  while (1) {
    +
    25  ;
    +
    26  }
    +
    27  return 0;
    +
    28 }
    +
    +Here is the caller graph for this function:
    +
    +
    + + + + +
    + +
    +
    +
    +
    + + + + diff --git a/src_2kernel_2main_8cpp.js b/src_2kernel_2main_8cpp.js new file mode 100644 index 000000000..e1e8438cd --- /dev/null +++ b/src_2kernel_2main_8cpp.js @@ -0,0 +1,4 @@ +var src_2kernel_2main_8cpp = +[ + [ "main", "src_2kernel_2main_8cpp.html#a2201d4f3fe424b79dbb580041d738741", null ] +]; \ No newline at end of file diff --git a/src_2kernel_2main_8cpp__incl.map b/src_2kernel_2main_8cpp__incl.map new file mode 100644 index 000000000..cb8672ed7 --- /dev/null +++ b/src_2kernel_2main_8cpp__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/src_2kernel_2main_8cpp__incl.md5 b/src_2kernel_2main_8cpp__incl.md5 new file mode 100644 index 000000000..1c6b08721 --- /dev/null +++ b/src_2kernel_2main_8cpp__incl.md5 @@ -0,0 +1 @@ +f582299289c052c8796695ce25f8e4c2 \ No newline at end of file diff --git a/src_2kernel_2main_8cpp__incl.png b/src_2kernel_2main_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..a7dbdddc6d9850bdb427637ce651d44237b0bbfc GIT binary patch literal 5731 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 bU0xR{Az~m}eH0C*#yF} + + + diff --git a/src_2kernel_2main_8cpp_a2201d4f3fe424b79dbb580041d738741_icgraph.md5 b/src_2kernel_2main_8cpp_a2201d4f3fe424b79dbb580041d738741_icgraph.md5 new file mode 100644 index 000000000..31d63be51 --- /dev/null +++ b/src_2kernel_2main_8cpp_a2201d4f3fe424b79dbb580041d738741_icgraph.md5 @@ -0,0 +1 @@ +aebbbbe86027fc037ea3bcf2e149b9d9 \ No newline at end of file diff --git a/src_2kernel_2main_8cpp_a2201d4f3fe424b79dbb580041d738741_icgraph.png b/src_2kernel_2main_8cpp_a2201d4f3fe424b79dbb580041d738741_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..47d49a1cc719bf7e175aae527e1889fedb0b0c99 GIT binary patch literal 1588 zcmV-42Fv-0P)LTgYtKY&IOnXEcEiv)R0alD-HW$LW?3j8rPEsHmV@#cX6}X9u;w zng9Y#0D&fe0B8aTfF}4FIehr=ty{M!Ot`ov*tl`y#ful0CTj6`@Zd#JQB!B-P3;>Xqmxmw-ilP#Uq`JD=e~O)wl2Tq?o|Tm) z5C{+i35r@akRLxzUAxw=)iz3{dE&&0?Ck8VTes?Ty33a@``ZJTgTlf>lgXsl>lF&czJ2>1J$e*|9%@W5 zJUm=lT6*Qmm9eq0y1KfSmKFd&YinzIdisS67f6!yZSCE>d6Oi`>FH^U#nRN&0YB*VNRClP9kY42&)`&%Jy1ii?Xa7K>CW zEiEl|I2nd$@wm?DwS&8x^)l9Q7^?`AfeYinzVhlf9W_y7Qq%jNz@adC0s4gK_K^y<~WgcnN* zJ~zC4=`*YM z06(@G+uD!i| z+qP|dKL6agbFHnd{-+3n_^$(_=48#9_cb*?Q!<5_7#jNP?AfkaIxrXvkH@oqy~yQy zhN7c$I$%D$d-txYs;aWGGA%6)!?3GYug2&t=^w6zhVT3S&Mx$AJ9bvQF{wgy#I9OR(NweQ0000 + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/main.cpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    main.cpp
    +
    +
    +Go to the documentation of this file.
    1 
    +
    17 #include "kernel.h"
    +
    18 
    +
    19 int main(int _argc, char **_argv) {
    +
    20  (void)_argc;
    +
    21  (void)_argv;
    +
    22 
    +
    23  // 进入死循环
    +
    24  while (1) {
    +
    25  ;
    +
    26  }
    +
    27  return 0;
    +
    28 }
    +
    内核头文件
    +
    int main(int _argc, char **_argv)
    入口
    Definition: main.cpp:19
    +
    +
    + + + + diff --git a/structsbiret__t-members.html b/structsbiret__t-members.html new file mode 100644 index 000000000..562ff24a2 --- /dev/null +++ b/structsbiret__t-members.html @@ -0,0 +1,103 @@ + + + + + + + +SimpleKernel: Member List + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    sbiret_t Member List
    +
    +
    + +

    This is the complete list of members for sbiret_t, including all inherited members.

    + + + +
    errorsbiret_t
    valuesbiret_t
    +
    + + + + diff --git a/structsbiret__t.html b/structsbiret__t.html new file mode 100644 index 000000000..5ec6291f9 --- /dev/null +++ b/structsbiret__t.html @@ -0,0 +1,164 @@ + + + + + + + +SimpleKernel: sbiret_t Struct Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    sbiret_t Struct Reference
    +
    +
    +
    +Collaboration diagram for sbiret_t:
    +
    +
    Collaboration graph
    + + + +
    + + + + + + + + +

    +Public Attributes

    long error
     错误码 More...
     
    long value
     返回值 More...
     
    +

    Detailed Description

    +
    +

    Definition at line 25 of file arch.cpp.

    +

    Member Data Documentation

    + +

    ◆ error

    + +
    +
    + + + + +
    long sbiret_t::error
    +
    + +

    错误码

    + +

    Definition at line 27 of file arch.cpp.

    + +
    +
    + +

    ◆ value

    + +
    +
    + + + + +
    long sbiret_t::value
    +
    + +

    返回值

    + +

    Definition at line 29 of file arch.cpp.

    + +
    +
    +
    The documentation for this struct was generated from the following files:
      +
    • /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/arch/riscv64/arch.cpp
    • +
    • /home/runner/work/SimpleKernel/SimpleKernel/test/system_test/opensbi_test/boot.cpp
    • +
    +
    +
    + + + + diff --git a/structsbiret__t.js b/structsbiret__t.js new file mode 100644 index 000000000..4a0ac0278 --- /dev/null +++ b/structsbiret__t.js @@ -0,0 +1,5 @@ +var structsbiret__t = +[ + [ "error", "structsbiret__t.html#a907730633f8936f3e11a4a10aa8a8442", null ], + [ "value", "structsbiret__t.html#a78449f5d7934aa1a6cd54351b16cc00d", null ] +]; \ No newline at end of file diff --git a/structsbiret__t__coll__graph.map b/structsbiret__t__coll__graph.map new file mode 100644 index 000000000..21ef4c048 --- /dev/null +++ b/structsbiret__t__coll__graph.map @@ -0,0 +1,3 @@ + + + diff --git a/structsbiret__t__coll__graph.md5 b/structsbiret__t__coll__graph.md5 new file mode 100644 index 000000000..ca226efc4 --- /dev/null +++ b/structsbiret__t__coll__graph.md5 @@ -0,0 +1 @@ +722734abf0656950b77be60005de4237 \ No newline at end of file diff --git a/structsbiret__t__coll__graph.png b/structsbiret__t__coll__graph.png new file mode 100644 index 0000000000000000000000000000000000000000..9cb661b176fe8ed4b4dae3f3105a1055e46ed320 GIT binary patch literal 2109 zcmbuBdonlz+xncOO&;^4)hG|VK&NyH$dGUga6 zGe<_Lj9fZ0Eip6hA~OsVA`;GYa(REwdEbBDf8Vvgd+)XO+WUFd+WYf-*Ut9AdO#Im z3IG5=y*$x4aP|ZHML7sKJ|LZM11CtBw+9;7+-l`bRRsVbyX1vF?3Y|NUl#1?dsVNa znQ}Gq%*jYQQ}g)cT)EYXrda>-N1Ajq8WY!BgRa0?i969j(xzvMYAwy}?VsI6nF=tS zlvmakZ5FEfzQqCcw);PB!kyErMm{VL(wEYh&jl&n3u~)i4}FT^rWnXL-N(v8bWnj> zwY(5icIe-F`Vba*=~63s-|3i>oovzQ%lM&}@m2VkQr?#@R|?7G(1o!k|9vsYrMY1{ z^wFd1!PCX^Kjr^?94$U&j^PvuG^$$qC#Z?aa!w!4XzCLE%_pP!pK8Sdz)?d9bqSsc$CTV*mW zO-xOV?CmvnpLl={4AgDDJiFIWS9eDxE_-q^f=DEmzkY4-=FJ-pm+O&`VBgl(mRD4C z^Yv>aa3jdlBQ+Ia8T?8*SCm&$5?SZ(JrbC~w^}XY_4a1!I$ROX_CHa{X`h~+b_)*H zPfJUa93+#;d7V?>V)F8|Dh`M9@$(~AdKbgqpFMR-=4DVWRQI6U9u2sQi$0A;<8*eu zxohej`(yPoC&E@^=gzHlbF#wt__&;s(nfSs(enoBy9QAgFUqE-roMRbqJ_^_1@od& zs0=*iNS0FT;GmYJrDYzbGB!T`NPIktUk08Xs=uU8L>bw`prxgyvEywr$;rtr?d>x1 z^71~9{HEvTev`;W$)P5 zNLydOT_SN5(Cg~d7z~Ewt4J1u!IbkOYoiA(Sxb$LjmFm2Dhebi7Z(?89i7%6e=Zmm zyj%P{Xa%&?o$p+n>D~S7?c4Xry*;a9RL_xX*RJvTd_rNNM%u=j4jzx^a5y(uEIWZ% z*qZ5MPL@c%8aunVaOB1rwh= zHiq}C#AS|TWMt%(mj1=fZQ4cp1r4VJ*A4AG@elD^(DNy{@Nk-D=NU(B%~CS?e3#Qs zMR!u&ISf5iUB5>9@5=bk?w7pQ*28ln4R@U8*@P9Juoz^TgR`?Dh_qOIA#HO*Kk#|X z;h%o8^{+XzP00N%OCRyCas~rBKR@r7zTx~!PEJ+(+S*#|{D%YV>+3L}_VUQVvP1C@ zCX?y@&C^6}i5vdSpp-({LB^2SZ0EwFqOktQr}ExKl&nS2A3s)zi;GKMlh{~=Mp@X| zsRuB2Vk*^0BoZ&up7ZVLX^H#b*EOiWDw$Q_keEZFUG%=*xPK%k63Aa0@INb$^!ypU^n8C4CQ8d`=$bxT9s z(t9$gC5?>;&{lW?0oU925$LE64h{t=)lX**^p(jgiiP9j1V&&3+{#LM`}XbA3kx3C zuOpvd6?FfJjSl_RxF#^OF7bAEhcM4I=a!Uc%SlT~e*6$E&-89qM~P~)mF$Se6Kd6t z?Xdy%4L=D|Sfwp*JKJ0bPxv0v&NeM_Q2qF^6fm9O)YsRy%fuw&XDZ4FG_cr7jw(C(YnXdtKzLKZ@vH?v*h1J2 zK5OeE->OA%mu}>~&= zf+-oPZD6hV;PJU&=+F1R7#kb&W)jZSN2==S=`DWwh!|~77eu^H{5(K?^$G^^2iEx> z3yaBylTfYFHnEEakdc{r5;WfaC#S>L|5`~4GEp-^A`OOzhb61?x_^Y(tj-N*He40J zx-<<9l|fKB9M77dmugwch69bCeW6;gOsJqsY1lu#Qm1WT?^$`X zLhb)kH15=Gm!u0N7d{j&K6qfjPW#^Dzw&+`=&-`6sY)%1S)mPL=)ix|qyqF}x{bwz Z>;5<=!E8(73-CVxcpb%}nW&JAe*@H??a2TD literal 0 HcmV?d00001 diff --git a/sync_off.png b/sync_off.png new file mode 100644 index 0000000000000000000000000000000000000000..3b443fc62892114406e3d399421b2a881b897acc GIT binary patch literal 853 zcmV-b1FHOqP)oT|#XixUYy%lpuf3i8{fX!o zUyDD0jOrAiT^tq>fLSOOABs-#u{dV^F$b{L9&!2=9&RmV;;8s^x&UqB$PCj4FdKbh zoB1WTskPUPu05XzFbA}=KZ-GP1fPpAfSs>6AHb12UlR%-i&uOlTpFNS7{jm@mkU1V zh`nrXr~+^lsV-s1dkZOaI|kYyVj3WBpPCY{n~yd%u%e+d=f%`N0FItMPtdgBb@py; zq@v6NVArhyTC7)ULw-Jy8y42S1~4n(3LkrW8mW(F-4oXUP3E`e#g**YyqI7h-J2zK zK{m9##m4ri!7N>CqQqCcnI3hqo1I;Yh&QLNY4T`*ptiQGozK>FF$!$+84Z`xwmeMh zJ0WT+OH$WYFALEaGj2_l+#DC3t7_S`vHpSivNeFbP6+r50cO8iu)`7i%Z4BTPh@_m3Tk!nAm^)5Bqnr%Ov|Baunj#&RPtRuK& z4RGz|D5HNrW83-#ydk}tVKJrNmyYt-sTxLGlJY5nc&Re zU4SgHNPx8~Yxwr$bsju?4q&%T1874xxzq+_%?h8_ofw~(bld=o3iC)LUNR*BY%c0y zWd_jX{Y8`l%z+ol1$@Qa?Cy!(0CVIEeYpKZ`(9{z>3$CIe;pJDQk$m3p}$>xBm4lb zKo{4S)`wdU9Ba9jJbVJ0C=SOefZe%d$8=2r={nu<_^a3~>c#t_U6dye5)JrR(_a^E f@}b6j1K9lwFJq@>o)+Ry00000NkvXXu0mjfWa5j* literal 0 HcmV?d00001 diff --git a/sync_on.png b/sync_on.png new file mode 100644 index 0000000000000000000000000000000000000000..e08320fb64e6fa33b573005ed6d8fe294e19db76 GIT binary patch literal 845 zcmV-T1G4;yP)Y;xxyHF2B5Wzm| zOOGupOTn@c(JmBOl)e;XMNnZuiTJP>rM8<|Q`7I_))aP?*T)ow&n59{}X4$3Goat zgjs?*aasfbrokzG5cT4K=uG`E14xZl@z)F={P0Y^?$4t z>v!teRnNZym<6h{7sLyF1V0HsfEl+l6TrZpsfr1}luH~F7L}ktXu|*uVX^RG$L0`K zWs3j|0tIvVe(N%_?2{(iCPFGf#B6Hjy6o&}D$A%W%jfO8_W%ZO#-mh}EM$LMn7joJ z05dHr!5Y92g+31l<%i1(=L1a1pXX+OYnalY>31V4K}BjyRe3)9n#;-cCVRD_IG1fT zOKGeNY8q;TL@K{dj@D^scf&VCs*-Jb>8b>|`b*osv52-!A?BpbYtTQBns5EAU**$m zSnVSm(teh>tQi*S*A>#ySc=n;`BHz`DuG4&g4Kf8lLhca+zvZ7t7RflD6-i-mcK=M z!=^P$*u2)bkY5asG4gsss!Hn%u~>}kIW`vMs%lJLH+u*9<4PaV_c6U`KqWXQH%+Nu zTv41O(^ZVi@qhjQdG!fbZw&y+2o!iYymO^?ud3{P*HdoX83YV*Uu_HB=?U&W9%AU# z80}k1SS-CXTU7dcQlsm<^oYLxVSseqY6NO}dc`Nj?8vrhNuCdm@^{a3AQ_>6myOj+ z`1RsLUXF|dm|3k7s2jD(B{rzE>WI2scH8i1;=O5Cc9xB3^aJk%fQjqsu+kH#0=_5a z0nCE8@dbQa-|YIuUVvG0L_IwHMEhOj$Mj4Uq05 X8=0q~qBNan00000NkvXXu0mjfptF>5 literal 0 HcmV?d00001 diff --git a/tab_a.png b/tab_a.png new file mode 100644 index 0000000000000000000000000000000000000000..3b725c41c5a527a3a3e40097077d0e206a681247 GIT binary patch literal 142 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QlXwMjv*C{Z|8b*H5dputLHD# z=<0|*y7z(Vor?d;H&?EG&cXR}?!j-Lm&u1OOI7AIF5&c)RFE;&p0MYK>*Kl@eiymD r@|NpwKX@^z+;{u_Z~trSBfrMKa%3`zocFjEXaR$#tDnm{r-UW|TZ1%4 literal 0 HcmV?d00001 diff --git a/tab_b.png b/tab_b.png new file mode 100644 index 0000000000000000000000000000000000000000..e2b4a8638cb3496a016eaed9e16ffc12846dea18 GIT binary patch literal 169 zcmeAS@N?(olHy`uVBq!ia0vp^j6kfy!2~3aiye;!QU#tajv*C{Z}0l@H7kg?K0Lnr z!j&C6_(~HV9oQ0Pa6x{-v0AGV_E?vLn=ZI-;YrdjIl`U`uzuDWSP?o#Dmo{%SgM#oan kX~E1%D-|#H#QbHoIja2U-MgvsK&LQxy85}Sb4q9e0Efg%P5=M^ literal 0 HcmV?d00001 diff --git a/tabs.css b/tabs.css new file mode 100644 index 000000000..7d45d36c1 --- /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:0px/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}.sm-dox{background-image:url("tab_b.png")}.sm-dox a,.sm-dox a:focus,.sm-dox a:hover,.sm-dox a:active{padding:0px 12px;padding-right:43px;font-family:"Lucida Grande","Geneva","Helvetica",Arial,sans-serif;font-size:13px;font-weight:bold;line-height:36px;text-decoration:none;text-shadow:0px 1px 1px rgba(255,255,255,0.9);color:#283A5D;outline:none}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.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:rgba(255,255,255,0.5);border-radius:5px}.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{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{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{border-radius:0}.sm-dox ul{background:rgba(162,162,162,0.1)}.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:white;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.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:url("tab_b.png");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:#283A5D transparent transparent transparent;background:transparent;border-radius:0}.sm-dox a,.sm-dox a:focus,.sm-dox a:active,.sm-dox a:hover,.sm-dox a.highlighted{padding:0px 12px;background-image:url("tab_s.png");background-repeat:no-repeat;background-position:right;border-radius:0 !important}.sm-dox a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox a:hover span.sub-arrow{border-color:#fff 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 #fff transparent}.sm-dox ul{border:1px solid #bbb;padding:5px 0;background:#fff;border-radius:5px !important;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 #555;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:#555;background-image:none;border:0 !important;color:#555;background-image:none}.sm-dox ul a:hover{background-image:url("tab_a.png");background-repeat:repeat-x;color:#fff;text-shadow:0px 1px 1px #000}.sm-dox ul a:hover span.sub-arrow{border-color:transparent transparent transparent #fff}.sm-dox span.scroll-up,.sm-dox span.scroll-down{position:absolute;display:none;visibility:hidden;overflow:hidden;background:#fff;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 #555 transparent}.sm-dox span.scroll-down-arrow{top:8px;border-style:solid dashed dashed dashed;border-color:#555 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;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:url("tab_b.png")}.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:#fff}} diff --git a/test_2system__test_2gnu__efi__test_2README_8md.html b/test_2system__test_2gnu__efi__test_2README_8md.html new file mode 100644 index 000000000..9efed7dfa --- /dev/null +++ b/test_2system__test_2gnu__efi__test_2README_8md.html @@ -0,0 +1,99 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/test/system_test/gnu_efi_test/README.md File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    /home/runner/work/SimpleKernel/SimpleKernel/test/system_test/gnu_efi_test/README.md File Reference
    +
    +
    +
    +
    + + + + diff --git a/test_2system__test_2gnu__efi__test_2boot_8cpp.html b/test_2system__test_2gnu__efi__test_2boot_8cpp.html new file mode 100644 index 000000000..83262f5bf --- /dev/null +++ b/test_2system__test_2gnu__efi__test_2boot_8cpp.html @@ -0,0 +1,303 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/test/system_test/gnu_efi_test/boot.cpp File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    boot.cpp File Reference
    +
    +
    + +

    boot cpp +More...

    +
    #include <exception>
    +#include <stdexcept>
    +#include "load_elf.h"
    +#include "ostream.hpp"
    +#include "project_config.h"
    +
    +Include dependency graph for boot.cpp:
    +
    +
    + + + + + + + + + + + + + + + +
    +
    +

    Go to the source code of this file.

    + + + + +

    +Functions

    EFI_STATUS EFIAPI efi_main (EFI_HANDLE _image_handle, [[maybe_unused]] EFI_SYSTEM_TABLE *_system_table)
     
    + + + +

    +Variables

    uintptr_t ImageBase = 0
     
    +

    Detailed Description

    +

    boot cpp

    +
    Author
    Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
    +
    Version
    1.0
    +
    Date
    2023-07-15
    + +
    change log:
    + + + + +
    DateAuthorDescription
    2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
    +
    + +

    Definition in file boot.cpp.

    +

    Function Documentation

    + +

    ◆ efi_main()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    EFI_STATUS EFIAPI efi_main (EFI_HANDLE _image_handle,
    [[maybe_unused] ] EFI_SYSTEM_TABLE * _system_table 
    )
    +
    + +

    Definition at line 27 of file boot.cpp.

    +
    28  {
    +
    29  EFI_STATUS status = EFI_SUCCESS;
    +
    30  uint64_t kernel_addr = 0;
    +
    31  try {
    +
    32  // 输出 efi 信息
    +
    33  EFI_LOADED_IMAGE *loaded_image = nullptr;
    +
    34  status = LibLocateProtocol(&LoadedImageProtocol,
    +
    35  reinterpret_cast<void **>(&loaded_image));
    +
    36  if (EFI_ERROR(status)) {
    +
    37  debug << L"LibLocateProtocol: " << status << ostream::endl;
    +
    38  }
    +
    39 
    +
    40  debug << L"Revision: " << ostream::hex_X << loaded_image->Revision
    +
    41  << ostream::endl;
    +
    42  debug << L"ParentHandle: " << ostream::hex_X
    +
    43  << loaded_image->ParentHandle << ostream::endl;
    +
    44  debug << L"SystemTable: " << ostream::hex_X << loaded_image->SystemTable
    +
    45  << ostream::endl;
    +
    46  debug << L"DeviceHandle: " << ostream::hex_X
    +
    47  << loaded_image->DeviceHandle << ostream::endl;
    +
    48  debug << L"FilePath: " << ostream::hex_X << loaded_image->FilePath
    +
    49  << ostream::endl;
    +
    50  debug << L"Reserved: " << ostream::hex_X << loaded_image->Reserved
    +
    51  << ostream::endl;
    +
    52  debug << L"LoadOptionsSize: " << ostream::hex_X
    +
    53  << loaded_image->LoadOptionsSize << ostream::endl;
    +
    54  debug << L"LoadOptions: " << ostream::hex_X << loaded_image->LoadOptions
    +
    55  << ostream::endl;
    +
    56  debug << L"ImageBase: " << ostream::hex_X << loaded_image->ImageBase
    +
    57  << ostream::endl;
    +
    58  debug << L"ImageSize: " << ostream::hex_X << loaded_image->ImageSize
    +
    59  << ostream::endl;
    +
    60  debug << L"ImageCodeType: " << ostream::hex_X
    +
    61  << loaded_image->ImageCodeType << ostream::endl;
    +
    62  debug << L"ImageDataType: " << ostream::hex_X
    +
    63  << loaded_image->ImageDataType << ostream::endl;
    +
    64  debug << L"Unload: " << ostream::hex_X << loaded_image->Unload
    +
    65  << ostream::endl;
    +
    66 
    +
    67  // 初始化 Graphics
    +
    68  auto graphics = Graphics();
    +
    69  // 打印图形信息
    +
    70  graphics.print_info();
    +
    71  // 设置为 1920*1080
    +
    72  graphics.set_mode();
    +
    73  // 初始化 Memory
    +
    74  auto memory = Memory();
    +
    75  memory.print_info();
    +
    76  // 加载内核
    +
    77  auto elf = Elf(KERNEL_NAME);
    +
    78  // kernel_addr = elf.load_kernel_image();
    +
    79  kernel_addr = elf.load();
    +
    80  } catch (const std::exception &_e) {
    +
    81  debug << L"Fatal Error: " << _e.what() << ostream::endl;
    +
    82  return EFI_LOAD_ERROR;
    +
    83  }
    +
    84  debug << L"Set Kernel Entry Point to: [" << ostream::hex_X << kernel_addr
    +
    85  << L"]" << ostream::endl;
    +
    86  // 退出 boot service
    +
    87  uint64_t desc_count = 0;
    +
    88  EFI_MEMORY_DESCRIPTOR *memory_map = nullptr;
    +
    89  uint64_t map_key = 0;
    +
    90  uint64_t desc_size = 0;
    +
    91  uint32_t desc_version = 0;
    +
    92  memory_map = LibMemoryMap(&desc_count, &map_key, &desc_size, &desc_version);
    +
    93  if (memory_map == nullptr) {
    +
    94  debug << L"LibMemoryMap failed: memory_map == nullptr" << ostream::endl;
    +
    95  throw std::runtime_error("memory_map == nullptr");
    +
    96  }
    +
    97  status = uefi_call_wrapper(gBS->ExitBootServices, 2, _image_handle, map_key);
    +
    98  if (EFI_ERROR(status)) {
    +
    99  debug << L"ExitBootServices failed, Memory Map has Changed " << status
    +
    100  << ostream::endl;
    +
    101  }
    +
    102 
    +
    103  auto kernel_entry = (void (*)())kernel_addr;
    +
    104  kernel_entry();
    +
    105 
    +
    106  return EFI_SUCCESS;
    +
    107 }
    +
    Definition: load_elf.h:131
    + + +
    static auto endl(ostream &_ostream) -> ostream &
    Definition: ostream.cpp:42
    +
    static auto hex_X(ostream &_ostream) -> ostream &
    Definition: ostream.cpp:37
    +
    static ostream debug
    全局输出流
    Definition: ostream.hpp:194
    +
    #define KERNEL_NAME
    +
    +Here is the call graph for this function:
    +
    +
    + + + + + +
    + +
    +
    +

    Variable Documentation

    + +

    ◆ ImageBase

    + +
    +
    + + + + +
    uintptr_t ImageBase = 0
    +
    + +

    Definition at line 24 of file boot.cpp.

    + +
    +
    +
    +
    + + + + diff --git a/test_2system__test_2gnu__efi__test_2boot_8cpp.js b/test_2system__test_2gnu__efi__test_2boot_8cpp.js new file mode 100644 index 000000000..667663937 --- /dev/null +++ b/test_2system__test_2gnu__efi__test_2boot_8cpp.js @@ -0,0 +1,5 @@ +var test_2system__test_2gnu__efi__test_2boot_8cpp = +[ + [ "efi_main", "test_2system__test_2gnu__efi__test_2boot_8cpp.html#a888070898d2d56fa4c1654a3c8409719", null ], + [ "ImageBase", "test_2system__test_2gnu__efi__test_2boot_8cpp.html#a3c37e763c85d8c042a579e38a938e53e", null ] +]; \ No newline at end of file diff --git a/test_2system__test_2gnu__efi__test_2boot_8cpp__incl.map b/test_2system__test_2gnu__efi__test_2boot_8cpp__incl.map new file mode 100644 index 000000000..9487936f1 --- /dev/null +++ b/test_2system__test_2gnu__efi__test_2boot_8cpp__incl.map @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/test_2system__test_2gnu__efi__test_2boot_8cpp__incl.md5 b/test_2system__test_2gnu__efi__test_2boot_8cpp__incl.md5 new file mode 100644 index 000000000..90f850a58 --- /dev/null +++ b/test_2system__test_2gnu__efi__test_2boot_8cpp__incl.md5 @@ -0,0 +1 @@ +685eff2f37aea9dd757ff5042deeb347 \ No newline at end of file diff --git a/test_2system__test_2gnu__efi__test_2boot_8cpp__incl.png b/test_2system__test_2gnu__efi__test_2boot_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..8bf678af46e56b1097688a8957a31ee9b4b2d4eb GIT binary patch literal 28594 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 UQ`;~N4&g&ll2el{l`#$YKRvigSpWb4 literal 0 HcmV?d00001 diff --git a/test_2system__test_2gnu__efi__test_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.map b/test_2system__test_2gnu__efi__test_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.map new file mode 100644 index 000000000..fb23e87c5 --- /dev/null +++ b/test_2system__test_2gnu__efi__test_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/test_2system__test_2gnu__efi__test_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.md5 b/test_2system__test_2gnu__efi__test_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.md5 new file mode 100644 index 000000000..3a82e714d --- /dev/null +++ b/test_2system__test_2gnu__efi__test_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.md5 @@ -0,0 +1 @@ +c919a711eb6c38a48a716051eed472e4 \ No newline at end of file diff --git a/test_2system__test_2gnu__efi__test_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.png b/test_2system__test_2gnu__efi__test_2boot_8cpp_a888070898d2d56fa4c1654a3c8409719_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..f32593b5044885ba6f93c10a17d5edf2517fe0a1 GIT binary patch literal 4850 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 PBjBdC0rH)uZN&coL + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/test/system_test/gnu_efi_test/boot.cpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    boot.cpp
    +
    +
    +Go to the documentation of this file.
    1 
    +
    17 #include <exception>
    +
    18 #include <stdexcept>
    +
    19 
    +
    20 #include "load_elf.h"
    +
    21 #include "ostream.hpp"
    +
    22 #include "project_config.h"
    +
    23 
    +
    24 uintptr_t ImageBase = 0;
    +
    25 
    +
    26 extern "C" [[maybe_unused]] EFI_STATUS EFIAPI
    +
    27 efi_main(EFI_HANDLE _image_handle,
    +
    28  [[maybe_unused]] EFI_SYSTEM_TABLE *_system_table) {
    +
    29  EFI_STATUS status = EFI_SUCCESS;
    +
    30  uint64_t kernel_addr = 0;
    +
    31  try {
    +
    32  // 输出 efi 信息
    +
    33  EFI_LOADED_IMAGE *loaded_image = nullptr;
    +
    34  status = LibLocateProtocol(&LoadedImageProtocol,
    +
    35  reinterpret_cast<void **>(&loaded_image));
    +
    36  if (EFI_ERROR(status)) {
    +
    37  debug << L"LibLocateProtocol: " << status << ostream::endl;
    +
    38  }
    +
    39 
    +
    40  debug << L"Revision: " << ostream::hex_X << loaded_image->Revision
    +
    41  << ostream::endl;
    +
    42  debug << L"ParentHandle: " << ostream::hex_X
    +
    43  << loaded_image->ParentHandle << ostream::endl;
    +
    44  debug << L"SystemTable: " << ostream::hex_X << loaded_image->SystemTable
    +
    45  << ostream::endl;
    +
    46  debug << L"DeviceHandle: " << ostream::hex_X
    +
    47  << loaded_image->DeviceHandle << ostream::endl;
    +
    48  debug << L"FilePath: " << ostream::hex_X << loaded_image->FilePath
    +
    49  << ostream::endl;
    +
    50  debug << L"Reserved: " << ostream::hex_X << loaded_image->Reserved
    +
    51  << ostream::endl;
    +
    52  debug << L"LoadOptionsSize: " << ostream::hex_X
    +
    53  << loaded_image->LoadOptionsSize << ostream::endl;
    +
    54  debug << L"LoadOptions: " << ostream::hex_X << loaded_image->LoadOptions
    +
    55  << ostream::endl;
    +
    56  debug << L"ImageBase: " << ostream::hex_X << loaded_image->ImageBase
    +
    57  << ostream::endl;
    +
    58  debug << L"ImageSize: " << ostream::hex_X << loaded_image->ImageSize
    +
    59  << ostream::endl;
    +
    60  debug << L"ImageCodeType: " << ostream::hex_X
    +
    61  << loaded_image->ImageCodeType << ostream::endl;
    +
    62  debug << L"ImageDataType: " << ostream::hex_X
    +
    63  << loaded_image->ImageDataType << ostream::endl;
    +
    64  debug << L"Unload: " << ostream::hex_X << loaded_image->Unload
    +
    65  << ostream::endl;
    +
    66 
    +
    67  // 初始化 Graphics
    +
    68  auto graphics = Graphics();
    +
    69  // 打印图形信息
    +
    70  graphics.print_info();
    +
    71  // 设置为 1920*1080
    +
    72  graphics.set_mode();
    +
    73  // 初始化 Memory
    +
    74  auto memory = Memory();
    +
    75  memory.print_info();
    +
    76  // 加载内核
    +
    77  auto elf = Elf(KERNEL_NAME);
    +
    78  // kernel_addr = elf.load_kernel_image();
    +
    79  kernel_addr = elf.load();
    +
    80  } catch (const std::exception &_e) {
    +
    81  debug << L"Fatal Error: " << _e.what() << ostream::endl;
    +
    82  return EFI_LOAD_ERROR;
    +
    83  }
    +
    84  debug << L"Set Kernel Entry Point to: [" << ostream::hex_X << kernel_addr
    +
    85  << L"]" << ostream::endl;
    +
    86  // 退出 boot service
    +
    87  uint64_t desc_count = 0;
    +
    88  EFI_MEMORY_DESCRIPTOR *memory_map = nullptr;
    +
    89  uint64_t map_key = 0;
    +
    90  uint64_t desc_size = 0;
    +
    91  uint32_t desc_version = 0;
    +
    92  memory_map = LibMemoryMap(&desc_count, &map_key, &desc_size, &desc_version);
    +
    93  if (memory_map == nullptr) {
    +
    94  debug << L"LibMemoryMap failed: memory_map == nullptr" << ostream::endl;
    +
    95  throw std::runtime_error("memory_map == nullptr");
    +
    96  }
    +
    97  status = uefi_call_wrapper(gBS->ExitBootServices, 2, _image_handle, map_key);
    +
    98  if (EFI_ERROR(status)) {
    +
    99  debug << L"ExitBootServices failed, Memory Map has Changed " << status
    +
    100  << ostream::endl;
    +
    101  }
    +
    102 
    +
    103  auto kernel_entry = (void (*)())kernel_addr;
    +
    104  kernel_entry();
    +
    105 
    +
    106  return EFI_SUCCESS;
    +
    107 }
    +
    Definition: load_elf.h:131
    + + +
    static auto endl(ostream &_ostream) -> ostream &
    Definition: ostream.cpp:42
    +
    static auto hex_X(ostream &_ostream) -> ostream &
    Definition: ostream.cpp:37
    +
    load_elf h
    +
    ostream hpp
    +
    static ostream debug
    全局输出流
    Definition: ostream.hpp:194
    +
    project_config 头文件,此文件由 cmake 自动生成,不要手动修改
    +
    #define KERNEL_NAME
    +
    uintptr_t ImageBase
    Definition: boot.cpp:24
    +
    EFI_STATUS EFIAPI efi_main(EFI_HANDLE _image_handle, [[maybe_unused]] EFI_SYSTEM_TABLE *_system_table)
    Definition: boot.cpp:27
    +
    +
    + + + + diff --git a/test_2system__test_2gnu__efi__test_2main_8cpp.html b/test_2system__test_2gnu__efi__test_2main_8cpp.html new file mode 100644 index 000000000..960d24928 --- /dev/null +++ b/test_2system__test_2gnu__efi__test_2main_8cpp.html @@ -0,0 +1,222 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/test/system_test/gnu_efi_test/main.cpp File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    main.cpp File Reference
    +
    +
    + +

    内核入口 +More...

    +
    #include "kernel.h"
    +
    +Include dependency graph for main.cpp:
    +
    +
    + + + + + +
    +
    +

    Go to the source code of this file.

    + + + + + + + +

    +Functions

    void _start ()
     
    int main (int _argc, char **_argv)
     入口 More...
     
    +

    Detailed Description

    +

    内核入口

    +
    Author
    Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
    +
    Version
    1.0
    +
    Date
    2023-07-15
    + +
    change log:
    + + + + +
    DateAuthorDescription
    2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
    +
    + +

    Definition in file main.cpp.

    +

    Function Documentation

    + +

    ◆ _start()

    + +
    +
    + + + + + + + +
    void _start ()
    +
    + +

    Definition at line 19 of file main.cpp.

    +
    19 { main(0, nullptr); }
    +
    int main(int _argc, char **_argv)
    入口
    Definition: main.cpp:19
    +
    +Here is the call graph for this function:
    +
    +
    + + + + +
    + +
    +
    + +

    ◆ main()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    int main (int _argc,
    char ** _argv 
    )
    +
    + +

    入口

    +

    内核入口

    +
    Parameters
    + + + +
    _argc参数个数
    _argv参数列表
    +
    +
    +
    Returns
    int 正常返回 0
    + +

    Definition at line 21 of file main.cpp.

    +
    21  {
    +
    22  (void)_argc;
    +
    23  (void)_argv;
    +
    24  // 进入死循环
    +
    25  while (true) {
    +
    26  ;
    +
    27  }
    +
    28  return 0;
    +
    29 }
    +
    +
    +
    +
    +
    + + + + diff --git a/test_2system__test_2gnu__efi__test_2main_8cpp.js b/test_2system__test_2gnu__efi__test_2main_8cpp.js new file mode 100644 index 000000000..024a40919 --- /dev/null +++ b/test_2system__test_2gnu__efi__test_2main_8cpp.js @@ -0,0 +1,5 @@ +var test_2system__test_2gnu__efi__test_2main_8cpp = +[ + [ "_start", "test_2system__test_2gnu__efi__test_2main_8cpp.html#a078e7d7a89207ea1c3575850e0fff462", null ], + [ "main", "test_2system__test_2gnu__efi__test_2main_8cpp.html#a2201d4f3fe424b79dbb580041d738741", null ] +]; \ No newline at end of file diff --git a/test_2system__test_2gnu__efi__test_2main_8cpp__incl.map b/test_2system__test_2gnu__efi__test_2main_8cpp__incl.map new file mode 100644 index 000000000..c08a00f39 --- /dev/null +++ b/test_2system__test_2gnu__efi__test_2main_8cpp__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/test_2system__test_2gnu__efi__test_2main_8cpp__incl.md5 b/test_2system__test_2gnu__efi__test_2main_8cpp__incl.md5 new file mode 100644 index 000000000..1bfe183de --- /dev/null +++ b/test_2system__test_2gnu__efi__test_2main_8cpp__incl.md5 @@ -0,0 +1 @@ +bd77c92b7a6501d3e08d43d3bb2f6159 \ No newline at end of file diff --git a/test_2system__test_2gnu__efi__test_2main_8cpp__incl.png b/test_2system__test_2gnu__efi__test_2main_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..a9076fa23aa3b9cc218b0ec4af579cf150c7d22c GIT binary patch literal 7249 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 R;29z0rR-aoaw)@r{|6N=(vtuH literal 0 HcmV?d00001 diff --git a/test_2system__test_2gnu__efi__test_2main_8cpp_a078e7d7a89207ea1c3575850e0fff462_cgraph.map b/test_2system__test_2gnu__efi__test_2main_8cpp_a078e7d7a89207ea1c3575850e0fff462_cgraph.map new file mode 100644 index 000000000..0b8720de9 --- /dev/null +++ b/test_2system__test_2gnu__efi__test_2main_8cpp_a078e7d7a89207ea1c3575850e0fff462_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/test_2system__test_2gnu__efi__test_2main_8cpp_a078e7d7a89207ea1c3575850e0fff462_cgraph.md5 b/test_2system__test_2gnu__efi__test_2main_8cpp_a078e7d7a89207ea1c3575850e0fff462_cgraph.md5 new file mode 100644 index 000000000..f07577023 --- /dev/null +++ b/test_2system__test_2gnu__efi__test_2main_8cpp_a078e7d7a89207ea1c3575850e0fff462_cgraph.md5 @@ -0,0 +1 @@ +f590eee46ef4964ec0e62182c1d6ebcb \ No newline at end of file diff --git a/test_2system__test_2gnu__efi__test_2main_8cpp_a078e7d7a89207ea1c3575850e0fff462_cgraph.png b/test_2system__test_2gnu__efi__test_2main_8cpp_a078e7d7a89207ea1c3575850e0fff462_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..dd00fbaaeeea8fbc5707874bb506f12a54fa5ebf GIT binary patch literal 1605 zcmV-L2D=x_wbMLEEAsXrwV4FUgWk)D2NuYL<{lv?wpwny4Wdx=F2l0kw*z>k3p# zJKcwxrb0zp2L^V}?`h`D`M&v2`|mer&Y6@Hi9`V8{|%XF0TAMWCV)T_K%faA003(I zj>F;T>gpm&N@|pqmFe|*qE&pPtE{)0thq#1V9r&05rjRL?V%NcX#8MaAi%P)oKR^2UjO*5ffg=%$)TwX+@QHa)s8@N>ho6UxzXiZIx zPN#eN^eF(qWHPzk?#|9mxm@1T(gFZDe*CyxF0ZVtL{aqGwQI3e?B?d??(Xg*M~>{? zy<0AqFNj(*M1sN4;NX)32YxRq`lYq?k2`n9Lm@1ML?V$$uh;L`v4h282?T-%4<4L5 zcP=+KHzOnC;K73!_A%$4J$pzb5}8cS&(A+~>QwCGioYF*M54B~w#v%N^z?K-pMU%I z?G*IjQwb&~Cof&PWHy_5Jf6qn85$bma=9l?oOu5Hd3}9-O-)U-TSrF+006_VXV0D) zjmDgu9ECy=J#_2VEtAPqR8&MJleJoHeAJp^em)EUn4Jyw_mB4VJ=(aDrBaD&YqxIS zp1*h!W(jWIylJ&s`Fy@kr>m-}+Pin}*x1+9=_i;KzRbu&i)F77rwJlxaMGchso;ll?2fKVum z9m>keO6}BM?>9L)Kc^Op3!zXL0O0febK$}e0GpW1;Qjj^sr0+0qc|K+bR#V-jlp0r znatR3AP|UdTP&82jt;lmJu@={04OgnPnat9(b4I206;8!`QSD%luD&isWcLa*zIcOT>vj)RYxLm^Lc=_^g zgW=C5I?!m8`T1~O-nSU$<#1-d=z!($>eVY0MXgq=LZM)>Sm)25zkdDt*QZSgJ|=kh z@Zsp_s8XrS%F4npEEo(%M>lLX+w1j)!(j@AGB-CDiA0!8CXGgOxm*^DB{MTKVYc|F zFP@so4A$0)aJh=l;dc7~NMHg4p$3DY%uH5Yow&AkYiVgg^j?k&fj|Jmu#Aih1VNlm zr`c@I&d$aw`2z4Ufk-6scsxgs9)0uXO>S=P$&)9er3ppRvuDrRY&IT`ck$vytybIK z-v0jmdmfJ`lgY-%#}j5-5QU3E9HCMvp%BJoB1+}=8qN0daxR&i+(2wOFX)ylo8K#G6cxVN{rv9a;qy?ZNkGTbp33>*$;rI&8qZeK-3XY`v!5UNu7 zgGwcq$@q(>3Zj)@?Jp(YxN)PQp&`}+CySN^jYh4g;H%X??%GwHmbTnSfb~LhCh+-u zD2gsW(F{P)|i59X_Bxi!nn>Vkcn+0Cb=?MKlYXAV?Dk20x z6F>ko0R%u3KtRHQ;qdVAs>?``si~>hB>Wm-a&oe_x0h%Y$&tVWMx$}{b)<|yARt=8 zCpewX#>PgXRU`)q{yzZ(jtL;p1Q2Kf2!JMl00904(wr2>VB$m$00000NkvXXu0mjf D1M3a; literal 0 HcmV?d00001 diff --git a/test_2system__test_2gnu__efi__test_2main_8cpp_source.html b/test_2system__test_2gnu__efi__test_2main_8cpp_source.html new file mode 100644 index 000000000..fa7a9d8a9 --- /dev/null +++ b/test_2system__test_2gnu__efi__test_2main_8cpp_source.html @@ -0,0 +1,116 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/test/system_test/gnu_efi_test/main.cpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    main.cpp
    +
    +
    +Go to the documentation of this file.
    1 
    +
    17 #include "kernel.h"
    +
    18 
    +
    19 extern "C" void _start() { main(0, nullptr); }
    +
    20 
    +
    21 int main(int _argc, char **_argv) {
    +
    22  (void)_argc;
    +
    23  (void)_argv;
    +
    24  // 进入死循环
    +
    25  while (true) {
    +
    26  ;
    +
    27  }
    +
    28  return 0;
    +
    29 }
    +
    内核头文件
    +
    int main(int _argc, char **_argv)
    入口
    Definition: main.cpp:19
    +
    void _start()
    Definition: main.cpp:19
    +
    +
    + + + + diff --git a/test_2system__test_2opensbi__test_2boot_8cpp.html b/test_2system__test_2opensbi__test_2boot_8cpp.html new file mode 100644 index 000000000..4b8a326b9 --- /dev/null +++ b/test_2system__test_2opensbi__test_2boot_8cpp.html @@ -0,0 +1,357 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/test/system_test/opensbi_test/boot.cpp File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    boot.cpp File Reference
    +
    +
    + +

    boot cpp +More...

    +
    #include "cstdint"
    +#include "sbi/sbi_ecall_interface.h"
    +
    +Include dependency graph for boot.cpp:
    +
    +
    + + + + + +
    +
    +

    Go to the source code of this file.

    + + + + +

    +Classes

    struct  sbiret_t
     
    + + + + + + + + +

    +Functions

    sbiret_t ecall (unsigned long _arg0, unsigned long _arg1, unsigned long _arg2, unsigned long _arg3, unsigned long _arg4, unsigned long _arg5, int _fid, int _eid)
     
    void put_char (const char _c)
     
    int main (int, char **)
     入口 More...
     
    +

    Detailed Description

    +

    boot cpp

    +
    Author
    Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
    +
    Version
    1.0
    +
    Date
    2023-07-15
    + +
    change log:
    + + + + +
    DateAuthorDescription
    2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
    +
    + +

    Definition in file boot.cpp.

    +

    Function Documentation

    + +

    ◆ ecall()

    + +
    +
    + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
    sbiret_t ecall (unsigned long _arg0,
    unsigned long _arg1,
    unsigned long _arg2,
    unsigned long _arg3,
    unsigned long _arg4,
    unsigned long _arg5,
    int _fid,
    int _eid 
    )
    +
    + +

    Definition at line 32 of file boot.cpp.

    +
    34  {
    +
    35  sbiret_t ret;
    +
    36  register uintptr_t a0 asm("a0") = (uintptr_t)(_arg0);
    +
    37  register uintptr_t a1 asm("a1") = (uintptr_t)(_arg1);
    +
    38  register uintptr_t a2 asm("a2") = (uintptr_t)(_arg2);
    +
    39  register uintptr_t a3 asm("a3") = (uintptr_t)(_arg3);
    +
    40  register uintptr_t a4 asm("a4") = (uintptr_t)(_arg4);
    +
    41  register uintptr_t a5 asm("a5") = (uintptr_t)(_arg5);
    +
    42  register uintptr_t a6 asm("a6") = (uintptr_t)(_fid);
    +
    43  register uintptr_t a7 asm("a7") = (uintptr_t)(_eid);
    +
    44  asm("ecall"
    +
    45  : "+r"(a0), "+r"(a1)
    +
    46  : "r"(a2), "r"(a3), "r"(a4), "r"(a5), "r"(a6), "r"(a7)
    +
    47  : "memory");
    +
    48  ret.error = a0;
    +
    49  ret.value = a1;
    +
    50  return ret;
    +
    51 }
    + +
    long value
    返回值
    Definition: arch.cpp:29
    +
    long error
    错误码
    Definition: arch.cpp:27
    +
    +Here is the caller graph for this function:
    +
    +
    + + + + + +
    + +
    +
    + +

    ◆ main()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    int main (int _argc,
    char ** _argv 
    )
    +
    + +

    入口

    +

    内核入口

    +
    Parameters
    + + + +
    _argc参数个数
    _argv参数列表
    +
    +
    +
    Returns
    int 正常返回 0
    + +

    Definition at line 58 of file boot.cpp.

    +
    58  {
    +
    59  put_char('H');
    +
    60  put_char('e');
    +
    61  put_char('l');
    +
    62  put_char('l');
    +
    63  put_char('W');
    +
    64  put_char('o');
    +
    65  put_char('r');
    +
    66  put_char('l');
    +
    67  put_char('d');
    +
    68  put_char('!');
    +
    69 
    +
    70  return 0;
    +
    71 }
    +
    void put_char(const char _c)
    Definition: boot.cpp:53
    +
    +Here is the call graph for this function:
    +
    +
    + + + + + +
    + +
    +
    + +

    ◆ put_char()

    + +
    +
    + + + + + + + + +
    void put_char (const char _c)
    +
    + +

    Definition at line 53 of file boot.cpp.

    +
    53  {
    +
    54  ecall(_c, 0, 0, 0, 0, 0, 0, SBI_EXT_0_1_CONSOLE_PUTCHAR);
    +
    55  return;
    +
    56 }
    +
    sbiret_t ecall(unsigned long _arg0, unsigned long _arg1, unsigned long _arg2, unsigned long _arg3, unsigned long _arg4, unsigned long _arg5, int _fid, int _eid)
    Definition: boot.cpp:32
    +
    +Here is the call graph for this function:
    +
    +
    + + + + +
    +
    +Here is the caller graph for this function:
    +
    +
    + + + + +
    + +
    +
    +
    +
    + + + + diff --git a/test_2system__test_2opensbi__test_2boot_8cpp.js b/test_2system__test_2opensbi__test_2boot_8cpp.js new file mode 100644 index 000000000..b260cda8a --- /dev/null +++ b/test_2system__test_2opensbi__test_2boot_8cpp.js @@ -0,0 +1,7 @@ +var test_2system__test_2opensbi__test_2boot_8cpp = +[ + [ "sbiret_t", "structsbiret__t.html", "structsbiret__t" ], + [ "ecall", "test_2system__test_2opensbi__test_2boot_8cpp.html#ae588de26fa6132129a1743b8df8fc982", null ], + [ "main", "test_2system__test_2opensbi__test_2boot_8cpp.html#a2c3f6775325c30275d11c6abee2db6a0", null ], + [ "put_char", "test_2system__test_2opensbi__test_2boot_8cpp.html#a3743e5195a085e51d92eb812991cce47", null ] +]; \ No newline at end of file diff --git a/test_2system__test_2opensbi__test_2boot_8cpp__incl.map b/test_2system__test_2opensbi__test_2boot_8cpp__incl.map new file mode 100644 index 000000000..ca427b71b --- /dev/null +++ b/test_2system__test_2opensbi__test_2boot_8cpp__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/test_2system__test_2opensbi__test_2boot_8cpp__incl.md5 b/test_2system__test_2opensbi__test_2boot_8cpp__incl.md5 new file mode 100644 index 000000000..88f9e9517 --- /dev/null +++ b/test_2system__test_2opensbi__test_2boot_8cpp__incl.md5 @@ -0,0 +1 @@ +c10f4d813b7a606a9f5dec2d6be06c7e \ No newline at end of file diff --git a/test_2system__test_2opensbi__test_2boot_8cpp__incl.png b/test_2system__test_2opensbi__test_2boot_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..b63a8ac2789b34c302bc5df158ea2285c5a9e119 GIT binary patch literal 7794 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¬If@%6p@-&J`o({) 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 Z7}W~8%aN*;+@OgJQBly4uaq?n`VXwG4s-wj literal 0 HcmV?d00001 diff --git a/test_2system__test_2opensbi__test_2boot_8cpp_a2c3f6775325c30275d11c6abee2db6a0_cgraph.map b/test_2system__test_2opensbi__test_2boot_8cpp_a2c3f6775325c30275d11c6abee2db6a0_cgraph.map new file mode 100644 index 000000000..5a6bd56c8 --- /dev/null +++ b/test_2system__test_2opensbi__test_2boot_8cpp_a2c3f6775325c30275d11c6abee2db6a0_cgraph.map @@ -0,0 +1,5 @@ + + + + + diff --git a/test_2system__test_2opensbi__test_2boot_8cpp_a2c3f6775325c30275d11c6abee2db6a0_cgraph.md5 b/test_2system__test_2opensbi__test_2boot_8cpp_a2c3f6775325c30275d11c6abee2db6a0_cgraph.md5 new file mode 100644 index 000000000..5076c02d9 --- /dev/null +++ b/test_2system__test_2opensbi__test_2boot_8cpp_a2c3f6775325c30275d11c6abee2db6a0_cgraph.md5 @@ -0,0 +1 @@ +574b0c3e239cd8d35b11467a5aca054f \ No newline at end of file diff --git a/test_2system__test_2opensbi__test_2boot_8cpp_a2c3f6775325c30275d11c6abee2db6a0_cgraph.png b/test_2system__test_2opensbi__test_2boot_8cpp_a2c3f6775325c30275d11c6abee2db6a0_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..045e5e0db8be854f5cab2ff75df8f38e732b5e42 GIT binary patch literal 2472 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 literal 0 HcmV?d00001 diff --git a/test_2system__test_2opensbi__test_2boot_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.map b/test_2system__test_2opensbi__test_2boot_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.map new file mode 100644 index 000000000..f5f15e387 --- /dev/null +++ b/test_2system__test_2opensbi__test_2boot_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.map @@ -0,0 +1,4 @@ + + + + diff --git a/test_2system__test_2opensbi__test_2boot_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.md5 b/test_2system__test_2opensbi__test_2boot_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.md5 new file mode 100644 index 000000000..6190fefe3 --- /dev/null +++ b/test_2system__test_2opensbi__test_2boot_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.md5 @@ -0,0 +1 @@ +78d4a6be9fba4a4bc96232b8169c1447 \ No newline at end of file diff --git a/test_2system__test_2opensbi__test_2boot_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.png b/test_2system__test_2opensbi__test_2boot_8cpp_a3743e5195a085e51d92eb812991cce47_cgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..1fe1a48a050aee9a5139896639f40dc8b658e633 GIT binary patch literal 2082 zcmV+-2;KLIP)$JP zJ!)oCqt5!gTl38GJpZ-)vDPy)%Ox5a85uz!usu4lwJQ(^tVIaFz-9^I7uYNz`~sV0 z_vaUCYilVgDzZi`vqD5f1ZuU~+GR{hQBe`KwYAnRP&a)Ya9E*=830Q8_s|->aTkYc?FS@bK_4 z&yq7$d3ia>$;o5332T0V%@V>duvtR*1vYEeg+DDVjT<*^Si1~?1%!u(Q&Lhg?)JBu zb>SBXCTm)RKO-Z9s;Vk$moaO+e*J+RJBleU{}0{W{njpL+L{*O7g(0jID%gPn7w=d zMR4#zcJ2BHzy0=*fq@}wmo}|fB>ZV{)Tux6<4_d93=H_OO9Xp0xE@$`d-Cvxqudk1jCr_eMsfdY*p|G%!{{H`;;aXc; zQLEKNM@N&Al0toby{RobI~%!N&ZbS9P^na$J$sf<@9G}im%V%U5)~E2?c2A%_3&8H z2tz|gZry4kJ^h~q2mhU4ektX~jYb9shb=NgPfrh7Sy?Pvv+qE{kT7JeXYvMO0-%nOP4O? z^5x6y-@l)8=g#5k>N;V+Lx&F0-ri1JTpU}rY?;(td3kwscXxC2=uxCnDSEx02M-<) z5fK4Eb#*lwjRu)ahEAs=FE5Xa7cU|biOA2-2f%1F($dm`Mx(*U$A`$sNYnV&uU|*2 z)v|2aGQ{GUe{mcQdSBllm6Z>;c=5kDJ3F#vO9+XHVXRvhh)5)w(%3t9?xerJAH80W zR4PTQ)e;vMM}2)gVzHQ%loZ~+eap3L*YNT2p}f4DnwlDvN+nmXUIk!yc$kL|ACi=m zgulN(J9g}_*uGE1V&RXCjb+uURRE||DyplixpU_ZN~O|LQvlG_)y2Jg_b4qb#n;yt zz-*3$gam?uf&kdIZ5yXgpXSY*H@LgIo8BW9iwO)2BtAZ#yLaz?7XG-nID&(NEn4?< zF*IZZpr@yw%aPfmTwJKEtmMg)CjLTlHqo#NhnJ&T3Eqoc!Ydvr$}9UV>K19<=b{b%p}nx%!8mlsB(kyo!? zjd{=~^6uR`a&vRhXf&)|y_z|5=5XP{1+#ViRF?n%zP{ZYIr7&j_qT+1?|M0Kpkh+* zwX+j5G-Slr*A21w1@7*BlL|h-qD6}ki^X(xbs?2X&DvkSe97?eFfA=DrZfMj*RNlr zQmLq@s30;j5@%;;PMkPFSy|bn=C%ZjuKB~l!Uzlu2`KtKRhRaLB9 zxsu-AUW$v0KkK_-!2+H>eai6gFcOJm!g)MBJ&A~jprD`twOWn4yE`>CHAtmW)0%%g z0|Nt$jEvyqR!_UtTrBcbRUArhQ zE;gf_2Mh3aLxkN=paq845Hf-21wH=;e?Cm9p#Ukd;bs#o&6~F%a7aAM$C@4tc z=b!zje6>4s<_tkWL2TW+6;Dr3GBYztO-(f|H%m)PS+QaT3WWlHe}5Vp8j#E7EMB~r zf`S56Di!nR&qu9R6CWRM$zA>;(Vw5*FnSAUO-;?D2T4myBRM&l&6_t{yug_xCnpCF z4-c!~65P@8o;7PUh(sbpBCxZQpiqRceft{Z@@3fDk9~DbOiTpE{>P7*YBbMde1)pB z*s@13z1Z1FSie4y?c0Asp$Ngr$ + + + diff --git a/test_2system__test_2opensbi__test_2boot_8cpp_a3743e5195a085e51d92eb812991cce47_icgraph.md5 b/test_2system__test_2opensbi__test_2boot_8cpp_a3743e5195a085e51d92eb812991cce47_icgraph.md5 new file mode 100644 index 000000000..d29f029c2 --- /dev/null +++ b/test_2system__test_2opensbi__test_2boot_8cpp_a3743e5195a085e51d92eb812991cce47_icgraph.md5 @@ -0,0 +1 @@ +4969340efe1ea18d4e1076ffbf934877 \ No newline at end of file diff --git a/test_2system__test_2opensbi__test_2boot_8cpp_a3743e5195a085e51d92eb812991cce47_icgraph.png b/test_2system__test_2opensbi__test_2boot_8cpp_a3743e5195a085e51d92eb812991cce47_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..a0f2f8d71c5ec1b5f4f08c3f5d241520a88ebddf GIT binary patch literal 1874 zcmV-Y2d(&tP)TS`00006VoOIv0RI60 z0RN!9r;`8x2M0++K~#90?VDdr6WJcePY0n=X2G;TYQX@87OX^T30@n7Seiy7lt0~; zGA8)c(1gV5?Sp8DURz`fn9?OCWQmOrx*DYwV>R*LMoO+)OcXanFd@O+yVY8mOW=lL z#ii|im`zi)2y~!>oAY@(bLPx%zBBWk^KZ`3g25nwK%xbqS^(tR1{w%L3TPk*DWHKM zq*xce;dDAXJ3Fb8vUEfukxr+hTE$;tqx7Kx?_69@!4ovx&$1VvFkpa0~^6O+l5nVFfAlG4!75C{Z_Vigq? zG#U*-ker;H)2B~|){TTWVFH2R#EBDSWo609$$5Es_wL2&4g<@NRTPoF*|GLIiW zE*6W+%E~YdyLj z!-fqJOP)M=^39t!i#B1ct*tXNGi_~cEEdb*a6EthoR}lNd-twhug}TJv0AOIt*w21 zeKZ=)Xfy%<0)fEz__$uL=WsX@iG+xA`}S>v!LVh^76e&#g%V{aTC3F-78ar?dhp;u zuh(lfo0&`|m&=t%Btt_(;U(kZ;&$xVap=$?yWJi!)ZxR2ckbNDU@#gR8z&|v+-`St zl48L8ydMDY^5t8-{)SNauZoHvfBxAyKfhGFS5{UE1Of(wfniu$TH3>h56Os`n3#C{ z_;FKHQ&v_MilP-26`?N-3WXv+Kc7ygS5;L_Pft%yPKJ&`5QNL+%H{G$j~<0GYieq? zZrvJ%dqC7RP+D3VkyyWeJ%hnWN=gcC`g}ejZM9mBM&sDn*zD{q0HCnQulFO0CVV~S z#*G`p(>RWkQRwk_5Cq|HIA87xRcv%R9RM&lHwOT4I2@NRUv{}%L`zptP!K8~dIV9h zTAk>3@7`e;X0zEO5($c;U0q#Qu3TBE;F~thw6|+kDq2MP`kwXozg%c9?Jqz{NuJyN zI1q3x>K*{V+qZAS)5IG^r_+fC3;>v(o(>gQv_4?7*?~a7?RIBmWGs5>si~=!mKMEU zFBA$B6BDmpyB6NvA=77AEd%*{zCa+5l9G~;kT5tnXf~U}-#?NhC(p@bf|ZIEkzarP z<4Xh4XtcOE#P1Jm-@ZvMFRZQ>rlz7wXqN`kBf_o7%e?LT_h59bad!+y42Lv{{DUzixvKz zJe;|?xnMAul#~=7A3r)eYPDKfEY^~4#A2+LfwHr+J32Zr44ayo5(a-l*|l$90D-IvK^7K>$kd^{r~!)P=T4UI;lX=`g!C=?tHr>d$dG$O+= z?97=neSLjA9<25#$tqEMVzKz@)vL9&wV@n1k+>jCX43cH7gkpbw{PD>wU)IDG*DzT z8gX;8Y@vZzEb(|e7>0e8xp(j0W5jRqS;v zi?#Oa + + + + diff --git a/test_2system__test_2opensbi__test_2boot_8cpp_ae588de26fa6132129a1743b8df8fc982_icgraph.md5 b/test_2system__test_2opensbi__test_2boot_8cpp_ae588de26fa6132129a1743b8df8fc982_icgraph.md5 new file mode 100644 index 000000000..ee218ad07 --- /dev/null +++ b/test_2system__test_2opensbi__test_2boot_8cpp_ae588de26fa6132129a1743b8df8fc982_icgraph.md5 @@ -0,0 +1 @@ +b838482af3e0c132dd3cf9241eff5b9a \ No newline at end of file diff --git a/test_2system__test_2opensbi__test_2boot_8cpp_ae588de26fa6132129a1743b8df8fc982_icgraph.png b/test_2system__test_2opensbi__test_2boot_8cpp_ae588de26fa6132129a1743b8df8fc982_icgraph.png new file mode 100644 index 0000000000000000000000000000000000000000..1f4457236ff65c4eea3374d38952abfb35259bfd GIT binary patch literal 2516 zcmV;_2`l!AP)7HT7SHFe(=(^P^F8OxcY5Z`nZg)`K>z>%7Z9Qa003VQz;6HmegMA#0Qdp? z1_0m(dHjc_rl#E7T%x4RoS>kfq@*OGReT^fH@B&&iD(u0k(87a6cj|XiVp~dLZT&n zf(hs9M}F(=?UhQUTefV$UDYg*%jHB%_=u*aCb?YB<#LG@f(KHmR45eA9luGXQWlHl z;^IQI5aV=qc23A4PcBqdRfUTf6PbgTG%lAr$2-kjz%Wd-goy}+LO!2Qvn z5Do!;lgs6?v9b8qJ1fqfy>sYLO>=WMQTw@9tXOg3!UaOACY&FCEG;Og@9q5`(L&6R zk>>#b2!ek9{cUmazlw_+U0v-XBUgrpvzIPq5H0FU;kVzE*RQu`W&QH?*PfA)D+B`6 z#bp7}qRfLSzi%jtCM6~DcsweV%3`q|Ja~|kljGsxVQ+6A7Z<0~>GZ_}0s#!e2!b$~ z%o8V07=9?m&nHn7&B(|I2??RmXaNBMw{PDzORLO+wKW1k(7?c}!os^DA=$yfr*d-s z-rfCQ)1sj$nwFNv; zc$z2auV24TOiW}lnF|*#jE|2W85z;%cXf45?$W7-14YsF^mIO-zhJ?Fii!%;T4w<; z48z*ndk-JJhN4FVg8Z_wrq{3EnGi^=Ru>c$L`6jj1cKDm)WN|)eg5d^XhA`NNF)ji z3(LvLdH3!e1VO2(scYA+4G9SmiA0w!T{8RZ#>Dw#ZEbCSe*VC~0GG>Mw{BfmS66#` z`@@G1Z``<1U0tm&bMxj+48z98#%gM6E?&G?US4iARB35xR#w))z(7n)OmuYg9DE<| z{d)}rK?=ptnKSjPSD*a$+rOSa|4)_b&1~Zo78Xh*5~WfZ6&1B{Q5FTmFs)XH zVOU#RPim@k*|J01xBsoG>ffWI?`Iw)Gc&WVuP;A8zp}E@%gZYxBSYUICr_Sy`t)g5 zR#tg=c|btGqeqYQg&P_g>g(%|A3uKU)~!2t?wGelCi-pPzI_}Hhf1Z!#KgRP`!+8x z&(YD*-`_tpG_<9qWqe5ziL`wA^1XZa*45P+4V9RfxN6lZTU%SPSgca1`uqD$lY|2r zjTVBS$B$neJ9eGT{&3ONXlA&aS65e3Qo>@f z92^|t;^G7Xf&S1mU21eV_UzfSdi81&iS#*oEQ(f(X|+0yM%&oU2j2M;nB3|m{t-@l)dlH%>{O{G!=0>SuAY6yb( z`};>kL>Q(a=EB7LH^YuK8yg#2TU$FjJHtn{TCGo4RaIqXWm}McIh<3;pOEu^Ll^&S^m>cmffH2;9xt|p|LS7 z1VQiLYh`MY=TUb%9m zx3^b6yH*MMkK@f#PFbUIysf4{rCyCHLUcvvEl96NT5&1O?5ltogUS1x9VYc->8tsp;Fw|VpjMCcLGudx243kKRR;vpP^o)q$ zgom@8ovA`${S0Fk78b5wzn;xz7ZnvLmCDVVH$xDFqG(A;36IBn_3BkhN{XQ{gTZKT zZ`WuvWU}!w^78T$2n4%#?=C7Ta&vR5tgK`(7=|h31k5-bfq_nz?)>cRUnXagNQh2{ zk;(8k-z*IaLj{6B3dK4<->;$)9Lh}prGvR z?4+b5XJ_Yzh6X1mCnl4LVVIqrot2eUXJ=nj$E4QrLj$;q*?u>}PM91dryC6ltUvb40c4I4I$jEo3{!knC(sjB|-4hIaw z2m)gm78vNcb?aZk!`W2oSF?(cnwnZ#TAG}kJUl$iWHPsH+h%2D1wl}HdiuF@=aQ3? z)oL}L&liiuHa0f#@$nLg@qqN4E9 zVVtC$iNi#7fu{H3im0{{d9?%x0a`~ZFf0Pq9&4FJFo e;5PsOKmHF8FwR|G6|M*X0000 + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/test/system_test/opensbi_test/boot.cpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    boot.cpp
    +
    +
    +Go to the documentation of this file.
    1 
    +
    17 #ifdef __cplusplus
    +
    18 extern "C" {
    +
    19 #endif
    +
    20 
    +
    21 #include "cstdint"
    +
    22 
    +
    23 #include "sbi/sbi_ecall_interface.h"
    +
    24 
    +
    25 struct sbiret_t {
    +
    27  long error;
    +
    29  long value;
    +
    30 };
    +
    31 
    +
    32 sbiret_t ecall(unsigned long _arg0, unsigned long _arg1, unsigned long _arg2,
    +
    33  unsigned long _arg3, unsigned long _arg4, unsigned long _arg5,
    +
    34  int _fid, int _eid) {
    +
    35  sbiret_t ret;
    +
    36  register uintptr_t a0 asm("a0") = (uintptr_t)(_arg0);
    +
    37  register uintptr_t a1 asm("a1") = (uintptr_t)(_arg1);
    +
    38  register uintptr_t a2 asm("a2") = (uintptr_t)(_arg2);
    +
    39  register uintptr_t a3 asm("a3") = (uintptr_t)(_arg3);
    +
    40  register uintptr_t a4 asm("a4") = (uintptr_t)(_arg4);
    +
    41  register uintptr_t a5 asm("a5") = (uintptr_t)(_arg5);
    +
    42  register uintptr_t a6 asm("a6") = (uintptr_t)(_fid);
    +
    43  register uintptr_t a7 asm("a7") = (uintptr_t)(_eid);
    +
    44  asm("ecall"
    +
    45  : "+r"(a0), "+r"(a1)
    +
    46  : "r"(a2), "r"(a3), "r"(a4), "r"(a5), "r"(a6), "r"(a7)
    +
    47  : "memory");
    +
    48  ret.error = a0;
    +
    49  ret.value = a1;
    +
    50  return ret;
    +
    51 }
    +
    52 
    +
    53 void put_char(const char _c) {
    +
    54  ecall(_c, 0, 0, 0, 0, 0, 0, SBI_EXT_0_1_CONSOLE_PUTCHAR);
    +
    55  return;
    +
    56 }
    +
    57 
    +
    58 int main(int, char **) {
    +
    59  put_char('H');
    +
    60  put_char('e');
    +
    61  put_char('l');
    +
    62  put_char('l');
    +
    63  put_char('W');
    +
    64  put_char('o');
    +
    65  put_char('r');
    +
    66  put_char('l');
    +
    67  put_char('d');
    +
    68  put_char('!');
    +
    69 
    +
    70  return 0;
    +
    71 }
    +
    72 
    +
    73 #ifdef __cplusplus
    +
    74 }
    +
    75 #endif
    + +
    long value
    返回值
    Definition: arch.cpp:29
    +
    long error
    错误码
    Definition: arch.cpp:27
    +
    int main(int, char **)
    入口
    Definition: boot.cpp:58
    +
    void put_char(const char _c)
    Definition: boot.cpp:53
    +
    sbiret_t ecall(unsigned long _arg0, unsigned long _arg1, unsigned long _arg2, unsigned long _arg3, unsigned long _arg4, unsigned long _arg5, int _fid, int _eid)
    Definition: boot.cpp:32
    +
    +
    + + + + diff --git a/unit__test_2example_8cpp.html b/unit__test_2example_8cpp.html new file mode 100644 index 000000000..52e13497e --- /dev/null +++ b/unit__test_2example_8cpp.html @@ -0,0 +1,169 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/test/unit_test/example.cpp File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    example.cpp File Reference
    +
    +
    + +

    单元测试示例 +More...

    +
    #include "gtest/gtest.h"
    +
    +Include dependency graph for example.cpp:
    +
    +
    + + + + +
    +
    +

    Go to the source code of this file.

    + + + + +

    +Functions

     TEST (example, test_group1)
     
    +

    Detailed Description

    +

    单元测试示例

    +
    Author
    Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
    +
    Version
    1.0
    +
    Date
    2023-09-02
    + +
    change log:
    + + + + +
    DateAuthorDescription
    2023-09-02Zone.N<td>创建文件
    +
    + +

    Definition in file example.cpp.

    +

    Function Documentation

    + +

    ◆ TEST()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    TEST (example ,
    test_group1  
    )
    +
    + +

    Definition at line 19 of file example.cpp.

    +
    19 { EXPECT_EQ(0, 0); }
    +
    +
    +
    +
    +
    + + + + diff --git a/unit__test_2example_8cpp.js b/unit__test_2example_8cpp.js new file mode 100644 index 000000000..edf20df66 --- /dev/null +++ b/unit__test_2example_8cpp.js @@ -0,0 +1,4 @@ +var unit__test_2example_8cpp = +[ + [ "TEST", "unit__test_2example_8cpp.html#ab52dc74bff6a4efe73d9412400be38d9", null ] +]; \ No newline at end of file diff --git a/unit__test_2example_8cpp__incl.map b/unit__test_2example_8cpp__incl.map new file mode 100644 index 000000000..287f18ede --- /dev/null +++ b/unit__test_2example_8cpp__incl.map @@ -0,0 +1,4 @@ + + + + diff --git a/unit__test_2example_8cpp__incl.md5 b/unit__test_2example_8cpp__incl.md5 new file mode 100644 index 000000000..bf37030c3 --- /dev/null +++ b/unit__test_2example_8cpp__incl.md5 @@ -0,0 +1 @@ +b0324f36b4bfd23a253d5c91e56efa7a \ No newline at end of file diff --git a/unit__test_2example_8cpp__incl.png b/unit__test_2example_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..16f041196206607b28e61137224713b5603f6c78 GIT binary patch literal 5157 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 T=LZeo+z(P#e5CMR&NS#>?g-j~ literal 0 HcmV?d00001 diff --git a/unit__test_2example_8cpp_source.html b/unit__test_2example_8cpp_source.html new file mode 100644 index 000000000..1aaebb182 --- /dev/null +++ b/unit__test_2example_8cpp_source.html @@ -0,0 +1,104 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/test/unit_test/example.cpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    example.cpp
    +
    +
    +Go to the documentation of this file.
    1 
    +
    17 #include "gtest/gtest.h"
    +
    18 
    +
    19 TEST(example, test_group1) { EXPECT_EQ(0, 0); }
    +
    TEST(example, test_group1)
    Definition: example.cpp:19
    +
    +
    + + + + diff --git a/x86__64_2arch_8cpp.html b/x86__64_2arch_8cpp.html new file mode 100644 index 000000000..aa9934b3d --- /dev/null +++ b/x86__64_2arch_8cpp.html @@ -0,0 +1,180 @@ + + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/arch/x86_64/arch.cpp File Reference + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    + +
    +
    arch.cpp File Reference
    +
    +
    + +

    arch cpp +More...

    +
    #include "arch.h"
    +
    +Include dependency graph for arch.cpp:
    +
    +
    + + + + + +
    +
    +

    Go to the source code of this file.

    + + + + +

    +Functions

    int32_t arch (uint32_t _argc, uint8_t **_argv)
     
    +

    Detailed Description

    +

    arch cpp

    +
    Author
    Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)
    +
    Version
    1.0
    +
    Date
    2023-07-15
    + +
    change log:
    + + + + +
    DateAuthorDescription
    2023-07-15Zone.N (Zone..nosp@m.Niuz.nosp@m.h@hot.nosp@m.mail.nosp@m..com)创建文件
    +
    + +

    Definition in file arch.cpp.

    +

    Function Documentation

    + +

    ◆ arch()

    + +
    +
    + + + + + + + + + + + + + + + + + + +
    int32_t arch (uint32_t _argc,
    uint8_t ** _argv 
    )
    +
    + +

    Definition at line 19 of file arch.cpp.

    +
    19  {
    +
    20  (void)_argc;
    +
    21  (void)_argv;
    +
    22 
    +
    23  // 进入死循环
    +
    24  while (1) {
    +
    25  ;
    +
    26  }
    +
    27 
    +
    28  return 0;
    +
    29 }
    +
    +
    +
    +
    +
    + + + + diff --git a/x86__64_2arch_8cpp.js b/x86__64_2arch_8cpp.js new file mode 100644 index 000000000..7362e29af --- /dev/null +++ b/x86__64_2arch_8cpp.js @@ -0,0 +1,4 @@ +var x86__64_2arch_8cpp = +[ + [ "arch", "x86__64_2arch_8cpp.html#a6e72ac01cbd693797621b4ee1d02c9e5", null ] +]; \ No newline at end of file diff --git a/x86__64_2arch_8cpp__incl.map b/x86__64_2arch_8cpp__incl.map new file mode 100644 index 000000000..f22ddc93f --- /dev/null +++ b/x86__64_2arch_8cpp__incl.map @@ -0,0 +1,5 @@ + + + + + diff --git a/x86__64_2arch_8cpp__incl.md5 b/x86__64_2arch_8cpp__incl.md5 new file mode 100644 index 000000000..d685d7263 --- /dev/null +++ b/x86__64_2arch_8cpp__incl.md5 @@ -0,0 +1 @@ +0480ac9e698365c3af53673270d77adc \ No newline at end of file diff --git a/x86__64_2arch_8cpp__incl.png b/x86__64_2arch_8cpp__incl.png new file mode 100644 index 0000000000000000000000000000000000000000..4eb51a85c75c7ac723922fb3123ef40885c78174 GIT binary patch literal 7009 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 + + + + + + +SimpleKernel: /home/runner/work/SimpleKernel/SimpleKernel/src/kernel/arch/x86_64/arch.cpp Source File + + + + + + + + + + + + + +
    +
    + + + + + + +
    +
    SimpleKernel +  0.0.1 +
    +
    +
    + + + + + + + +
    +
    + +
    +
    +
    + +
    + +
    +
    + + +
    + +
    + +
    +
    +
    arch.cpp
    +
    +
    +Go to the documentation of this file.
    1 
    +
    17 #include "arch.h"
    +
    18 
    +
    19 int32_t arch(uint32_t _argc, uint8_t **_argv) {
    +
    20  (void)_argc;
    +
    21  (void)_argv;
    +
    22 
    +
    23  // 进入死循环
    +
    24  while (1) {
    +
    25  ;
    +
    26  }
    +
    27 
    +
    28  return 0;
    +
    29 }
    +
    int32_t arch(uint32_t _argc, uint8_t **_argv)
    Definition: arch.cpp:19
    +
    arch 头文件
    +
    +
    + + + +

  • + +
    +
    + + +
    + +
    + +
    +
    +
    graphics.cpp
    +
    +
    +Go to the documentation of this file.
    1 
    +
    17 #include <stdexcept>
    +
    18 
    +
    19 #include "load_elf.h"
    +
    20 #include "ostream.hpp"
    +
    21 
    + +
    23  auto status = LibLocateProtocol(&GraphicsOutputProtocol,
    +
    24  reinterpret_cast<void **>(&gop));
    +
    25  if (EFI_ERROR(status)) {
    +
    26  debug << L"Could not locate GOP: " << status << ostream::endl;
    +
    27  throw std::runtime_error("EFI_ERROR(status)");
    +
    28  }
    +
    29  if (gop == nullptr) {
    +
    30  debug << L"LibLocateProtocol(GraphicsOutputProtocol, &gop) returned "
    +
    31  << status << " but gop is nullptr" << ostream::endl;
    +
    32 
    +
    33  throw std::runtime_error("gop == nullptr");
    +
    34  }
    +
    35 }
    +
    36 
    +
    37 void Graphics::set_mode(EFI_GRAPHICS_PIXEL_FORMAT _format, uint32_t _width,
    +
    38  uint32_t _height) const {
    +
    39  EFI_STATUS status = EFI_SUCCESS;
    +
    40 
    +
    41  for (uint32_t i = 0; i < gop->Mode->MaxMode; i++) {
    +
    42  EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *mode_info = nullptr;
    +
    43  uint64_t mode_info_size = 0;
    +
    44  status = uefi_call_wrapper(gop->QueryMode, 4, gop, i, &mode_info_size,
    +
    45  &mode_info);
    +
    46  if (EFI_ERROR(status)) {
    +
    47  debug << L"QueryMode failed: " << status << ostream::endl;
    +
    48  throw std::runtime_error("EFI_ERROR(status)");
    +
    49  }
    +
    50 
    +
    51  if ((mode_info->PixelFormat == _format) &&
    +
    52  (mode_info->HorizontalResolution == _width) &&
    +
    53  (mode_info->VerticalResolution == _height)) {
    +
    54  status = uefi_call_wrapper(gop->SetMode, 2, gop, i);
    +
    55  if (EFI_ERROR(status)) {
    +
    56  debug << L"SetMode failed: " << status << ostream::endl;
    +
    57  throw std::runtime_error("EFI_ERROR(status)");
    +
    58  }
    +
    59  }
    +
    60  status = uefi_call_wrapper(gBS->FreePool, 1, mode_info);
    +
    61  if (EFI_ERROR(status)) {
    +
    62  debug << L"FreePool failed: " << status << ostream::endl;
    +
    63  throw std::runtime_error("EFI_ERROR(status)");
    +
    64  }
    +
    65  }
    +
    66 
    +
    67  debug << L"Current Mode: " << gop->Mode->Mode << L", Version: "
    +
    68  << ostream::hex_x << gop->Mode->Info->Version << L", Format: "
    +
    69  << gop->Mode->Info->PixelFormat << L", Horizontal: "
    +
    70  << gop->Mode->Info->HorizontalResolution << L", Vertical: "
    +
    71  << gop->Mode->Info->VerticalResolution << L", ScanLine: "
    +
    72  << gop->Mode->Info->PixelsPerScanLine << L", FrameBufferBase: "
    +
    73  << ostream::hex_X << gop->Mode->FrameBufferBase
    +
    74  << L", FrameBufferSize: " << ostream::hex_X
    +
    75  << gop->Mode->FrameBufferSize << ostream::endl;
    +
    76 }
    +
    77 
    +
    78 void Graphics::print_info() const {
    +
    79  debug << L"Current Mode: " << gop->Mode->Mode << L", Version: "
    +
    80  << ostream::hex_x << gop->Mode->Info->Version << L", Format: "
    +
    81  << gop->Mode->Info->PixelFormat << L", Horizontal: "
    +
    82  << gop->Mode->Info->HorizontalResolution << L", Vertical: "
    +
    83  << gop->Mode->Info->VerticalResolution << L", ScanLine: "
    +
    84  << gop->Mode->Info->PixelsPerScanLine << L", FrameBufferBase: "
    +
    85  << ostream::hex_X << gop->Mode->FrameBufferBase
    +
    86  << L", FrameBufferSize: " << ostream::hex_X
    +
    87  << gop->Mode->FrameBufferSize << ostream::endl;
    +
    88 
    +
    89  for (uint32_t i = 0; i < gop->Mode->MaxMode; i++) {
    +
    90  EFI_GRAPHICS_OUTPUT_MODE_INFORMATION *mode_info = nullptr;
    +
    91  uint64_t mode_info_size = 0;
    +
    92  auto status = uefi_call_wrapper(gop->QueryMode, 4, gop, i, &mode_info_size,
    +
    93  &mode_info);
    +
    94  if (EFI_ERROR(status)) {
    +
    95  debug << L"QueryMode failed: " << status << ostream::endl;
    +
    96  throw std::runtime_error("EFI_ERROR(status)");
    +
    97  }
    +
    98 
    +
    99  debug << L"Mode: " << i << L", Version: " << ostream::hex_x
    +
    100  << gop->Mode->Info->Version << L", Format: "
    +
    101  << gop->Mode->Info->PixelFormat << L", Horizontal: "
    +
    102  << gop->Mode->Info->HorizontalResolution << L", Vertical: "
    +
    103  << gop->Mode->Info->VerticalResolution << L", ScanLine: "
    +
    104  << gop->Mode->Info->PixelsPerScanLine << ostream::endl;
    +
    105 
    +
    106  status = uefi_call_wrapper(gBS->FreePool, 1, mode_info);
    +
    107  if (EFI_ERROR(status)) {
    +
    108  debug << L"FreePool failed: " << status << ostream::endl;
    +
    109  throw std::runtime_error("EFI_ERROR(status)");
    +
    110  }
    +
    111  }
    +
    112 }
    +
    void set_mode(EFI_GRAPHICS_PIXEL_FORMAT _format=PixelBlueGreenRedReserved8BitPerColor, uint32_t _width=DEFAULT_WIDTH, uint32_t _height=DEFAULT_HEIGHT) const
    Definition: graphics.cpp:37
    +
    EFI_GRAPHICS_OUTPUT_PROTOCOL * gop
    Definition: load_elf.h:81
    +
    void print_info() const
    Definition: graphics.cpp:78
    +
    Graphics()
    Definition: graphics.cpp:22
    +
    static auto endl(ostream &_ostream) -> ostream &
    Definition: ostream.cpp:42
    +
    static auto hex_x(ostream &_ostream) -> ostream &
    Definition: ostream.cpp:32
    +
    static auto hex_X(ostream &_ostream) -> ostream &
    Definition: ostream.cpp:37
    +
    load_elf h
    +
    ostream hpp
    +
    static ostream debug
    全局输出流
    Definition: ostream.hpp:194
    +
    +