include/gdb:
authorJoern Rennecke <joern.rennecke@embecosm.com>
Wed, 15 Oct 2003 12:30:47 +0000 (12:30 +0000)
committerJoern Rennecke <joern.rennecke@embecosm.com>
Wed, 15 Oct 2003 12:30:47 +0000 (12:30 +0000)
        * callback.h (struct host_callback_struct): New members ftruncate
        and truncate.
gdb:
sim/common:
        * callback.c (os_ftruncate, os_truncate): New functions.
        (default_callback): Initialize ftruncate and truncate members.
sim/sh:
        * syscall.h (SYS_truncate, SYS_ftruncate): Define.
        * interp.c (trap): Add support for SYS_ftruncate and SYS_truncate.

sim/common/ChangeLog
sim/common/callback.c
sim/sh/ChangeLog
sim/sh/interp.c
sim/sh/syscall.h

index ca6d384a85f5266fb10b94ff82fbdeeb5dd2d5ca..be39aba48d46a304db616b88fc0b92b289b4bcf9 100644 (file)
@@ -1,3 +1,8 @@
+2003-10-15  J"orn Rennecke <joern.rennecke@superh.com>
+
+       * callback.c (os_ftruncate, os_truncate): New functions.
+       (default_callback): Initialize ftruncate and truncate members.
+
 2003-09-08  Dave Brolley  <brolley@redhat.com>
 
        On behalf of Doug Evans <dje@sebabeach.org>
index db0fff68e806c81d16fa69c028239a2b418e15fc..b22548182b5c70c89d0e29621b9b3318bfaa2a13 100644 (file)
@@ -399,6 +399,30 @@ os_fstat (p, fd, buf)
   return wrap (p, fstat (fdmap (p, fd), buf));
 }
 
+static int 
+os_ftruncate (p, fd, len)
+     host_callback *p;
+     int fd;
+     long len;
+{
+  int result;
+
+  result = fdbad (p, fd);
+  if (result)
+    return result;
+  result = wrap (p, ftruncate (fdmap (p, fd), len));
+  return result;
+}
+
+static int
+os_truncate (p, file, len)
+     host_callback *p;
+     const char *file;
+     long len;
+{
+  return wrap (p, stat (file, len));
+}
+
 static int
 os_shutdown (p)
      host_callback *p;
@@ -538,6 +562,9 @@ host_callback default_callback =
   os_stat,
   os_fstat,
 
+  os_ftruncate,
+  os_truncate,
+
   os_poll_quit,
 
   os_shutdown,
index 7ab1394aef30268566fb7ac83d855950c127d592..2b6cf4353de7e55d5d6c2b2c11700d2650338c05 100644 (file)
@@ -1,3 +1,8 @@
+2003-10-15  J"orn Rennecke <joern.rennecke@superh.com>
+
+       * syscall.h (SYS_truncate, SYS_ftruncate): Define.
+       * interp.c (trap): Add support for SYS_ftruncate and SYS_truncate.
+
 2003-08-11  Shrinivas Atre  <shrinivasa@KPITCummins.com>       
        * sim/sh/gencode.c ( tab[] ): Addition of MAC.L handler and 
        correction for MAC.W handler
index 91899f400e998f29591dc8a9175a48cd93167a71..711df1eb485fbc213174158f87b2e17133f1e3a7 100644 (file)
@@ -1153,6 +1153,17 @@ trap (i, regs, insn_ptr, memory, maskl, maskw, endianw)
          case SYS_time:
            regs[0] = get_now ();
            break;
+         case SYS_ftruncate:
+           regs[0] = callback->ftruncate (callback, regs[5], regs[6]);
+           break;
+         case SYS_truncate:
+           {
+             int len = strswaplen (regs[5]);
+             strnswap (regs[5], len);
+             regs[0] = callback->truncate (callback, ptr (regs[5]), regs[6]);
+             strnswap (regs[5], len);
+             break;
+           }
          default:
            regs[0] = -1;
            break;
index 9b818f9392783effd4c626c0eefc5a664dd121e7..aebce2ce26d92976a0b9ee316ff761ad2db1c869 100644 (file)
@@ -27,6 +27,8 @@
 #define        SYS_stat        38
 #define        SYS_pipe        42
 #define        SYS_execve      59
+#define        SYS_truncate    129
+#define        SYS_ftruncate   130
 #define        SYS_argc        172
 #define        SYS_argnlen     173
 #define        SYS_argn        174