a few compile fixes
This commit is contained in:
parent
ccf4b6268f
commit
0f4d574c4f
22 changed files with 43 additions and 41 deletions
14
bus.cpp
14
bus.cpp
|
@ -81,27 +81,27 @@ bus *bus::deserialize(const JsonDocument j, console *const cnsl, std::atomic_uin
|
|||
|
||||
memory *m = nullptr;
|
||||
if (j.containsKey("memory")) {
|
||||
m = memory::deserialize(j["memory"].as<JsonVariant>());
|
||||
m = memory::deserialize(j["memory"]);
|
||||
b->add_ram(m);
|
||||
}
|
||||
|
||||
if (j.containsKey("kw11-l"))
|
||||
b->add_KW11_L(kw11_l::deserialize(j["kw11-l"].as<JsonVariant>(), b, cnsl));
|
||||
b->add_KW11_L(kw11_l::deserialize(j["kw11-l"], b, cnsl));
|
||||
|
||||
if (j.containsKey("tty"))
|
||||
b->add_tty(tty::deserialize(j["tty"].as<JsonVariant>(), b, cnsl));
|
||||
b->add_tty(tty::deserialize(j["tty"], b, cnsl));
|
||||
|
||||
if (j.containsKey("mmu"))
|
||||
b->add_mmu(mmu::deserialize(j["mmu"].as<JsonVariant>(), m));
|
||||
b->add_mmu(mmu::deserialize(j["mmu"], m));
|
||||
|
||||
if (j.containsKey("cpu"))
|
||||
b->add_cpu(cpu::deserialize(j["cpu"].as<JsonVariant>(), b, event));
|
||||
b->add_cpu(cpu::deserialize(j["cpu"], b, event));
|
||||
|
||||
if (j.containsKey("rl02"))
|
||||
b->add_rl02(rl02::deserialize(j["rl02"].as<JsonVariant>(), b));
|
||||
b->add_rl02(rl02::deserialize(j["rl02"], b));
|
||||
|
||||
if (j.containsKey("rk05"))
|
||||
b->add_rk05(rk05::deserialize(j["rk05"].as<JsonVariant>(), b));
|
||||
b->add_rk05(rk05::deserialize(j["rk05"], b));
|
||||
|
||||
// TODO: tm11, dc11
|
||||
|
||||
|
|
2
cpu.cpp
2
cpu.cpp
|
@ -2477,7 +2477,7 @@ JsonVariant cpu::serialize()
|
|||
return j;
|
||||
}
|
||||
|
||||
cpu *cpu::deserialize(const JsonVariant j, bus *const b, std::atomic_uint32_t *const event)
|
||||
cpu *cpu::deserialize(const JsonVariantConst j, bus *const b, std::atomic_uint32_t *const event)
|
||||
{
|
||||
cpu *c = new cpu(b, event);
|
||||
|
||||
|
|
2
cpu.h
2
cpu.h
|
@ -116,7 +116,7 @@ public:
|
|||
~cpu();
|
||||
|
||||
JsonVariant serialize();
|
||||
static cpu *deserialize(const JsonVariant j, bus *const b, std::atomic_uint32_t *const event);
|
||||
static cpu *deserialize(const JsonVariantConst j, bus *const b, std::atomic_uint32_t *const event);
|
||||
|
||||
std::optional<std::string> check_breakpoint();
|
||||
int set_breakpoint(breakpoint *const bp);
|
||||
|
|
|
@ -74,23 +74,23 @@ JsonVariant disk_backend::serialize_overlay() const
|
|||
return out;
|
||||
}
|
||||
|
||||
void disk_backend::deserialize_overlay(const JsonVariant j)
|
||||
void disk_backend::deserialize_overlay(const JsonVariantConst j)
|
||||
{
|
||||
if (j.containsKey("overlay") == false)
|
||||
return; // we can have state-dumps without overlay
|
||||
|
||||
for(auto kv : j.as<JsonObject>()) {
|
||||
for(auto kv : j.as<JsonObjectConst>()) {
|
||||
uint32_t id = std::atoi(kv.key().c_str());
|
||||
|
||||
std::vector<uint8_t> data;
|
||||
for(auto v: kv.value().as<JsonArray>())
|
||||
for(auto v: kv.value().as<JsonArrayConst>())
|
||||
data.push_back(v);
|
||||
|
||||
store_object_in_overlay(id, data);
|
||||
}
|
||||
}
|
||||
|
||||
disk_backend *disk_backend::deserialize(const JsonVariant j)
|
||||
disk_backend *disk_backend::deserialize(const JsonVariantConst j)
|
||||
{
|
||||
std::string type = j["disk-backend-type"];
|
||||
|
||||
|
|
|
@ -26,14 +26,14 @@ protected:
|
|||
std::optional<std::vector<uint8_t> > get_from_overlay(const off_t offset, const size_t sector_size);
|
||||
|
||||
JsonVariant serialize_overlay() const;
|
||||
void deserialize_overlay(const JsonVariant j);
|
||||
void deserialize_overlay(const JsonVariantConst j);
|
||||
|
||||
public:
|
||||
disk_backend();
|
||||
virtual ~disk_backend();
|
||||
|
||||
virtual JsonVariant serialize() const = 0;
|
||||
static disk_backend *deserialize(const JsonVariant j);
|
||||
static disk_backend *deserialize(const JsonVariantConst j);
|
||||
|
||||
virtual std::string get_identifier() const = 0;
|
||||
|
||||
|
|
|
@ -36,7 +36,7 @@ JsonVariant disk_backend_file::serialize() const
|
|||
return j;
|
||||
}
|
||||
|
||||
disk_backend_file *disk_backend_file::deserialize(const JsonVariant j)
|
||||
disk_backend_file *disk_backend_file::deserialize(const JsonVariantConst j)
|
||||
{
|
||||
// TODO verify checksum of backend
|
||||
// TODO overlay
|
||||
|
|
|
@ -19,7 +19,7 @@ public:
|
|||
virtual ~disk_backend_file();
|
||||
|
||||
JsonVariant serialize() const override;
|
||||
static disk_backend_file *deserialize(const JsonVariant j);
|
||||
static disk_backend_file *deserialize(const JsonVariantConst j);
|
||||
|
||||
std::string get_identifier() const override { return filename; }
|
||||
|
||||
|
|
|
@ -63,7 +63,7 @@ JsonVariant disk_backend_nbd::serialize() const
|
|||
return j;
|
||||
}
|
||||
|
||||
disk_backend_nbd *disk_backend_nbd::deserialize(const JsonVariant j)
|
||||
disk_backend_nbd *disk_backend_nbd::deserialize(const JsonVariantConst j)
|
||||
{
|
||||
// TODO verify checksum of backend
|
||||
return new disk_backend_nbd(j["host"], j["port"]);
|
||||
|
|
|
@ -23,7 +23,7 @@ public:
|
|||
virtual ~disk_backend_nbd();
|
||||
|
||||
JsonVariant serialize() const override;
|
||||
static disk_backend_nbd *deserialize(const JsonVariant j);
|
||||
static disk_backend_nbd *deserialize(const JsonVariantConst j);
|
||||
|
||||
std::string get_identifier() const override { return format("%s:%d", host.c_str(), port); }
|
||||
|
||||
|
|
|
@ -225,7 +225,7 @@ JsonVariant kw11_l::serialize()
|
|||
return j;
|
||||
}
|
||||
|
||||
kw11_l *kw11_l::deserialize(const JsonVariant j, bus *const b, console *const cnsl)
|
||||
kw11_l *kw11_l::deserialize(const JsonVariantConst j, bus *const b, console *const cnsl)
|
||||
{
|
||||
uint16_t CSR = j["CSR"];
|
||||
|
||||
|
|
2
kw11-l.h
2
kw11-l.h
|
@ -44,7 +44,7 @@ public:
|
|||
void show_state(console *const cnsl) const override;
|
||||
|
||||
JsonVariant serialize();
|
||||
static kw11_l *deserialize(const JsonVariant j, bus *const b, console *const cnsl);
|
||||
static kw11_l *deserialize(const JsonVariantConst j, bus *const b, console *const cnsl);
|
||||
|
||||
void begin(console *const cnsl);
|
||||
void operator()();
|
||||
|
|
2
main.cpp
2
main.cpp
|
@ -58,6 +58,7 @@ void sw_handler(int s)
|
|||
|
||||
int run_cpu_validation(const std::string & filename)
|
||||
{
|
||||
#if 0
|
||||
json_error_t error;
|
||||
json_t *json = json_load_file(filename.c_str(), JSON_REJECT_DUPLICATES, &error);
|
||||
if (!json)
|
||||
|
@ -260,6 +261,7 @@ int run_cpu_validation(const std::string & filename)
|
|||
json_decref(json);
|
||||
|
||||
printf("# ok: %zu out of %zu\n", n_ok, array_size);
|
||||
#endif
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
|
|
@ -54,12 +54,12 @@ JsonVariant memory::serialize() const
|
|||
return j;
|
||||
}
|
||||
|
||||
memory *memory::deserialize(const JsonVariant j)
|
||||
memory *memory::deserialize(const JsonVariantConst j)
|
||||
{
|
||||
size_t size = j["size"];
|
||||
memory *m = new memory(size);
|
||||
|
||||
JsonArray ja = j["contents"].as<JsonArray>();
|
||||
JsonArrayConst ja = j["contents"].as<JsonArrayConst>();
|
||||
uint32_t i = 0;
|
||||
for(auto v: ja)
|
||||
m->m[i++] = v;
|
||||
|
|
2
memory.h
2
memory.h
|
@ -23,7 +23,7 @@ public:
|
|||
void reset();
|
||||
|
||||
JsonVariant serialize() const;
|
||||
static memory *deserialize(const JsonVariant j);
|
||||
static memory *deserialize(const JsonVariantConst j);
|
||||
|
||||
uint16_t read_byte(const uint32_t a) const { return m[a]; }
|
||||
void write_byte(const uint32_t a, const uint16_t v) { if (a < size) m[a] = v; }
|
||||
|
|
10
mmu.cpp
10
mmu.cpp
|
@ -544,20 +544,20 @@ JsonVariant mmu::serialize() const
|
|||
return j;
|
||||
}
|
||||
|
||||
void mmu::set_par_pdr(const JsonVariant j_in, const int run_mode, const bool is_d)
|
||||
void mmu::set_par_pdr(const JsonVariantConst j_in, const int run_mode, const bool is_d)
|
||||
{
|
||||
JsonArray j_par = j_in["par"];
|
||||
JsonArrayConst j_par = j_in["par"];
|
||||
int i_par = 0;
|
||||
for(auto v: j_par)
|
||||
pages[run_mode][is_d][i_par++].par = v;
|
||||
|
||||
JsonArray j_pdr = j_in["pdr"];
|
||||
JsonArrayConst j_pdr = j_in["pdr"];
|
||||
int i_pdr = 0;
|
||||
for(auto v: j_pdr)
|
||||
pages[run_mode][is_d][i_pdr++].pdr = v;
|
||||
}
|
||||
|
||||
mmu *mmu::deserialize(const JsonVariant j, memory *const mem)
|
||||
mmu *mmu::deserialize(const JsonVariantConst j, memory *const mem)
|
||||
{
|
||||
mmu *m = new mmu();
|
||||
m->begin(mem);
|
||||
|
@ -567,7 +567,7 @@ mmu *mmu::deserialize(const JsonVariant j, memory *const mem)
|
|||
continue;
|
||||
|
||||
for(int is_d=0; is_d<2; is_d++)
|
||||
m->set_par_pdr(j[format("runmode_%d_d_%d", run_mode, is_d)].as<JsonVariant>(), run_mode, is_d);
|
||||
m->set_par_pdr(j[format("runmode_%d_d_%d", run_mode, is_d)].as<JsonVariantConst>(), run_mode, is_d);
|
||||
}
|
||||
|
||||
m->MMR0 = j["MMR0"];
|
||||
|
|
4
mmu.h
4
mmu.h
|
@ -59,7 +59,7 @@ private:
|
|||
memory *m { nullptr };
|
||||
|
||||
JsonVariant add_par_pdr(const int run_mode, const bool is_d) const;
|
||||
void set_par_pdr(const JsonVariant j_in, const int run_mode, const bool is_d);
|
||||
void set_par_pdr(const JsonVariantConst j_in, const int run_mode, const bool is_d);
|
||||
|
||||
void verify_page_access (cpu *const c, const uint16_t virt_addr, const int run_mode, const bool d, const int apf, const bool is_write);
|
||||
void verify_access_valid(cpu *const c, const uint32_t m_offset, const int run_mode, const bool d, const int apf, const bool is_io, const bool is_write);
|
||||
|
@ -72,7 +72,7 @@ public:
|
|||
void begin(memory *const m);
|
||||
|
||||
JsonVariant serialize() const;
|
||||
static mmu *deserialize(const JsonVariant j, memory *const m);
|
||||
static mmu *deserialize(const JsonVariantConst j, memory *const m);
|
||||
|
||||
void mmudebug(const uint16_t a);
|
||||
|
||||
|
|
4
rk05.cpp
4
rk05.cpp
|
@ -296,12 +296,12 @@ JsonVariant rk05::serialize() const
|
|||
return j;
|
||||
}
|
||||
|
||||
rk05 *rk05::deserialize(const JsonVariant j, bus *const b)
|
||||
rk05 *rk05::deserialize(const JsonVariantConst j, bus *const b)
|
||||
{
|
||||
rk05 *r = new rk05(b, nullptr, nullptr);
|
||||
r->begin();
|
||||
|
||||
for(auto j_backend: j["backends"].as<JsonArray>())
|
||||
for(auto j_backend: j["backends"].as<JsonArrayConst>())
|
||||
r->access_disk_backends()->push_back(disk_backend::deserialize(j_backend));
|
||||
|
||||
for(int regnr=0; regnr<7; regnr++)
|
||||
|
|
2
rk05.h
2
rk05.h
|
@ -50,7 +50,7 @@ public:
|
|||
void show_state(console *const cnsl) const override;
|
||||
|
||||
JsonVariant serialize() const;
|
||||
static rk05 *deserialize(const JsonVariant j, bus *const b);
|
||||
static rk05 *deserialize(const JsonVariantConst j, bus *const b);
|
||||
|
||||
uint8_t read_byte(const uint16_t addr) override;
|
||||
uint16_t read_word(const uint16_t addr) override;
|
||||
|
|
4
rl02.cpp
4
rl02.cpp
|
@ -94,12 +94,12 @@ JsonVariant rl02::serialize() const
|
|||
return j;
|
||||
}
|
||||
|
||||
rl02 *rl02::deserialize(const JsonVariant j, bus *const b)
|
||||
rl02 *rl02::deserialize(const JsonVariantConst j, bus *const b)
|
||||
{
|
||||
rl02 *r = new rl02(b, nullptr, nullptr);
|
||||
r->begin();
|
||||
|
||||
JsonArray j_backends = j["backends"];
|
||||
JsonArrayConst j_backends = j["backends"];
|
||||
for(auto v: j_backends)
|
||||
r->access_disk_backends()->push_back(disk_backend::deserialize(v));
|
||||
|
||||
|
|
2
rl02.h
2
rl02.h
|
@ -57,7 +57,7 @@ public:
|
|||
void show_state(console *const cnsl) const override;
|
||||
|
||||
JsonVariant serialize() const;
|
||||
static rl02 *deserialize(const JsonVariant j, bus *const b);
|
||||
static rl02 *deserialize(const JsonVariantConst j, bus *const b);
|
||||
|
||||
uint8_t read_byte(const uint16_t addr) override;
|
||||
uint16_t read_word(const uint16_t addr) override;
|
||||
|
|
6
tty.cpp
6
tty.cpp
|
@ -211,16 +211,16 @@ JsonVariant tty::serialize()
|
|||
return j;
|
||||
}
|
||||
|
||||
tty *tty::deserialize(const JsonVariant j, bus *const b, console *const cnsl)
|
||||
tty *tty::deserialize(const JsonVariantConst j, bus *const b, console *const cnsl)
|
||||
{
|
||||
tty *out = new tty(cnsl, b);
|
||||
|
||||
JsonArray ja_reg = j["registers"];
|
||||
JsonArrayConst ja_reg = j["registers"];
|
||||
int i_reg = 0;
|
||||
for(auto v: ja_reg)
|
||||
out->registers[i_reg++] = v;
|
||||
|
||||
JsonArray ja_buf = j["input-buffer"];
|
||||
JsonArrayConst ja_buf = j["input-buffer"];
|
||||
for(auto v: ja_buf)
|
||||
out->chars.push_back(v.as<signed char>());
|
||||
|
||||
|
|
2
tty.h
2
tty.h
|
@ -53,7 +53,7 @@ public:
|
|||
virtual ~tty();
|
||||
|
||||
JsonVariant serialize();
|
||||
static tty *deserialize(const JsonVariant j, bus *const b, console *const cnsl);
|
||||
static tty *deserialize(const JsonVariantConst j, bus *const b, console *const cnsl);
|
||||
|
||||
void reset();
|
||||
|
||||
|
|
Loading…
Add table
Reference in a new issue