-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathinstance_meta_loader_demo.cpp
More file actions
44 lines (39 loc) · 1.5 KB
/
Copy pathinstance_meta_loader_demo.cpp
File metadata and controls
44 lines (39 loc) · 1.5 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
// Tiny demo of instance_meta_loader.hpp.
//
// Build: g++ -std=c++17 -O2 instance_meta_loader_demo.cpp -o load_test
// Run: ./load_test /path/to/metas.bin
#include "instance_meta_loader.hpp"
#include <iostream>
int main(int argc, char** argv) {
if (argc != 2) {
std::cerr << "Usage: " << argv[0] << " <metas.bin>\n";
return 1;
}
std::vector<InstanceMeta> metas;
try {
metas = load_instance_metas(argv[1]);
} catch (const std::exception& e) {
std::cerr << "ERROR: " << e.what() << "\n";
return 1;
}
static const char* type_name[] = {"ROM", "INPUT", "RAM"};
std::cout << "Loaded " << metas.size() << " InstanceMetas\n";
for (std::size_t i = 0; i < metas.size(); i++) {
const InstanceMeta& m = metas[i];
std::cout << " [" << i << "] type="
<< (m.type < 3 ? type_name[m.type] : "?")
<< " inst_id=" << m.inst_id
<< std::hex
<< " first_addr=0x" << m.first_addr
<< " last_addr=0x" << m.last_addr
<< std::dec
<< " count_per_chunk=" << m.count_per_chunk.size()
<< " addr_offsets=" << m.addr_offsets.size()
<< " fa_chunk=" << m.first_addr_chunk
<< " fa_skip=" << m.first_addr_skip
<< " la_chunk=" << m.last_addr_chunk
<< " la_include=" << m.last_addr_include
<< "\n";
}
return 0;
}