--- nono/vm/bootloader.h 2026/04/29 17:05:25 1.1.1.2 +++ nono/vm/bootloader.h 2026/04/29 17:05:43 1.1.1.4 @@ -11,7 +11,6 @@ #pragma once #include "object.h" -#include "iodevstream.h" class LoadInfo; class MainRAMDevice; @@ -21,19 +20,22 @@ class BootLoader : public Object { using inherited = Object; public: - BootLoader(MainRAMDevice *ram_); + explicit BootLoader(MainRAMDevice *mainram_); ~BootLoader() override; - // info で指定された実行ファイルをロードする。 + // info で指定された実行ファイルを mainram にロードする。 // data, size が指定されていればバッファから読み込む。 // 指定されていなければホストの path から読み込む。 // (path はいずれにしてもエラー出力の際に使う) - bool LoadExec(LoadInfo *); + static bool LoadExec(MainRAMDevice *mainram_, LoadInfo *info); - // info で指定されたデータファイルをロードする。 + // info で指定されたデータファイルを mainram にロードする。 // data, size が指定されていればバッファから読み込む。 // 指定されていなければホストの path から読み込む。 // (path はいずれにしてもエラー出力の際に使う) + static bool LoadData(MainRAMDevice *mainram_, LoadInfo *info); + + bool LoadExec(LoadInfo *); bool LoadData(LoadInfo *); private: @@ -45,17 +47,15 @@ class BootLoader : public Object bool Load_elf32_exec(LoadInfo *); bool Load_elf32_rel(LoadInfo *); bool Load_elf32_sym(LoadInfo *, std::string&); - void WriteFromHost(IODeviceStream&, const void *, int); - void readfile_global(uint32, const void *, int); - MainRAMDevice *ram {}; + MainRAMDevice *mainram {}; }; // 実行ファイルを読み込む際の受け渡しパラメータ class LoadInfo { public: LoadInfo(); - LoadInfo(const char *path_); + explicit LoadInfo(const char *path_); LoadInfo(const char *path_, const uint8 *data_, size_t size_); // ファイルから読み込む時はファイルパスを指定する。