[Mona] Floppyドライバをカーネルから分離しよう

必須サーバ群をKERNEL.IMGに物理的に組み込んだのでFloppyドライバと付属するFATロジックはカーネルから分離可能なはずである。
Floppyドライバは割り込み後に割りと即応答しないといけない。でもビジーループはかっこ悪いので以下の関数を使えばよいかな。

int Message::receive(MessageInfo* dst, MessageInfo* src, bool(*equals)(MessageInfo* msg1, MessageInfo* msg2))
{
    MessageInfo msg;
    for (int i = 0; ; i++)
    {
        int result = Message::peek(&msg, i);

        if (result != 0)
        {
            i--;
            syscall_mthread_yield_message();
        }
        else if ( (*equals)(&msg, src))
        {
            Message::peek(&msg, i, PEEK_REMOVE);
            break;
        }
    }

    if (dst != NULL) *dst = msg;
    return 0;
}