* syscall.c (cb_syscall) <case CB_SYS_rename>: New case.
authorHans-Peter Nilsson <hp@axis.com>
Mon, 13 Dec 2004 00:46:05 +0000 (00:46 +0000)
committerHans-Peter Nilsson <hp@axis.com>
Mon, 13 Dec 2004 00:46:05 +0000 (00:46 +0000)
sim/common/ChangeLog
sim/common/syscall.c

index 0213a9c6dac11230ac5b95d4eca53f60c87f4d08..bb491f0e5628a75eae6e3b8110a28ce2db634837 100644 (file)
@@ -2,6 +2,7 @@
 
        * syscall.c (cb_syscall) <case CB_SYS_lstat>: New case.
        * callback.c (os_lstat): New function.
+       (cb_syscall) <case CB_SYS_rename>: New case.
 
 2004-12-08  Hans-Peter Nilsson  <hp@axis.com>
 
index 07521c93c9009e82b110481857f906dd2763b7cd..789aa3ac79af3e52fb9be167fc39ccfb56f3c65f 100644 (file)
@@ -400,6 +400,33 @@ cb_syscall (cb, sc)
       }
       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;