OSDN Git Service

Merge branch 'master' of git.sourceforge.jp:/gitroot/vaneos/vaneosmain
[vaneos/vaneosmain.git] / Kernel / TSS.c
index 510c8f0..c472429 100644 (file)
@@ -14,6 +14,7 @@ void farjmp(int eip, int cs);
 void cstart(unsigned long magic, unsigned long addr);
 
 tss_t tss[NUM_GDT];
+struct desc_struct ldt[3];
 int manage_tss[NUM_GDT];
 unsigned int esp_addr_tss[NUM_GDT];
 
@@ -33,7 +34,7 @@ static void set_segmdesc(SEGMENT_DESCRIPTOR *sd, unsigned int limit, int base, i
 
 void init_tss_all(void)
 {
-       set_segmdesc(&gdt[4], 103, (int) &cstart, AR_TSS32);
+       set_segmdesc(&gdt[4], 103, (int) &tss[0], AR_TSS32);
 }
 
 int k_mktask_tss(void (*f)())
@@ -43,7 +44,7 @@ int k_mktask_tss(void (*f)())
        tss[free].ldtr=0;
        tss[free].iomap=0x40000000;
        
-       set_segmdesc(&gdt[free],103,(int)&task_b,AR_TSS32);
+       set_segmdesc(&gdt[free],103,(int)&tss[free],AR_TSS32);
        
        return free;
 }
@@ -52,7 +53,7 @@ void k_init_tss(int num)
 {
        num=5;
        
-       tss[num].eip=&task_b;
+       tss[num].eip=task_b;
        tss[num].esp=k_malloc_mask(64*1024)+64*1024;
        tss[num].eflags=0x00000202;