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