Hi!
> Added SPARC support for tests:
>  * rt_sigaction01, rt_sigaction02, rt_sigaction03
>  * rt_sigprocmask01
>  * rt_sigsuspend01
> 
> Author: Jose E. Marchesi <jose.march...@oracle.com>
> Co-author: Stanislav Kholmanskikh <stanislav.kholmansk...@oracle.com>
> 
> Signed-off-by: Stanislav Kholmanskikh <stanislav.kholmansk...@oracle.com>
> ---
>  include/ltp_signal.h                               |   39 
> +++++++++++++++++++-
>  .../kernel/syscalls/rt_sigaction/rt_sigaction01.c  |   32 ++++++++++++++---
>  .../kernel/syscalls/rt_sigaction/rt_sigaction02.c  |   13 ++++++-
>  .../kernel/syscalls/rt_sigaction/rt_sigaction03.c  |   28 ++++++++++++++
>  .../syscalls/rt_sigprocmask/rt_sigprocmask01.c     |   24 +++++++++++-
>  .../syscalls/rt_sigsuspend/rt_sigsuspend01.c       |   24 ++++++++++--
>  6 files changed, 147 insertions(+), 13 deletions(-)
> 
> diff --git a/include/ltp_signal.h b/include/ltp_signal.h
> index e6fb2e0..c050894 100644
> --- a/include/ltp_signal.h
> +++ b/include/ltp_signal.h
> @@ -1,6 +1,7 @@
>  /*
>   * Copyright (c) 2009 Cisco Systems, Inc.  All Rights Reserved.
>   * Copyright (c) 2009 FUJITSU LIMITED.  All Rights Reserved.
> + * Copyright (c) 2014 Oracle and/or its affiliates. All Rights Reserved.
>   *
>   * This program is free software; you can redistribute it and/or modify it
>   * under the terms of version 2 of the GNU General Public License as
> @@ -77,6 +78,42 @@
>  #define HAVE_SA_RESTORER
>  #define SA_RESTORER  0x04000000
>  
> +#endif /* __x86_64__ */
> +
> +#ifdef __sparc__
> +#if defined __arch64__ || defined __sparcv9
> +
> +/*
> + * From glibc/sysdeps/unix/sysv/linux/sparc/sparc64/sigaction.c
> + */
> +
> +static void __rt_sigreturn_stub(void)
> +{
> +     __asm__ ("mov %0, %%g1\n\t"
> +             "ta  0x6d\n\t"
> +             : /* no outputs */
> +             : "i" (__NR_rt_sigreturn));
> +}
> +
> +#else /* sparc32 */
> +
> +/*
> + * From glibc/sysdeps/unix/sysv/linux/sparc/sparc32/sigaction.c
> + */
> +
> +static void __sigreturn_stub(void)
> +{
> +     __asm__ ("mov %0, %%g1\n\t"
> +             "ta  0x10\n\t"
> +             : /* no outputs */
> +             : "i" (__NR_sigreturn));
> +}
> +
> +#endif
> +#endif /* __sparc__ */

Do you care to elaborate what are these used for? I can see that you
pass and addres to them to the sparc variant of the rt_sigaction
syscalls below however a line or two about why we do this in the commit
message wouldn't hurt.

> +#if defined __x86_64__ || defined __sparc__
> +
>  struct kernel_sigaction {
>       __sighandler_t k_sa_handler;
>       unsigned long sa_flags;
> @@ -118,7 +155,7 @@ static inline int sig_initial(int sig)
>  
>  }
>  
> -#endif /* __x86_64__ */
> +#endif /* __x86_64__ || __sparc__*/
>  
>  #endif /* LTP_RT_SIG_TEST */
>  
> diff --git a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c 
> b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c
> index 8f18394..2f8020e 100644
> --- a/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c
> +++ b/testcases/kernel/syscalls/rt_sigaction/rt_sigaction01.c
> @@ -1,5 +1,6 @@
>  
> /******************************************************************************/
>  /* Copyright (c) Crackerjack Project., 2007                                  
>  */
> +/* Copyright (c) 2014 Oracle and/or its affiliates. All Rights Reserved.     
>  */
>  /*                                                                           
>  */
>  /* This program is free software;  you can redistribute it and/or modify     
>  */
>  /* it under the terms of the GNU General Public License as published by      
>  */
> @@ -127,21 +128,42 @@ void handler(int sig)
>  
>  int set_handler(int sig, int sig_to_mask, int mask_flags)
>  {
> -#ifdef __x86_64__
> +#ifdef __sparc__
> +     struct sigaction sa;
> +     struct kernel_sigaction kact, koact;
> +# ifdef __arch64__
> +     unsigned long stub = ((unsigned long) &__rt_sigreturn_stub) - 8;
> +# else
> +     unsigned long stub = ((unsigned long) &__sigreturn_stub) - 8;
> +# endif

These ifdefs are repeated in the lines below over and over, can we put
them in a common header instead?

-- 
Cyril Hrubis
chru...@suse.cz

------------------------------------------------------------------------------
"Accelerate Dev Cycles with Automated Cross-Browser Testing - For FREE
Instantly run your Selenium tests across 300+ browser/OS combos.
Get unparalleled scalability from the best Selenium testing platform available
Simple to use. Nothing to install. Get started now for free."
http://p.sf.net/sfu/SauceLabs
_______________________________________________
Ltp-list mailing list
Ltp-list@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to