os::remap_memory(...)

  • ファイルやデバイスを再メモリマッピングする
  • 実装的には単にmap_memoryを呼び出すだけ
  • 以下、引数の説明
    • fd--メモリマッピングするファイルのファイルディスクリプタ
    • filename--ファイル名
    • file_offset--ファイルのオフセット(このオフセット以降がメモリマッピングされる)
    • addr--マッピングされるメモリの開始アドレス
    • bytes--メモリマッピングされる範囲(file_offsetから(file_offset+bytes)までがマッピングされる)
    • read_only--1なら読み込み可能。0なら読み込み/書き出し可能
    • allow_exec--1なら実行可能。0なら実行不可。
//Linux版(jdk7/hotspot/src/os/linux/vm/os_linux.cpp)
// Remap a block of memory.
char* os::remap_memory(int fd, const char* file_name, size_t file_offset,
                       char *addr, size_t bytes, bool read_only,
                       bool allow_exec) {
  // same as map_memory() on this OS
  return os::map_memory(fd, file_name, file_offset, addr, bytes, read_only,
                        allow_exec);
}