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.
- socpuppet-0.0.1rc1/.clang-format +31 -0
- socpuppet-0.0.1rc1/.clang-tidy +99 -0
- socpuppet-0.0.1rc1/.claude/skills/software-design-review/SKILL.md +34 -0
- socpuppet-0.0.1rc1/.claude/skills/tdd/SKILL.md +54 -0
- socpuppet-0.0.1rc1/.claude/skills/test-design-review/SKILL.md +133 -0
- socpuppet-0.0.1rc1/.coveragerc +13 -0
- socpuppet-0.0.1rc1/.devcontainer/Dockerfile +38 -0
- socpuppet-0.0.1rc1/.devcontainer/devcontainer.json +30 -0
- socpuppet-0.0.1rc1/.editorconfig +25 -0
- socpuppet-0.0.1rc1/.git-blame-ignore-revs +9 -0
- socpuppet-0.0.1rc1/.github/actionlint.yaml +7 -0
- socpuppet-0.0.1rc1/.github/actions/setup/action.yml +234 -0
- socpuppet-0.0.1rc1/.github/dependabot.yml +30 -0
- socpuppet-0.0.1rc1/.github/workflows/checks.yml +91 -0
- socpuppet-0.0.1rc1/.github/workflows/ci.yml +150 -0
- socpuppet-0.0.1rc1/.github/workflows/firmware.yml +312 -0
- socpuppet-0.0.1rc1/.github/workflows/nightly.yml +291 -0
- socpuppet-0.0.1rc1/.github/workflows/qbox-build.yml +61 -0
- socpuppet-0.0.1rc1/.github/workflows/release.yml +161 -0
- socpuppet-0.0.1rc1/.github/workflows/wheel.yml +77 -0
- socpuppet-0.0.1rc1/.gitignore +23 -0
- socpuppet-0.0.1rc1/.python-version +1 -0
- socpuppet-0.0.1rc1/.rumdl.toml +12 -0
- socpuppet-0.0.1rc1/AGENTS.md +87 -0
- socpuppet-0.0.1rc1/CLAUDE.md +1 -0
- socpuppet-0.0.1rc1/CMakeLists.txt +47 -0
- socpuppet-0.0.1rc1/CMakePresets.json +145 -0
- socpuppet-0.0.1rc1/CPPLINT.cfg +21 -0
- socpuppet-0.0.1rc1/LICENSE +21 -0
- socpuppet-0.0.1rc1/PKG-INFO +214 -0
- socpuppet-0.0.1rc1/README.md +185 -0
- socpuppet-0.0.1rc1/THIRD_PARTY_NOTICES.md +28 -0
- socpuppet-0.0.1rc1/cmake/Dependencies.cmake +581 -0
- socpuppet-0.0.1rc1/cmake/DevChecks.cmake +275 -0
- socpuppet-0.0.1rc1/cmake/MacSdk.cmake +13 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-core-asio-names.patch +36 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-core-gdb-continue-answered-once.patch +37 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-core-gdb-rude-hangup.patch +16 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-core-gdb-server-per-core.patch +101 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-core-int128-traits.patch +20 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-core-jit-wait-name.patch +39 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-core-llvm-global-string.patch +21 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-core-llvm-pointer-args.patch +28 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-asmjit-wfi-call.patch +144 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-counter-enables.patch +51 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-debugger-waits-for-reset.patch +18 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-dmi-invalidate.patch +42 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-fetch-ends-page.patch +25 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-flw-address.patch +22 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-fp-status.patch +107 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-gdb-server-per-core.patch +17 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-int128-traits.patch +180 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-interrupt-after-access.patch +18 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-interrupt-drops-instruction.patch +17 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-interrupt-inside-exception.patch +28 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-jit-wait-name.patch +249 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-llvm-core-names.patch +25 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-llvm-init-jit.patch +19 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-llvm-wfi-call.patch +78 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-mip-read-only.patch +27 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-misaligned-amo.patch +35 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-mprv-on-return.patch +14 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-offsetof.patch +1285 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-one-reservation.patch +29 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-reset-pulse.patch +49 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-reset-restart.patch +28 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-satp-warl.patch +80 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-sfence-user-mode.patch +14 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-sret-tsr.patch +14 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-sstatus-view.patch +29 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-static-library.patch +30 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-supervisor-interrupts.patch +125 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-tlb-dirty.patch +16 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-topi.patch +65 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-translate-fetches.patch +23 -0
- socpuppet-0.0.1rc1/cmake/patches/dbt-rise-riscv-xret-privilege.patch +16 -0
- socpuppet-0.0.1rc1/cmake/patches/edk2-sec-maps-ns16550.patch +12 -0
- socpuppet-0.0.1rc1/cmake/patches/edk2-virtiofs-sets-its-queue-size.patch +24 -0
- socpuppet-0.0.1rc1/cmake/patches/libqemu-icount-no-active-timers.patch +14 -0
- socpuppet-0.0.1rc1/cmake/patches/libqemu-icount-trap-charge.patch +25 -0
- socpuppet-0.0.1rc1/cmake/patches/libqemu-macos-no-opengl.patch +147 -0
- socpuppet-0.0.1rc1/cmake/patches/libqemu-macos-rpclib-asio.patch +44 -0
- socpuppet-0.0.1rc1/cmake/patches/libqemu-riscv-board-hooks.patch +92 -0
- socpuppet-0.0.1rc1/cmake/patches/libqemu-riscv-fence-i-flushes.patch +56 -0
- socpuppet-0.0.1rc1/cmake/patches/libqemu-vm-stop-state.patch +159 -0
- socpuppet-0.0.1rc1/cmake/patches/opensbi-syscon-regmap-size.patch +14 -0
- socpuppet-0.0.1rc1/cmake/patches/qbox-coroutine-quantum-deadline.patch +58 -0
- socpuppet-0.0.1rc1/cmake/patches/qbox-cpp20-constructors.patch +26 -0
- socpuppet-0.0.1rc1/cmake/patches/qbox-cpu-machine-state.patch +107 -0
- socpuppet-0.0.1rc1/cmake/patches/qbox-cpu-stop-arms-no-deadline.patch +48 -0
- socpuppet-0.0.1rc1/cmake/patches/qbox-gs-semaphore.patch +17 -0
- socpuppet-0.0.1rc1/cmake/patches/qbox-hexagon-fmt.patch +26 -0
- socpuppet-0.0.1rc1/cmake/patches/qbox-macos-loader-path.patch +15 -0
- socpuppet-0.0.1rc1/cmake/patches/qbox-macos-rpclib-asio.patch +47 -0
- socpuppet-0.0.1rc1/cmake/patches/qbox-riscv-board-hooks.patch +41 -0
- socpuppet-0.0.1rc1/cmake/patches/qbox-riscv-no-suspend-in-coroutine.patch +20 -0
- socpuppet-0.0.1rc1/cmake/patches/qbox-riscv-sstc-parameter.patch +26 -0
- socpuppet-0.0.1rc1/cmake/patches/qbox-wait-catches-up-with-the-clock.patch +75 -0
- socpuppet-0.0.1rc1/cmake/patches/scc-cci-explicit-elem-ref.patch +22 -0
- socpuppet-0.0.1rc1/cmake/patches/scc-in-tree-systemc.patch +13 -0
- socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-aclint-time-zero.patch +13 -0
- socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-aclint-write-ahead.patch +17 -0
- socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-aon-watchdog.patch +259 -0
- socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-aplic-msi-mode.patch +399 -0
- socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-gpio-interrupts.patch +120 -0
- socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-gpio-pull-up.patch +73 -0
- socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-plic-edge-while-claimed.patch +49 -0
- socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-plic-last-source.patch +32 -0
- socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-plic-level-sources.patch +20 -0
- socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-plic-look-again.patch +34 -0
- socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-spi-first-byte.patch +14 -0
- socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-spi-power-on-reset.patch +35 -0
- socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-spi-receive-fifo-full.patch +16 -0
- socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-spi-receive-mark.patch +20 -0
- socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-spi-transmit-only.patch +24 -0
- socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-spi-transmit-watermark.patch +33 -0
- socpuppet-0.0.1rc1/cmake/patches/vpv-peripherals-uart-interrupt-from-state.patch +185 -0
- socpuppet-0.0.1rc1/cmake/patches/zephyr-gpio-sifive-pin-per-handler.patch +140 -0
- socpuppet-0.0.1rc1/cmake/patches/zephyr-i2c-sifive-address-shifted.patch +17 -0
- socpuppet-0.0.1rc1/cmake/patches/zephyr-i2c-sifive-start-only-when-asked.patch +66 -0
- socpuppet-0.0.1rc1/cmake/patches/zephyr-virtqueue-callbacks-aligned.patch +30 -0
- socpuppet-0.0.1rc1/cmake/sanitizer_options.cpp +22 -0
- socpuppet-0.0.1rc1/cmake/shims/spdk/assert.h +14 -0
- socpuppet-0.0.1rc1/cmake/shims/spdk/stdinc.h +13 -0
- socpuppet-0.0.1rc1/examples/boot_from_flash.py +146 -0
- socpuppet-0.0.1rc1/examples/chiplet_host_hello.py +105 -0
- socpuppet-0.0.1rc1/examples/first_show.py +54 -0
- socpuppet-0.0.1rc1/examples/full_bootchain.py +157 -0
- socpuppet-0.0.1rc1/examples/host_and_ssd_hello.py +129 -0
- socpuppet-0.0.1rc1/examples/host_hello.py +51 -0
- socpuppet-0.0.1rc1/examples/io_manager_hello.py +71 -0
- socpuppet-0.0.1rc1/examples/linux_cable.py +210 -0
- socpuppet-0.0.1rc1/examples/linux_hello.py +113 -0
- socpuppet-0.0.1rc1/examples/linux_on_the_drive.py +178 -0
- socpuppet-0.0.1rc1/examples/nvme_hello.py +121 -0
- socpuppet-0.0.1rc1/examples/passthrough_hello.py +54 -0
- socpuppet-0.0.1rc1/examples/shell_from_python.py +104 -0
- socpuppet-0.0.1rc1/examples/ssd_firmware_hello.py +107 -0
- socpuppet-0.0.1rc1/examples/ssd_hello.py +83 -0
- socpuppet-0.0.1rc1/firmware/.clang-format +24 -0
- socpuppet-0.0.1rc1/firmware/CPPLINT.cfg +5 -0
- socpuppet-0.0.1rc1/firmware/build.py +1386 -0
- socpuppet-0.0.1rc1/firmware/flash_test/CMakeLists.txt +12 -0
- socpuppet-0.0.1rc1/firmware/flash_test/Kconfig +2 -0
- socpuppet-0.0.1rc1/firmware/flash_test/README.md +15 -0
- socpuppet-0.0.1rc1/firmware/flash_test/boards/socpuppet_ssd.overlay +17 -0
- socpuppet-0.0.1rc1/firmware/flash_test/prj.conf +16 -0
- socpuppet-0.0.1rc1/firmware/flash_test/src/nand.c +122 -0
- socpuppet-0.0.1rc1/firmware/flash_test/testcase.yaml +7 -0
- socpuppet-0.0.1rc1/firmware/initramfs/init +60 -0
- socpuppet-0.0.1rc1/firmware/iomgr/CMakeLists.txt +8 -0
- socpuppet-0.0.1rc1/firmware/iomgr/README.md +25 -0
- socpuppet-0.0.1rc1/firmware/iomgr/prj.conf +5 -0
- socpuppet-0.0.1rc1/firmware/iomgr/src/main.c +62 -0
- socpuppet-0.0.1rc1/firmware/iomgr/testcase.yaml +15 -0
- socpuppet-0.0.1rc1/firmware/rom/README.md +44 -0
- socpuppet-0.0.1rc1/firmware/rom/board_rv32.h +16 -0
- socpuppet-0.0.1rc1/firmware/rom/board_rv64.h +16 -0
- socpuppet-0.0.1rc1/firmware/rom/crc32.c +39 -0
- socpuppet-0.0.1rc1/firmware/rom/crc32.h +13 -0
- socpuppet-0.0.1rc1/firmware/rom/main.c +221 -0
- socpuppet-0.0.1rc1/firmware/rom/rom.ld +27 -0
- socpuppet-0.0.1rc1/firmware/rom/start.S +48 -0
- socpuppet-0.0.1rc1/firmware/rootfs/etc/inittab +31 -0
- socpuppet-0.0.1rc1/firmware/sbi_payload/main.c +183 -0
- socpuppet-0.0.1rc1/firmware/sbi_payload/payload.ld +37 -0
- socpuppet-0.0.1rc1/firmware/sbi_payload/start.S +25 -0
- socpuppet-0.0.1rc1/firmware/ssd/CMakeLists.txt +14 -0
- socpuppet-0.0.1rc1/firmware/ssd/README.md +26 -0
- socpuppet-0.0.1rc1/firmware/ssd/prj.conf +11 -0
- socpuppet-0.0.1rc1/firmware/ssd/src/admin.c +214 -0
- socpuppet-0.0.1rc1/firmware/ssd/src/buffer.c +29 -0
- socpuppet-0.0.1rc1/firmware/ssd/src/data.c +99 -0
- socpuppet-0.0.1rc1/firmware/ssd/src/data.h +72 -0
- socpuppet-0.0.1rc1/firmware/ssd/src/ftl.c +231 -0
- socpuppet-0.0.1rc1/firmware/ssd/src/ftl.h +69 -0
- socpuppet-0.0.1rc1/firmware/ssd/src/io.c +111 -0
- socpuppet-0.0.1rc1/firmware/ssd/src/main.c +106 -0
- socpuppet-0.0.1rc1/firmware/ssd/src/nvme.h +102 -0
- socpuppet-0.0.1rc1/firmware/ssd/src/ssd.h +62 -0
- socpuppet-0.0.1rc1/firmware/ssd/testcase.yaml +12 -0
- socpuppet-0.0.1rc1/firmware/ssd/tests/admin/CMakeLists.txt +17 -0
- socpuppet-0.0.1rc1/firmware/ssd/tests/admin/prj.conf +5 -0
- socpuppet-0.0.1rc1/firmware/ssd/tests/admin/src/main.c +258 -0
- socpuppet-0.0.1rc1/firmware/ssd/tests/admin/testcase.yaml +9 -0
- socpuppet-0.0.1rc1/firmware/ssd/tests/ftl/CMakeLists.txt +13 -0
- socpuppet-0.0.1rc1/firmware/ssd/tests/ftl/prj.conf +3 -0
- socpuppet-0.0.1rc1/firmware/ssd/tests/ftl/src/main.c +231 -0
- socpuppet-0.0.1rc1/firmware/ssd/tests/ftl/testcase.yaml +7 -0
- socpuppet-0.0.1rc1/firmware/twister-quarantine.yaml +38 -0
- socpuppet-0.0.1rc1/firmware/twister-requirements.txt +16 -0
- socpuppet-0.0.1rc1/firmware/twister-suites.txt +70 -0
- socpuppet-0.0.1rc1/firmware/twister.py +451 -0
- socpuppet-0.0.1rc1/firmware/versions.toml +67 -0
- socpuppet-0.0.1rc1/firmware/virtiofs_sample.overlay +9 -0
- socpuppet-0.0.1rc1/firmware/watchdog/CMakeLists.txt +9 -0
- socpuppet-0.0.1rc1/firmware/watchdog/README.md +29 -0
- socpuppet-0.0.1rc1/firmware/watchdog/prj.conf +8 -0
- socpuppet-0.0.1rc1/firmware/watchdog/src/main.c +150 -0
- socpuppet-0.0.1rc1/firmware/watchdog/testcase.yaml +30 -0
- socpuppet-0.0.1rc1/mypy.ini +7 -0
- socpuppet-0.0.1rc1/pyproject.toml +172 -0
- socpuppet-0.0.1rc1/python/socpuppet/__init__.py +160 -0
- socpuppet-0.0.1rc1/python/socpuppet/__main__.py +5 -0
- socpuppet-0.0.1rc1/python/socpuppet/_core.pyi +75 -0
- socpuppet-0.0.1rc1/python/socpuppet/address_map.py +266 -0
- socpuppet-0.0.1rc1/python/socpuppet/boards/__init__.py +1 -0
- socpuppet-0.0.1rc1/python/socpuppet/boards/boot.py +109 -0
- socpuppet-0.0.1rc1/python/socpuppet/boards/cpu_kit.py +259 -0
- socpuppet-0.0.1rc1/python/socpuppet/boards/drive.py +83 -0
- socpuppet-0.0.1rc1/python/socpuppet/boards/host.py +1013 -0
- socpuppet-0.0.1rc1/python/socpuppet/boards/io_manager.py +180 -0
- socpuppet-0.0.1rc1/python/socpuppet/boards/manager.py +120 -0
- socpuppet-0.0.1rc1/python/socpuppet/boards/real_host.py +151 -0
- socpuppet-0.0.1rc1/python/socpuppet/boards/scripted_host.py +151 -0
- socpuppet-0.0.1rc1/python/socpuppet/boards/ssd.py +486 -0
- socpuppet-0.0.1rc1/python/socpuppet/boards/virtio.py +121 -0
- socpuppet-0.0.1rc1/python/socpuppet/boot_image.py +167 -0
- socpuppet-0.0.1rc1/python/socpuppet/cli.py +639 -0
- socpuppet-0.0.1rc1/python/socpuppet/components/__init__.py +139 -0
- socpuppet-0.0.1rc1/python/socpuppet/components/base.py +371 -0
- socpuppet-0.0.1rc1/python/socpuppet/components/cpu.py +316 -0
- socpuppet-0.0.1rc1/python/socpuppet/components/interrupts.py +291 -0
- socpuppet-0.0.1rc1/python/socpuppet/components/links.py +189 -0
- socpuppet-0.0.1rc1/python/socpuppet/components/memory.py +160 -0
- socpuppet-0.0.1rc1/python/socpuppet/components/pcie.py +279 -0
- socpuppet-0.0.1rc1/python/socpuppet/components/peripherals.py +731 -0
- socpuppet-0.0.1rc1/python/socpuppet/components/storage.py +217 -0
- socpuppet-0.0.1rc1/python/socpuppet/components/virtio.py +381 -0
- socpuppet-0.0.1rc1/python/socpuppet/devicetree.py +586 -0
- socpuppet-0.0.1rc1/python/socpuppet/drive.py +60 -0
- socpuppet-0.0.1rc1/python/socpuppet/elf.py +56 -0
- socpuppet-0.0.1rc1/python/socpuppet/errors.py +29 -0
- socpuppet-0.0.1rc1/python/socpuppet/ethernet_cable.py +163 -0
- socpuppet-0.0.1rc1/python/socpuppet/ftl.py +234 -0
- socpuppet-0.0.1rc1/python/socpuppet/fuse.py +561 -0
- socpuppet-0.0.1rc1/python/socpuppet/gpt.py +189 -0
- socpuppet-0.0.1rc1/python/socpuppet/i2c.py +83 -0
- socpuppet-0.0.1rc1/python/socpuppet/images.py +286 -0
- socpuppet-0.0.1rc1/python/socpuppet/images_release.py +12 -0
- socpuppet-0.0.1rc1/python/socpuppet/interactive.py +187 -0
- socpuppet-0.0.1rc1/python/socpuppet/interrupt_map.py +73 -0
- socpuppet-0.0.1rc1/python/socpuppet/io_manager.py +119 -0
- socpuppet-0.0.1rc1/python/socpuppet/linux.py +359 -0
- socpuppet-0.0.1rc1/python/socpuppet/msi_host.py +46 -0
- socpuppet-0.0.1rc1/python/socpuppet/ninep.py +683 -0
- socpuppet-0.0.1rc1/python/socpuppet/nvme_host.py +568 -0
- socpuppet-0.0.1rc1/python/socpuppet/opensbi.py +168 -0
- socpuppet-0.0.1rc1/python/socpuppet/ops.py +119 -0
- socpuppet-0.0.1rc1/python/socpuppet/pcie_host.py +237 -0
- socpuppet-0.0.1rc1/python/socpuppet/placed.py +319 -0
- socpuppet-0.0.1rc1/python/socpuppet/platform.py +698 -0
- socpuppet-0.0.1rc1/python/socpuppet/pump.py +170 -0
- socpuppet-0.0.1rc1/python/socpuppet/py.typed +0 -0
- socpuppet-0.0.1rc1/python/socpuppet/pytest_plugin.py +513 -0
- socpuppet-0.0.1rc1/python/socpuppet/qemu_trace.py +52 -0
- socpuppet-0.0.1rc1/python/socpuppet/regs/__init__.py +12 -0
- socpuppet-0.0.1rc1/python/socpuppet/regs/boot_image_header.py +58 -0
- socpuppet-0.0.1rc1/python/socpuppet/regs/command_device.py +28 -0
- socpuppet-0.0.1rc1/python/socpuppet/regs/dma_engine.py +46 -0
- socpuppet-0.0.1rc1/python/socpuppet/regs/flash_controller.py +57 -0
- socpuppet-0.0.1rc1/python/socpuppet/regs/ftl_header.py +31 -0
- socpuppet-0.0.1rc1/python/socpuppet/regs/i2c_controller.py +70 -0
- socpuppet-0.0.1rc1/python/socpuppet/regs/nvme_frontend.py +99 -0
- socpuppet-0.0.1rc1/python/socpuppet/regs/rtc.py +40 -0
- socpuppet-0.0.1rc1/python/socpuppet/regs/system_controller.py +38 -0
- socpuppet-0.0.1rc1/python/socpuppet/regs/ucie_link.py +141 -0
- socpuppet-0.0.1rc1/python/socpuppet/regs/virtio_mmio.py +155 -0
- socpuppet-0.0.1rc1/python/socpuppet/run.py +362 -0
- socpuppet-0.0.1rc1/python/socpuppet/slirp.py +363 -0
- socpuppet-0.0.1rc1/python/socpuppet/spi.py +46 -0
- socpuppet-0.0.1rc1/python/socpuppet/ssd_firmware.py +735 -0
- socpuppet-0.0.1rc1/python/socpuppet/terminal.py +68 -0
- socpuppet-0.0.1rc1/python/socpuppet/time.py +25 -0
- socpuppet-0.0.1rc1/python/socpuppet/trace.py +98 -0
- socpuppet-0.0.1rc1/python/socpuppet/transcript.py +88 -0
- socpuppet-0.0.1rc1/python/socpuppet/ucie.py +253 -0
- socpuppet-0.0.1rc1/python/socpuppet/virtio_host.py +684 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/.clang-format +24 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/CPPLINT.cfg +5 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_drive/Kconfig.shield +2 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_drive/socpuppet_host_drive.conf +9 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_drive/socpuppet_host_drive.overlay +28 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_gpio_loopback/Kconfig.shield +2 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_gpio_loopback/socpuppet_host_gpio_loopback.conf +5 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_gpio_loopback/socpuppet_host_gpio_loopback.overlay +7 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_i2c_ram/Kconfig.shield +2 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_i2c_ram/socpuppet_host_i2c_ram.overlay +5 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_iommu/Kconfig.shield +2 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_iommu/socpuppet_host_iommu.overlay +15 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_spi_loopback/Kconfig.shield +2 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_spi_loopback/socpuppet_host_spi_loopback.conf +9 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_spi_loopback/socpuppet_host_spi_loopback.overlay +13 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_virtio/Kconfig.shield +2 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_virtio/socpuppet_host_virtio.conf +8 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_virtio/socpuppet_host_virtio.overlay +63 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_virtio_console/Kconfig.shield +2 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_virtio_console/socpuppet_host_virtio_console.conf +3 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_host_virtio_console/socpuppet_host_virtio_console.overlay +10 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_ssd_host/Kconfig.shield +2 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/shields/socpuppet_ssd_host/socpuppet_ssd_host.overlay +17 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/run_with_socpuppet.cmake +26 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_host/Kconfig.socpuppet_host +3 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_host/board.cmake +3 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_host/board.yml +5 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_host/socpuppet_host.dts +167 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_host/socpuppet_host.yaml +25 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_host/socpuppet_host_defconfig +7 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_iomgr/Kconfig.socpuppet_iomgr +4 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_iomgr/board.cmake +3 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_iomgr/board.yml +5 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_iomgr/socpuppet_iomgr.dts +98 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_iomgr/socpuppet_iomgr.yaml +21 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_iomgr/socpuppet_iomgr_defconfig +7 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_ssd/Kconfig.socpuppet_ssd +3 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_ssd/board.cmake +3 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_ssd/board.yml +5 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_ssd/socpuppet_ssd.dts +109 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_ssd/socpuppet_ssd.yaml +21 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/boards/socpuppet/socpuppet_ssd/socpuppet_ssd_defconfig +7 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/drivers/d2d/ucie_link.c +198 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/drivers/interrupt_controller/imsic_irq.c +217 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/drivers/iommu/riscv_iommu.c +535 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/drivers/pcie/map_without_mmu.c +24 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/drivers/pcie/socpuppet_pcie.c +241 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/drivers/rtc/rtc_goldfish.c +94 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/drivers/ssd/command_status.h +55 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/drivers/ssd/dma_engine.c +61 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/drivers/ssd/flash_controller.c +275 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/drivers/ssd/nvme_frontend.c +166 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/dts/bindings/d2d/socpuppet,ucie-link.yaml +30 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/dts/bindings/iommu/riscv,iommu.yaml +24 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/dts/bindings/pcie/socpuppet,pcie.yaml +47 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/dts/bindings/rtc/google,goldfish-rtc.yaml +14 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/dts/bindings/ssd/socpuppet,dma-engine.yaml +15 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/dts/bindings/ssd/socpuppet,flash-controller.yaml +16 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/dts/bindings/ssd/socpuppet,nvme-frontend.yaml +20 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/dts/bindings/syscon/socpuppet,system-controller.yaml +12 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/dts/bindings/vendor-prefixes.txt +3 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/drivers/dma_engine.h +35 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/drivers/nvme_frontend.h +140 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/drivers/riscv_iommu.h +81 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/drivers/ucie_link.h +59 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/boot_image_header.h +74 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/command_device.h +36 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/dma_engine.h +59 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/flash_controller.h +69 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/ftl_header.h +45 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/i2c_controller.h +80 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/nvme_frontend.h +123 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/rtc.h +52 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/system_controller.h +48 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/ucie_link.h +155 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/include/socpuppet/regs/virtio_mmio.h +211 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/soc/socpuppet/CMakeLists.txt +9 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/soc/socpuppet/Kconfig +20 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/soc/socpuppet/Kconfig.defconfig +49 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/soc/socpuppet/Kconfig.soc +7 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/soc/socpuppet/pinctrl_soc.h +15 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/soc/socpuppet/reboot.c +31 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/soc/socpuppet/soc.h +23 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/soc/socpuppet/soc.yml +5 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/soc/socpuppet/socpuppet_rv32/Kconfig.soc +6 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/soc/socpuppet/socpuppet_rv64/Kconfig.soc +6 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/README.md +10 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/dma_engine/CMakeLists.txt +8 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/dma_engine/prj.conf +1 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/dma_engine/src/main.c +154 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/dma_engine/testcase.yaml +10 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/imsic_irq/CMakeLists.txt +8 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/imsic_irq/prj.conf +1 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/imsic_irq/src/main.c +147 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/imsic_irq/testcase.yaml +7 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/nvme_frontend/CMakeLists.txt +8 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/nvme_frontend/prj.conf +1 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/nvme_frontend/src/main.c +214 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/nvme_frontend/testcase.yaml +10 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/riscv_iommu/CMakeLists.txt +8 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/riscv_iommu/prj.conf +7 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/riscv_iommu/src/main.c +116 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/riscv_iommu/testcase.yaml +9 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/socpuppet_pcie/CMakeLists.txt +8 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/socpuppet_pcie/prj.conf +5 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/socpuppet_pcie/src/main.c +150 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/socpuppet_pcie/testcase.yaml +8 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/syscon_reset_cause/CMakeLists.txt +8 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/syscon_reset_cause/prj.conf +4 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/syscon_reset_cause/src/main.c +38 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/syscon_reset_cause/testcase.yaml +8 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/ucie_link/CMakeLists.txt +8 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/ucie_link/prj.conf +4 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/ucie_link/src/main.c +125 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/tests/drivers/ucie_link/testcase.yaml +8 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/zephyr/CMakeLists.txt +41 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/zephyr/Kconfig +159 -0
- socpuppet-0.0.1rc1/python/socpuppet/zephyr_module/zephyr/module.yml +10 -0
- socpuppet-0.0.1rc1/python/socpuppet/ztest.py +143 -0
- socpuppet-0.0.1rc1/regs/boot_image_header.rdl +84 -0
- socpuppet-0.0.1rc1/regs/command_device.rdl +56 -0
- socpuppet-0.0.1rc1/regs/dma_engine.rdl +52 -0
- socpuppet-0.0.1rc1/regs/flash_controller.rdl +69 -0
- socpuppet-0.0.1rc1/regs/ftl_header.rdl +49 -0
- socpuppet-0.0.1rc1/regs/i2c_controller.rdl +63 -0
- socpuppet-0.0.1rc1/regs/nvme_frontend.rdl +145 -0
- socpuppet-0.0.1rc1/regs/properties.rdl +14 -0
- socpuppet-0.0.1rc1/regs/rtc.rdl +58 -0
- socpuppet-0.0.1rc1/regs/system_controller.rdl +46 -0
- socpuppet-0.0.1rc1/regs/ucie_link.rdl +154 -0
- socpuppet-0.0.1rc1/regs/virtio_mmio.rdl +173 -0
- socpuppet-0.0.1rc1/ruff.toml +40 -0
- socpuppet-0.0.1rc1/src/socpuppet/CMakeLists.txt +426 -0
- socpuppet-0.0.1rc1/src/socpuppet/bindings/core.cpp +478 -0
- socpuppet-0.0.1rc1/src/socpuppet/bindings/python_executor.h +76 -0
- socpuppet-0.0.1rc1/src/socpuppet/bindings/python_i2c_device.h +60 -0
- socpuppet-0.0.1rc1/src/socpuppet/bindings/python_script.h +116 -0
- socpuppet-0.0.1rc1/src/socpuppet/bindings/python_spi_device.h +49 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/block_store.h +82 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/command_status.h +62 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/d2d_link_logic.h +155 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/dma_engine_logic.cpp +137 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/dma_engine_logic.h +58 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/elf_image.cpp +36 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/elf_image.h +40 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/flash_controller_logic.cpp +141 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/flash_controller_logic.h +65 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/i2c_controller_logic.cpp +135 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/i2c_controller_logic.h +71 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/i2c_device.h +44 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/interrupt_file.h +178 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/interrupt_requests.h +38 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/link_channel.h +68 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/little_endian.h +48 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/memory_port.h +26 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/memory_store.h +47 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/msix_table.cpp +67 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/msix_table.h +61 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/nand_array.h +135 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/nand_geometry.h +19 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/nand_port.h +33 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/nvme_controller.cpp +321 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/nvme_controller.h +128 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/nvme_frontend_logic.cpp +308 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/nvme_frontend_logic.h +104 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/nvme_host_registers.cpp +174 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/nvme_host_registers.h +104 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/nvme_queues.cpp +132 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/nvme_queues.h +158 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/pcie_endpoint_registers.cpp +225 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/pcie_endpoint_registers.h +181 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/pciem_device.cpp +231 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/pciem_device.h +92 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/pciem_host_logic.h +24 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/pin_listener.h +15 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/prp.h +76 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/rtc_logic.cpp +108 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/rtc_logic.h +62 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/script.h +171 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/spi_device.h +38 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/spi_nor_chip.cpp +165 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/spi_nor_chip.h +64 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/system_controller_logic.h +109 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/time.h +21 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/trace.h +40 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/ucie_link_registers.cpp +211 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/ucie_link_registers.h +106 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/ucie_link_state.cpp +168 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/ucie_link_state.h +119 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/ucie_sideband.h +327 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/virtio_9p_logic.h +80 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/virtio_blk_logic.h +150 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/virtio_console_logic.h +82 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/virtio_device.h +62 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/virtio_fs_logic.h +90 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/virtio_mmio_logic.h +323 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/virtio_net_logic.h +125 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/virtio_rng_logic.h +49 -0
- socpuppet-0.0.1rc1/src/socpuppet/core/virtqueue.h +189 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/aplic.cpp +178 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/aplic.h +68 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/behavioral_nvme.h +116 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/borrowed_model.h +60 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/builtin_components.cpp +601 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/builtin_components.h +13 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/command_device.h +137 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/d2d_link.h +187 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/dbt_rise_cpu.cpp +352 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/dbt_rise_cpu.h +117 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/dma_engine.h +40 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/far_end.h +28 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/flash_controller.h +42 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/gpio.cpp +184 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/gpio.h +63 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/hart_adapter.h +82 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/hart_registers.h +79 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/i2c_controller.h +47 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/ideal_nand.h +95 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/imsic.h +178 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/interrupt_lines.h +73 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/iommu.cpp +107 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/iommu.h +52 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/machine_timer.cpp +96 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/machine_timer.h +53 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/memory.h +67 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/msi_receiver.h +96 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/nand_link.h +180 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/ns16550.cpp +162 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/ns16550.h +66 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/nvme_frontend.h +159 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/pass_through_link.h +86 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/pcie_endpoint.h +227 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/pcie_link.h +127 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/pcie_root_complex.h +138 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/pciem_host.h +225 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/plic.cpp +97 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/plic.h +58 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/qbox_cpu.cpp +441 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/qbox_cpu.h +114 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/rom.h +85 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/rtc.h +78 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/scripted_bus_master.h +225 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/socket_memory.h +38 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/spi_controller.cpp +195 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/spi_controller.h +51 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/spi_flash.cpp +66 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/spi_flash.h +69 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/system_controller.h +118 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/tie_low.h +29 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/virtio_9p.h +28 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/virtio_blk.h +47 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/virtio_console.h +33 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/virtio_fs.h +28 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/virtio_mmio.h +55 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/virtio_net.h +39 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/virtio_rng.h +15 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/watchdog.cpp +63 -0
- socpuppet-0.0.1rc1/src/socpuppet/models/watchdog.h +55 -0
- socpuppet-0.0.1rc1/src/socpuppet/platform/errors.h +26 -0
- socpuppet-0.0.1rc1/src/socpuppet/platform/failure.h +58 -0
- socpuppet-0.0.1rc1/src/socpuppet/platform/logging.h +22 -0
- socpuppet-0.0.1rc1/src/socpuppet/platform/platform.cpp +379 -0
- socpuppet-0.0.1rc1/src/socpuppet/platform/platform.h +173 -0
- socpuppet-0.0.1rc1/src/socpuppet/platform/port.h +108 -0
- socpuppet-0.0.1rc1/src/socpuppet/platform/registry.h +158 -0
- socpuppet-0.0.1rc1/src/socpuppet/platform/sc_main_stub.cpp +16 -0
- socpuppet-0.0.1rc1/src/socpuppet/platform/slots.h +257 -0
- socpuppet-0.0.1rc1/src/socpuppet/platform/time_conversion.h +27 -0
- socpuppet-0.0.1rc1/src/socpuppet/platform/tracer.h +82 -0
- socpuppet-0.0.1rc1/src/socpuppet/platform/transport.h +100 -0
- socpuppet-0.0.1rc1/src/vpvper/.clang-format +101 -0
- socpuppet-0.0.1rc1/src/vpvper/.clang-tidy +8 -0
- socpuppet-0.0.1rc1/src/vpvper/CMakeLists.txt +20 -0
- socpuppet-0.0.1rc1/src/vpvper/CPPLINT.cfg +5 -0
- socpuppet-0.0.1rc1/src/vpvper/rvi/gen/iommu_regs.h +160 -0
- socpuppet-0.0.1rc1/src/vpvper/rvi/iommu.cpp +282 -0
- socpuppet-0.0.1rc1/src/vpvper/rvi/iommu.h +103 -0
- socpuppet-0.0.1rc1/src/vpvper/rvi/iommu.rdl +103 -0
- socpuppet-0.0.1rc1/src/vpvper/rvi/iommu_walker.h +224 -0
- socpuppet-0.0.1rc1/tests/cpp/CMakeLists.txt +122 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/aplic_contract.h +736 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/aplic_test.cpp +8 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/bus_master_contract.h +395 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/bus_master_test.cpp +186 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/gpio_contract.h +418 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/gpio_test.cpp +8 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/interrupt_controller_contract.h +426 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/interrupt_controller_test.cpp +7 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/iommu_contract.h +1041 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/iommu_test.cpp +8 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/link_contract.h +255 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/link_test.cpp +96 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/machine_timer_contract.h +307 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/machine_timer_test.cpp +8 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/memory_contract.h +143 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/memory_test.cpp +6 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/message_controller_contract.h +449 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/message_controller_test.cpp +7 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/nand_contract.h +315 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/nand_test.cpp +5 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/nvme_contract.h +1053 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/nvme_test.cpp +131 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/rom_contract.h +233 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/rom_test.cpp +6 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/spi_controller_contract.h +414 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/spi_controller_test.cpp +8 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/uart_contract.h +525 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/uart_test.cpp +7 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/virtio_device_contract.h +274 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/virtio_device_test.cpp +43 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/watchdog_contract.h +616 -0
- socpuppet-0.0.1rc1/tests/cpp/contracts/watchdog_test.cpp +8 -0
- socpuppet-0.0.1rc1/tests/cpp/kernel_test_main.cpp +39 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/aplic_test.cpp +123 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/composition_test.cpp +463 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/cpu_test.cpp +2947 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/d2d_link_test.cpp +331 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/dma_engine_test.cpp +248 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/flash_controller_test.cpp +281 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/i2c_controller_test.cpp +157 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/msi_receiver_test.cpp +166 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/ns16550_test.cpp +29 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/nvme_frontend_test.cpp +400 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/pcie_test.cpp +811 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/pciem_host_test.cpp +380 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/qbox_cpu_test.cpp +47 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/router_test.cpp +134 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/rtc_test.cpp +89 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/scripted_master_test.cpp +432 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/spi_flash_test.cpp +239 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/system_controller_test.cpp +353 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/tracer_test.cpp +128 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/transport_test.cpp +25 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/virtio_console_test.cpp +70 -0
- socpuppet-0.0.1rc1/tests/cpp/platform/virtio_net_test.cpp +72 -0
- socpuppet-0.0.1rc1/tests/cpp/support/bus_driver.h +194 -0
- socpuppet-0.0.1rc1/tests/cpp/support/counting_probe.h +58 -0
- socpuppet-0.0.1rc1/tests/cpp/support/elf_file.h +68 -0
- socpuppet-0.0.1rc1/tests/cpp/support/fake_pciem_device.h +85 -0
- socpuppet-0.0.1rc1/tests/cpp/support/interrupt_source.h +64 -0
- socpuppet-0.0.1rc1/tests/cpp/support/line_driver.h +31 -0
- socpuppet-0.0.1rc1/tests/cpp/support/line_watcher.h +57 -0
- socpuppet-0.0.1rc1/tests/cpp/support/memory_at.h +33 -0
- socpuppet-0.0.1rc1/tests/cpp/support/nvme_host.h +735 -0
- socpuppet-0.0.1rc1/tests/cpp/support/pcie_host.h +247 -0
- socpuppet-0.0.1rc1/tests/cpp/support/qbox_fates.h +209 -0
- socpuppet-0.0.1rc1/tests/cpp/support/recording_target.h +68 -0
- socpuppet-0.0.1rc1/tests/cpp/support/riscv_program.h +1956 -0
- socpuppet-0.0.1rc1/tests/cpp/support/sideband_pump.h +108 -0
- socpuppet-0.0.1rc1/tests/cpp/support/sifive_spi_driver.h +139 -0
- socpuppet-0.0.1rc1/tests/cpp/support/ssd_firmware.h +627 -0
- socpuppet-0.0.1rc1/tests/cpp/support/test_components.h +119 -0
- socpuppet-0.0.1rc1/tests/cpp/support/the_cpu.h +30 -0
- socpuppet-0.0.1rc1/tests/cpp/support/ucie_link_driving.h +100 -0
- socpuppet-0.0.1rc1/tests/cpp/support/virtio_9p_rig.h +36 -0
- socpuppet-0.0.1rc1/tests/cpp/support/virtio_blk_rig.h +34 -0
- socpuppet-0.0.1rc1/tests/cpp/support/virtio_console_rig.h +29 -0
- socpuppet-0.0.1rc1/tests/cpp/support/virtio_fs_rig.h +36 -0
- socpuppet-0.0.1rc1/tests/cpp/support/virtio_net_rig.h +34 -0
- socpuppet-0.0.1rc1/tests/cpp/support/virtqueue_driver.h +125 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/block_store_test.cpp +92 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/command_status_test.cpp +125 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/d2d_link_logic_test.cpp +163 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/dma_engine_logic_test.cpp +340 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/elf_image_test.cpp +156 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/flash_controller_logic_test.cpp +528 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/i2c_controller_logic_test.cpp +319 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/interrupt_file_test.cpp +265 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/iommu_walker_test.cpp +636 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/link_channel_test.cpp +54 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/little_endian_test.cpp +54 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/memory_store_test.cpp +62 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/nand_array_test.cpp +224 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/nvme_controller_test.cpp +180 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/nvme_frontend_logic_test.cpp +1202 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/nvme_host_registers_test.cpp +27 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/pcie_endpoint_registers_test.cpp +144 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/pciem_host_logic_test.cpp +30 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/pciem_ring_test.cpp +77 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/prp_test.cpp +92 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/qbox_fates_test.cpp +41 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/rtc_logic_test.cpp +203 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/script_test.cpp +81 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/spi_nor_chip_test.cpp +284 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/system_controller_logic_test.cpp +267 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/ucie_link_registers_test.cpp +227 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/ucie_link_state_test.cpp +197 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/ucie_sideband_test.cpp +127 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/virtio_9p_logic_test.cpp +120 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/virtio_blk_logic_test.cpp +260 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/virtio_console_logic_test.cpp +147 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/virtio_fs_logic_test.cpp +147 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/virtio_mmio_logic_test.cpp +448 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/virtio_net_logic_test.cpp +239 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/virtio_rng_logic_test.cpp +80 -0
- socpuppet-0.0.1rc1/tests/cpp/unit/virtqueue_test.cpp +173 -0
- socpuppet-0.0.1rc1/tests/python/CMakeLists.txt +134 -0
- socpuppet-0.0.1rc1/tests/python/cable_area.py +36 -0
- socpuppet-0.0.1rc1/tests/python/cast.py +162 -0
- socpuppet-0.0.1rc1/tests/python/conftest.py +150 -0
- socpuppet-0.0.1rc1/tests/python/console.py +17 -0
- socpuppet-0.0.1rc1/tests/python/devicetree_compiler.py +24 -0
- socpuppet-0.0.1rc1/tests/python/disk_access.py +65 -0
- socpuppet-0.0.1rc1/tests/python/elf_files.py +76 -0
- socpuppet-0.0.1rc1/tests/python/ethernet.py +292 -0
- socpuppet-0.0.1rc1/tests/python/ext4_image.py +22 -0
- socpuppet-0.0.1rc1/tests/python/fat_image.py +77 -0
- socpuppet-0.0.1rc1/tests/python/gdb_client.py +201 -0
- socpuppet-0.0.1rc1/tests/python/link_trace.py +45 -0
- socpuppet-0.0.1rc1/tests/python/linux_shell.py +292 -0
- socpuppet-0.0.1rc1/tests/python/manager_firmware.py +29 -0
- socpuppet-0.0.1rc1/tests/python/mt19937_64.py +52 -0
- socpuppet-0.0.1rc1/tests/python/opensbi_boots.py +91 -0
- socpuppet-0.0.1rc1/tests/python/pciem_area.py +58 -0
- socpuppet-0.0.1rc1/tests/python/processes.py +122 -0
- socpuppet-0.0.1rc1/tests/python/pseudo_terminal.py +129 -0
- socpuppet-0.0.1rc1/tests/python/raw_nvme.py +183 -0
- socpuppet-0.0.1rc1/tests/python/riscv_program.py +120 -0
- socpuppet-0.0.1rc1/tests/python/saved_tables.py +37 -0
- socpuppet-0.0.1rc1/tests/python/scripts.py +27 -0
- socpuppet-0.0.1rc1/tests/python/sockets.py +49 -0
- socpuppet-0.0.1rc1/tests/python/ssd_on_a_bus.py +46 -0
- socpuppet-0.0.1rc1/tests/python/ssd_zephyr_firmware.py +11 -0
- socpuppet-0.0.1rc1/tests/python/ssh_to_linux.py +29 -0
- socpuppet-0.0.1rc1/tests/python/test_address_map.py +366 -0
- socpuppet-0.0.1rc1/tests/python/test_address_map_command.py +199 -0
- socpuppet-0.0.1rc1/tests/python/test_aplic.py +104 -0
- socpuppet-0.0.1rc1/tests/python/test_boot_image.py +227 -0
- socpuppet-0.0.1rc1/tests/python/test_boot_image_command.py +114 -0
- socpuppet-0.0.1rc1/tests/python/test_cable_area.py +42 -0
- socpuppet-0.0.1rc1/tests/python/test_catalogue.py +262 -0
- socpuppet-0.0.1rc1/tests/python/test_conftest.py +114 -0
- socpuppet-0.0.1rc1/tests/python/test_cpu.py +226 -0
- socpuppet-0.0.1rc1/tests/python/test_description.py +289 -0
- socpuppet-0.0.1rc1/tests/python/test_devicetree.py +1434 -0
- socpuppet-0.0.1rc1/tests/python/test_drive_command.py +199 -0
- socpuppet-0.0.1rc1/tests/python/test_elf.py +147 -0
- socpuppet-0.0.1rc1/tests/python/test_ethernet.py +182 -0
- socpuppet-0.0.1rc1/tests/python/test_ethernet_cable.py +190 -0
- socpuppet-0.0.1rc1/tests/python/test_examples.py +72 -0
- socpuppet-0.0.1rc1/tests/python/test_ext4_image.py +36 -0
- socpuppet-0.0.1rc1/tests/python/test_fat_image.py +63 -0
- socpuppet-0.0.1rc1/tests/python/test_fetched_images.py +88 -0
- socpuppet-0.0.1rc1/tests/python/test_front_door.py +100 -0
- socpuppet-0.0.1rc1/tests/python/test_ftl.py +187 -0
- socpuppet-0.0.1rc1/tests/python/test_full_bootchain.py +212 -0
- socpuppet-0.0.1rc1/tests/python/test_fuse.py +665 -0
- socpuppet-0.0.1rc1/tests/python/test_gdb.py +1027 -0
- socpuppet-0.0.1rc1/tests/python/test_gpio.py +143 -0
- socpuppet-0.0.1rc1/tests/python/test_gpt.py +215 -0
- socpuppet-0.0.1rc1/tests/python/test_host_across_the_real_link.py +314 -0
- socpuppet-0.0.1rc1/tests/python/test_host_and_ssd_firmware_together.py +154 -0
- socpuppet-0.0.1rc1/tests/python/test_host_board.py +1238 -0
- socpuppet-0.0.1rc1/tests/python/test_i2c.py +49 -0
- socpuppet-0.0.1rc1/tests/python/test_i2c_controller.py +101 -0
- socpuppet-0.0.1rc1/tests/python/test_images.py +681 -0
- socpuppet-0.0.1rc1/tests/python/test_interactive.py +278 -0
- socpuppet-0.0.1rc1/tests/python/test_interrupt_map.py +112 -0
- socpuppet-0.0.1rc1/tests/python/test_io_manager.py +168 -0
- socpuppet-0.0.1rc1/tests/python/test_io_manager_board.py +195 -0
- socpuppet-0.0.1rc1/tests/python/test_io_manager_lets_the_compute_die_go.py +84 -0
- socpuppet-0.0.1rc1/tests/python/test_iommu.py +309 -0
- socpuppet-0.0.1rc1/tests/python/test_link_training.py +184 -0
- socpuppet-0.0.1rc1/tests/python/test_linux.py +264 -0
- socpuppet-0.0.1rc1/tests/python/test_linux_boot_flash.py +94 -0
- socpuppet-0.0.1rc1/tests/python/test_linux_boots.py +293 -0
- socpuppet-0.0.1rc1/tests/python/test_linux_command.py +268 -0
- socpuppet-0.0.1rc1/tests/python/test_linux_command_boots.py +193 -0
- socpuppet-0.0.1rc1/tests/python/test_linux_devicetree.py +305 -0
- socpuppet-0.0.1rc1/tests/python/test_linux_gpio.py +56 -0
- socpuppet-0.0.1rc1/tests/python/test_linux_images.py +83 -0
- socpuppet-0.0.1rc1/tests/python/test_linux_nvme.py +93 -0
- socpuppet-0.0.1rc1/tests/python/test_linux_root_on_the_drive.py +151 -0
- socpuppet-0.0.1rc1/tests/python/test_linux_rtc.py +69 -0
- socpuppet-0.0.1rc1/tests/python/test_load_binary.py +112 -0
- socpuppet-0.0.1rc1/tests/python/test_mt19937_64.py +17 -0
- socpuppet-0.0.1rc1/tests/python/test_ninep.py +930 -0
- socpuppet-0.0.1rc1/tests/python/test_nvme_host.py +461 -0
- socpuppet-0.0.1rc1/tests/python/test_nvme_over_pcie.py +138 -0
- socpuppet-0.0.1rc1/tests/python/test_opensbi.py +84 -0
- socpuppet-0.0.1rc1/tests/python/test_opensbi_boots.py +270 -0
- socpuppet-0.0.1rc1/tests/python/test_opensbi_images.py +31 -0
- socpuppet-0.0.1rc1/tests/python/test_pcie.py +413 -0
- socpuppet-0.0.1rc1/tests/python/test_pciem_area.py +39 -0
- socpuppet-0.0.1rc1/tests/python/test_pciem_contract.py +199 -0
- socpuppet-0.0.1rc1/tests/python/test_platform.py +374 -0
- socpuppet-0.0.1rc1/tests/python/test_pump.py +297 -0
- socpuppet-0.0.1rc1/tests/python/test_pytest_plugin.py +645 -0
- socpuppet-0.0.1rc1/tests/python/test_qbox_cpu.py +99 -0
- socpuppet-0.0.1rc1/tests/python/test_qemu_trace.py +31 -0
- socpuppet-0.0.1rc1/tests/python/test_real_host_board.py +103 -0
- socpuppet-0.0.1rc1/tests/python/test_rom.py +86 -0
- socpuppet-0.0.1rc1/tests/python/test_rom_boot.py +585 -0
- socpuppet-0.0.1rc1/tests/python/test_rom_firmware.py +85 -0
- socpuppet-0.0.1rc1/tests/python/test_rom_handover.py +157 -0
- socpuppet-0.0.1rc1/tests/python/test_router.py +204 -0
- socpuppet-0.0.1rc1/tests/python/test_run_command.py +545 -0
- socpuppet-0.0.1rc1/tests/python/test_scripted_bus_master_across_the_dies.py +69 -0
- socpuppet-0.0.1rc1/tests/python/test_scripts.py +424 -0
- socpuppet-0.0.1rc1/tests/python/test_slirp_contract.py +262 -0
- socpuppet-0.0.1rc1/tests/python/test_sockets.py +61 -0
- socpuppet-0.0.1rc1/tests/python/test_spi.py +13 -0
- socpuppet-0.0.1rc1/tests/python/test_spi_flash.py +156 -0
- socpuppet-0.0.1rc1/tests/python/test_ssd_board.py +305 -0
- socpuppet-0.0.1rc1/tests/python/test_ssd_firmware.py +820 -0
- socpuppet-0.0.1rc1/tests/python/test_ssd_over_pcie.py +98 -0
- socpuppet-0.0.1rc1/tests/python/test_ssd_scripted_firmware.py +85 -0
- socpuppet-0.0.1rc1/tests/python/test_ssd_with_its_own_firmware.py +225 -0
- socpuppet-0.0.1rc1/tests/python/test_ssd_zephyr_firmware.py +257 -0
- socpuppet-0.0.1rc1/tests/python/test_ssh_over_the_cable.py +192 -0
- socpuppet-0.0.1rc1/tests/python/test_suite_order.py +58 -0
- socpuppet-0.0.1rc1/tests/python/test_this_machines_linux_mounts_the_ssd.py +112 -0
- socpuppet-0.0.1rc1/tests/python/test_trace.py +134 -0
- socpuppet-0.0.1rc1/tests/python/test_transcript.py +175 -0
- socpuppet-0.0.1rc1/tests/python/test_twister_boards.py +327 -0
- socpuppet-0.0.1rc1/tests/python/test_uart.py +171 -0
- socpuppet-0.0.1rc1/tests/python/test_ucie.py +196 -0
- socpuppet-0.0.1rc1/tests/python/test_uefi_boots.py +175 -0
- socpuppet-0.0.1rc1/tests/python/test_uefi_image.py +113 -0
- socpuppet-0.0.1rc1/tests/python/test_virtio_host.py +442 -0
- socpuppet-0.0.1rc1/tests/python/test_virtio_uefi.py +183 -0
- socpuppet-0.0.1rc1/tests/python/test_virtio_zephyr.py +179 -0
- socpuppet-0.0.1rc1/tests/python/test_zephyr_disk_on_the_host.py +58 -0
- socpuppet-0.0.1rc1/tests/python/test_zephyr_flash_driver.py +82 -0
- socpuppet-0.0.1rc1/tests/python/test_zephyr_module.py +298 -0
- socpuppet-0.0.1rc1/tests/python/test_zephyr_on_the_host_board.py +68 -0
- socpuppet-0.0.1rc1/tests/python/test_zephyr_on_the_io_manager.py +44 -0
- socpuppet-0.0.1rc1/tests/python/test_zephyr_on_the_ssd_controller.py +36 -0
- socpuppet-0.0.1rc1/tests/python/test_zephyr_peripheral_samples.py +254 -0
- socpuppet-0.0.1rc1/tests/python/test_zephyr_qemu_board.py +74 -0
- socpuppet-0.0.1rc1/tests/python/test_zephyr_shell.py +181 -0
- socpuppet-0.0.1rc1/tests/python/test_ztest.py +290 -0
- socpuppet-0.0.1rc1/tests/python/this_machine.py +176 -0
- socpuppet-0.0.1rc1/tests/python/uefi_shell.py +57 -0
- socpuppet-0.0.1rc1/tests/python/wiring.py +21 -0
- socpuppet-0.0.1rc1/tests/python/zephyr_module.py +81 -0
- socpuppet-0.0.1rc1/tests/tooling/CMakeLists.txt +19 -0
- socpuppet-0.0.1rc1/tests/tooling/conftest.py +317 -0
- socpuppet-0.0.1rc1/tests/tooling/qbox_stand_ins.py +118 -0
- socpuppet-0.0.1rc1/tests/tooling/test_address_map_docs.py +249 -0
- socpuppet-0.0.1rc1/tests/tooling/test_build_pciem.py +207 -0
- socpuppet-0.0.1rc1/tests/tooling/test_build_qbox.py +214 -0
- socpuppet-0.0.1rc1/tests/tooling/test_check_wheel.py +92 -0
- socpuppet-0.0.1rc1/tests/tooling/test_ci.py +1563 -0
- socpuppet-0.0.1rc1/tests/tooling/test_ci_workflow.py +1058 -0
- socpuppet-0.0.1rc1/tests/tooling/test_cpp_tests.py +43 -0
- socpuppet-0.0.1rc1/tests/tooling/test_dev_checks_copy_into.py +69 -0
- socpuppet-0.0.1rc1/tests/tooling/test_dev_checks_coverage.py +267 -0
- socpuppet-0.0.1rc1/tests/tooling/test_dev_checks_format.py +46 -0
- socpuppet-0.0.1rc1/tests/tooling/test_dev_checks_headers.py +32 -0
- socpuppet-0.0.1rc1/tests/tooling/test_dev_checks_sanitize.py +163 -0
- socpuppet-0.0.1rc1/tests/tooling/test_dev_checks_tidy.py +154 -0
- socpuppet-0.0.1rc1/tests/tooling/test_dev_checks_warnings.py +121 -0
- socpuppet-0.0.1rc1/tests/tooling/test_devcontainer.py +632 -0
- socpuppet-0.0.1rc1/tests/tooling/test_doctor.py +792 -0
- socpuppet-0.0.1rc1/tests/tooling/test_firmware_build.py +1487 -0
- socpuppet-0.0.1rc1/tests/tooling/test_lint_address_map.py +32 -0
- socpuppet-0.0.1rc1/tests/tooling/test_lint_ci.py +61 -0
- socpuppet-0.0.1rc1/tests/tooling/test_lint_cpp.py +162 -0
- socpuppet-0.0.1rc1/tests/tooling/test_lint_files.py +56 -0
- socpuppet-0.0.1rc1/tests/tooling/test_lint_markdown.py +65 -0
- socpuppet-0.0.1rc1/tests/tooling/test_lint_python.py +101 -0
- socpuppet-0.0.1rc1/tests/tooling/test_lint_rdl.py +56 -0
- socpuppet-0.0.1rc1/tests/tooling/test_lint_report.py +67 -0
- socpuppet-0.0.1rc1/tests/tooling/test_lint_setup.py +23 -0
- socpuppet-0.0.1rc1/tests/tooling/test_lint_shield_overlays.py +27 -0
- socpuppet-0.0.1rc1/tests/tooling/test_lint_stranger.py +127 -0
- socpuppet-0.0.1rc1/tests/tooling/test_lint_zephyr_c.py +70 -0
- socpuppet-0.0.1rc1/tests/tooling/test_mac_sdk.py +63 -0
- socpuppet-0.0.1rc1/tests/tooling/test_needs.py +86 -0
- socpuppet-0.0.1rc1/tests/tooling/test_package_imports.py +27 -0
- socpuppet-0.0.1rc1/tests/tooling/test_pciem_guest.py +246 -0
- socpuppet-0.0.1rc1/tests/tooling/test_pyproject.py +39 -0
- socpuppet-0.0.1rc1/tests/tooling/test_python_tests_from_a_copy.py +167 -0
- socpuppet-0.0.1rc1/tests/tooling/test_qbox.py +183 -0
- socpuppet-0.0.1rc1/tests/tooling/test_regs.py +594 -0
- socpuppet-0.0.1rc1/tests/tooling/test_release.py +531 -0
- socpuppet-0.0.1rc1/tests/tooling/test_released_images.py +541 -0
- socpuppet-0.0.1rc1/tests/tooling/test_tap.py +518 -0
- socpuppet-0.0.1rc1/tests/tooling/test_test_wheel.py +330 -0
- socpuppet-0.0.1rc1/tests/tooling/test_tiers.py +145 -0
- socpuppet-0.0.1rc1/tests/tooling/test_twister_lists.py +94 -0
- socpuppet-0.0.1rc1/tests/tooling/test_twister_our_suites.py +140 -0
- socpuppet-0.0.1rc1/tests/tooling/test_twister_runner.py +312 -0
- socpuppet-0.0.1rc1/tests/tooling/test_vpvper_registers.py +120 -0
- socpuppet-0.0.1rc1/tests/tooling/twister_files.py +24 -0
- socpuppet-0.0.1rc1/tools/address_map_docs.py +186 -0
- socpuppet-0.0.1rc1/tools/build_pciem.py +159 -0
- socpuppet-0.0.1rc1/tools/build_qbox.py +269 -0
- socpuppet-0.0.1rc1/tools/check_wheel.py +90 -0
- socpuppet-0.0.1rc1/tools/ci.py +1550 -0
- socpuppet-0.0.1rc1/tools/devcontainer.py +278 -0
- socpuppet-0.0.1rc1/tools/doctor.py +717 -0
- socpuppet-0.0.1rc1/tools/generated.py +111 -0
- socpuppet-0.0.1rc1/tools/github_releases.py +60 -0
- socpuppet-0.0.1rc1/tools/lint.py +262 -0
- socpuppet-0.0.1rc1/tools/needs.py +48 -0
- socpuppet-0.0.1rc1/tools/pciem_guest.py +315 -0
- socpuppet-0.0.1rc1/tools/qbox.py +119 -0
- socpuppet-0.0.1rc1/tools/regs.py +596 -0
- socpuppet-0.0.1rc1/tools/release.py +331 -0
- socpuppet-0.0.1rc1/tools/released_images.py +270 -0
- socpuppet-0.0.1rc1/tools/shield_overlays.py +59 -0
- socpuppet-0.0.1rc1/tools/socpuppet.rb.in +60 -0
- socpuppet-0.0.1rc1/tools/stranger.py +85 -0
- socpuppet-0.0.1rc1/tools/tap.py +347 -0
- socpuppet-0.0.1rc1/tools/test_wheel.py +134 -0
- 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
|