Diff for /qemu/user-exec.c between versions 1.1.1.2 and 1.1.1.3

version 1.1.1.2, 2018/04/24 19:17:25 version 1.1.1.3, 2018/04/24 19:34:39
Line 38 Line 38
   
 //#define DEBUG_SIGNAL  //#define DEBUG_SIGNAL
   
 static void exception_action(CPUState *env1)  static void exception_action(CPUArchState *env1)
 {  {
 #if defined(TARGET_I386)  #if defined(TARGET_I386)
     raise_exception_err_env(env1, env1->exception_index, env1->error_code);      raise_exception_err_env(env1, env1->exception_index, env1->error_code);
Line 50  static void exception_action(CPUState *e Line 50  static void exception_action(CPUState *e
 /* exit the current TB from a signal handler. The host registers are  /* exit the current TB from a signal handler. The host registers are
    restored in a state compatible with the CPU emulator     restored in a state compatible with the CPU emulator
  */   */
 void cpu_resume_from_signal(CPUState *env1, void *puc)  void cpu_resume_from_signal(CPUArchState *env1, void *puc)
 {  {
 #ifdef __linux__  #ifdef __linux__
     struct ucontext *uc = puc;      struct ucontext *uc = puc;
Line 82  void cpu_resume_from_signal(CPUState *en Line 82  void cpu_resume_from_signal(CPUState *en
    the effective address of the memory exception. 'is_write' is 1 if a     the effective address of the memory exception. 'is_write' is 1 if a
    write caused the exception and otherwise 0'. 'old_set' is the     write caused the exception and otherwise 0'. 'old_set' is the
    signal set which should be restored */     signal set which should be restored */
 static inline int handle_cpu_signal(unsigned long pc, unsigned long address,  static inline int handle_cpu_signal(uintptr_t pc, unsigned long address,
                                     int is_write, sigset_t *old_set,                                      int is_write, sigset_t *old_set,
                                     void *puc)                                      void *puc)
 {  {
Line 97  static inline int handle_cpu_signal(unsi Line 97  static inline int handle_cpu_signal(unsi
                 pc, address, is_write, *(unsigned long *)old_set);                  pc, address, is_write, *(unsigned long *)old_set);
 #endif  #endif
     /* XXX: locking issue */      /* XXX: locking issue */
     if (is_write && page_unprotect(h2g(address), pc, puc)) {      if (is_write && h2g_valid(address)
           && page_unprotect(h2g(address), pc, puc)) {
         return 1;          return 1;
     }      }
   

Removed from v.1.1.1.2  
changed lines
  Added in v.1.1.1.3


unix.superglobalmegacorp.com