sim/common+gdb/include: Support rename syscall in cb_syscall machinery

Andrew Cagney cagney@gnu.org
Sun Dec 12 18:02:00 GMT 2004


Hans-Peter Nilsson wrote:
> The support in sim/common/callback.c was there, but not the
> cb_syscall support.  Will commit as obvious, once the lstat
> patch is in (only for my simplicity and to avoid a [temporary]
> gap in CB_SYS_* numbers; if requested I can commit now).
> Covered by the to-be-submitted CRIS C simulator testsuite.

Ok.

Andrew

> --- callback.h.prev	Tue Dec  7 03:10:00 2004
> +++ callback.h	Tue Dec  7 03:10:13 2004
> @@ -192,6 +192,7 @@ extern host_callback default_callback;
>  
>  /* More standard syscalls.  */
>  #define CB_SYS_lstat    19
> +#define CB_SYS_rename	20
>  

>  /* Struct use to pass and return information necessary to perform a
>     system call.  */
> Index: syscall.c
> ===================================================================
> RCS file: /cvs/src/src/sim/common/syscall.c,v
> retrieving revision 1.3
> diff -c -p -r1.3 syscall.c
> *** syscall.c	10 May 2004 16:18:03 -0000	1.3
> --- syscall.c	7 Dec 2004 02:13:07 -0000
> *************** cb_syscall (cb, sc)
> *** 373,378 ****
> --- 400,432 ----
>         }
>         break;
>   
> +     case CB_SYS_rename :
> +       {
> + 	char *path1, *path2;
> + 
> + 	errcode = get_path (cb, sc, sc->arg1, &path1);
> + 	if (errcode != 0)
> + 	  {
> + 	    result = -1;
> + 	    errcode = EFAULT;
> + 	    goto FinishSyscall;
> + 	  }
> + 	errcode = get_path (cb, sc, sc->arg2, &path2);
> + 	if (errcode != 0)
> + 	  {
> + 	    result = -1;
> + 	    errcode = EFAULT;
> + 	    free (path1);
> + 	    goto FinishSyscall;
> + 	  }
> + 	result = (*cb->rename) (cb, path1, path2);
> + 	free (path1);
> + 	free (path2);
> + 	if (result < 0)
> + 	  goto ErrorFinish;
> +       }
> +       break;
> + 
>       case CB_SYS_stat :
>         {
>   	char *path,*buf;
> 
> brgds, H-P
> 



More information about the Gdb-patches mailing list