From 0f4d574c4f216d4d894349f8116c9acb83835c3e Mon Sep 17 00:00:00 2001 From: folkert van heusden Date: Tue, 14 May 2024 20:03:32 +0200 Subject: [PATCH] a few compile fixes --- bus.cpp | 14 +++++++------- cpu.cpp | 2 +- cpu.h | 2 +- disk_backend.cpp | 8 ++++---- disk_backend.h | 4 ++-- disk_backend_file.cpp | 2 +- disk_backend_file.h | 2 +- disk_backend_nbd.cpp | 2 +- disk_backend_nbd.h | 2 +- kw11-l.cpp | 2 +- kw11-l.h | 2 +- main.cpp | 2 ++ memory.cpp | 4 ++-- memory.h | 2 +- mmu.cpp | 10 +++++----- mmu.h | 4 ++-- rk05.cpp | 4 ++-- rk05.h | 2 +- rl02.cpp | 4 ++-- rl02.h | 2 +- tty.cpp | 6 +++--- tty.h | 2 +- 22 files changed, 43 insertions(+), 41 deletions(-) diff --git a/bus.cpp b/bus.cpp index 3adf02d..a8e3d53 100644 --- a/bus.cpp +++ b/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()); + 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(), 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(), b, cnsl)); + b->add_tty(tty::deserialize(j["tty"], b, cnsl)); if (j.containsKey("mmu")) - b->add_mmu(mmu::deserialize(j["mmu"].as(), m)); + b->add_mmu(mmu::deserialize(j["mmu"], m)); if (j.containsKey("cpu")) - b->add_cpu(cpu::deserialize(j["cpu"].as(), b, event)); + b->add_cpu(cpu::deserialize(j["cpu"], b, event)); if (j.containsKey("rl02")) - b->add_rl02(rl02::deserialize(j["rl02"].as(), b)); + b->add_rl02(rl02::deserialize(j["rl02"], b)); if (j.containsKey("rk05")) - b->add_rk05(rk05::deserialize(j["rk05"].as(), b)); + b->add_rk05(rk05::deserialize(j["rk05"], b)); // TODO: tm11, dc11 diff --git a/cpu.cpp b/cpu.cpp index a4d06bd..6485873 100644 --- a/cpu.cpp +++ b/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); diff --git a/cpu.h b/cpu.h index 4ea5d97..50e2100 100644 --- a/cpu.h +++ b/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 check_breakpoint(); int set_breakpoint(breakpoint *const bp); diff --git a/disk_backend.cpp b/disk_backend.cpp index bb00df5..27bfaca 100644 --- a/disk_backend.cpp +++ b/disk_backend.cpp @@ -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()) { + for(auto kv : j.as()) { uint32_t id = std::atoi(kv.key().c_str()); std::vector data; - for(auto v: kv.value().as()) + for(auto v: kv.value().as()) 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"]; diff --git a/disk_backend.h b/disk_backend.h index 3b3faa1..e1dcd3d 100644 --- a/disk_backend.h +++ b/disk_backend.h @@ -26,14 +26,14 @@ protected: std::optional > 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; diff --git a/disk_backend_file.cpp b/disk_backend_file.cpp index 0141037..a8521d0 100644 --- a/disk_backend_file.cpp +++ b/disk_backend_file.cpp @@ -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 diff --git a/disk_backend_file.h b/disk_backend_file.h index a05720a..8b825ac 100644 --- a/disk_backend_file.h +++ b/disk_backend_file.h @@ -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; } diff --git a/disk_backend_nbd.cpp b/disk_backend_nbd.cpp index aaa470f..36f7e27 100644 --- a/disk_backend_nbd.cpp +++ b/disk_backend_nbd.cpp @@ -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"]); diff --git a/disk_backend_nbd.h b/disk_backend_nbd.h index bfab93d..39f0219 100644 --- a/disk_backend_nbd.h +++ b/disk_backend_nbd.h @@ -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); } diff --git a/kw11-l.cpp b/kw11-l.cpp index b11e7ef..42c99e0 100644 --- a/kw11-l.cpp +++ b/kw11-l.cpp @@ -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"]; diff --git a/kw11-l.h b/kw11-l.h index 4898679..04031a1 100644 --- a/kw11-l.h +++ b/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()(); diff --git a/main.cpp b/main.cpp index 2ee998f..bb4d539 100644 --- a/main.cpp +++ b/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; } diff --git a/memory.cpp b/memory.cpp index 3c2a852..6140b82 100644 --- a/memory.cpp +++ b/memory.cpp @@ -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(); + JsonArrayConst ja = j["contents"].as(); uint32_t i = 0; for(auto v: ja) m->m[i++] = v; diff --git a/memory.h b/memory.h index 968e978..0fb5670 100644 --- a/memory.h +++ b/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; } diff --git a/mmu.cpp b/mmu.cpp index d36169a..6db90fe 100644 --- a/mmu.cpp +++ b/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(), run_mode, is_d); + m->set_par_pdr(j[format("runmode_%d_d_%d", run_mode, is_d)].as(), run_mode, is_d); } m->MMR0 = j["MMR0"]; diff --git a/mmu.h b/mmu.h index 6695310..b9f2f5e 100644 --- a/mmu.h +++ b/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); diff --git a/rk05.cpp b/rk05.cpp index 152ed70..4def28f 100644 --- a/rk05.cpp +++ b/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()) + for(auto j_backend: j["backends"].as()) r->access_disk_backends()->push_back(disk_backend::deserialize(j_backend)); for(int regnr=0; regnr<7; regnr++) diff --git a/rk05.h b/rk05.h index f025870..537d9d9 100644 --- a/rk05.h +++ b/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; diff --git a/rl02.cpp b/rl02.cpp index 69a64c0..aacaa38 100644 --- a/rl02.cpp +++ b/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)); diff --git a/rl02.h b/rl02.h index f9ef998..0c36945 100644 --- a/rl02.h +++ b/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; diff --git a/tty.cpp b/tty.cpp index 74091d5..c2361b2 100644 --- a/tty.cpp +++ b/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()); diff --git a/tty.h b/tty.h index 0c98ade..dc26be2 100644 --- a/tty.h +++ b/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();