can set just %gs now.

This commit is contained in:
Russ Cox 2009-09-02 10:09:34 -07:00
parent 7e0cc8e36e
commit d26025d124
2 changed files with 2 additions and 4 deletions

3
proc.c
View file

@ -72,10 +72,9 @@ ksegment(void)
c->gdt[SEG_KDATA] = SEG(STA_W, 0, 0xffffffff, 0); c->gdt[SEG_KDATA] = SEG(STA_W, 0, 0xffffffff, 0);
c->gdt[SEG_KCPU] = SEG(STA_W, &c->cpu, 8, 0); c->gdt[SEG_KCPU] = SEG(STA_W, &c->cpu, 8, 0);
lgdt(c->gdt, sizeof(c->gdt)); lgdt(c->gdt, sizeof(c->gdt));
loadfsgs(SEG_KCPU << 3); loadgs(SEG_KCPU << 3);
// Initialize cpu-local storage. // Initialize cpu-local storage.
asm volatile(""); // Do not let gcc reorder across this line.
cpu = c; cpu = c;
proc = 0; proc = 0;
} }

3
x86.h
View file

@ -104,9 +104,8 @@ xchg(volatile uint *addr, uint newval)
} }
static inline void static inline void
loadfsgs(ushort v) loadgs(ushort v)
{ {
asm volatile("movw %0, %%fs" : : "r" (v));
asm volatile("movw %0, %%gs" : : "r" (v)); asm volatile("movw %0, %%gs" : : "r" (v));
} }