Cai,

On Mon, 2009-08-24 at 02:37 +0800, CAI Qian wrote:
> Old glibc (like in RHEL4) has modify_ldt_ldt_s instead of user_desc
> structure defined in asm/ldt.h. It should follow the example of
> modify_ldt test cases to choose the feasible structure based on
> build-time checking. Also, a new header file has been created to handle
> code duplication.
> 
> Signed-off-by: CAI Qian <[email protected]>
> 
>  .../syscalls/set_thread_area/set_thread_area.h     |   32 
> ++++++++++++++++++++
>  .../syscalls/set_thread_area/set_thread_area01.c   |   13 +-------
>  .../syscalls/set_thread_area/set_thread_area02.c   |   14 +-------
>  3 files changed, 36 insertions(+), 23 deletions(-)
> 
> diff --git a/testcases/kernel/syscalls/set_thread_area/set_thread_area.h 
> b/testcases/kernel/syscalls/set_thread_area/set_thread_area.h
> new file mode 100644
> index 0000000..66e9278
> --- /dev/null
> +++ b/testcases/kernel/syscalls/set_thread_area/set_thread_area.h
> @@ -0,0 +1,32 @@
> +#include <stdio.h>
> +#include <errno.h>
> +#include <linux/unistd.h>
> +
> +/* Harness Specific Include Files. */
> +#include "test.h"
> +#include "usctest.h"
> +#include "linux_syscall_numbers.h"

Do not include these 3 headers into some other header file. Instead,
keep them inside the main *.c file only. Let only the set_thread*
specific stuff be inside this header.

> +#include "config.h"
> +
> +#if defined HAVE_ASM_LDT_H
> +#include <asm/ldt.h>
> +
> +#if defined HAVE_STRUCT_USER_DESC
> +typedef struct user_desc thread_area_s;
> +#elif defined HAVE_STRUCT_MODIFY_LDT_LDT_S
> +typedef struct modify_ldt_ldt_s thread_area_s;
> +#else
> +typedef struct user_desc {
> +     unsigned int entry_number;
> +     unsigned long int base_addr;
> +     unsigned int limit;
> +     unsigned int seg_32bit:1;
> +     unsigned int contents:2;
> +     unsigned int read_exec_only:1;
> +     unsigned int limit_in_pages:1;
> +     unsigned int seg_not_present:1;
> +     unsigned int useable:1;
> +     unsigned int empty:25;
> +} thread_area_s;
> +#endif /* HAVE_STRUCT_USER_DESC */
> +#endif /* HAVE_ASM_LDT_H */
> diff --git a/testcases/kernel/syscalls/set_thread_area/set_thread_area01.c 
> b/testcases/kernel/syscalls/set_thread_area/set_thread_area01.c
> index 6f10c05..a6aacf8 100644
> --- a/testcases/kernel/syscalls/set_thread_area/set_thread_area01.c
> +++ b/testcases/kernel/syscalls/set_thread_area/set_thread_area01.c
> @@ -48,15 +48,8 @@
>  /* History:     Porting from Crackerjack to LTP is done by                   
>  */
>  /*              Manas Kumar Nayak [email protected]>                       
>  */
>  
> /******************************************************************************/
> -#include <stdio.h>
> -#include <errno.h>
> -#include <linux/unistd.h>
> +#include "set_thread_area.h"
> 
> -/* Harness Specific Include Files. */
> -#include "test.h"
> -#include "usctest.h"
> -#include "linux_syscall_numbers.h"

Keep them here only.

> -#include "config.h"
> 
>  /* Global Variables */
>  char *TCID = "set_thread_area01";  /* Test program identifier.*/
> @@ -64,8 +57,6 @@ int  testno;
>  int  TST_TOTAL = 2;                   /* total number of tests in this file. 
>   */
> 
>  #if defined HAVE_ASM_LDT_H
> -#include <asm/ldt.h>
> -
>  /* Extern Global Variables */
>  extern int Tst_count;           /* counter for tst_xxx routines.         */
>  extern char *TESTDIR;           /* temporary dir created by tst_tmpdir() */
> @@ -124,7 +115,7 @@ void setup() {
> 
>  int main(int ac, char **av) {
>          
> -     struct user_desc u_info;
> +        thread_area_s u_info;
>          int lc;                 /* loop counter */
>          char *msg;              /* message returned from parse_opts */
>       
> diff --git a/testcases/kernel/syscalls/set_thread_area/set_thread_area02.c 
> b/testcases/kernel/syscalls/set_thread_area/set_thread_area02.c
> index 3effebd..1b351c1 100644
> --- a/testcases/kernel/syscalls/set_thread_area/set_thread_area02.c
> +++ b/testcases/kernel/syscalls/set_thread_area/set_thread_area02.c
> @@ -49,15 +49,7 @@
>  /* History:     Porting from Crackerjack to LTP is done by                   
>  */
>  /*              Manas Kumar Nayak [email protected]>                       
>  */
>  
> /******************************************************************************/
> -#include <stdio.h>
> -#include <errno.h>
> -#include <linux/unistd.h>
> -
> -/* Harness Specific Include Files. */
> -#include "test.h"
> -#include "usctest.h"
> -#include "linux_syscall_numbers.h"

Same here.

Regards--
Subrata

> -#include "config.h"
> +#include "set_thread_area.h"
> 
>  /* Global Variables */
>  char *TCID = "set_thread_area_02";  /* Test program identifier.*/
> @@ -65,8 +57,6 @@ int  testno;
>  int  TST_TOTAL = 3;                   /* total number of tests in this file. 
>   */
> 
>  #if defined HAVE_ASM_LDT_H
> -#include <asm/ldt.h>
> -
>  /* Extern Global Variables */
>  extern int Tst_count;           /* counter for tst_xxx routines.         */
>  extern char *TESTDIR;           /* temporary dir created by tst_tmpdir() */
> @@ -125,7 +115,7 @@ void setup() {
> 
>  int main(int ac, char **av) {
>          
> -     struct user_desc u_info;
> +     thread_area_s u_info;
>          int lc;                 /* loop counter */
>          char *msg;              /* message returned from parse_opts */
>       
> 
> ------------------------------------------------------------------------------
> Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
> trial. Simplify your report design, integration and deployment - and focus on 
> what you do best, core application coding. Discover what's new with 
> Crystal Reports now.  http://p.sf.net/sfu/bobj-july
> _______________________________________________
> Ltp-list mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/ltp-list


------------------------------------------------------------------------------
Let Crystal Reports handle the reporting - Free Crystal Reports 2008 30-Day 
trial. Simplify your report design, integration and deployment - and focus on 
what you do best, core application coding. Discover what's new with 
Crystal Reports now.  http://p.sf.net/sfu/bobj-july
_______________________________________________
Ltp-list mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/ltp-list

Reply via email to