a few compile fixes

This commit is contained in:
folkert van heusden 2024-05-14 20:03:32 +02:00
parent ccf4b6268f
commit 0f4d574c4f
Signed by untrusted user who does not match committer: folkert
GPG key ID: 6B6455EDFEED3BD1
22 changed files with 43 additions and 41 deletions

14
bus.cpp
View file

@ -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

View file

@ -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
View file

@ -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);

View file

@ -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"];

View file

@ -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;

View file

@ -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

View file

@ -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; }

View file

@ -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"]);

View file

@ -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); }

View file

@ -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"];

View file

@ -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()();

View file

@ -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;
}

View file

@ -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;

View file

@ -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
View file

@ -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
View file

@ -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);

View file

@ -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
View file

@ -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;

View file

@ -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
View file

@ -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;

View file

@ -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
View file

@ -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();