Diff for /np2/i386c/ia32/cpu.h between versions 1.1 and 1.2

version 1.1, 2003/12/08 00:55:31 version 1.2, 2003/12/11 15:06:50
Line 119  enum { Line 119  enum {
         CPU_SEGREG_NUM          CPU_SEGREG_NUM
 };  };
   
 #if 1           // パックしないとだめ?  
   
 typedef struct {  typedef struct {
         REG32           reg[CPU_REG_NUM];          REG32           reg[CPU_REG_NUM];
         WORD            sreg[CPU_SEGREG_NUM];          WORD            sreg[CPU_SEGREG_NUM];
Line 181  typedef struct { Line 179  typedef struct {
         DWORD           seg_base;          DWORD           seg_base;
 } CPU_INST;  } CPU_INST;
   
 #else  
   
 typedef struct {  
         REG32           reg[CPU_REG_NUM];  
         WORD            sreg[CPU_SEGREG_NUM];  
   
         REG32           eflags;  
   
         REG32           eip;  
         REG32           prev_eip;  
 } __attribute__((packed)) CPU_REGS;  
   
 typedef struct {  
         WORD            gdtr_limit;  
         DWORD           gdtr_base;  
         WORD            idtr_limit;  
         DWORD           idtr_base;  
   
         WORD            ldtr;  
         WORD            tr;  
         descriptor_t    ldtr_desc;  
         descriptor_t    tr_desc;  
   
         DWORD           cr0;  
         DWORD           cr1;  
         DWORD           cr2;  
         DWORD           cr3;  
         DWORD           cr4;  
         DWORD           mxcsr;  
 } __attribute__((packed)) CPU_SYSREGS;  
   
 typedef struct {  
         descriptor_t    sreg[CPU_SEGREG_NUM];  
   
         DWORD           inport;  
         DWORD           ovflag;  
   
         BYTE            ss_32;  
         BYTE            trap;  
         BYTE            cpu_type;  
         BYTE            _dummy;  
   
         BYTE            cpl;  
         BYTE            protected_mode;  
         BYTE            paging;  
         BYTE            vm86;  
   
         DWORD           ioaddr;         /* I/O bitmap linear address */  
         WORD            iolimit;        /* I/O bitmap count */  
   
         BYTE            nerror;         /* double fault/ triple fault */  
         BYTE            prev_exception;  
 } __attribute__((packed)) CPU_STAT;  
   
 typedef struct {  
         BYTE            op_32;  
         BYTE            as_32;  
         BYTE            rep_used;  
         BYTE            seg_used;  
         DWORD           seg_base;  
 } __attribute__((packed)) CPU_INST;  
   
 #endif  
   
 extern CPU_REGS         cpu_regs;  extern CPU_REGS         cpu_regs;
 extern CPU_SYSREGS      cpu_sysregs;  extern CPU_SYSREGS      cpu_sysregs;
 extern CPU_STAT         cpu_stat;  extern CPU_STAT         cpu_stat;
Line 504  void set_eflags(DWORD new_flags, DWORD m Line 438  void set_eflags(DWORD new_flags, DWORD m
 #define CPU_CR4_OSXMMEXCPT      (1 << 10)  #define CPU_CR4_OSXMMEXCPT      (1 << 10)
   
   
 void ia32_initialize(void);  void ia32_init(void);
   
 void ia32reset(void);  void ia32reset(void);
 void ia32(void);  void ia32(void);

Removed from v.1.1  
changed lines
  Added in v.1.2


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