socpuppet 0.0.1rc1__tar.gz

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (886) hide show
  1. socpuppet-0.0.1rc1/.clang-format +31 -0
  2. socpuppet-0.0.1rc1/.clang-tidy +99 -0
  3. socpuppet-0.0.1rc1/.claude/skills/software-design-review/SKILL.md +34 -0
  4. socpuppet-0.0.1rc1/.claude/skills/tdd/SKILL.md +54 -0
  5. socpuppet-0.0.1rc1/.claude/skills/test-design-review/SKILL.md +133 -0
  6. socpuppet-0.0.1rc1/.coveragerc +13 -0
  7. socpuppet-0.0.1rc1/.devcontainer/Dockerfile +38 -0
  8. socpuppet-0.0.1rc1/.devcontainer/devcontainer.json +30 -0
  9. socpuppet-0.0.1rc1/.editorconfig +25 -0
  10. socpuppet-0.0.1rc1/.git-blame-ignore-revs +9 -0
  11. socpuppet-0.0.1rc1/.github/actionlint.yaml +7 -0
  12. socpuppet-0.0.1rc1/.github/actions/setup/action.yml +234 -0
  13. socpuppet-0.0.1rc1/.github/dependabot.yml +30 -0
  14. socpuppet-0.0.1rc1/.github/workflows/checks.yml +91 -0
  15. socpuppet-0.0.1rc1/.github/workflows/ci.yml +150 -0
  16. socpuppet-0.0.1rc1/.github/workflows/firmware.yml +312 -0
  17. socpuppet-0.0.1rc1/.github/workflows/nightly.yml +291 -0
  18. socpuppet-0.0.1rc1/.github/workflows/qbox-build.yml +61 -0
  19. socpuppet-0.0.1rc1/.github/workflows/release.yml +161 -0
  20. socpuppet-0.0.1rc1/.github/workflows/wheel.yml +77 -0
  21. socpuppet-0.0.1rc1/.gitignore +23 -0
  22. socpuppet-0.0.1rc1/.python-version +1 -0
  23. socpuppet-0.0.1rc1/.rumdl.toml +12 -0
  24. socpuppet-0.0.1rc1/AGENTS.md +87 -0
  25. socpuppet-0.0.1rc1/CLAUDE.md +1 -0
  26. socpuppet-0.0.1rc1/CMakeLists.txt +47 -0
  27. socpuppet-0.0.1rc1/CMakePresets.json +145 -0
  28. socpuppet-0.0.1rc1/CPPLINT.cfg +21 -0
  29. socpuppet-0.0.1rc1/LICENSE +21 -0
  30. socpuppet-0.0.1rc1/PKG-INFO +214 -0
  31. socpuppet-0.0.1rc1/README.md +185 -0
  32. socpuppet-0.0.1rc1/THIRD_PARTY_NOTICES.md +28 -0
  33. socpuppet-0.0.1rc1/cmake/Dependencies.cmake +581 -0
  34. socpuppet-0.0.1rc1/cmake/DevChecks.cmake +275 -0
  35. socpuppet-0.0.1rc1/cmake/MacSdk.cmake +13 -0
  36. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-core-asio-names.patch +36 -0
  37. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-core-gdb-continue-answered-once.patch +37 -0
  38. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-core-gdb-rude-hangup.patch +16 -0
  39. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-core-gdb-server-per-core.patch +101 -0
  40. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-core-int128-traits.patch +20 -0
  41. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-core-jit-wait-name.patch +39 -0
  42. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-core-llvm-global-string.patch +21 -0
  43. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-core-llvm-pointer-args.patch +28 -0
  44. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-asmjit-wfi-call.patch +144 -0
  45. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-counter-enables.patch +51 -0
  46. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-debugger-waits-for-reset.patch +18 -0
  47. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-dmi-invalidate.patch +42 -0
  48. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-fetch-ends-page.patch +25 -0
  49. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-flw-address.patch +22 -0
  50. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-fp-status.patch +107 -0
  51. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-gdb-server-per-core.patch +17 -0
  52. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-int128-traits.patch +180 -0
  53. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-interrupt-after-access.patch +18 -0
  54. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-interrupt-drops-instruction.patch +17 -0
  55. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-interrupt-inside-exception.patch +28 -0
  56. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-jit-wait-name.patch +249 -0
  57. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-llvm-core-names.patch +25 -0
  58. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-llvm-init-jit.patch +19 -0
  59. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-llvm-wfi-call.patch +78 -0
  60. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-mip-read-only.patch +27 -0
  61. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-misaligned-amo.patch +35 -0
  62. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-mprv-on-return.patch +14 -0
  63. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-offsetof.patch +1285 -0
  64. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-one-reservation.patch +29 -0
  65. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-reset-pulse.patch +49 -0
  66. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-reset-restart.patch +28 -0
  67. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-satp-warl.patch +80 -0
  68. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-sfence-user-mode.patch +14 -0
  69. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-sret-tsr.patch +14 -0
  70. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-sstatus-view.patch +29 -0
  71. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-static-library.patch +30 -0
  72. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-supervisor-interrupts.patch +125 -0
  73. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-tlb-dirty.patch +16 -0
  74. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-topi.patch +65 -0
  75. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-translate-fetches.patch +23 -0
  76. socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-xret-privilege.patch +16 -0
  77. socpuppet-0.0.1rc1/cmake/patches/edk2-sec-maps-ns16550.patch +12 -0
  78. socpuppet-0.0.1rc1/cmake/patches/edk2-virtiofs-sets-its-queue-size.patch +24 -0
  79. socpuppet-0.0.1rc1/cmake/patches/libqemu-icount-no-active-timers.patch +14 -0
  80. socpuppet-0.0.1rc1/cmake/patches/libqemu-icount-trap-charge.patch +25 -0
  81. socpuppet-0.0.1rc1/cmake/patches/libqemu-macos-no-opengl.patch +147 -0
  82. socpuppet-0.0.1rc1/cmake/patches/libqemu-macos-rpclib-asio.patch +44 -0
  83. socpuppet-0.0.1rc1/cmake/patches/libqemu-riscv-board-hooks.patch +92 -0
  84. socpuppet-0.0.1rc1/cmake/patches/libqemu-riscv-fence-i-flushes.patch +56 -0
  85. socpuppet-0.0.1rc1/cmake/patches/libqemu-vm-stop-state.patch +159 -0
  86. socpuppet-0.0.1rc1/cmake/patches/opensbi-syscon-regmap-size.patch +14 -0
  87. socpuppet-0.0.1rc1/cmake/patches/qbox-coroutine-quantum-deadline.patch +58 -0
  88. socpuppet-0.0.1rc1/cmake/patches/qbox-cpp20-constructors.patch +26 -0
  89. socpuppet-0.0.1rc1/cmake/patches/qbox-cpu-machine-state.patch +107 -0
  90. socpuppet-0.0.1rc1/cmake/patches/qbox-cpu-stop-arms-no-deadline.patch +48 -0
  91. socpuppet-0.0.1rc1/cmake/patches/qbox-gs-semaphore.patch +17 -0
  92. socpuppet-0.0.1rc1/cmake/patches/qbox-hexagon-fmt.patch +26 -0
  93. socpuppet-0.0.1rc1/cmake/patches/qbox-macos-loader-path.patch +15 -0
  94. socpuppet-0.0.1rc1/cmake/patches/qbox-macos-rpclib-asio.patch +47 -0
  95. socpuppet-0.0.1rc1/cmake/patches/qbox-riscv-board-hooks.patch +41 -0
  96. socpuppet-0.0.1rc1/cmake/patches/qbox-riscv-no-suspend-in-coroutine.patch +20 -0
  97. socpuppet-0.0.1rc1/cmake/patches/qbox-riscv-sstc-parameter.patch +26 -0
  98. socpuppet-0.0.1rc1/cmake/patches/qbox-wait-catches-up-with-the-clock.patch +75 -0
  99. socpuppet-0.0.1rc1/cmake/patches/scc-cci-explicit-elem-ref.patch +22 -0
  100. socpuppet-0.0.1rc1/cmake/patches/scc-in-tree-systemc.patch +13 -0
  101. socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-aclint-time-zero.patch +13 -0
  102. socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-aclint-write-ahead.patch +17 -0
  103. socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-aon-watchdog.patch +259 -0
  104. socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-aplic-msi-mode.patch +399 -0
  105. socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-gpio-interrupts.patch +120 -0
  106. socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-gpio-pull-up.patch +73 -0
  107. socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-plic-edge-while-claimed.patch +49 -0
  108. socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-plic-last-source.patch +32 -0
  109. socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-plic-level-sources.patch +20 -0
  110. socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-plic-look-again.patch +34 -0
  111. socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-spi-first-byte.patch +14 -0
  112. socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-spi-power-on-reset.patch +35 -0
  113. socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-spi-receive-fifo-full.patch +16 -0
  114. socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-spi-receive-mark.patch +20 -0
  115. socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-spi-transmit-only.patch +24 -0
  116. socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-spi-transmit-watermark.patch +33 -0
  117. socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-uart-interrupt-from-state.patch +185 -0
  118. socpuppet-0.0.1rc1/cmake/patches/zephyr-gpio-sifive-pin-per-handler.patch +140 -0
  119. socpuppet-0.0.1rc1/cmake/patches/zephyr-i2c-sifive-address-shifted.patch +17 -0
  120. socpuppet-0.0.1rc1/cmake/patches/zephyr-i2c-sifive-start-only-when-asked.patch +66 -0
  121. socpuppet-0.0.1rc1/cmake/patches/zephyr-virtqueue-callbacks-aligned.patch +30 -0
  122. socpuppet-0.0.1rc1/cmake/sanitizer_options.cpp +22 -0
  123. socpuppet-0.0.1rc1/cmake/shims/spdk/assert.h +14 -0
  124. socpuppet-0.0.1rc1/cmake/shims/spdk/stdinc.h +13 -0
  125. socpuppet-0.0.1rc1/examples/boot_from_flash.py +146 -0
  126. socpuppet-0.0.1rc1/examples/chiplet_host_hello.py +105 -0
  127. socpuppet-0.0.1rc1/examples/first_show.py +54 -0
  128. socpuppet-0.0.1rc1/examples/full_bootchain.py +157 -0
  129. socpuppet-0.0.1rc1/examples/host_and_ssd_hello.py +129 -0
  130. socpuppet-0.0.1rc1/examples/host_hello.py +51 -0
  131. socpuppet-0.0.1rc1/examples/io_manager_hello.py +71 -0
  132. socpuppet-0.0.1rc1/examples/linux_cable.py +210 -0
  133. socpuppet-0.0.1rc1/examples/linux_hello.py +113 -0
  134. socpuppet-0.0.1rc1/examples/linux_on_the_drive.py +178 -0
  135. socpuppet-0.0.1rc1/examples/nvme_hello.py +121 -0
  136. socpuppet-0.0.1rc1/examples/passthrough_hello.py +54 -0
  137. socpuppet-0.0.1rc1/examples/shell_from_python.py +104 -0
  138. socpuppet-0.0.1rc1/examples/ssd_firmware_hello.py +107 -0
  139. socpuppet-0.0.1rc1/examples/ssd_hello.py +83 -0
  140. socpuppet-0.0.1rc1/firmware/.clang-format +24 -0
  141. socpuppet-0.0.1rc1/firmware/CPPLINT.cfg +5 -0
  142. socpuppet-0.0.1rc1/firmware/build.py +1386 -0
  143. socpuppet-0.0.1rc1/firmware/flash_test/CMakeLists.txt +12 -0
  144. socpuppet-0.0.1rc1/firmware/flash_test/Kconfig +2 -0
  145. socpuppet-0.0.1rc1/firmware/flash_test/README.md +15 -0
  146. socpuppet-0.0.1rc1/firmware/flash_test/boards/socpuppet_ssd.overlay +17 -0
  147. socpuppet-0.0.1rc1/firmware/flash_test/prj.conf +16 -0
  148. socpuppet-0.0.1rc1/firmware/flash_test/src/nand.c +122 -0
  149. socpuppet-0.0.1rc1/firmware/flash_test/testcase.yaml +7 -0
  150. socpuppet-0.0.1rc1/firmware/initramfs/init +60 -0
  151. socpuppet-0.0.1rc1/firmware/iomgr/CMakeLists.txt +8 -0
  152. socpuppet-0.0.1rc1/firmware/iomgr/README.md +25 -0
  153. socpuppet-0.0.1rc1/firmware/iomgr/prj.conf +5 -0
  154. socpuppet-0.0.1rc1/firmware/iomgr/src/main.c +62 -0
  155. socpuppet-0.0.1rc1/firmware/iomgr/testcase.yaml +15 -0
  156. socpuppet-0.0.1rc1/firmware/rom/README.md +44 -0
  157. socpuppet-0.0.1rc1/firmware/rom/board_rv32.h +16 -0
  158. socpuppet-0.0.1rc1/firmware/rom/board_rv64.h +16 -0
  159. socpuppet-0.0.1rc1/firmware/rom/crc32.c +39 -0
  160. socpuppet-0.0.1rc1/firmware/rom/crc32.h +13 -0
  161. socpuppet-0.0.1rc1/firmware/rom/main.c +221 -0
  162. socpuppet-0.0.1rc1/firmware/rom/rom.ld +27 -0
  163. socpuppet-0.0.1rc1/firmware/rom/start.S +48 -0
  164. socpuppet-0.0.1rc1/firmware/rootfs/etc/inittab +31 -0
  165. socpuppet-0.0.1rc1/firmware/sbi_payload/main.c +183 -0
  166. socpuppet-0.0.1rc1/firmware/sbi_payload/payload.ld +37 -0
  167. socpuppet-0.0.1rc1/firmware/sbi_payload/start.S +25 -0
  168. socpuppet-0.0.1rc1/firmware/ssd/CMakeLists.txt +14 -0
  169. socpuppet-0.0.1rc1/firmware/ssd/README.md +26 -0
  170. socpuppet-0.0.1rc1/firmware/ssd/prj.conf +11 -0
  171. socpuppet-0.0.1rc1/firmware/ssd/src/admin.c +214 -0
  172. socpuppet-0.0.1rc1/firmware/ssd/src/buffer.c +29 -0
  173. socpuppet-0.0.1rc1/firmware/ssd/src/data.c +99 -0
  174. socpuppet-0.0.1rc1/firmware/ssd/src/data.h +72 -0
  175. socpuppet-0.0.1rc1/firmware/ssd/src/ftl.c +231 -0
  176. socpuppet-0.0.1rc1/firmware/ssd/src/ftl.h +69 -0
  177. socpuppet-0.0.1rc1/firmware/ssd/src/io.c +111 -0
  178. socpuppet-0.0.1rc1/firmware/ssd/src/main.c +106 -0
  179. socpuppet-0.0.1rc1/firmware/ssd/src/nvme.h +102 -0
  180. socpuppet-0.0.1rc1/firmware/ssd/src/ssd.h +62 -0
  181. socpuppet-0.0.1rc1/firmware/ssd/testcase.yaml +12 -0
  182. socpuppet-0.0.1rc1/firmware/ssd/tests/admin/CMakeLists.txt +17 -0
  183. socpuppet-0.0.1rc1/firmware/ssd/tests/admin/prj.conf +5 -0
  184. socpuppet-0.0.1rc1/firmware/ssd/tests/admin/src/main.c +258 -0
  185. socpuppet-0.0.1rc1/firmware/ssd/tests/admin/testcase.yaml +9 -0
  186. socpuppet-0.0.1rc1/firmware/ssd/tests/ftl/CMakeLists.txt +13 -0
  187. socpuppet-0.0.1rc1/firmware/ssd/tests/ftl/prj.conf +3 -0
  188. socpuppet-0.0.1rc1/firmware/ssd/tests/ftl/src/main.c +231 -0
  189. socpuppet-0.0.1rc1/firmware/ssd/tests/ftl/testcase.yaml +7 -0
  190. socpuppet-0.0.1rc1/firmware/twister-quarantine.yaml +38 -0
  191. socpuppet-0.0.1rc1/firmware/twister-requirements.txt +16 -0
  192. socpuppet-0.0.1rc1/firmware/twister-suites.txt +70 -0
  193. socpuppet-0.0.1rc1/firmware/twister.py +451 -0
  194. socpuppet-0.0.1rc1/firmware/versions.toml +67 -0
  195. socpuppet-0.0.1rc1/firmware/virtiofs_sample.overlay +9 -0
  196. socpuppet-0.0.1rc1/firmware/watchdog/CMakeLists.txt +9 -0
  197. socpuppet-0.0.1rc1/firmware/watchdog/README.md +29 -0
  198. socpuppet-0.0.1rc1/firmware/watchdog/prj.conf +8 -0
  199. socpuppet-0.0.1rc1/firmware/watchdog/src/main.c +150 -0
  200. socpuppet-0.0.1rc1/firmware/watchdog/testcase.yaml +30 -0
  201. socpuppet-0.0.1rc1/mypy.ini +7 -0
  202. socpuppet-0.0.1rc1/pyproject.toml +172 -0
  203. socpuppet-0.0.1rc1/python/socpuppet/__init__.py +160 -0
  204. socpuppet-0.0.1rc1/python/socpuppet/__main__.py +5 -0
  205. socpuppet-0.0.1rc1/python/socpuppet/_core.pyi +75 -0
  206. socpuppet-0.0.1rc1/python/socpuppet/address_map.py +266 -0
  207. socpuppet-0.0.1rc1/python/socpuppet/boards/__init__.py +1 -0
  208. socpuppet-0.0.1rc1/python/socpuppet/boards/boot.py +109 -0
  209. socpuppet-0.0.1rc1/python/socpuppet/boards/cpu_kit.py +259 -0
  210. socpuppet-0.0.1rc1/python/socpuppet/boards/drive.py +83 -0
  211. socpuppet-0.0.1rc1/python/socpuppet/boards/host.py +1013 -0
  212. socpuppet-0.0.1rc1/python/socpuppet/boards/io_manager.py +180 -0
  213. socpuppet-0.0.1rc1/python/socpuppet/boards/manager.py +120 -0
  214. socpuppet-0.0.1rc1/python/socpuppet/boards/real_host.py +151 -0
  215. socpuppet-0.0.1rc1/python/socpuppet/boards/scripted_host.py +151 -0
  216. socpuppet-0.0.1rc1/python/socpuppet/boards/ssd.py +486 -0
  217. socpuppet-0.0.1rc1/python/socpuppet/boards/virtio.py +121 -0
  218. socpuppet-0.0.1rc1/python/socpuppet/boot_image.py +167 -0
  219. socpuppet-0.0.1rc1/python/socpuppet/cli.py +639 -0
  220. socpuppet-0.0.1rc1/python/socpuppet/components/__init__.py +139 -0
  221. socpuppet-0.0.1rc1/python/socpuppet/components/base.py +371 -0
  222. socpuppet-0.0.1rc1/python/socpuppet/components/cpu.py +316 -0
  223. socpuppet-0.0.1rc1/python/socpuppet/components/interrupts.py +291 -0
  224. socpuppet-0.0.1rc1/python/socpuppet/components/links.py +189 -0
  225. socpuppet-0.0.1rc1/python/socpuppet/components/memory.py +160 -0
  226. socpuppet-0.0.1rc1/python/socpuppet/components/pcie.py +279 -0
  227. socpuppet-0.0.1rc1/python/socpuppet/components/peripherals.py +731 -0
  228. socpuppet-0.0.1rc1/python/socpuppet/components/storage.py +217 -0
  229. socpuppet-0.0.1rc1/python/socpuppet/components/virtio.py +381 -0
  230. socpuppet-0.0.1rc1/python/socpuppet/devicetree.py +586 -0
  231. socpuppet-0.0.1rc1/python/socpuppet/drive.py +60 -0
  232. socpuppet-0.0.1rc1/python/socpuppet/elf.py +56 -0
  233. socpuppet-0.0.1rc1/python/socpuppet/errors.py +29 -0
  234. socpuppet-0.0.1rc1/python/socpuppet/ethernet_cable.py +163 -0
  235. socpuppet-0.0.1rc1/python/socpuppet/ftl.py +234 -0
  236. socpuppet-0.0.1rc1/python/socpuppet/fuse.py +561 -0
  237. socpuppet-0.0.1rc1/python/socpuppet/gpt.py +189 -0
  238. socpuppet-0.0.1rc1/python/socpuppet/i2c.py +83 -0
  239. socpuppet-0.0.1rc1/python/socpuppet/images.py +286 -0
  240. socpuppet-0.0.1rc1/python/socpuppet/images_release.py +12 -0
  241. socpuppet-0.0.1rc1/python/socpuppet/interactive.py +187 -0
  242. socpuppet-0.0.1rc1/python/socpuppet/interrupt_map.py +73 -0
  243. socpuppet-0.0.1rc1/python/socpuppet/io_manager.py +119 -0
  244. socpuppet-0.0.1rc1/python/socpuppet/linux.py +359 -0
  245. socpuppet-0.0.1rc1/python/socpuppet/msi_host.py +46 -0
  246. socpuppet-0.0.1rc1/python/socpuppet/ninep.py +683 -0
  247. socpuppet-0.0.1rc1/python/socpuppet/nvme_host.py +568 -0
  248. socpuppet-0.0.1rc1/python/socpuppet/opensbi.py +168 -0
  249. socpuppet-0.0.1rc1/python/socpuppet/ops.py +119 -0
  250. socpuppet-0.0.1rc1/python/socpuppet/pcie_host.py +237 -0
  251. socpuppet-0.0.1rc1/python/socpuppet/placed.py +319 -0
  252. socpuppet-0.0.1rc1/python/socpuppet/platform.py +698 -0
  253. socpuppet-0.0.1rc1/python/socpuppet/pump.py +170 -0
  254. socpuppet-0.0.1rc1/python/socpuppet/py.typed +0 -0
  255. socpuppet-0.0.1rc1/python/socpuppet/pytest_plugin.py +513 -0
  256. socpuppet-0.0.1rc1/python/socpuppet/qemu_trace.py +52 -0
  257. socpuppet-0.0.1rc1/python/socpuppet/regs/__init__.py +12 -0
  258. socpuppet-0.0.1rc1/python/socpuppet/regs/boot_image_header.py +58 -0
  259. socpuppet-0.0.1rc1/python/socpuppet/regs/command_device.py +28 -0
  260. socpuppet-0.0.1rc1/python/socpuppet/regs/dma_engine.py +46 -0
  261. socpuppet-0.0.1rc1/python/socpuppet/regs/flash_controller.py +57 -0
  262. socpuppet-0.0.1rc1/python/socpuppet/regs/ftl_header.py +31 -0
  263. socpuppet-0.0.1rc1/python/socpuppet/regs/i2c_controller.py +70 -0
  264. socpuppet-0.0.1rc1/python/socpuppet/regs/nvme_frontend.py +99 -0
  265. socpuppet-0.0.1rc1/python/socpuppet/regs/rtc.py +40 -0
  266. socpuppet-0.0.1rc1/python/socpuppet/regs/system_controller.py +38 -0
  267. socpuppet-0.0.1rc1/python/socpuppet/regs/ucie_link.py +141 -0
  268. socpuppet-0.0.1rc1/python/socpuppet/regs/virtio_mmio.py +155 -0
  269. socpuppet-0.0.1rc1/python/socpuppet/run.py +362 -0
  270. socpuppet-0.0.1rc1/python/socpuppet/slirp.py +363 -0
  271. socpuppet-0.0.1rc1/python/socpuppet/spi.py +46 -0
  272. socpuppet-0.0.1rc1/python/socpuppet/ssd_firmware.py +735 -0
  273. socpuppet-0.0.1rc1/python/socpuppet/terminal.py +68 -0
  274. socpuppet-0.0.1rc1/python/socpuppet/time.py +25 -0
  275. socpuppet-0.0.1rc1/python/socpuppet/trace.py +98 -0
  276. socpuppet-0.0.1rc1/python/socpuppet/transcript.py +88 -0
  277. socpuppet-0.0.1rc1/python/socpuppet/ucie.py +253 -0
  278. socpuppet-0.0.1rc1/python/socpuppet/virtio_host.py +684 -0
  279. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/.clang-format +24 -0
  280. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/CPPLINT.cfg +5 -0
  281. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_drive/Kconfig.shield +2 -0
  282. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_drive/socpuppet_host_drive.conf +9 -0
  283. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_drive/socpuppet_host_drive.overlay +28 -0
  284. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_gpio_loopback/Kconfig.shield +2 -0
  285. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_gpio_loopback/socpuppet_host_gpio_loopback.conf +5 -0
  286. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_gpio_loopback/socpuppet_host_gpio_loopback.overlay +7 -0
  287. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_i2c_ram/Kconfig.shield +2 -0
  288. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_i2c_ram/socpuppet_host_i2c_ram.overlay +5 -0
  289. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_iommu/Kconfig.shield +2 -0
  290. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_iommu/socpuppet_host_iommu.overlay +15 -0
  291. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_spi_loopback/Kconfig.shield +2 -0
  292. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_spi_loopback/socpuppet_host_spi_loopback.conf +9 -0
  293. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_spi_loopback/socpuppet_host_spi_loopback.overlay +13 -0
  294. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_virtio/Kconfig.shield +2 -0
  295. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_virtio/socpuppet_host_virtio.conf +8 -0
  296. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_virtio/socpuppet_host_virtio.overlay +63 -0
  297. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_virtio_console/Kconfig.shield +2 -0
  298. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_virtio_console/socpuppet_host_virtio_console.conf +3 -0
  299. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_virtio_console/socpuppet_host_virtio_console.overlay +10 -0
  300. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_ssd_host/Kconfig.shield +2 -0
  301. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_ssd_host/socpuppet_ssd_host.overlay +17 -0
  302. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/run_with_socpuppet.cmake +26 -0
  303. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_host/Kconfig.socpuppet_host +3 -0
  304. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_host/board.cmake +3 -0
  305. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_host/board.yml +5 -0
  306. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_host/socpuppet_host.dts +167 -0
  307. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_host/socpuppet_host.yaml +25 -0
  308. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_host/socpuppet_host_defconfig +7 -0
  309. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_iomgr/Kconfig.socpuppet_iomgr +4 -0
  310. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_iomgr/board.cmake +3 -0
  311. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_iomgr/board.yml +5 -0
  312. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_iomgr/socpuppet_iomgr.dts +98 -0
  313. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_iomgr/socpuppet_iomgr.yaml +21 -0
  314. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_iomgr/socpuppet_iomgr_defconfig +7 -0
  315. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_ssd/Kconfig.socpuppet_ssd +3 -0
  316. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_ssd/board.cmake +3 -0
  317. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_ssd/board.yml +5 -0
  318. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_ssd/socpuppet_ssd.dts +109 -0
  319. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_ssd/socpuppet_ssd.yaml +21 -0
  320. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_ssd/socpuppet_ssd_defconfig +7 -0
  321. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/drivers/d2d/ucie_link.c +198 -0
  322. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/drivers/interrupt_controller/imsic_irq.c +217 -0
  323. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/drivers/iommu/riscv_iommu.c +535 -0
  324. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/drivers/pcie/map_without_mmu.c +24 -0
  325. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/drivers/pcie/socpuppet_pcie.c +241 -0
  326. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/drivers/rtc/rtc_goldfish.c +94 -0
  327. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/drivers/ssd/command_status.h +55 -0
  328. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/drivers/ssd/dma_engine.c +61 -0
  329. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/drivers/ssd/flash_controller.c +275 -0
  330. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/drivers/ssd/nvme_frontend.c +166 -0
  331. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/dts/bindings/d2d/socpuppet,ucie-link.yaml +30 -0
  332. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/dts/bindings/iommu/riscv,iommu.yaml +24 -0
  333. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/dts/bindings/pcie/socpuppet,pcie.yaml +47 -0
  334. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/dts/bindings/rtc/google,goldfish-rtc.yaml +14 -0
  335. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/dts/bindings/ssd/socpuppet,dma-engine.yaml +15 -0
  336. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/dts/bindings/ssd/socpuppet,flash-controller.yaml +16 -0
  337. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/dts/bindings/ssd/socpuppet,nvme-frontend.yaml +20 -0
  338. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/dts/bindings/syscon/socpuppet,system-controller.yaml +12 -0
  339. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/dts/bindings/vendor-prefixes.txt +3 -0
  340. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/drivers/dma_engine.h +35 -0
  341. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/drivers/nvme_frontend.h +140 -0
  342. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/drivers/riscv_iommu.h +81 -0
  343. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/drivers/ucie_link.h +59 -0
  344. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/boot_image_header.h +74 -0
  345. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/command_device.h +36 -0
  346. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/dma_engine.h +59 -0
  347. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/flash_controller.h +69 -0
  348. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/ftl_header.h +45 -0
  349. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/i2c_controller.h +80 -0
  350. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/nvme_frontend.h +123 -0
  351. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/rtc.h +52 -0
  352. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/system_controller.h +48 -0
  353. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/ucie_link.h +155 -0
  354. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/virtio_mmio.h +211 -0
  355. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/soc/socpuppet/CMakeLists.txt +9 -0
  356. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/soc/socpuppet/Kconfig +20 -0
  357. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/soc/socpuppet/Kconfig.defconfig +49 -0
  358. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/soc/socpuppet/Kconfig.soc +7 -0
  359. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/soc/socpuppet/pinctrl_soc.h +15 -0
  360. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/soc/socpuppet/reboot.c +31 -0
  361. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/soc/socpuppet/soc.h +23 -0
  362. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/soc/socpuppet/soc.yml +5 -0
  363. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/soc/socpuppet/socpuppet_rv32/Kconfig.soc +6 -0
  364. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/soc/socpuppet/socpuppet_rv64/Kconfig.soc +6 -0
  365. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/README.md +10 -0
  366. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/dma_engine/CMakeLists.txt +8 -0
  367. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/dma_engine/prj.conf +1 -0
  368. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/dma_engine/src/main.c +154 -0
  369. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/dma_engine/testcase.yaml +10 -0
  370. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/imsic_irq/CMakeLists.txt +8 -0
  371. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/imsic_irq/prj.conf +1 -0
  372. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/imsic_irq/src/main.c +147 -0
  373. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/imsic_irq/testcase.yaml +7 -0
  374. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/nvme_frontend/CMakeLists.txt +8 -0
  375. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/nvme_frontend/prj.conf +1 -0
  376. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/nvme_frontend/src/main.c +214 -0
  377. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/nvme_frontend/testcase.yaml +10 -0
  378. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/riscv_iommu/CMakeLists.txt +8 -0
  379. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/riscv_iommu/prj.conf +7 -0
  380. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/riscv_iommu/src/main.c +116 -0
  381. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/riscv_iommu/testcase.yaml +9 -0
  382. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/socpuppet_pcie/CMakeLists.txt +8 -0
  383. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/socpuppet_pcie/prj.conf +5 -0
  384. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/socpuppet_pcie/src/main.c +150 -0
  385. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/socpuppet_pcie/testcase.yaml +8 -0
  386. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/syscon_reset_cause/CMakeLists.txt +8 -0
  387. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/syscon_reset_cause/prj.conf +4 -0
  388. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/syscon_reset_cause/src/main.c +38 -0
  389. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/syscon_reset_cause/testcase.yaml +8 -0
  390. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/ucie_link/CMakeLists.txt +8 -0
  391. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/ucie_link/prj.conf +4 -0
  392. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/ucie_link/src/main.c +125 -0
  393. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/ucie_link/testcase.yaml +8 -0
  394. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/zephyr/CMakeLists.txt +41 -0
  395. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/zephyr/Kconfig +159 -0
  396. socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/zephyr/module.yml +10 -0
  397. socpuppet-0.0.1rc1/python/socpuppet/ztest.py +143 -0
  398. socpuppet-0.0.1rc1/regs/boot_image_header.rdl +84 -0
  399. socpuppet-0.0.1rc1/regs/command_device.rdl +56 -0
  400. socpuppet-0.0.1rc1/regs/dma_engine.rdl +52 -0
  401. socpuppet-0.0.1rc1/regs/flash_controller.rdl +69 -0
  402. socpuppet-0.0.1rc1/regs/ftl_header.rdl +49 -0
  403. socpuppet-0.0.1rc1/regs/i2c_controller.rdl +63 -0
  404. socpuppet-0.0.1rc1/regs/nvme_frontend.rdl +145 -0
  405. socpuppet-0.0.1rc1/regs/properties.rdl +14 -0
  406. socpuppet-0.0.1rc1/regs/rtc.rdl +58 -0
  407. socpuppet-0.0.1rc1/regs/system_controller.rdl +46 -0
  408. socpuppet-0.0.1rc1/regs/ucie_link.rdl +154 -0
  409. socpuppet-0.0.1rc1/regs/virtio_mmio.rdl +173 -0
  410. socpuppet-0.0.1rc1/ruff.toml +40 -0
  411. socpuppet-0.0.1rc1/src/socpuppet/CMakeLists.txt +426 -0
  412. socpuppet-0.0.1rc1/src/socpuppet/bindings/core.cpp +478 -0
  413. socpuppet-0.0.1rc1/src/socpuppet/bindings/python_executor.h +76 -0
  414. socpuppet-0.0.1rc1/src/socpuppet/bindings/python_i2c_device.h +60 -0
  415. socpuppet-0.0.1rc1/src/socpuppet/bindings/python_script.h +116 -0
  416. socpuppet-0.0.1rc1/src/socpuppet/bindings/python_spi_device.h +49 -0
  417. socpuppet-0.0.1rc1/src/socpuppet/core/block_store.h +82 -0
  418. socpuppet-0.0.1rc1/src/socpuppet/core/command_status.h +62 -0
  419. socpuppet-0.0.1rc1/src/socpuppet/core/d2d_link_logic.h +155 -0
  420. socpuppet-0.0.1rc1/src/socpuppet/core/dma_engine_logic.cpp +137 -0
  421. socpuppet-0.0.1rc1/src/socpuppet/core/dma_engine_logic.h +58 -0
  422. socpuppet-0.0.1rc1/src/socpuppet/core/elf_image.cpp +36 -0
  423. socpuppet-0.0.1rc1/src/socpuppet/core/elf_image.h +40 -0
  424. socpuppet-0.0.1rc1/src/socpuppet/core/flash_controller_logic.cpp +141 -0
  425. socpuppet-0.0.1rc1/src/socpuppet/core/flash_controller_logic.h +65 -0
  426. socpuppet-0.0.1rc1/src/socpuppet/core/i2c_controller_logic.cpp +135 -0
  427. socpuppet-0.0.1rc1/src/socpuppet/core/i2c_controller_logic.h +71 -0
  428. socpuppet-0.0.1rc1/src/socpuppet/core/i2c_device.h +44 -0
  429. socpuppet-0.0.1rc1/src/socpuppet/core/interrupt_file.h +178 -0
  430. socpuppet-0.0.1rc1/src/socpuppet/core/interrupt_requests.h +38 -0
  431. socpuppet-0.0.1rc1/src/socpuppet/core/link_channel.h +68 -0
  432. socpuppet-0.0.1rc1/src/socpuppet/core/little_endian.h +48 -0
  433. socpuppet-0.0.1rc1/src/socpuppet/core/memory_port.h +26 -0
  434. socpuppet-0.0.1rc1/src/socpuppet/core/memory_store.h +47 -0
  435. socpuppet-0.0.1rc1/src/socpuppet/core/msix_table.cpp +67 -0
  436. socpuppet-0.0.1rc1/src/socpuppet/core/msix_table.h +61 -0
  437. socpuppet-0.0.1rc1/src/socpuppet/core/nand_array.h +135 -0
  438. socpuppet-0.0.1rc1/src/socpuppet/core/nand_geometry.h +19 -0
  439. socpuppet-0.0.1rc1/src/socpuppet/core/nand_port.h +33 -0
  440. socpuppet-0.0.1rc1/src/socpuppet/core/nvme_controller.cpp +321 -0
  441. socpuppet-0.0.1rc1/src/socpuppet/core/nvme_controller.h +128 -0
  442. socpuppet-0.0.1rc1/src/socpuppet/core/nvme_frontend_logic.cpp +308 -0
  443. socpuppet-0.0.1rc1/src/socpuppet/core/nvme_frontend_logic.h +104 -0
  444. socpuppet-0.0.1rc1/src/socpuppet/core/nvme_host_registers.cpp +174 -0
  445. socpuppet-0.0.1rc1/src/socpuppet/core/nvme_host_registers.h +104 -0
  446. socpuppet-0.0.1rc1/src/socpuppet/core/nvme_queues.cpp +132 -0
  447. socpuppet-0.0.1rc1/src/socpuppet/core/nvme_queues.h +158 -0
  448. socpuppet-0.0.1rc1/src/socpuppet/core/pcie_endpoint_registers.cpp +225 -0
  449. socpuppet-0.0.1rc1/src/socpuppet/core/pcie_endpoint_registers.h +181 -0
  450. socpuppet-0.0.1rc1/src/socpuppet/core/pciem_device.cpp +231 -0
  451. socpuppet-0.0.1rc1/src/socpuppet/core/pciem_device.h +92 -0
  452. socpuppet-0.0.1rc1/src/socpuppet/core/pciem_host_logic.h +24 -0
  453. socpuppet-0.0.1rc1/src/socpuppet/core/pin_listener.h +15 -0
  454. socpuppet-0.0.1rc1/src/socpuppet/core/prp.h +76 -0
  455. socpuppet-0.0.1rc1/src/socpuppet/core/rtc_logic.cpp +108 -0
  456. socpuppet-0.0.1rc1/src/socpuppet/core/rtc_logic.h +62 -0
  457. socpuppet-0.0.1rc1/src/socpuppet/core/script.h +171 -0
  458. socpuppet-0.0.1rc1/src/socpuppet/core/spi_device.h +38 -0
  459. socpuppet-0.0.1rc1/src/socpuppet/core/spi_nor_chip.cpp +165 -0
  460. socpuppet-0.0.1rc1/src/socpuppet/core/spi_nor_chip.h +64 -0
  461. socpuppet-0.0.1rc1/src/socpuppet/core/system_controller_logic.h +109 -0
  462. socpuppet-0.0.1rc1/src/socpuppet/core/time.h +21 -0
  463. socpuppet-0.0.1rc1/src/socpuppet/core/trace.h +40 -0
  464. socpuppet-0.0.1rc1/src/socpuppet/core/ucie_link_registers.cpp +211 -0
  465. socpuppet-0.0.1rc1/src/socpuppet/core/ucie_link_registers.h +106 -0
  466. socpuppet-0.0.1rc1/src/socpuppet/core/ucie_link_state.cpp +168 -0
  467. socpuppet-0.0.1rc1/src/socpuppet/core/ucie_link_state.h +119 -0
  468. socpuppet-0.0.1rc1/src/socpuppet/core/ucie_sideband.h +327 -0
  469. socpuppet-0.0.1rc1/src/socpuppet/core/virtio_9p_logic.h +80 -0
  470. socpuppet-0.0.1rc1/src/socpuppet/core/virtio_blk_logic.h +150 -0
  471. socpuppet-0.0.1rc1/src/socpuppet/core/virtio_console_logic.h +82 -0
  472. socpuppet-0.0.1rc1/src/socpuppet/core/virtio_device.h +62 -0
  473. socpuppet-0.0.1rc1/src/socpuppet/core/virtio_fs_logic.h +90 -0
  474. socpuppet-0.0.1rc1/src/socpuppet/core/virtio_mmio_logic.h +323 -0
  475. socpuppet-0.0.1rc1/src/socpuppet/core/virtio_net_logic.h +125 -0
  476. socpuppet-0.0.1rc1/src/socpuppet/core/virtio_rng_logic.h +49 -0
  477. socpuppet-0.0.1rc1/src/socpuppet/core/virtqueue.h +189 -0
  478. socpuppet-0.0.1rc1/src/socpuppet/models/aplic.cpp +178 -0
  479. socpuppet-0.0.1rc1/src/socpuppet/models/aplic.h +68 -0
  480. socpuppet-0.0.1rc1/src/socpuppet/models/behavioral_nvme.h +116 -0
  481. socpuppet-0.0.1rc1/src/socpuppet/models/borrowed_model.h +60 -0
  482. socpuppet-0.0.1rc1/src/socpuppet/models/builtin_components.cpp +601 -0
  483. socpuppet-0.0.1rc1/src/socpuppet/models/builtin_components.h +13 -0
  484. socpuppet-0.0.1rc1/src/socpuppet/models/command_device.h +137 -0
  485. socpuppet-0.0.1rc1/src/socpuppet/models/d2d_link.h +187 -0
  486. socpuppet-0.0.1rc1/src/socpuppet/models/dbt_rise_cpu.cpp +352 -0
  487. socpuppet-0.0.1rc1/src/socpuppet/models/dbt_rise_cpu.h +117 -0
  488. socpuppet-0.0.1rc1/src/socpuppet/models/dma_engine.h +40 -0
  489. socpuppet-0.0.1rc1/src/socpuppet/models/far_end.h +28 -0
  490. socpuppet-0.0.1rc1/src/socpuppet/models/flash_controller.h +42 -0
  491. socpuppet-0.0.1rc1/src/socpuppet/models/gpio.cpp +184 -0
  492. socpuppet-0.0.1rc1/src/socpuppet/models/gpio.h +63 -0
  493. socpuppet-0.0.1rc1/src/socpuppet/models/hart_adapter.h +82 -0
  494. socpuppet-0.0.1rc1/src/socpuppet/models/hart_registers.h +79 -0
  495. socpuppet-0.0.1rc1/src/socpuppet/models/i2c_controller.h +47 -0
  496. socpuppet-0.0.1rc1/src/socpuppet/models/ideal_nand.h +95 -0
  497. socpuppet-0.0.1rc1/src/socpuppet/models/imsic.h +178 -0
  498. socpuppet-0.0.1rc1/src/socpuppet/models/interrupt_lines.h +73 -0
  499. socpuppet-0.0.1rc1/src/socpuppet/models/iommu.cpp +107 -0
  500. socpuppet-0.0.1rc1/src/socpuppet/models/iommu.h +52 -0
  501. socpuppet-0.0.1rc1/src/socpuppet/models/machine_timer.cpp +96 -0
  502. socpuppet-0.0.1rc1/src/socpuppet/models/machine_timer.h +53 -0
  503. socpuppet-0.0.1rc1/src/socpuppet/models/memory.h +67 -0
  504. socpuppet-0.0.1rc1/src/socpuppet/models/msi_receiver.h +96 -0
  505. socpuppet-0.0.1rc1/src/socpuppet/models/nand_link.h +180 -0
  506. socpuppet-0.0.1rc1/src/socpuppet/models/ns16550.cpp +162 -0
  507. socpuppet-0.0.1rc1/src/socpuppet/models/ns16550.h +66 -0
  508. socpuppet-0.0.1rc1/src/socpuppet/models/nvme_frontend.h +159 -0
  509. socpuppet-0.0.1rc1/src/socpuppet/models/pass_through_link.h +86 -0
  510. socpuppet-0.0.1rc1/src/socpuppet/models/pcie_endpoint.h +227 -0
  511. socpuppet-0.0.1rc1/src/socpuppet/models/pcie_link.h +127 -0
  512. socpuppet-0.0.1rc1/src/socpuppet/models/pcie_root_complex.h +138 -0
  513. socpuppet-0.0.1rc1/src/socpuppet/models/pciem_host.h +225 -0
  514. socpuppet-0.0.1rc1/src/socpuppet/models/plic.cpp +97 -0
  515. socpuppet-0.0.1rc1/src/socpuppet/models/plic.h +58 -0
  516. socpuppet-0.0.1rc1/src/socpuppet/models/qbox_cpu.cpp +441 -0
  517. socpuppet-0.0.1rc1/src/socpuppet/models/qbox_cpu.h +114 -0
  518. socpuppet-0.0.1rc1/src/socpuppet/models/rom.h +85 -0
  519. socpuppet-0.0.1rc1/src/socpuppet/models/rtc.h +78 -0
  520. socpuppet-0.0.1rc1/src/socpuppet/models/scripted_bus_master.h +225 -0
  521. socpuppet-0.0.1rc1/src/socpuppet/models/socket_memory.h +38 -0
  522. socpuppet-0.0.1rc1/src/socpuppet/models/spi_controller.cpp +195 -0
  523. socpuppet-0.0.1rc1/src/socpuppet/models/spi_controller.h +51 -0
  524. socpuppet-0.0.1rc1/src/socpuppet/models/spi_flash.cpp +66 -0
  525. socpuppet-0.0.1rc1/src/socpuppet/models/spi_flash.h +69 -0
  526. socpuppet-0.0.1rc1/src/socpuppet/models/system_controller.h +118 -0
  527. socpuppet-0.0.1rc1/src/socpuppet/models/tie_low.h +29 -0
  528. socpuppet-0.0.1rc1/src/socpuppet/models/virtio_9p.h +28 -0
  529. socpuppet-0.0.1rc1/src/socpuppet/models/virtio_blk.h +47 -0
  530. socpuppet-0.0.1rc1/src/socpuppet/models/virtio_console.h +33 -0
  531. socpuppet-0.0.1rc1/src/socpuppet/models/virtio_fs.h +28 -0
  532. socpuppet-0.0.1rc1/src/socpuppet/models/virtio_mmio.h +55 -0
  533. socpuppet-0.0.1rc1/src/socpuppet/models/virtio_net.h +39 -0
  534. socpuppet-0.0.1rc1/src/socpuppet/models/virtio_rng.h +15 -0
  535. socpuppet-0.0.1rc1/src/socpuppet/models/watchdog.cpp +63 -0
  536. socpuppet-0.0.1rc1/src/socpuppet/models/watchdog.h +55 -0
  537. socpuppet-0.0.1rc1/src/socpuppet/platform/errors.h +26 -0
  538. socpuppet-0.0.1rc1/src/socpuppet/platform/failure.h +58 -0
  539. socpuppet-0.0.1rc1/src/socpuppet/platform/logging.h +22 -0
  540. socpuppet-0.0.1rc1/src/socpuppet/platform/platform.cpp +379 -0
  541. socpuppet-0.0.1rc1/src/socpuppet/platform/platform.h +173 -0
  542. socpuppet-0.0.1rc1/src/socpuppet/platform/port.h +108 -0
  543. socpuppet-0.0.1rc1/src/socpuppet/platform/registry.h +158 -0
  544. socpuppet-0.0.1rc1/src/socpuppet/platform/sc_main_stub.cpp +16 -0
  545. socpuppet-0.0.1rc1/src/socpuppet/platform/slots.h +257 -0
  546. socpuppet-0.0.1rc1/src/socpuppet/platform/time_conversion.h +27 -0
  547. socpuppet-0.0.1rc1/src/socpuppet/platform/tracer.h +82 -0
  548. socpuppet-0.0.1rc1/src/socpuppet/platform/transport.h +100 -0
  549. socpuppet-0.0.1rc1/src/vpvper/.clang-format +101 -0
  550. socpuppet-0.0.1rc1/src/vpvper/.clang-tidy +8 -0
  551. socpuppet-0.0.1rc1/src/vpvper/CMakeLists.txt +20 -0
  552. socpuppet-0.0.1rc1/src/vpvper/CPPLINT.cfg +5 -0
  553. socpuppet-0.0.1rc1/src/vpvper/rvi/gen/iommu_regs.h +160 -0
  554. socpuppet-0.0.1rc1/src/vpvper/rvi/iommu.cpp +282 -0
  555. socpuppet-0.0.1rc1/src/vpvper/rvi/iommu.h +103 -0
  556. socpuppet-0.0.1rc1/src/vpvper/rvi/iommu.rdl +103 -0
  557. socpuppet-0.0.1rc1/src/vpvper/rvi/iommu_walker.h +224 -0
  558. socpuppet-0.0.1rc1/tests/cpp/CMakeLists.txt +122 -0
  559. socpuppet-0.0.1rc1/tests/cpp/contracts/aplic_contract.h +736 -0
  560. socpuppet-0.0.1rc1/tests/cpp/contracts/aplic_test.cpp +8 -0
  561. socpuppet-0.0.1rc1/tests/cpp/contracts/bus_master_contract.h +395 -0
  562. socpuppet-0.0.1rc1/tests/cpp/contracts/bus_master_test.cpp +186 -0
  563. socpuppet-0.0.1rc1/tests/cpp/contracts/gpio_contract.h +418 -0
  564. socpuppet-0.0.1rc1/tests/cpp/contracts/gpio_test.cpp +8 -0
  565. socpuppet-0.0.1rc1/tests/cpp/contracts/interrupt_controller_contract.h +426 -0
  566. socpuppet-0.0.1rc1/tests/cpp/contracts/interrupt_controller_test.cpp +7 -0
  567. socpuppet-0.0.1rc1/tests/cpp/contracts/iommu_contract.h +1041 -0
  568. socpuppet-0.0.1rc1/tests/cpp/contracts/iommu_test.cpp +8 -0
  569. socpuppet-0.0.1rc1/tests/cpp/contracts/link_contract.h +255 -0
  570. socpuppet-0.0.1rc1/tests/cpp/contracts/link_test.cpp +96 -0
  571. socpuppet-0.0.1rc1/tests/cpp/contracts/machine_timer_contract.h +307 -0
  572. socpuppet-0.0.1rc1/tests/cpp/contracts/machine_timer_test.cpp +8 -0
  573. socpuppet-0.0.1rc1/tests/cpp/contracts/memory_contract.h +143 -0
  574. socpuppet-0.0.1rc1/tests/cpp/contracts/memory_test.cpp +6 -0
  575. socpuppet-0.0.1rc1/tests/cpp/contracts/message_controller_contract.h +449 -0
  576. socpuppet-0.0.1rc1/tests/cpp/contracts/message_controller_test.cpp +7 -0
  577. socpuppet-0.0.1rc1/tests/cpp/contracts/nand_contract.h +315 -0
  578. socpuppet-0.0.1rc1/tests/cpp/contracts/nand_test.cpp +5 -0
  579. socpuppet-0.0.1rc1/tests/cpp/contracts/nvme_contract.h +1053 -0
  580. socpuppet-0.0.1rc1/tests/cpp/contracts/nvme_test.cpp +131 -0
  581. socpuppet-0.0.1rc1/tests/cpp/contracts/rom_contract.h +233 -0
  582. socpuppet-0.0.1rc1/tests/cpp/contracts/rom_test.cpp +6 -0
  583. socpuppet-0.0.1rc1/tests/cpp/contracts/spi_controller_contract.h +414 -0
  584. socpuppet-0.0.1rc1/tests/cpp/contracts/spi_controller_test.cpp +8 -0
  585. socpuppet-0.0.1rc1/tests/cpp/contracts/uart_contract.h +525 -0
  586. socpuppet-0.0.1rc1/tests/cpp/contracts/uart_test.cpp +7 -0
  587. socpuppet-0.0.1rc1/tests/cpp/contracts/virtio_device_contract.h +274 -0
  588. socpuppet-0.0.1rc1/tests/cpp/contracts/virtio_device_test.cpp +43 -0
  589. socpuppet-0.0.1rc1/tests/cpp/contracts/watchdog_contract.h +616 -0
  590. socpuppet-0.0.1rc1/tests/cpp/contracts/watchdog_test.cpp +8 -0
  591. socpuppet-0.0.1rc1/tests/cpp/kernel_test_main.cpp +39 -0
  592. socpuppet-0.0.1rc1/tests/cpp/platform/aplic_test.cpp +123 -0
  593. socpuppet-0.0.1rc1/tests/cpp/platform/composition_test.cpp +463 -0
  594. socpuppet-0.0.1rc1/tests/cpp/platform/cpu_test.cpp +2947 -0
  595. socpuppet-0.0.1rc1/tests/cpp/platform/d2d_link_test.cpp +331 -0
  596. socpuppet-0.0.1rc1/tests/cpp/platform/dma_engine_test.cpp +248 -0
  597. socpuppet-0.0.1rc1/tests/cpp/platform/flash_controller_test.cpp +281 -0
  598. socpuppet-0.0.1rc1/tests/cpp/platform/i2c_controller_test.cpp +157 -0
  599. socpuppet-0.0.1rc1/tests/cpp/platform/msi_receiver_test.cpp +166 -0
  600. socpuppet-0.0.1rc1/tests/cpp/platform/ns16550_test.cpp +29 -0
  601. socpuppet-0.0.1rc1/tests/cpp/platform/nvme_frontend_test.cpp +400 -0
  602. socpuppet-0.0.1rc1/tests/cpp/platform/pcie_test.cpp +811 -0
  603. socpuppet-0.0.1rc1/tests/cpp/platform/pciem_host_test.cpp +380 -0
  604. socpuppet-0.0.1rc1/tests/cpp/platform/qbox_cpu_test.cpp +47 -0
  605. socpuppet-0.0.1rc1/tests/cpp/platform/router_test.cpp +134 -0
  606. socpuppet-0.0.1rc1/tests/cpp/platform/rtc_test.cpp +89 -0
  607. socpuppet-0.0.1rc1/tests/cpp/platform/scripted_master_test.cpp +432 -0
  608. socpuppet-0.0.1rc1/tests/cpp/platform/spi_flash_test.cpp +239 -0
  609. socpuppet-0.0.1rc1/tests/cpp/platform/system_controller_test.cpp +353 -0
  610. socpuppet-0.0.1rc1/tests/cpp/platform/tracer_test.cpp +128 -0
  611. socpuppet-0.0.1rc1/tests/cpp/platform/transport_test.cpp +25 -0
  612. socpuppet-0.0.1rc1/tests/cpp/platform/virtio_console_test.cpp +70 -0
  613. socpuppet-0.0.1rc1/tests/cpp/platform/virtio_net_test.cpp +72 -0
  614. socpuppet-0.0.1rc1/tests/cpp/support/bus_driver.h +194 -0
  615. socpuppet-0.0.1rc1/tests/cpp/support/counting_probe.h +58 -0
  616. socpuppet-0.0.1rc1/tests/cpp/support/elf_file.h +68 -0
  617. socpuppet-0.0.1rc1/tests/cpp/support/fake_pciem_device.h +85 -0
  618. socpuppet-0.0.1rc1/tests/cpp/support/interrupt_source.h +64 -0
  619. socpuppet-0.0.1rc1/tests/cpp/support/line_driver.h +31 -0
  620. socpuppet-0.0.1rc1/tests/cpp/support/line_watcher.h +57 -0
  621. socpuppet-0.0.1rc1/tests/cpp/support/memory_at.h +33 -0
  622. socpuppet-0.0.1rc1/tests/cpp/support/nvme_host.h +735 -0
  623. socpuppet-0.0.1rc1/tests/cpp/support/pcie_host.h +247 -0
  624. socpuppet-0.0.1rc1/tests/cpp/support/qbox_fates.h +209 -0
  625. socpuppet-0.0.1rc1/tests/cpp/support/recording_target.h +68 -0
  626. socpuppet-0.0.1rc1/tests/cpp/support/riscv_program.h +1956 -0
  627. socpuppet-0.0.1rc1/tests/cpp/support/sideband_pump.h +108 -0
  628. socpuppet-0.0.1rc1/tests/cpp/support/sifive_spi_driver.h +139 -0
  629. socpuppet-0.0.1rc1/tests/cpp/support/ssd_firmware.h +627 -0
  630. socpuppet-0.0.1rc1/tests/cpp/support/test_components.h +119 -0
  631. socpuppet-0.0.1rc1/tests/cpp/support/the_cpu.h +30 -0
  632. socpuppet-0.0.1rc1/tests/cpp/support/ucie_link_driving.h +100 -0
  633. socpuppet-0.0.1rc1/tests/cpp/support/virtio_9p_rig.h +36 -0
  634. socpuppet-0.0.1rc1/tests/cpp/support/virtio_blk_rig.h +34 -0
  635. socpuppet-0.0.1rc1/tests/cpp/support/virtio_console_rig.h +29 -0
  636. socpuppet-0.0.1rc1/tests/cpp/support/virtio_fs_rig.h +36 -0
  637. socpuppet-0.0.1rc1/tests/cpp/support/virtio_net_rig.h +34 -0
  638. socpuppet-0.0.1rc1/tests/cpp/support/virtqueue_driver.h +125 -0
  639. socpuppet-0.0.1rc1/tests/cpp/unit/block_store_test.cpp +92 -0
  640. socpuppet-0.0.1rc1/tests/cpp/unit/command_status_test.cpp +125 -0
  641. socpuppet-0.0.1rc1/tests/cpp/unit/d2d_link_logic_test.cpp +163 -0
  642. socpuppet-0.0.1rc1/tests/cpp/unit/dma_engine_logic_test.cpp +340 -0
  643. socpuppet-0.0.1rc1/tests/cpp/unit/elf_image_test.cpp +156 -0
  644. socpuppet-0.0.1rc1/tests/cpp/unit/flash_controller_logic_test.cpp +528 -0
  645. socpuppet-0.0.1rc1/tests/cpp/unit/i2c_controller_logic_test.cpp +319 -0
  646. socpuppet-0.0.1rc1/tests/cpp/unit/interrupt_file_test.cpp +265 -0
  647. socpuppet-0.0.1rc1/tests/cpp/unit/iommu_walker_test.cpp +636 -0
  648. socpuppet-0.0.1rc1/tests/cpp/unit/link_channel_test.cpp +54 -0
  649. socpuppet-0.0.1rc1/tests/cpp/unit/little_endian_test.cpp +54 -0
  650. socpuppet-0.0.1rc1/tests/cpp/unit/memory_store_test.cpp +62 -0
  651. socpuppet-0.0.1rc1/tests/cpp/unit/nand_array_test.cpp +224 -0
  652. socpuppet-0.0.1rc1/tests/cpp/unit/nvme_controller_test.cpp +180 -0
  653. socpuppet-0.0.1rc1/tests/cpp/unit/nvme_frontend_logic_test.cpp +1202 -0
  654. socpuppet-0.0.1rc1/tests/cpp/unit/nvme_host_registers_test.cpp +27 -0
  655. socpuppet-0.0.1rc1/tests/cpp/unit/pcie_endpoint_registers_test.cpp +144 -0
  656. socpuppet-0.0.1rc1/tests/cpp/unit/pciem_host_logic_test.cpp +30 -0
  657. socpuppet-0.0.1rc1/tests/cpp/unit/pciem_ring_test.cpp +77 -0
  658. socpuppet-0.0.1rc1/tests/cpp/unit/prp_test.cpp +92 -0
  659. socpuppet-0.0.1rc1/tests/cpp/unit/qbox_fates_test.cpp +41 -0
  660. socpuppet-0.0.1rc1/tests/cpp/unit/rtc_logic_test.cpp +203 -0
  661. socpuppet-0.0.1rc1/tests/cpp/unit/script_test.cpp +81 -0
  662. socpuppet-0.0.1rc1/tests/cpp/unit/spi_nor_chip_test.cpp +284 -0
  663. socpuppet-0.0.1rc1/tests/cpp/unit/system_controller_logic_test.cpp +267 -0
  664. socpuppet-0.0.1rc1/tests/cpp/unit/ucie_link_registers_test.cpp +227 -0
  665. socpuppet-0.0.1rc1/tests/cpp/unit/ucie_link_state_test.cpp +197 -0
  666. socpuppet-0.0.1rc1/tests/cpp/unit/ucie_sideband_test.cpp +127 -0
  667. socpuppet-0.0.1rc1/tests/cpp/unit/virtio_9p_logic_test.cpp +120 -0
  668. socpuppet-0.0.1rc1/tests/cpp/unit/virtio_blk_logic_test.cpp +260 -0
  669. socpuppet-0.0.1rc1/tests/cpp/unit/virtio_console_logic_test.cpp +147 -0
  670. socpuppet-0.0.1rc1/tests/cpp/unit/virtio_fs_logic_test.cpp +147 -0
  671. socpuppet-0.0.1rc1/tests/cpp/unit/virtio_mmio_logic_test.cpp +448 -0
  672. socpuppet-0.0.1rc1/tests/cpp/unit/virtio_net_logic_test.cpp +239 -0
  673. socpuppet-0.0.1rc1/tests/cpp/unit/virtio_rng_logic_test.cpp +80 -0
  674. socpuppet-0.0.1rc1/tests/cpp/unit/virtqueue_test.cpp +173 -0
  675. socpuppet-0.0.1rc1/tests/python/CMakeLists.txt +134 -0
  676. socpuppet-0.0.1rc1/tests/python/cable_area.py +36 -0
  677. socpuppet-0.0.1rc1/tests/python/cast.py +162 -0
  678. socpuppet-0.0.1rc1/tests/python/conftest.py +150 -0
  679. socpuppet-0.0.1rc1/tests/python/console.py +17 -0
  680. socpuppet-0.0.1rc1/tests/python/devicetree_compiler.py +24 -0
  681. socpuppet-0.0.1rc1/tests/python/disk_access.py +65 -0
  682. socpuppet-0.0.1rc1/tests/python/elf_files.py +76 -0
  683. socpuppet-0.0.1rc1/tests/python/ethernet.py +292 -0
  684. socpuppet-0.0.1rc1/tests/python/ext4_image.py +22 -0
  685. socpuppet-0.0.1rc1/tests/python/fat_image.py +77 -0
  686. socpuppet-0.0.1rc1/tests/python/gdb_client.py +201 -0
  687. socpuppet-0.0.1rc1/tests/python/link_trace.py +45 -0
  688. socpuppet-0.0.1rc1/tests/python/linux_shell.py +292 -0
  689. socpuppet-0.0.1rc1/tests/python/manager_firmware.py +29 -0
  690. socpuppet-0.0.1rc1/tests/python/mt19937_64.py +52 -0
  691. socpuppet-0.0.1rc1/tests/python/opensbi_boots.py +91 -0
  692. socpuppet-0.0.1rc1/tests/python/pciem_area.py +58 -0
  693. socpuppet-0.0.1rc1/tests/python/processes.py +122 -0
  694. socpuppet-0.0.1rc1/tests/python/pseudo_terminal.py +129 -0
  695. socpuppet-0.0.1rc1/tests/python/raw_nvme.py +183 -0
  696. socpuppet-0.0.1rc1/tests/python/riscv_program.py +120 -0
  697. socpuppet-0.0.1rc1/tests/python/saved_tables.py +37 -0
  698. socpuppet-0.0.1rc1/tests/python/scripts.py +27 -0
  699. socpuppet-0.0.1rc1/tests/python/sockets.py +49 -0
  700. socpuppet-0.0.1rc1/tests/python/ssd_on_a_bus.py +46 -0
  701. socpuppet-0.0.1rc1/tests/python/ssd_zephyr_firmware.py +11 -0
  702. socpuppet-0.0.1rc1/tests/python/ssh_to_linux.py +29 -0
  703. socpuppet-0.0.1rc1/tests/python/test_address_map.py +366 -0
  704. socpuppet-0.0.1rc1/tests/python/test_address_map_command.py +199 -0
  705. socpuppet-0.0.1rc1/tests/python/test_aplic.py +104 -0
  706. socpuppet-0.0.1rc1/tests/python/test_boot_image.py +227 -0
  707. socpuppet-0.0.1rc1/tests/python/test_boot_image_command.py +114 -0
  708. socpuppet-0.0.1rc1/tests/python/test_cable_area.py +42 -0
  709. socpuppet-0.0.1rc1/tests/python/test_catalogue.py +262 -0
  710. socpuppet-0.0.1rc1/tests/python/test_conftest.py +114 -0
  711. socpuppet-0.0.1rc1/tests/python/test_cpu.py +226 -0
  712. socpuppet-0.0.1rc1/tests/python/test_description.py +289 -0
  713. socpuppet-0.0.1rc1/tests/python/test_devicetree.py +1434 -0
  714. socpuppet-0.0.1rc1/tests/python/test_drive_command.py +199 -0
  715. socpuppet-0.0.1rc1/tests/python/test_elf.py +147 -0
  716. socpuppet-0.0.1rc1/tests/python/test_ethernet.py +182 -0
  717. socpuppet-0.0.1rc1/tests/python/test_ethernet_cable.py +190 -0
  718. socpuppet-0.0.1rc1/tests/python/test_examples.py +72 -0
  719. socpuppet-0.0.1rc1/tests/python/test_ext4_image.py +36 -0
  720. socpuppet-0.0.1rc1/tests/python/test_fat_image.py +63 -0
  721. socpuppet-0.0.1rc1/tests/python/test_fetched_images.py +88 -0
  722. socpuppet-0.0.1rc1/tests/python/test_front_door.py +100 -0
  723. socpuppet-0.0.1rc1/tests/python/test_ftl.py +187 -0
  724. socpuppet-0.0.1rc1/tests/python/test_full_bootchain.py +212 -0
  725. socpuppet-0.0.1rc1/tests/python/test_fuse.py +665 -0
  726. socpuppet-0.0.1rc1/tests/python/test_gdb.py +1027 -0
  727. socpuppet-0.0.1rc1/tests/python/test_gpio.py +143 -0
  728. socpuppet-0.0.1rc1/tests/python/test_gpt.py +215 -0
  729. socpuppet-0.0.1rc1/tests/python/test_host_across_the_real_link.py +314 -0
  730. socpuppet-0.0.1rc1/tests/python/test_host_and_ssd_firmware_together.py +154 -0
  731. socpuppet-0.0.1rc1/tests/python/test_host_board.py +1238 -0
  732. socpuppet-0.0.1rc1/tests/python/test_i2c.py +49 -0
  733. socpuppet-0.0.1rc1/tests/python/test_i2c_controller.py +101 -0
  734. socpuppet-0.0.1rc1/tests/python/test_images.py +681 -0
  735. socpuppet-0.0.1rc1/tests/python/test_interactive.py +278 -0
  736. socpuppet-0.0.1rc1/tests/python/test_interrupt_map.py +112 -0
  737. socpuppet-0.0.1rc1/tests/python/test_io_manager.py +168 -0
  738. socpuppet-0.0.1rc1/tests/python/test_io_manager_board.py +195 -0
  739. socpuppet-0.0.1rc1/tests/python/test_io_manager_lets_the_compute_die_go.py +84 -0
  740. socpuppet-0.0.1rc1/tests/python/test_iommu.py +309 -0
  741. socpuppet-0.0.1rc1/tests/python/test_link_training.py +184 -0
  742. socpuppet-0.0.1rc1/tests/python/test_linux.py +264 -0
  743. socpuppet-0.0.1rc1/tests/python/test_linux_boot_flash.py +94 -0
  744. socpuppet-0.0.1rc1/tests/python/test_linux_boots.py +293 -0
  745. socpuppet-0.0.1rc1/tests/python/test_linux_command.py +268 -0
  746. socpuppet-0.0.1rc1/tests/python/test_linux_command_boots.py +193 -0
  747. socpuppet-0.0.1rc1/tests/python/test_linux_devicetree.py +305 -0
  748. socpuppet-0.0.1rc1/tests/python/test_linux_gpio.py +56 -0
  749. socpuppet-0.0.1rc1/tests/python/test_linux_images.py +83 -0
  750. socpuppet-0.0.1rc1/tests/python/test_linux_nvme.py +93 -0
  751. socpuppet-0.0.1rc1/tests/python/test_linux_root_on_the_drive.py +151 -0
  752. socpuppet-0.0.1rc1/tests/python/test_linux_rtc.py +69 -0
  753. socpuppet-0.0.1rc1/tests/python/test_load_binary.py +112 -0
  754. socpuppet-0.0.1rc1/tests/python/test_mt19937_64.py +17 -0
  755. socpuppet-0.0.1rc1/tests/python/test_ninep.py +930 -0
  756. socpuppet-0.0.1rc1/tests/python/test_nvme_host.py +461 -0
  757. socpuppet-0.0.1rc1/tests/python/test_nvme_over_pcie.py +138 -0
  758. socpuppet-0.0.1rc1/tests/python/test_opensbi.py +84 -0
  759. socpuppet-0.0.1rc1/tests/python/test_opensbi_boots.py +270 -0
  760. socpuppet-0.0.1rc1/tests/python/test_opensbi_images.py +31 -0
  761. socpuppet-0.0.1rc1/tests/python/test_pcie.py +413 -0
  762. socpuppet-0.0.1rc1/tests/python/test_pciem_area.py +39 -0
  763. socpuppet-0.0.1rc1/tests/python/test_pciem_contract.py +199 -0
  764. socpuppet-0.0.1rc1/tests/python/test_platform.py +374 -0
  765. socpuppet-0.0.1rc1/tests/python/test_pump.py +297 -0
  766. socpuppet-0.0.1rc1/tests/python/test_pytest_plugin.py +645 -0
  767. socpuppet-0.0.1rc1/tests/python/test_qbox_cpu.py +99 -0
  768. socpuppet-0.0.1rc1/tests/python/test_qemu_trace.py +31 -0
  769. socpuppet-0.0.1rc1/tests/python/test_real_host_board.py +103 -0
  770. socpuppet-0.0.1rc1/tests/python/test_rom.py +86 -0
  771. socpuppet-0.0.1rc1/tests/python/test_rom_boot.py +585 -0
  772. socpuppet-0.0.1rc1/tests/python/test_rom_firmware.py +85 -0
  773. socpuppet-0.0.1rc1/tests/python/test_rom_handover.py +157 -0
  774. socpuppet-0.0.1rc1/tests/python/test_router.py +204 -0
  775. socpuppet-0.0.1rc1/tests/python/test_run_command.py +545 -0
  776. socpuppet-0.0.1rc1/tests/python/test_scripted_bus_master_across_the_dies.py +69 -0
  777. socpuppet-0.0.1rc1/tests/python/test_scripts.py +424 -0
  778. socpuppet-0.0.1rc1/tests/python/test_slirp_contract.py +262 -0
  779. socpuppet-0.0.1rc1/tests/python/test_sockets.py +61 -0
  780. socpuppet-0.0.1rc1/tests/python/test_spi.py +13 -0
  781. socpuppet-0.0.1rc1/tests/python/test_spi_flash.py +156 -0
  782. socpuppet-0.0.1rc1/tests/python/test_ssd_board.py +305 -0
  783. socpuppet-0.0.1rc1/tests/python/test_ssd_firmware.py +820 -0
  784. socpuppet-0.0.1rc1/tests/python/test_ssd_over_pcie.py +98 -0
  785. socpuppet-0.0.1rc1/tests/python/test_ssd_scripted_firmware.py +85 -0
  786. socpuppet-0.0.1rc1/tests/python/test_ssd_with_its_own_firmware.py +225 -0
  787. socpuppet-0.0.1rc1/tests/python/test_ssd_zephyr_firmware.py +257 -0
  788. socpuppet-0.0.1rc1/tests/python/test_ssh_over_the_cable.py +192 -0
  789. socpuppet-0.0.1rc1/tests/python/test_suite_order.py +58 -0
  790. socpuppet-0.0.1rc1/tests/python/test_this_machines_linux_mounts_the_ssd.py +112 -0
  791. socpuppet-0.0.1rc1/tests/python/test_trace.py +134 -0
  792. socpuppet-0.0.1rc1/tests/python/test_transcript.py +175 -0
  793. socpuppet-0.0.1rc1/tests/python/test_twister_boards.py +327 -0
  794. socpuppet-0.0.1rc1/tests/python/test_uart.py +171 -0
  795. socpuppet-0.0.1rc1/tests/python/test_ucie.py +196 -0
  796. socpuppet-0.0.1rc1/tests/python/test_uefi_boots.py +175 -0
  797. socpuppet-0.0.1rc1/tests/python/test_uefi_image.py +113 -0
  798. socpuppet-0.0.1rc1/tests/python/test_virtio_host.py +442 -0
  799. socpuppet-0.0.1rc1/tests/python/test_virtio_uefi.py +183 -0
  800. socpuppet-0.0.1rc1/tests/python/test_virtio_zephyr.py +179 -0
  801. socpuppet-0.0.1rc1/tests/python/test_zephyr_disk_on_the_host.py +58 -0
  802. socpuppet-0.0.1rc1/tests/python/test_zephyr_flash_driver.py +82 -0
  803. socpuppet-0.0.1rc1/tests/python/test_zephyr_module.py +298 -0
  804. socpuppet-0.0.1rc1/tests/python/test_zephyr_on_the_host_board.py +68 -0
  805. socpuppet-0.0.1rc1/tests/python/test_zephyr_on_the_io_manager.py +44 -0
  806. socpuppet-0.0.1rc1/tests/python/test_zephyr_on_the_ssd_controller.py +36 -0
  807. socpuppet-0.0.1rc1/tests/python/test_zephyr_peripheral_samples.py +254 -0
  808. socpuppet-0.0.1rc1/tests/python/test_zephyr_qemu_board.py +74 -0
  809. socpuppet-0.0.1rc1/tests/python/test_zephyr_shell.py +181 -0
  810. socpuppet-0.0.1rc1/tests/python/test_ztest.py +290 -0
  811. socpuppet-0.0.1rc1/tests/python/this_machine.py +176 -0
  812. socpuppet-0.0.1rc1/tests/python/uefi_shell.py +57 -0
  813. socpuppet-0.0.1rc1/tests/python/wiring.py +21 -0
  814. socpuppet-0.0.1rc1/tests/python/zephyr_module.py +81 -0
  815. socpuppet-0.0.1rc1/tests/tooling/CMakeLists.txt +19 -0
  816. socpuppet-0.0.1rc1/tests/tooling/conftest.py +317 -0
  817. socpuppet-0.0.1rc1/tests/tooling/qbox_stand_ins.py +118 -0
  818. socpuppet-0.0.1rc1/tests/tooling/test_address_map_docs.py +249 -0
  819. socpuppet-0.0.1rc1/tests/tooling/test_build_pciem.py +207 -0
  820. socpuppet-0.0.1rc1/tests/tooling/test_build_qbox.py +214 -0
  821. socpuppet-0.0.1rc1/tests/tooling/test_check_wheel.py +92 -0
  822. socpuppet-0.0.1rc1/tests/tooling/test_ci.py +1563 -0
  823. socpuppet-0.0.1rc1/tests/tooling/test_ci_workflow.py +1058 -0
  824. socpuppet-0.0.1rc1/tests/tooling/test_cpp_tests.py +43 -0
  825. socpuppet-0.0.1rc1/tests/tooling/test_dev_checks_copy_into.py +69 -0
  826. socpuppet-0.0.1rc1/tests/tooling/test_dev_checks_coverage.py +267 -0
  827. socpuppet-0.0.1rc1/tests/tooling/test_dev_checks_format.py +46 -0
  828. socpuppet-0.0.1rc1/tests/tooling/test_dev_checks_headers.py +32 -0
  829. socpuppet-0.0.1rc1/tests/tooling/test_dev_checks_sanitize.py +163 -0
  830. socpuppet-0.0.1rc1/tests/tooling/test_dev_checks_tidy.py +154 -0
  831. socpuppet-0.0.1rc1/tests/tooling/test_dev_checks_warnings.py +121 -0
  832. socpuppet-0.0.1rc1/tests/tooling/test_devcontainer.py +632 -0
  833. socpuppet-0.0.1rc1/tests/tooling/test_doctor.py +792 -0
  834. socpuppet-0.0.1rc1/tests/tooling/test_firmware_build.py +1487 -0
  835. socpuppet-0.0.1rc1/tests/tooling/test_lint_address_map.py +32 -0
  836. socpuppet-0.0.1rc1/tests/tooling/test_lint_ci.py +61 -0
  837. socpuppet-0.0.1rc1/tests/tooling/test_lint_cpp.py +162 -0
  838. socpuppet-0.0.1rc1/tests/tooling/test_lint_files.py +56 -0
  839. socpuppet-0.0.1rc1/tests/tooling/test_lint_markdown.py +65 -0
  840. socpuppet-0.0.1rc1/tests/tooling/test_lint_python.py +101 -0
  841. socpuppet-0.0.1rc1/tests/tooling/test_lint_rdl.py +56 -0
  842. socpuppet-0.0.1rc1/tests/tooling/test_lint_report.py +67 -0
  843. socpuppet-0.0.1rc1/tests/tooling/test_lint_setup.py +23 -0
  844. socpuppet-0.0.1rc1/tests/tooling/test_lint_shield_overlays.py +27 -0
  845. socpuppet-0.0.1rc1/tests/tooling/test_lint_stranger.py +127 -0
  846. socpuppet-0.0.1rc1/tests/tooling/test_lint_zephyr_c.py +70 -0
  847. socpuppet-0.0.1rc1/tests/tooling/test_mac_sdk.py +63 -0
  848. socpuppet-0.0.1rc1/tests/tooling/test_needs.py +86 -0
  849. socpuppet-0.0.1rc1/tests/tooling/test_package_imports.py +27 -0
  850. socpuppet-0.0.1rc1/tests/tooling/test_pciem_guest.py +246 -0
  851. socpuppet-0.0.1rc1/tests/tooling/test_pyproject.py +39 -0
  852. socpuppet-0.0.1rc1/tests/tooling/test_python_tests_from_a_copy.py +167 -0
  853. socpuppet-0.0.1rc1/tests/tooling/test_qbox.py +183 -0
  854. socpuppet-0.0.1rc1/tests/tooling/test_regs.py +594 -0
  855. socpuppet-0.0.1rc1/tests/tooling/test_release.py +531 -0
  856. socpuppet-0.0.1rc1/tests/tooling/test_released_images.py +541 -0
  857. socpuppet-0.0.1rc1/tests/tooling/test_tap.py +518 -0
  858. socpuppet-0.0.1rc1/tests/tooling/test_test_wheel.py +330 -0
  859. socpuppet-0.0.1rc1/tests/tooling/test_tiers.py +145 -0
  860. socpuppet-0.0.1rc1/tests/tooling/test_twister_lists.py +94 -0
  861. socpuppet-0.0.1rc1/tests/tooling/test_twister_our_suites.py +140 -0
  862. socpuppet-0.0.1rc1/tests/tooling/test_twister_runner.py +312 -0
  863. socpuppet-0.0.1rc1/tests/tooling/test_vpvper_registers.py +120 -0
  864. socpuppet-0.0.1rc1/tests/tooling/twister_files.py +24 -0
  865. socpuppet-0.0.1rc1/tools/address_map_docs.py +186 -0
  866. socpuppet-0.0.1rc1/tools/build_pciem.py +159 -0
  867. socpuppet-0.0.1rc1/tools/build_qbox.py +269 -0
  868. socpuppet-0.0.1rc1/tools/check_wheel.py +90 -0
  869. socpuppet-0.0.1rc1/tools/ci.py +1550 -0
  870. socpuppet-0.0.1rc1/tools/devcontainer.py +278 -0
  871. socpuppet-0.0.1rc1/tools/doctor.py +717 -0
  872. socpuppet-0.0.1rc1/tools/generated.py +111 -0
  873. socpuppet-0.0.1rc1/tools/github_releases.py +60 -0
  874. socpuppet-0.0.1rc1/tools/lint.py +262 -0
  875. socpuppet-0.0.1rc1/tools/needs.py +48 -0
  876. socpuppet-0.0.1rc1/tools/pciem_guest.py +315 -0
  877. socpuppet-0.0.1rc1/tools/qbox.py +119 -0
  878. socpuppet-0.0.1rc1/tools/regs.py +596 -0
  879. socpuppet-0.0.1rc1/tools/release.py +331 -0
  880. socpuppet-0.0.1rc1/tools/released_images.py +270 -0
  881. socpuppet-0.0.1rc1/tools/shield_overlays.py +59 -0
  882. socpuppet-0.0.1rc1/tools/socpuppet.rb.in +60 -0
  883. socpuppet-0.0.1rc1/tools/stranger.py +85 -0
  884. socpuppet-0.0.1rc1/tools/tap.py +347 -0
  885. socpuppet-0.0.1rc1/tools/test_wheel.py +134 -0
  886. socpuppet-0.0.1rc1/uv.lock +1498 -0
@@ -0,0 +1,31 @@
1
+ BasedOnStyle: Google
2
+
3
+ # Include order: the related header, then C system headers, then the C++
4
+ # standard library, then third-party libraries, then our own headers. Stock
5
+ # Google style would sort <gtest/gtest.h> above the standard library and
6
+ # <systemc> in with it.
7
+ IncludeBlocks: Regroup
8
+ IncludeCategories:
9
+ # C system headers: the C standard library, and the POSIX ones we are
10
+ # likely to meet. cpplint keeps its own list of these (CPPLINT.cfg), so a
11
+ # header it knows and this does not would be sorted where cpplint objects;
12
+ # add it here.
13
+ - Regex: '^<(assert|complex|ctype|errno|fenv|float|inttypes|iso646|limits|locale|math|setjmp|signal|stdalign|stdarg|stdatomic|stdbit|stdbool|stdckdint|stddef|stdint|stdio|stdlib|stdnoreturn|string|tgmath|threads|time|uchar|wchar|wctype)\.h>$'
14
+ Priority: 1
15
+ - Regex: '^<(dirent|dlfcn|fcntl|glob|poll|pthread|sched|semaphore|strings|syslog|termios|unistd)\.h>$'
16
+ Priority: 1
17
+ - Regex: '^<(sys|arpa|netinet)/.*\.h>$'
18
+ Priority: 1
19
+ # SystemC's and CCI's extensionless headers look like standard library
20
+ # ones.
21
+ - Regex: '^<(systemc|tlm|cci_configuration)>$'
22
+ Priority: 3
23
+ # Third-party: anything in angle brackets with a directory or an extension.
24
+ - Regex: '^<.*[/.].*>$'
25
+ Priority: 3
26
+ # The standard library.
27
+ - Regex: '^<.*>$'
28
+ Priority: 2
29
+ # Ours.
30
+ - Regex: '.*'
31
+ Priority: 4
@@ -0,0 +1,99 @@
1
+ # clang-tidy's checks for our C++. Run them with the build's `tidy` target:
2
+ # uv run cmake --build --preset dev --target tidy
3
+ #
4
+ # A new clang-tidy's new checks are adopted: the code changes to pass them,
5
+ # and a check is switched off only with its reason written beside its name,
6
+ # as below. The net grows over time. 🚧 Families not yet on, the candidates
7
+ # for more: cert-*, cppcoreguidelines-*, misc-*, concurrency-*.
8
+ Checks:
9
+ - bugprone-*
10
+ - clang-analyzer-*
11
+ - google-*
12
+ - modernize-*
13
+ - performance-*
14
+ - portability-*
15
+ - readability-*
16
+
17
+ # Switched off, each for a reason:
18
+
19
+ # Any two parameters of one type "could be swapped". True of most functions
20
+ # that take an address and a value.
21
+ - -bugprone-easily-swappable-parameters
22
+ # `auto f() -> int` everywhere is not Google style.
23
+ - -modernize-use-trailing-return-type
24
+ # [[nodiscard]] on every getter is noise.
25
+ - -modernize-use-nodiscard
26
+ # Asks for a one-byte base type on every small enum.
27
+ - -performance-enum-size
28
+ # Google style allows `if (done) return;` on one line with no braces. The
29
+ # google- version of this check allows it too, and stays on.
30
+ - -readability-braces-around-statements
31
+ # A method that does not touch `this` is often still part of an interface
32
+ # that someone else calls on an object: a coroutine's promise, a TLM
33
+ # target. Platform's methods act on the one SystemC kernel, not on members.
34
+ - -readability-convert-member-functions-to-static
35
+ # Short names such as `it` and `id` are fine.
36
+ - -readability-identifier-length
37
+ # Addresses, sizes and test data are numbers; naming each one would bury
38
+ # the code.
39
+ - -readability-magic-numbers
40
+ # A virtual function called from a constructor or a destructor that is
41
+ # not pure, and so merely does not reach an override. A pure one, which
42
+ # is undefined behaviour, is clang-analyzer-cplusplus.PureVirtualCall's,
43
+ # and stays on. The analyzer follows a path from the QBox CPU's adapter
44
+ # into QBox's own destructor, which calls one of its own, and reports it
45
+ # there, in a header nothing here can mark (docs/upstream.md).
46
+ - -clang-analyzer-optin.cplusplus.VirtualCall
47
+ # Leaving a parameter unnamed is how C++ says it is unused.
48
+ - -readability-named-parameter
49
+
50
+ # Every finding fails the run. A check that is not worth failing for is not
51
+ # worth having on.
52
+ WarningsAsErrors: '*'
53
+
54
+ # The register maps' headers are left alone. They are generated
55
+ # (tools/regs.py), and they are C, because the Zephyr drivers include the
56
+ # same files: nothing but #define, which is what these checks would have
57
+ # us replace. So are the headers under src/vpvper/, which are written in
58
+ # MINRES's style for VPV-Peripherals, to be offered upstream; its one source
59
+ # file, rvi/iommu.cpp, is in the tidy target with ours.
60
+ ExcludeHeaderFilterRegex: '.*/zephyr_module/include/socpuppet/regs/.*|.*/src/vpvper/.*'
61
+
62
+ CheckOptions:
63
+ # Count the complexity a person reads, not what gtest's EXPECT_ macros
64
+ # expand to.
65
+ readability-function-cognitive-complexity.IgnoreMacros: true
66
+
67
+ # Google's names. Types and functions are CamelCase, variables are
68
+ # lower_case, a private member ends in an underscore, and a constant is a
69
+ # k followed by CamelCase.
70
+ readability-identifier-naming.NamespaceCase: lower_case
71
+ readability-identifier-naming.ClassCase: CamelCase
72
+ readability-identifier-naming.StructCase: CamelCase
73
+ readability-identifier-naming.EnumCase: CamelCase
74
+ readability-identifier-naming.TypeAliasCase: CamelCase
75
+ readability-identifier-naming.TypedefCase: CamelCase
76
+ readability-identifier-naming.TemplateParameterCase: CamelCase
77
+ readability-identifier-naming.ConceptCase: CamelCase
78
+ readability-identifier-naming.FunctionCase: CamelCase
79
+ # Names we do not get to choose:
80
+ # - TLM-2.0 calls a target's transport functions by these names, and
81
+ # anyone who has met TLM elsewhere knows them.
82
+ # - The compiler calls a coroutine's promise and awaiters by these names
83
+ # (see core/script.h).
84
+ # - SystemC's library calls sc_main (platform/sc_main_stub.cpp).
85
+ readability-identifier-naming.FunctionIgnoredRegexp: '^(sc_main|b_transport|nb_transport_fw|nb_transport_bw|transport_dbg|get_direct_mem_ptr|invalidate_direct_mem_ptr|get_return_object|initial_suspend|final_suspend|return_void|return_value|unhandled_exception|await_transform|await_ready|await_suspend|await_resume|yield_value)$'
86
+ readability-identifier-naming.StructIgnoredRegexp: '^promise_type$'
87
+ readability-identifier-naming.VariableCase: lower_case
88
+ readability-identifier-naming.ParameterCase: lower_case
89
+ readability-identifier-naming.MemberCase: lower_case
90
+ readability-identifier-naming.PrivateMemberSuffix: _
91
+ readability-identifier-naming.ProtectedMemberSuffix: _
92
+ readability-identifier-naming.EnumConstantCase: CamelCase
93
+ readability-identifier-naming.EnumConstantPrefix: k
94
+ readability-identifier-naming.ConstexprVariableCase: CamelCase
95
+ readability-identifier-naming.ConstexprVariablePrefix: k
96
+ readability-identifier-naming.GlobalConstantCase: CamelCase
97
+ readability-identifier-naming.GlobalConstantPrefix: k
98
+ readability-identifier-naming.ClassConstantCase: CamelCase
99
+ readability-identifier-naming.ClassConstantPrefix: k
@@ -0,0 +1,34 @@
1
+ ---
2
+ name: software-design-review
3
+ description: "Review application code (not tests) for design quality: is it a good design, does it do only what the current tests demand, and does it fit the code around it. Runs in its own subagent."
4
+ argument-hint: [files or paths]
5
+ context: fork
6
+ background: false
7
+ ---
8
+
9
+ # Software Design Review
10
+
11
+ Review the application code named under "Code to review" below, or if none is named, the non-test changes in the working tree at the end of this document. Read enough of the surrounding code to judge fit. Do not edit files; report only.
12
+
13
+ Review it as a senior engineer would in a thoughtful design review, using your own judgment. Weigh:
14
+
15
+ - Is this a good design? Judge it on its own terms: are responsibilities in the right place, is coupling low and the interface clear, would it still be the right shape once the rest of the agreed specifications land? Say what you would design differently and why.
16
+ - Does it do only what the tests currently demand? Flag speculative or defensive code: branches, parameters, checks, or abstractions no test exercises.
17
+ - Does it fit the concepts, naming, and conventions already in this area, or would a small refactor make it fit?
18
+ - Would a reader understand it without the commit message?
19
+
20
+ Ignore formatting and anything a linter enforces.
21
+
22
+ Report each finding with the code and a concrete suggestion. If nothing warrants a change, say so in one line; don't invent findings.
23
+
24
+ ## Code to review
25
+
26
+ $ARGUMENTS
27
+
28
+ ## Working tree
29
+
30
+ !`git status --porcelain`
31
+
32
+ ## Diff
33
+
34
+ !`git diff HEAD`
@@ -0,0 +1,54 @@
1
+ ---
2
+ name: tdd
3
+ description: "Implement a change with test-driven development (Canon TDD): specify, encode each spec as a test, watch it fail, fulfill it."
4
+ argument-hint: [specification]
5
+ ---
6
+
7
+ # Test-Driven Development
8
+
9
+ ## Initial Specification
10
+
11
+ $ARGUMENTS
12
+
13
+ ## The loop (Kent Beck's [Canon TDD](https://tidyfirst.substack.com/p/canon-tdd))
14
+
15
+ 1. List the specifications in scope for this session, as "under scenario A, X happens; under scenario B, Y happens".
16
+ 2. Encode one item as an automated test.
17
+ 3. Change the code just barely enough to make the current failure go away. No speculative or defensive code: anything beyond what the failing test demands is code no test exercises.
18
+ 4. Optionally refactor, but only after committing the behavior change. Never mix the two.
19
+ 5. Until the list is empty, go back to 2.
20
+
21
+ ## Clarifying specifications
22
+
23
+ Before writing tests: repeat my specifications back in your own words, ask me to confirm or correct, and loop until confirmed. For how to shape a spec and name its test, see [test-design-review/SKILL.md](../test-design-review/SKILL.md).
24
+
25
+ ## Workflow
26
+
27
+ 1. I invoke /tdd with a draft specification.
28
+ 2. We clarify until we agree on the list in scope.
29
+ 3. Clean the kitchen if needed (below).
30
+ 4. Take the next specification and write just one test for it. Run it and confirm it fails the way the specification predicts. Don't pause for me here. A compile or import error for a symbol that doesn't exist yet is the first failure; add only the declaration needed to reach the assertion failure. Stop and tell me only if the test passes with no code change (the behavior already exists, or the test doesn't test what we think) or fails for an unrelated reason.
31
+ 5. Run /test-design-review on the test and address its findings. Show me the test, the failure output, and any finding you disagreed with, and ask for approval before continuing.
32
+ 6. Write only enough application code to make the failure go away. Run the test, then the project's normal test command. Run /software-design-review on the application code and address its findings. Show me the code and the green run, and ask for approval before committing.
33
+ 7. Commit the behavior change. If a refactor is called for, propose it now; it goes in its own commit.
34
+ 8. Back to step 4 until the list is empty. Then I provide the next specification and we start over from step 2.
35
+
36
+ ### Cleaning the kitchen
37
+
38
+ Before writing a test, picture it and where it will live. If the new behavior does not slot tidily into the conceptual framework of that area of the code, and a reconceptualizing of the current behavior would make the end result more elegant, suggest it. If I approve, abandon the current change, get to a clean working state, and perform the refactoring on a new branch. Then pause and consult me and we begin again.
39
+
40
+ ### Don't be sloppy
41
+
42
+ This kind of thinking is bad:
43
+
44
+ > That failure is pre-existing (unrelated to our change, it's in send_results). Our 6 new + existing tests pass. Want me to commit and push?
45
+
46
+ We don't make dinner in a dirty kitchen. On discovering a pre-existing failure: pause, stash our changes, fix it, then resume.
47
+
48
+ ### Don't be lazy
49
+
50
+ This is stupid and bad:
51
+
52
+ > pytest isn't on the PATH in this environment and the project's virtualenv wasn't activated. The tests can't run here, but the change is straightforward: removed the re-tagging and made preload_app_image return the image name.
53
+
54
+ Don't abandon tests upon encountering the slightest difficulty.
@@ -0,0 +1,133 @@
1
+ ---
2
+ name: test-design-review
3
+ description: Review tests for design quality against the test design guidelines. Runs in its own subagent.
4
+ argument-hint: [test files or paths]
5
+ context: fork
6
+ background: false
7
+ ---
8
+
9
+ # Test Design Review
10
+
11
+ Review the tests named under "Tests to review" below, or if none are named, the test changes in the working tree at the end of this document. Read any untracked test files the status listing shows. Do not edit files; report only.
12
+
13
+ For each violation found, show the offending code and suggest a fix. Group by guideline and skip guidelines with no violations. If nothing violates any guideline, say so in one line; don't invent findings.
14
+
15
+ ## Tests to review
16
+
17
+ $ARGUMENTS
18
+
19
+ ## Guidelines
20
+
21
+ Tests are executable specifications: "in scenario X, Y happens".
22
+
23
+ ### Name the scenario and the expected behavior
24
+
25
+ The scenario and the outcome both appear in the test name or its enclosing group (pytest class, gtest suite, Rust `mod`). "It works correctly", "handles errors", "validates input" specify nothing.
26
+
27
+ Bad:
28
+
29
+ ```python
30
+ class TestScopeFailed:
31
+ def test_returns_the_correct_value(self):
32
+ ```
33
+
34
+ Good:
35
+
36
+ ```python
37
+ class TestRerunningOnlyFailedTests:
38
+ def test_when_status_is_passed_returns_passed(self):
39
+ ```
40
+
41
+ ```rust
42
+ mod when_a_particle_touches_a_grid_cell {
43
+ #[test]
44
+ fn the_cell_turns_the_particles_color() { ... }
45
+ }
46
+ ```
47
+
48
+ ### Test behavior, not implementation
49
+
50
+ Assert on the observable end result, never on the means: no `assert_called_once_with`, `EXPECT_CALL`, cache keys, current URL, or a specific internal field. Stub only what you must (external services) and let real code run. One pair covers the whole family:
51
+
52
+ Bad:
53
+
54
+ ```python
55
+ def test_queues_the_task(mocker, task):
56
+ worker_pool = mocker.patch("jobs.WorkerPool").return_value
57
+ QueueUnqueuedTasksJob().perform()
58
+ worker_pool.queue_task.assert_called_once_with(task)
59
+
60
+ def test_caches_the_result(test_suite_run):
61
+ test_suite_run.duration()
62
+ assert cache.get(f"test_suite_run/{test_suite_run.id}/duration") is not None
63
+ ```
64
+
65
+ Good:
66
+
67
+ ```python
68
+ def test_queues_the_task(task):
69
+ QueueUnqueuedTasksJob().perform()
70
+ assert TaskEvent.count(name="queued") == 1
71
+
72
+ def test_does_not_query_the_database_on_subsequent_calls(test_suite_run):
73
+ test_suite_run.duration()
74
+ with count_queries() as second_call:
75
+ test_suite_run.duration()
76
+ assert second_call.count == 0
77
+ ```
78
+
79
+ The same applies to setup: drive state through the public path the code under test uses (`task.update(exit_code=0)`), not by poking the internal representation it derives from (`task.update(json_output=...)`). Parse helpers the way a user would (find the link by its text), not by regex over markup.
80
+
81
+ ### Assert only what is essential
82
+
83
+ Drop assertions implied by others (a body check already fails on a bad status code), incidental details, and noise.
84
+
85
+ ### Don't pick records by position
86
+
87
+ `[0]`, `[-1]`, `.first()`, `.last()` depend on ordering. Query for the record you mean, or assert on the change (`count == before + 1`).
88
+
89
+ ### Keep one level of abstraction
90
+
91
+ A test that reads at the level of pages and buttons does not set env vars or patch permissions inline; that plumbing goes in a fixture or nowhere. Dense incidental mechanics (listeners, try/finally) go in a helper defined after the test, so the test shows only its essence. Define fixtures before their users, or hard-code the value:
92
+
93
+ ```python
94
+ def test_when_task_id_is_a_non_empty_string_returns_task_prefixed_id(self):
95
+ worker = Worker(Mock(task_id="123"))
96
+ assert worker.docker_compose_project_name == "task-123"
97
+ ```
98
+
99
+ ### Never reach into private state
100
+
101
+ No `obj._helper()`, `setattr(obj, "_state", ...)`, `obj.__dict__`, `mocker.patch.object(obj, "_private")`, `#define private public`, `FRIEND_TEST`, or friend classes. If a private method needs a test, make it public, or treat the urge as a design smell and suggest a specific refactor.
102
+
103
+ ### No speculative values
104
+
105
+ A `timeout=3000`, `time.sleep(3)`, or retry count needs a reason; if it was cargo culted, cut it.
106
+
107
+ ### Hard-code what the spec says, look up what the environment says
108
+
109
+ Inputs that are part of the specification are hard-coded (`"123"` in, `"task-123"` out). Values the test does not own are not: anything copied from generated code, a config file, a schema, or the environment (a register address from a generated header, a port number from a config file, an ID from a seeded database). Copying such a value couples the test to something that changes for unrelated reasons. Read it from the same source the code under test uses, or shape the assertion so the exact value does not matter.
110
+
111
+ Bad:
112
+
113
+ ```python
114
+ def test_when_a_byte_is_written_to_the_data_register_the_uart_holds_it(bus, uart):
115
+ bus.write(0x4000_1000, 0x41) # copied from the generated memory map
116
+ assert uart.data_register == 0x41
117
+ ```
118
+
119
+ Good:
120
+
121
+ ```python
122
+ def test_when_a_byte_is_written_to_the_data_register_the_uart_holds_it(bus, uart):
123
+ bus.write(memory_map.UART0.data, 0x41)
124
+ assert uart.data_register == 0x41
125
+ ```
126
+
127
+ ## Working tree
128
+
129
+ !`git status --porcelain`
130
+
131
+ ## Diff
132
+
133
+ !`git diff HEAD`
@@ -0,0 +1,13 @@
1
+ # What coverage.py measures when the tests run under it, which the build's
2
+ # `coverage` target arranges.
3
+ [run]
4
+ source = python
5
+ # Measure the processes a test starts as well. A test marked
6
+ # @pytest.mark.platform runs in a process of its own, and so does anything
7
+ # launched with subprocess.
8
+ patch = subprocess
9
+ # Each process writes a data file of its own, to be combined afterwards.
10
+ parallel = true
11
+
12
+ [report]
13
+ show_missing = true
@@ -0,0 +1,38 @@
1
+ # The same environment CI uses by default: Ubuntu 26.04 with GCC 15. Built
2
+ # with --build-arg UBUNTU=24.04 (tools/devcontainer.py --ubuntu 24.04), it is
3
+ # the oldest Ubuntu socpuppet supports, with GCC 13.
4
+ ARG UBUNTU=26.04
5
+ FROM ubuntu:${UBUNTU}
6
+
7
+ RUN apt-get update && apt-get install -y --no-install-recommends \
8
+ acpica-tools \
9
+ bc \
10
+ bison \
11
+ build-essential \
12
+ ca-certificates \
13
+ curl \
14
+ device-tree-compiler \
15
+ e2fsprogs \
16
+ flex \
17
+ gdb \
18
+ git \
19
+ uuid-dev \
20
+ zlib1g-dev \
21
+ && rm -rf /var/lib/apt/lists/*
22
+
23
+ # What tools/build_qbox.py needs to build QBox and its QEMU, for the
24
+ # qbox_cpu (docs/setup.md).
25
+ RUN apt-get update && apt-get install -y --no-install-recommends \
26
+ bison flex libasio-dev libelf-dev libepoxy-dev libglib2.0-dev \
27
+ libjpeg-turbo8-dev libpixman-1-dev libsdl2-dev libslirp-dev \
28
+ libvirglrenderer-dev libzip-dev lld llvm meson ninja-build \
29
+ ocl-icd-opencl-dev pkg-config python3-dev python3-pip python3-venv \
30
+ && rm -rf /var/lib/apt/lists/*
31
+
32
+ # uv supplies Python, cmake and ninja (see pyproject.toml).
33
+ COPY --from=ghcr.io/astral-sh/uv:0.12.1 /uv /uvx /usr/local/bin/
34
+
35
+ # Keep the virtual environment out of the mounted workspace so it does not
36
+ # collide with a .venv created on the host.
37
+ ENV UV_PROJECT_ENVIRONMENT=/opt/socpuppet-venv \
38
+ UV_LINK_MODE=copy
@@ -0,0 +1,30 @@
1
+ {
2
+ "name": "socpuppet",
3
+ "build": { "dockerfile": "Dockerfile" },
4
+ // The repository at /workspace, and the container's own trees kept apart
5
+ // from the host's in the Docker volumes tools/devcontainer.py mounts on a
6
+ // Mac, which says why. Their names end in the image's Ubuntu: change them
7
+ // with the Dockerfile's ARG UBUNTU (a test holds them to the script). Their
8
+ // mount points are made first, on the host: Docker makes a missing one,
9
+ // and on Linux makes it root's.
10
+ "workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind",
11
+ "workspaceFolder": "/workspace",
12
+ "initializeCommand": "mkdir -p build/linux build/container/ubuntu-26.04/linux build/qbox build/qbox-dev build/firmware/linux-aarch64 build/firmware/linux-x86_64",
13
+ "mounts": [
14
+ // The linux preset's tree, a folder of the host's as the script has it,
15
+ // so that tools/ci.py on the host looks after its dependencies.
16
+ "source=${localWorkspaceFolder}/build/container/ubuntu-26.04/linux,target=/workspace/build/linux,type=bind",
17
+ "source=socpuppet-qbox-ubuntu-26.04,target=/workspace/build/qbox,type=volume",
18
+ "source=socpuppet-qbox-dev-ubuntu-26.04,target=/workspace/build/qbox-dev,type=volume",
19
+ // Linux's firmware tools, in build/firmware/linux-<processor>: this file
20
+ // cannot ask which processor it is on, so both are mounted.
21
+ "source=socpuppet-firmware-linux-ubuntu-26.04,target=/workspace/build/firmware/linux-aarch64,type=volume",
22
+ "source=socpuppet-firmware-linux-ubuntu-26.04,target=/workspace/build/firmware/linux-x86_64,type=volume"
23
+ ],
24
+ "postCreateCommand": "uv sync",
25
+ "customizations": {
26
+ "vscode": {
27
+ "extensions": ["ms-vscode.cmake-tools", "ms-vscode.cpptools", "ms-python.python"]
28
+ }
29
+ }
30
+ }
@@ -0,0 +1,25 @@
1
+ # Editor settings that match what the linters enforce (tools/lint.py), so a
2
+ # file starts out right. See https://editorconfig.org.
3
+ root = true
4
+
5
+ [*]
6
+ charset = utf-8
7
+ end_of_line = lf
8
+ insert_final_newline = true
9
+ trim_trailing_whitespace = true
10
+ indent_style = space
11
+ indent_size = 2
12
+
13
+ [*.{h,cpp}]
14
+ max_line_length = 80
15
+
16
+ [*.{py,pyi}]
17
+ indent_size = 4
18
+ max_line_length = 80
19
+
20
+ [*.toml]
21
+ indent_size = 4
22
+
23
+ [*.md]
24
+ # One paragraph per line, however long: the editor wraps it for display.
25
+ max_line_length = off
@@ -0,0 +1,9 @@
1
+ # Commits that only reformat or rename, so that git blame looks past them.
2
+ # Use it with: git config blame.ignoreRevsFile .git-blame-ignore-revs
3
+ # (GitHub's blame view reads this file by itself.)
4
+
5
+ # Reformat all C++ with clang-format (Google style, 80 columns)
6
+ c5a96eaac06e2d8be3be8c04df7bc90b90752dd8
7
+
8
+ # Rename C++ functions to CamelCase and constants to kName
9
+ 83e82d687cee599a95c26f1c6ee985e00a8a94c7
@@ -0,0 +1,7 @@
1
+ # GitHub's own Ubuntu 26.04 runners, which actionlint 1.7.12 does not know
2
+ # yet and so takes for a self-hosted runner's labels (docs/upstream.md).
3
+ # Goes once a release of actionlint names them.
4
+ self-hosted-runner:
5
+ labels:
6
+ - ubuntu-26.04
7
+ - ubuntu-26.04-arm