Diff for /np2/i386c/ia32/task.c between versions 1.24 and 1.25

version 1.24, 2011/01/15 17:17:23 version 1.25, 2011/12/17 01:36:54
Line 27 Line 27
 #include "cpu.h"  #include "cpu.h"
 #include "ia32.mcr"  #include "ia32.mcr"
   
 #define TSS_SIZE_16     44  #define TSS_16_SIZE     44
 #define TSS_SIZE_32     108  #define TSS_16_LIMIT    (TSS_16_SIZE - 1)
   #define TSS_32_SIZE     104
   #define TSS_32_LIMIT    (TSS_32_SIZE - 1)
   
 static void  static void
 set_task_busy(UINT16 selector, descriptor_t *sdp)  set_task_busy(UINT16 selector, descriptor_t *sdp)
Line 82  load_tr(UINT16 selector) Line 84  load_tr(UINT16 selector)
         /* check descriptor type & stack room size */          /* check descriptor type & stack room size */
         switch (task_sel.desc.type) {          switch (task_sel.desc.type) {
         case CPU_SYSDESC_TYPE_TSS_16:          case CPU_SYSDESC_TYPE_TSS_16:
                 if (task_sel.desc.u.seg.limit < TSS_SIZE_16) {                  if (task_sel.desc.u.seg.limit < TSS_16_LIMIT) {
                         EXCEPTION(TS_EXCEPTION, task_sel.idx);                          EXCEPTION(TS_EXCEPTION, task_sel.idx);
                 }                  }
                 iobase = 0;                  iobase = 0;
                 break;                  break;
   
         case CPU_SYSDESC_TYPE_TSS_32:          case CPU_SYSDESC_TYPE_TSS_32:
                 if (task_sel.desc.u.seg.limit < TSS_SIZE_32) {                  if (task_sel.desc.u.seg.limit < TSS_32_LIMIT) {
                         EXCEPTION(TS_EXCEPTION, task_sel.idx);                          EXCEPTION(TS_EXCEPTION, task_sel.idx);
                 }                  }
                 iobase = cpu_kmemoryread_w(task_sel.desc.u.seg.segbase + 102);                  iobase = cpu_kmemoryread_w(task_sel.desc.u.seg.segbase + 102);
Line 215  task_switch(selector_t *task_sel, task_s Line 217  task_switch(selector_t *task_sel, task_s
         switch (task_sel->desc.type) {          switch (task_sel->desc.type) {
         case CPU_SYSDESC_TYPE_TSS_32:          case CPU_SYSDESC_TYPE_TSS_32:
         case CPU_SYSDESC_TYPE_TSS_BUSY_32:          case CPU_SYSDESC_TYPE_TSS_BUSY_32:
                 if (task_sel->desc.u.seg.limit < TSS_SIZE_32) {                  if (task_sel->desc.u.seg.limit < TSS_32_LIMIT) {
                         EXCEPTION(TS_EXCEPTION, task_sel->idx);                          EXCEPTION(TS_EXCEPTION, task_sel->idx);
                 }                  }
                 task16 = 0;                  task16 = 0;
Line 223  task_switch(selector_t *task_sel, task_s Line 225  task_switch(selector_t *task_sel, task_s
   
         case CPU_SYSDESC_TYPE_TSS_16:          case CPU_SYSDESC_TYPE_TSS_16:
         case CPU_SYSDESC_TYPE_TSS_BUSY_16:          case CPU_SYSDESC_TYPE_TSS_BUSY_16:
                 if (task_sel->desc.u.seg.limit < TSS_SIZE_16) {                  if (task_sel->desc.u.seg.limit < TSS_16_LIMIT) {
                         EXCEPTION(TS_EXCEPTION, task_sel->idx);                          EXCEPTION(TS_EXCEPTION, task_sel->idx);
                 }                  }
                 task16 = 1;                  task16 = 1;

Removed from v.1.24  
changed lines
  Added in v.1.25


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