On 05/12/2014 05:08 PM, chru...@suse.cz wrote:
> Hi!

Hi! Thank you for review.

>> 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.

Ok, I will add the description.

>
>> +#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?
>

Do you mean just 'these ifdefs':
+# ifdef __arch64__
+       unsigned long stub = ((unsigned long) &__rt_sigreturn_stub) - 8;
+# else
+       unsigned long stub = ((unsigned long) &__sigreturn_stub) - 8;
+# endif

?

------------------------------------------------------------------------------
"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