Rev 3071 | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 3071 | Rev 3104 | ||
---|---|---|---|
Line 144... | Line 144... | ||
144 | */ |
144 | */ |
145 | if (!(gdt_new = (struct descriptor *) malloc(GDT_ITEMS * sizeof(struct descriptor), FRAME_ATOMIC))) |
145 | if (!(gdt_new = (struct descriptor *) malloc(GDT_ITEMS * sizeof(struct descriptor), FRAME_ATOMIC))) |
146 | panic("couldn't allocate memory for GDT\n"); |
146 | panic("couldn't allocate memory for GDT\n"); |
147 | 147 | ||
148 | memcpy(gdt_new, gdt, GDT_ITEMS * sizeof(struct descriptor)); |
148 | memcpy(gdt_new, gdt, GDT_ITEMS * sizeof(struct descriptor)); |
149 | memsetb((uintptr_t)(&gdt_new[TSS_DES]), sizeof(struct descriptor), 0); |
149 | memsetb(&gdt_new[TSS_DES], sizeof(struct descriptor), 0); |
150 | gdtr.base = (uintptr_t) gdt_new; |
150 | gdtr.base = (uintptr_t) gdt_new; |
151 | 151 | ||
152 | if (l_apic_send_init_ipi(ops->cpu_apic_id(i))) { |
152 | if (l_apic_send_init_ipi(ops->cpu_apic_id(i))) { |
153 | /* |
153 | /* |
154 | * There may be just one AP being initialized at |
154 | * There may be just one AP being initialized at |