kvisc/vm/in/super.c

45 lines
642 B
C

// The OS/K Team licenses this file to you under the MIT license.
// See the LICENSE file in the project root for more information.
#include <unistd.h>
#include <in/instrs.h>
#include <pc/console.h>
IMPL_START_0(hlt)
{
CHK_SUPERV();
SDL_Event evt;
while (1)
{
if (SDL_WaitEvent(&evt) == 1)
{
if (evt.type == SDL_QUIT)
die(0);
}
}
}
IMPL_END;
IMPL_START_0(cli)
{
CHK_SUPERV();
cr0 &= ~IF;
}
IMPL_END;
IMPL_START_0(sti)
{
CHK_SUPERV();
cr0 |= IF;
}
IMPL_END;
IMPL_START_0(stop)
{
CHK_SUPERV();
_except(ctx, E_SHT, "STOP INSTR");
}
IMPL_END;