diff options
| author | Kimplul <kimi.h.kuparinen@gmail.com> | 2025-03-02 21:45:51 +0200 |
|---|---|---|
| committer | Kimplul <kimi.h.kuparinen@gmail.com> | 2025-03-02 21:45:51 +0200 |
| commit | 0464b7765aa4d1fc2178e443a3b37d19cfe541a0 (patch) | |
| tree | 7df54d44f11bcba1c9271148f085501bc2a02d2e /tests/simple_ideal_alloc/sim.c | |
| parent | ad6107d33a8a222d9062aae45d0e8d8483939d5d (diff) | |
| download | gran-0464b7765aa4d1fc2178e443a3b37d19cfe541a0.tar.gz gran-0464b7765aa4d1fc2178e443a3b37d19cfe541a0.zip | |
add ideal allocation tracker
+ Kind of like CHERI, but uses out-of-line pointer information.
The idea is that a core that is compatible with ALLOC_IF queries
the allocation tracker if an address is legal and gets a response.
This ideal tracker effectively has infinite memory and doesn't talk to
any other components, but a real implementation might want to limit
the allocations per process or chat with some reserved memory region
somewhere else in the system to maintain a binary tree or something.
Diffstat (limited to 'tests/simple_ideal_alloc/sim.c')
| -rw-r--r-- | tests/simple_ideal_alloc/sim.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/tests/simple_ideal_alloc/sim.c b/tests/simple_ideal_alloc/sim.c new file mode 100644 index 0000000..6aeb5b6 --- /dev/null +++ b/tests/simple_ideal_alloc/sim.c @@ -0,0 +1,26 @@ +#include <assert.h> + +#include <gran/root.h> +#include <gran/mem/ideal_alloc.h> + +#include "testbench.h" + +int main() +{ + struct component *traffic_gen = create_testbench(); + struct component *ideal_alloc = create_ideal_alloc(1); + + ideal_alloc_connect(ideal_alloc, traffic_gen); + testbench_connect(traffic_gen, ideal_alloc); + + struct clock_domain *clk = create_clock_domain(NS(1)); + clock_domain_add(clk, traffic_gen); + clock_domain_add(clk, ideal_alloc); + + struct gran_root *root = create_root(); + root_add_clock(root, clk); + + assert(root_run(root) == OK); + + destroy_root(root); +} |
