--- nono/lib/mappedfile.h 2026/04/29 17:04:34 1.1 +++ nono/lib/mappedfile.h 2026/04/29 17:04:57 1.1.1.3 @@ -9,10 +9,18 @@ #pragma once #include "header.h" +#include "autofd.h" class MappedFile { public: + // アクセスモード + // (enum class は字面が長くなるので手抜きしたい…) + using Mode = bool; + static const bool RW = false; + static const bool RdOnly = true; + + public: MappedFile(); virtual ~MappedFile(); @@ -22,18 +30,10 @@ class MappedFile // エラーメッセージの表示名を変更する。 void SetDispname(const std::string& dispname); - // サイズの確定しているファイルを読み込み専用でオープンして mmap する。 - // ファイルがなければエラー。ROM とか用。 - uint8 *OpenRdOnly(off_t len); - // サイズの確定しているファイルを読み書き両用でオープンして mmap する。 // ファイルがなければ作成する。SRAM とか用。 uint8 *OpenCreate(off_t len); - // サイズの確定していないファイルを読み書き両用でオープンして mmap する。 - // ファイルがなければエラー。ディスクイメージ用。 - uint8 *OpenFile(); - // クローズする (デストラクタを呼ぶだけでもよい) void Close(); @@ -52,7 +52,7 @@ class MappedFile // ただのパス名だけでなくその場に応じたいい感じの表示にしたい。 std::string dispname {}; - int fd {}; + autofd fd {}; uint8 *mem {}; off_t memlen {}; };