[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[WitchTech 00295] Re: リソースの取得方法は?
- Subject: [WitchTech 00295] Re: リソースの取得方法は?
- From: Daisuke Sawada <swd@techbrains.co.jp>
- Date: Mon, 14 Aug 2000 11:26:00 +0900
こんにちは、澤田です。
On Mon, 14 Aug 2000 10:15:41 +0900
in [WitchTech 00294] Re: リソースの取得方法は?
Tooru Watanabe <erupi@fa2.so-net.ne.jp> wrote:
> 自己レスですが、あれから調べていて解りました。
> extern void far *_resource;
> に、リソースの先頭を指すポインタが入ってるんですね。で、そこから辿ると。
> お騒がせいたしました。
_resourceなんですが、LSI-C用のスタートアップルーチンでは
ちゃんとpublicになっているのですが、TurboC用の方はなぜかpublicに
なっていません。ですから _resource を使うと TurboC で make が
出来ないソースになってしまうようです。
# c0ww.asm で __resource を public にするだけなんだけど・・
# おそらくミスしてるだけだと思う。
で、まだ私自身試していないのですが、_resouce や _heap というのは
sys/process.h にある ProcContext の _resource, _heap と同義と
思われます。ですから、
#include <sys/process.h>
#define resource_p (_pc->_resource) /* 特に定義しなくても良いですが */
とすれば、resource_p で同じポインタが取得できるんじゃないでしょうか?
これなら LSI-C, TurboC どちらでも問題ないソースコードになると思います。
ilibILなんかは公式に使われているものなので、_pc を使う事は大丈夫でしょう。
推測ばかりのフォローなんで、もしかして間違っていたらすいません。
私もちょっと前に _resource を直接使ったコードを書いたのですが、
public じゃなかったので _heap の定義アドレスから逆算するというインチキ
技をしてました(^^;。その後で process.h を覗いた・・
ProcContext は、マニュアル中での PCB そのものだと思います。
___
澤田 大輔(die)
email: die@zonze.nu(home), swd@techbrains.co.jp(office)
ML Archives