Diff for /np2/i386c/ia32/task.c between versions 1.10 and 1.11

version 1.10, 2004/02/06 16:49:51 version 1.11, 2004/02/09 16:12:54
Line 78  load_tr(WORD selector) Line 78  load_tr(WORD selector)
 }  }
   
 void  void
 get_stack_from_tss(DWORD pl, WORD *new_ss, DWORD *new_esp)  get_stack_pointer_from_tss(DWORD pl, WORD *new_ss, DWORD *new_esp)
 {  {
         DWORD tss_stack_addr;          DWORD tss_stack_addr;
   
Line 101  get_stack_from_tss(DWORD pl, WORD *new_s Line 101  get_stack_from_tss(DWORD pl, WORD *new_s
                 *new_esp = cpu_kmemoryread_w(tss_stack_addr);                  *new_esp = cpu_kmemoryread_w(tss_stack_addr);
                 *new_ss = cpu_kmemoryread_w(tss_stack_addr + 2);                  *new_ss = cpu_kmemoryread_w(tss_stack_addr + 2);
         } else {          } else {
                 ia32_panic("get_stack_from_tss: task register is invalid (%d)\n", CPU_TR_DESC.type);                  ia32_panic("get_stack_pointer_from_tss: task register is invalid (%d)\n", CPU_TR_DESC.type);
         }          }
   
         VERBOSE(("get_stack_from_tss: pl = %d, new_esp = 0x%08x, new_ss = 0x%04x", pl, *new_esp, *new_ss));          VERBOSE(("get_stack_pointer_from_tss: pl = %d, new_esp = 0x%08x, new_ss = 0x%04x", pl, *new_esp, *new_ss));
 }  }
   
 WORD  WORD
 get_link_selector_from_tss()  get_backlink_selector_from_tss(void)
 {  {
         WORD backlink;          WORD backlink;
   
Line 121  get_link_selector_from_tss() Line 121  get_link_selector_from_tss()
                         EXCEPTION(TS_EXCEPTION, CPU_TR & ~3);                          EXCEPTION(TS_EXCEPTION, CPU_TR & ~3);
                 }                  }
         } else {          } else {
                 ia32_panic("get_link_selector_from_tss: task register is invalid (%d)\n", CPU_TR_DESC.type);                  ia32_panic("get_backlink_selector_from_tss: task register is invalid (%d)\n", CPU_TR_DESC.type);
         }          }
   
         backlink = cpu_kmemoryread_w(CPU_TR_DESC.u.seg.segbase);          backlink = cpu_kmemoryread_w(CPU_TR_DESC.u.seg.segbase);
         VERBOSE(("get_link_selector_from_tss: backlink selector = 0x%04x", backlink));          VERBOSE(("get_backlink_selector_from_tss: backlink selector = 0x%04x", backlink));
         return backlink;          return backlink;
 }  }
   
 void  void
 task_switch(selector_t* task_sel, int type)  task_switch(selector_t *task_sel, task_switch_type_t type)
 {  {
         DWORD regs[CPU_REG_NUM];          DWORD regs[CPU_REG_NUM];
         DWORD eip;          DWORD eip;
Line 394  task_switch(selector_t* task_sel, int ty Line 394  task_switch(selector_t* task_sel, int ty
   
         /* set new EFLAGS */          /* set new EFLAGS */
         mask = I_FLAG|IOPL_FLAG|RF_FLAG|VM_FLAG|VIF_FLAG|VIP_FLAG;          mask = I_FLAG|IOPL_FLAG|RF_FLAG|VM_FLAG|VIF_FLAG|VIP_FLAG;
         if (!task16) {          set_eflags(new_flags, mask);
                 set_eflags(new_flags, mask);  
         } else {  
                 set_flags(new_flags, mask);  
         }  
   
         /* load new LDTR */          /* load new LDTR */
         load_ldtr(ldtr, TS_EXCEPTION);          load_ldtr(ldtr, TS_EXCEPTION);

Removed from v.1.10  
changed lines
  Added in v.1.11


RetroPC.NET-CVS <cvs@retropc.net>