フォーラム: 公開討議 (スレッド #1374)

HOS-V4システムコール追加希望 (2002-11-06 13:23 by hamayan #2565)

お世話になっています。
以前にHOS-V4で追加希望のシステムコールが有れば言って欲しい!との話なので、希望です。

cre_cycまたは、acre_cycなんか有れば!と思いまして。
周期起動ハンドラなんかも、使わない時は全く使わないので、任意で生成、削除なんか出来たらなあ!と思っています。

あっ、勿論、お手隙で、その気になったらで構いません。

RE: HOS-V4システムコール追加希望 (2002-11-06 20:50 by m-arai #2574)

デバッグして使えるようになったらcommitして下さい。
B-)

https://sourceforge.jp/tracker/index.php?func=detail&aid=724&group_id=183&atid=780


#2565 への返信

RE: HOS-V4システムコール追加希望 (2002-11-06 21:58 by hamayan #2579)

うーん、m-araiさん、もしかしてネタを暖めていた?
#2574 への返信

RE: HOS-V4システムコール追加希望 (2002-11-06 22:11 by m-arai #2580)

いいえ。hamayanさんのメッセージを見てからの着手
ですよ。cre_tsk、acre_tsk、kcre_tsk、del_flgを
コピーして、ちょこちょこっと置換。
ini_cyc、sta_cyc、stp_cycから切り貼りして…
ハイ!出来あがり。

かなり即席で、しかもほとんど検証していないです。
なので、それなりのものだと思います。地雷入りかも。

でも、周期ハンドラの食うリソースってあまり大きく
ないんですよね。果たしてどれほどの意味があるかは…?
#2579 への返信

RE: HOS-V4システムコール追加希望 (2002-11-06 22:20 by hamayan #2581)

>かなり即席で、しかもほとんど検証していないです。
>なので、それなりのものだと思います。地雷入りかも。

いやいや、それにしても対応早過ぎ。

>でも、周期ハンドラの食うリソースってあまり大きく
>ないんですよね。果たしてどれほどの意味があるかは…?

そんな、根本から覆す様な事、言わないで下さいよ。
それで無くとも、いつもこんな注文して良いのか、どきどきしながらやっているんだから。

とりあえず、他のシステムコールにはacre_yyyが揃っているのと、タイマー割込み中のCPUロック時間が少しでも短くなれば!と思っています。<-関係無いのか?
#2580 への返信

RE: HOS-V4システムコール追加希望 (2002-11-06 22:37 by m-arai #2582)

いやぁ、全く意味がないこともないとは思うんですけど
ね。例えば、周期とか渡すパラメータをプログラムに
より状況に応じて変えるとか。
でも、逆を言うと、そういうことをしない、条件が固定
したハンドラなら、静的生成してsta/stp_cycする方が
色々節約になりそうだと思ったのですよ。

↑というような見解に達したのも、実際の作業をやって、
周期ハンドラの仕組みをある程度知ってからなのですが。
(^^;
#2581 への返信

CPUロック時間には、多分影響ありません。 (2002-11-07 00:01 by m-arai #2587)

ああ、こっちの方にもフォローを。

>とりあえず、他のシステムコールにはacre_yyyが揃って
>いるのと、

スタンダードプロファイルでは、(acre|cre|del)_cycは
なくてもいいので作られなかったのでしょう。

>タイマー割込み中のCPUロック時間が少しでも短くなれ>ば!と思っています。<-関係無いのか?

静的生成でも動的生成でも、この件については関係ない
と思います。いづれにせよ、実行状態でないものはタイマ
オブジェクトリストに接続されていないので、存在して
いるだけでCPUロック時間が長くなるということはない
でしょう。多分。

kernel/cyc/以下とkernel/tim/isig_tim.cを見てくだ
さい。

おや?自分自身をハンドラ内で削除(stp|del)すると、
次のハンドラを一つ飛ばす危険性があるか?
#2581 への返信

diffの修正? (2002-11-07 00:44 by hamayan #2588)

dyn_cyc.diffの各Makefileのパッチの部分、
+ cre_cyc.obj acre_hdr.obj kcre_cyc.obj del_cyc.obj \
ですが、
+ cre_cyc.obj acre_cyc.obj kcre_cyc.obj del_cyc.obj \
ですね。

patchが使えないので、人間パッチとなっています。
#2574 への返信

RE: diffの修正? (2002-11-07 01:01 by m-arai #2589)

sh4でしか試していなかったのでした。すみません。
修正版を上げました。

patchが使えないというのは?例のWinCVSを入れていれ
ば、patch.exe自体は持ってますよね。
一応書いておくと、今回の差分なら、hos/hos-v4/の
ディレクトリで、

patch < dyn_cyc_2.diff

をやるだけです。
#2588 への返信

RE: diffの修正? (2002-11-07 01:20 by hamayan #2590)

patch.exeはWinCVSに付いて来ていたんですね。
ディレクトリにパスが通っておらず、コマンドラインからは起動しなかったので、無いものと思っていました。
#2589 への返信

RE: diffの修正? (2002-11-07 15:04 by hamayan #2598)

patch失敗しました。これは当てる方です。

hos/hos-v4以下にdiffを置いて
patch < dyn_cyc_2.diff(実際にはファイル名を変更しています。)

patching file ’config/crealm.cpp'
Assertion failed: hunk, file patch.c, line32

abnormal program termination

で失敗します。
何か有りますでしょうか。
WIN95、WIN2000ともに同様の症状です。
#2590 への返信

RE: diffの修正? (2002-11-07 15:13 by hamayan #2599)

line 32 -> line 321です。
#2598 への返信

RE: diffの修正? (2002-11-07 16:22 by m-arai #2600)

すみません。改行コードをCRLFにしてください。
#2599 への返信

RE: diffの修正? (2002-11-08 00:07 by m-arai #2601)

もしかして、もう解決されたかもしれませんが…

すみません。Winでcoした時点で、既にCRLFにはなって
いたわけですね。
"Cvssyncで、SJISに変換したディレクトリ"の
"hos\hos-v4\"に移動して、

nkf32 -sc c:\tmp\dyn_cyc_2.diff | patch

としてください。
#2600 への返信

RE: diffの修正? (2002-11-08 09:13 by hamayan #2606)

すいません、ちょっと今、HOS触れないでいます。
近日中に再開します。
#2601 への返信

RE: diffの修正?結果 (2002-11-09 16:47 by hamayan #2619)

この方法でパッチを当てる事が出来ました。有り難うございました。

H8用秋月Cコンパイラでコンパイルして気付いたのですが、knl_cyc.hの43行目のコメントアウトで"//"が引っかかります。
同様に、kcre_cyc.cの50行目でも、コメントアウトで引っかかります。

宜しくお願いいたします。
#2601 への返信

RE: diffの修正?結果 (2002-11-09 21:24 by m-arai #2620)

訂正してPatchesに上げときました。
#2619 への返信