X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=blobdiff_plain;f=src%2Fuserprog%2Ftss.c;h=dfda3b9857d424dd250f0b4015ba350d9a23f3cc;hb=8abbb333aea445641d967befd3ca477502ea770b;hp=4e1dc004332549d4e976d60565f24055111131bd;hpb=f2f8875638593bd5365cfd6a5ba7c9578e52322f;p=pintos-anon diff --git a/src/userprog/tss.c b/src/userprog/tss.c index 4e1dc00..dfda3b9 100644 --- a/src/userprog/tss.c +++ b/src/userprog/tss.c @@ -43,9 +43,10 @@ stack pointer to point to the new thread's kernel stack. (The call is in schedule_tail() in thread.c.) - See [IA32-v3] 6.2.1 for a description of the TSS and 5.12.1 - for a description of when and how stack switching occurs - during an interrupt. */ + See [IA32-v3a] 6.2.1 "Task-State Segment (TSS)" for a + description of the TSS. See [IA32-v3a] 5.12.1 "Exception- or + Interrupt-Handler Procedures" for a description of when and + how stack switching occurs during an interrupt. */ struct tss { uint16_t back_link, :16; @@ -80,7 +81,7 @@ tss_init (void) /* Our TSS is never used in a call gate or task gate, so only a few fields of it are ever referenced, and those are the only ones we initialize. */ - tss = palloc_get (PAL_ASSERT | PAL_ZERO); + tss = palloc_get_page (PAL_ASSERT | PAL_ZERO); tss->esp0 = ptov(0x20000); tss->ss0 = SEL_KDSEG; tss->bitmap = 0xdfff;