compiler/
kernel/
lib/
scripts/
seed/
sublime/
test/
acceptance/
boot/
bootstrap/
cycles/
dispatch/
loader/
mmio/
modules/
native/
packages/
pages/
runtime/
scheduling/
shared/
slots/
smp/
sync/
build.rad
2.0 KiB
machine.ras
3.1 KiB
run
589 B
termination/
tests/
trap/
run
2.7 KiB
runner.rad
10.3 KiB
vim/
.gitignore
336 B
.gitsigners
112 B
CONTRIBUTING
2.1 KiB
LICENSE
1.1 KiB
Makefile
10.2 KiB
README
2.5 KiB
STYLE
2.5 KiB
std.lib
1.5 KiB
std.lib.test
551 B
test/sync/run
raw
| 1 | #!/bin/sh |
| 2 | # Execute the synchronization boundary under deterministic hart interleaving. |
| 3 | set -eu |
| 4 | emulator=${RAD_EMULATOR:-emulator} |
| 5 | work=$(mktemp -d) |
| 6 | trap 'rm -rf "$work"' EXIT HUP INT TERM |
| 7 | for harts in 1 2 8; do |
| 8 | printf '.constant HARTS %s;\n' "$harts" > "$work/sync.ras" |
| 9 | cat test/sync/machine.ras kernel/kernel/sync.ras >> "$work/sync.ras" |
| 10 | "$emulator" -run bin/sync.build.rv64 -- "$work/sync.ras" "$work/sync.rv64" |
| 11 | "$emulator" -machine -harts="$harts" -run "$work/sync.rv64" |
| 12 | done |
| 13 | printf 'synchronization: code publication, locks, atomics, and MMIO passed on 1/2/8 harts\n' |