(toppers-users 800) linux_serial.c について
Okada Masahiro
masahi-o @ astem.or.jp
2003年 5月 6日 (火) 14:14:38 JST
岡田と申します。
よろしくお願いします。
Toppersのシミュレーション環境を FreeBSD で nativeで動かそうとしていま
す。Linuxのものを書き換えて、動かそうとしていますが、ひとつつまずいて
いるところがあるので、お助け下さい。
つまずいているのは systask/linux_serial.c 内の serial_int_handler で、
sig_sem を呼び出しているところで、E_CTX が返ってしまうことです。どうも、
CPUがロック状態なので sig_sem が呼び出せないようです。
serial_int_handler は、serial_sigio_callback から、
syscall(loc_cpu());
flag = serial_int_handler(1);
syscall(unl_cpu());
というふうに呼び出されていて、serial_int_handler 内でもロックは解除し
ていないようなので sig_sem が E_CTX を返すのは間違っていないように思い
ます。
しかし、Linux環境では動いていると思うので、何がおかしいのか分からない
状態です。
多分、私が何か勘違いしているんだと思いますが、何がおかしいのでしょうか?
お助け下さい。