[Subject Prev][Subject Next][Thread Prev][Thread Next][Subject Index][Thread Index]

[OSASK 1712] Re: VMware error.



  こんばんは、川合です。


Koyanagi Masaaki さんは 2001/05/06 22:54:29 の「[OSASK 1711] Re:
 VMware error.」で書きました:

>EDX は 0です。VMware 上ではなく通常起動でもこれと全く同じ結果
>になりました。

  ご報告ありがとうございます。

  おお、0ですか。それは正常なのです。

>インテル・アーキテクチャ・ソフトウェア・ディベロッパーズ・マニュアルの
>LLDT を見ると、
>
>>ソース・オペランドが0である場合は、LDTRは無効とマークされ、
>>LDT内のディスクリプタへのすべての参照(LAR、VERR、VERW、または
>>LSL命令によるものを除く) によって一般保護例外(#GP) が発生する。
>
>と書いてあるので、不思議な気がします。

  わざわざ調べていただいて申し訳ありません。しかし、この場合は、
まさにこれでよいのです。僕はヌルセレクタをLDTRに代入したかったの
であって、それゆえにSLDTを疑った僕の勘は間違っていたことになりま
す。

  では、問題のLLDT(DX);の行を以下の行と差し替えてみてください。
そしてVMwareでうまく行くかどうかをご連絡ください。

    if (EDX != 0) LLDT(DX);

つまり、ヌルセレクタを代入しようとしている場合に限って、これを抑
制しようというものです。もし、LLDTがヌルセレクタを代入しようとし
た時に限ってVMwareの障害が発生するというなら、これで防げるはずで
す。


  それでは。

--
    川合 秀実(KAWAI Hidemi)
川合堂社長 / OSASK計画総指揮 / カーネル開発班
E-mail:kawai !Atmark! imasy.org
Homepage http://www.imasy.org/~kawai/