Author: dchagin
Date: Sun Jun  5 07:34:10 2016
New Revision: 301428
URL: https://svnweb.freebsd.org/changeset/base/301428

Log:
  MFC r300415:
  
  Add macro to convert errno and use it when appropriate.

Modified:
  stable/10/sys/amd64/amd64/vm_machdep.c
  stable/10/sys/i386/i386/vm_machdep.c
  stable/10/sys/powerpc/powerpc/exec_machdep.c
  stable/10/sys/sparc64/sparc64/vm_machdep.c
  stable/10/sys/sys/sysent.h
Directory Properties:
  stable/10/   (props changed)

Modified: stable/10/sys/amd64/amd64/vm_machdep.c
==============================================================================
--- stable/10/sys/amd64/amd64/vm_machdep.c      Sun Jun  5 06:37:54 2016        
(r301427)
+++ stable/10/sys/amd64/amd64/vm_machdep.c      Sun Jun  5 07:34:10 2016        
(r301428)
@@ -414,13 +414,7 @@ cpu_set_syscall_retval(struct thread *td
                break;
 
        default:
-               if (td->td_proc->p_sysent->sv_errsize) {
-                       if (error >= td->td_proc->p_sysent->sv_errsize)
-                               error = -1;     /* XXX */
-                       else
-                               error = td->td_proc->p_sysent->sv_errtbl[error];
-               }
-               td->td_frame->tf_rax = error;
+               td->td_frame->tf_rax = SV_ABI_ERRNO(td->td_proc, error);
                td->td_frame->tf_rflags |= PSL_C;
                break;
        }

Modified: stable/10/sys/i386/i386/vm_machdep.c
==============================================================================
--- stable/10/sys/i386/i386/vm_machdep.c        Sun Jun  5 06:37:54 2016        
(r301427)
+++ stable/10/sys/i386/i386/vm_machdep.c        Sun Jun  5 07:34:10 2016        
(r301428)
@@ -486,13 +486,7 @@ cpu_set_syscall_retval(struct thread *td
                break;
 
        default:
-               if (td->td_proc->p_sysent->sv_errsize) {
-                       if (error >= td->td_proc->p_sysent->sv_errsize)
-                               error = -1;     /* XXX */
-                       else
-                               error = td->td_proc->p_sysent->sv_errtbl[error];
-               }
-               td->td_frame->tf_eax = error;
+               td->td_frame->tf_eax = SV_ABI_ERRNO(td->td_proc, error);
                td->td_frame->tf_eflags |= PSL_C;
                break;
        }

Modified: stable/10/sys/powerpc/powerpc/exec_machdep.c
==============================================================================
--- stable/10/sys/powerpc/powerpc/exec_machdep.c        Sun Jun  5 06:37:54 
2016        (r301427)
+++ stable/10/sys/powerpc/powerpc/exec_machdep.c        Sun Jun  5 07:34:10 
2016        (r301428)
@@ -901,11 +901,7 @@ cpu_set_syscall_retval(struct thread *td
                tf->srr0 -= 4;
                break;
        default:
-               if (p->p_sysent->sv_errsize) {
-                       error = (error < p->p_sysent->sv_errsize) ?
-                           p->p_sysent->sv_errtbl[error] : -1;
-               }
-               tf->fixreg[FIRSTARG] = error;
+               tf->fixreg[FIRSTARG] = SV_ABI_ERRNO(p, error);
                tf->cr |= 0x10000000;           /* Set summary overflow */
                break;
        }

Modified: stable/10/sys/sparc64/sparc64/vm_machdep.c
==============================================================================
--- stable/10/sys/sparc64/sparc64/vm_machdep.c  Sun Jun  5 06:37:54 2016        
(r301427)
+++ stable/10/sys/sparc64/sparc64/vm_machdep.c  Sun Jun  5 07:34:10 2016        
(r301428)
@@ -196,13 +196,7 @@ cpu_set_syscall_retval(struct thread *td
                break;
 
        default:
-               if (td->td_proc->p_sysent->sv_errsize) {
-                       if (error >= td->td_proc->p_sysent->sv_errsize)
-                               error = -1;     /* XXX */
-                       else
-                               error = td->td_proc->p_sysent->sv_errtbl[error];
-               }
-               td->td_frame->tf_out[0] = error;
+               td->td_frame->tf_out[0] = SV_ABI_ERRNO(td->td_proc, error);
                td->td_frame->tf_tstate |= TSTATE_XCC_C;
                break;
        }

Modified: stable/10/sys/sys/sysent.h
==============================================================================
--- stable/10/sys/sys/sysent.h  Sun Jun  5 06:37:54 2016        (r301427)
+++ stable/10/sys/sys/sysent.h  Sun Jun  5 07:34:10 2016        (r301428)
@@ -141,6 +141,8 @@ struct sysentvec {
 #define        SV_SHP          0x010000
 
 #define        SV_ABI_MASK     0xff
+#define        SV_ABI_ERRNO(p, e)      ((p)->p_sysent->sv_errsize <= 0 ? e :   
\
+       ((e) >= (p)->p_sysent->sv_errsize ? -1 : (p)->p_sysent->sv_errtbl[e]))
 #define        SV_PROC_FLAG(p, x)      ((p)->p_sysent->sv_flags & (x))
 #define        SV_PROC_ABI(p)          ((p)->p_sysent->sv_flags & SV_ABI_MASK)
 #define        SV_CURPROC_FLAG(x)      SV_PROC_FLAG(curproc, x)
_______________________________________________
svn-src-stable-10@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-stable-10
To unsubscribe, send any mail to "svn-src-stable-10-unsubscr...@freebsd.org"

Reply via email to