[BACK]Return to compat_sigaltstack.h CVS log [TXT][DIR] Up to [cvs.NetBSD.org] / src / sys / compat / common

Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.

Diff for /src/sys/compat/common/compat_sigaltstack.h between version 1.1 and 1.2

version 1.1, 2007/06/03 14:59:46 version 1.2, 2007/06/16 20:04:27
Line 15 
Line 15 
 #define COMPAT_SET_PTR(p, v)    ((p) = (v))  #define COMPAT_SET_PTR(p, v)    ((p) = (v))
 #endif  #endif
   
 #define compat_sigaltstack(uap, compat_ss) do { \  #define compat_sigaltstack(uap, compat_ss, ss_onstack, ss_disable) do { \
         struct compat_ss css; \          struct compat_ss css; \
         struct sigaltstack nss, oss; \          struct sigaltstack nss, oss; \
         int error; \          int error; \
Line 24 
Line 24 
                 error = copyin(SCARG_COMPAT_PTR(uap, nss), &css, sizeof css); \                  error = copyin(SCARG_COMPAT_PTR(uap, nss), &css, sizeof css); \
                 if (error) \                  if (error) \
                         return error; \                          return error; \
                  nss.ss_sp = COMPAT_GET_PTR(css.ss_sp); \                  nss.ss_sp = COMPAT_GET_PTR(css.ss_sp); \
                  nss.ss_size = css.ss_size; \                  nss.ss_size = css.ss_size; \
                  nss.ss_flags = css.ss_flags; \                  if (ss_onstack == SS_ONSTACK && ss_disable == SS_DISABLE) \
                           nss.ss_flags = css.ss_flags; \
                   else \
                           nss.ss_flags = \
                               (css.ss_flags & ss_onstack ? SS_ONSTACK : 0) \
                               | (css.ss_flags & ss_disable ? SS_DISABLE : 0); \
         } \          } \
 \  \
         error = sigaltstack1(l, SCARG_COMPAT_PTR(uap, nss) ? &nss : 0, \          error = sigaltstack1(l, SCARG_COMPAT_PTR(uap, nss) ? &nss : 0, \
Line 37 
Line 42 
         if (SCARG_COMPAT_PTR(uap, oss)) { \          if (SCARG_COMPAT_PTR(uap, oss)) { \
                 COMPAT_SET_PTR(css.ss_sp, oss.ss_sp); \                  COMPAT_SET_PTR(css.ss_sp, oss.ss_sp); \
                 css.ss_size = oss.ss_size; \                  css.ss_size = oss.ss_size; \
                 css.ss_flags = oss.ss_flags; \                  if (ss_onstack == SS_ONSTACK && ss_disable == SS_DISABLE) \
                 error = copyout(&css, SCARG_COMPAT_PTR(uap, oss), sizeof(css)); \                          css.ss_flags = oss.ss_flags; \
                   else \
                           css.ss_flags = \
                               (oss.ss_flags & SS_ONSTACK ? ss_onstack : 0) \
                               | (oss.ss_flags & SS_DISABLE ? ss_disable : 0); \
                   error = copyout(&css, SCARG_COMPAT_PTR(uap, oss), sizeof(css));\
                 if (error) \                  if (error) \
                         return (error); \                          return (error); \
         } \          } \

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

CVSweb <webmaster@jp.NetBSD.org>