[Message Prev][Message Next][Thread Prev][Thread Next][Message Index][Thread Index]
[MD:3577]New heap manager (mainly for porable dumper).
- X-ml-count: 3577
- Subject: [MD:3577]New heap manager (mainly for porable dumper).
- From: Keiichiro Nagano (永野圭一郎) <knagano@xxxxxxxxx>
- Date: Thu, 19 Sep 2002 11:10:25 +0900
- User-agent: Wanderlust/2.8.1 (Something) EMIKO/1.14.1 (Choanoflagellata) SLIM/1.14.7 (酒井彩名) APEL/10.3 Emacs/21.2 (i586-pc-linux-gnulibc1) MULE/5.0 (SAKAKI)
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