#include "interrupt.h"
#include "intr-stubs.h"
#include "lib.h"
+#include "gdt.h"
#include "mmu.h"
#include "palloc.h"
#include "random.h"
void
thread_init (void)
{
- ASSERT (intr_get_level () == IF_OFF);
+ ASSERT (intr_get_level () == INTR_OFF);
/* Initialize run queue. */
list_init (&run_queue);
if_->ds = SEL_UDSEG;
if_->eip = start;
if_->cs = SEL_UCSEG;
- if_->eflags = FLAG_IF | 2;
+ if_->eflags = FLAG_IF | FLAG_MBS;
if_->esp = PHYS_BASE;
if_->ss = SEL_UDSEG;
thread_yield (void)
{
struct thread *cur = thread_current ();
- enum if_level old_level;
+ enum intr_level old_level;
ASSERT (!intr_context ());
thread_sleep (void)
{
ASSERT (!intr_context ());
- ASSERT (intr_get_level () == IF_OFF);
+ ASSERT (intr_get_level () == INTR_OFF);
thread_current ()->status = THREAD_BLOCKED;
schedule ();
{
struct thread *cur = thread_current ();
- ASSERT (intr_get_level () == IF_OFF);
+ ASSERT (intr_get_level () == INTR_OFF);
cur->status = THREAD_RUNNING;
if (prev != NULL && prev->status == THREAD_DYING)
struct thread *cur = thread_current ();
struct thread *next = next_thread_to_run ();
- ASSERT (intr_get_level () == IF_OFF);
+ ASSERT (intr_get_level () == INTR_OFF);
ASSERT (cur->status != THREAD_RUNNING);
ASSERT (is_thread (next));