[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]

[MD:3577]New heap manager (mainly for porable dumper).



At Thu, 19 Sep 2002 00:39:12 +0900,
MIYASHITA Hisashi(宮下 尚:HIMI) wrote:
> で、portable dumperのloader部分のI/Fを、まともに決めたいと思いますが、
> どうでしょ? > 永野さん、林さん。

わかりました。loader というのは現在の code で mmap したり malloc+read 
したりする部分なので、pdump 側から渡す入力は mmap に準じ、

* dump file の fd (open 済み)
* 期待する load address (mmap(2) の第1引数)
* 読み込む length (mmap(2) の第2引数)

の3つになります。loader は渡された fd から length ぶんを memory のどこ
かに load し(このうち2番目の load address は無視して構いません)、以下
の出力を返して下さい。

* 実際に load された先頭 address

また、対応する、読み込んだ領域の解放部分(pdump_free がやっていること) 
も heap manager で受け持って下さい。こちらは何の入出力もありません。

Un*x ではこれに加えて、Fpdump_load_scheme がおこなっていること(現在の
load scheme(mmap か malloc か)を Lisp level で見られるようにする)もこ
の部分に含めて分離することになりますが、そもそも1方式しかない Meadow 
ではこれは要りません。

と、いうところでしょうか... 僕のほうで発生する作業は、まず見通しをよく
するため pdump 部分を alloc.c から分離し(pdump.c を新設)、上記3つの関
数を pdump.c からも分離してどこか別の場所に置きます(pdump_loader.c ?)。
そのうえで Makefile をアレコレすると、うまく切り替えられるようになると
思います。地味な修行;; になりますが、連休に時間を使ってみます。

-- 
Keiichiro Nagano