change log for rtems (2011-12-09)

rtems-vc at rtems.org rtems-vc at rtems.org
Fri Dec 9 07:23:49 UTC 2011


 *ccj* (on branch rtems-4-10-branch):
2011-12-09      Chris Johns <chrisj at rtems.org>

        PR 1968/filesystem
        * libfs/src/rfs/rtems-rfs-file.c: Fix to the seek bug where a seek
        to 0 after reading the end of the file did not point to the
        correct block.
        * libfs/src/rfs/rtems-rfs-rtems.h,
        libfs/src/rfs/rtems-rfs-trace.c: Fix the trace flags. Used to fix
        the bug.

M 1.2346.2.111  cpukit/ChangeLog
M 1.4.2.4  cpukit/libfs/src/rfs/rtems-rfs-file.c
M 1.2.2.1  cpukit/libfs/src/rfs/rtems-rfs-rtems.h
M 1.2.2.2  cpukit/libfs/src/rfs/rtems-rfs-trace.c

diff -u rtems/cpukit/ChangeLog:1.2346.2.110 rtems/cpukit/ChangeLog:1.2346.2.111
--- rtems/cpukit/ChangeLog:1.2346.2.110	Wed Dec  7 00:51:41 2011
+++ rtems/cpukit/ChangeLog	Fri Dec  9 01:12:27 2011
@@ -1,3 +1,13 @@
+2011-12-09	Chris Johns <chrisj at rtems.org>
+
+	PR 1968/filesystem
+	* libfs/src/rfs/rtems-rfs-file.c: Fix to the seek bug where a seek
+	to 0 after reading the end of the file did not point to the
+	correct block.
+	* libfs/src/rfs/rtems-rfs-rtems.h,
+	libfs/src/rfs/rtems-rfs-trace.c: Fix the trace flags. Used to fix
+	the bug.
+	
 2011-12-07	Ralf Corsépius <ralf.corsepius at rtems.org>
 
 	PR 1983/networking

diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-file.c:1.4.2.3 rtems/cpukit/libfs/src/rfs/rtems-rfs-file.c:1.4.2.4
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-file.c:1.4.2.3	Mon Mar 14 00:07:18 2011
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-file.c	Fri Dec  9 01:12:27 2011
@@ -424,7 +424,44 @@
    */
   if (pos < rtems_rfs_file_shared_get_size (rtems_rfs_file_fs (handle),
                                             handle->shared))
+  {
     rtems_rfs_file_set_bpos (handle, pos);
+    
+    /*
+     * If the file has a block check if it maps to the current position and it
+     * does not release it. That will force us to get the block at the new
+     * position when the I/O starts.
+     */
+    if (rtems_rfs_buffer_handle_has_block (&handle->buffer))
+    {
+      rtems_rfs_buffer_block block;
+      int                    rc;
+      
+      rc = rtems_rfs_block_map_find (rtems_rfs_file_fs (handle),
+                                     rtems_rfs_file_map (handle),
+                                     rtems_rfs_file_bpos (handle),
+                                     &block);
+      if (rc > 0)
+        return rc;
+      if (rtems_rfs_buffer_bnum (&handle->buffer) != block)
+      {        
+        rc = rtems_rfs_buffer_handle_release (rtems_rfs_file_fs (handle),
+                                              rtems_rfs_file_buffer (handle));
+        if (rc > 0)
+          return rc;
+      }
+    }
+  }
+  else
+  {
+    /*
+     * The seek is outside the current file so release any buffer. A write will
+     * extend the file.
+     */
+    int rc = rtems_rfs_file_io_release (handle);
+    if (rc > 0)
+      return rc;
+  }
   
   *new_pos = pos;
   return 0;
@@ -441,23 +478,25 @@
   if (rtems_rfs_trace (RTEMS_RFS_TRACE_FILE_IO))
     printf ("rtems-rfs: file-set-size: size=%" PRIu64 "\n", new_size);
 
+  size = rtems_rfs_file_size (handle);
+  
   /*
-   * Short cut for the common truncate on open call.
+   * If the file is same size do nothing else grow or shrink it ?
+   *
+   * If the file does not change size do not update the times.
    */
-  if (new_size == 0)
+  if (size != new_size)
   {
-    rc = rtems_rfs_block_map_free_all (rtems_rfs_file_fs (handle), map);
-    if (rc > 0)
-      return rc;
-  }
-  else
-  {
-    size = rtems_rfs_file_size (handle);
-  
     /*
-     * If the file is same size do nothing else grow or shrink it ?
+     * Short cut for the common truncate on open call.
      */
-    if (size != new_size)
+    if (new_size == 0)
+    {
+      rc = rtems_rfs_block_map_free_all (rtems_rfs_file_fs (handle), map);
+      if (rc > 0)
+        return rc;
+    }
+    else
     {
       if (size < new_size)
       {
@@ -567,13 +606,13 @@
                                          rtems_rfs_file_bpos (handle));
       }
     }
-  }
 
-  handle->shared->size.count  = rtems_rfs_block_map_count (map);
-  handle->shared->size.offset = rtems_rfs_block_map_size_offset (map);
+    handle->shared->size.count  = rtems_rfs_block_map_count (map);
+    handle->shared->size.offset = rtems_rfs_block_map_size_offset (map);
 
-  if (rtems_rfs_file_update_mtime (handle))
-    handle->shared->mtime = time (NULL);
+    if (rtems_rfs_file_update_mtime (handle))
+      handle->shared->mtime = time (NULL);
+  }
   
   return 0;
 }

diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems.h:1.2 rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems.h:1.2.2.1
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems.h:1.2	Mon Apr 12 00:29:25 2010
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-rtems.h	Fri Dec  9 01:12:27 2011
@@ -25,12 +25,12 @@
 #include <errno.h>
 
 /**
- * RTEMS RFS RTEMS Error Enable. Set to 1 to printing of errors. Default is off.
+ * RTEMS RFS RTEMS Error Enable. Set to 1 for printing of errors. Default is off.
  */
 #define RTEMS_RFS_RTEMS_ERROR 0
 
 /**
- * RTEMS RFS RTEMS Trace Enable. Set to 1 to printing of errors. Default is off.
+ * RTEMS RFS RTEMS Trace Enable. Set to 1 for printing of errors. Default is off.
  */
 #define RTEMS_RFS_RTEMS_TRACE 0
 
@@ -72,13 +72,14 @@
 #define RTEMS_RFS_RTEMS_DEBUG_READLINK      (1 << 9)
 #define RTEMS_RFS_RTEMS_DEBUG_FCHMOD        (1 << 10)
 #define RTEMS_RFS_RTEMS_DEBUG_STAT          (1 << 11)
-#define RTEMS_RFS_RTEMS_DEBUG_DIR_RMNOD     (1 << 12)
-#define RTEMS_RFS_RTEMS_DEBUG_FILE_OPEN     (1 << 13)
-#define RTEMS_RFS_RTEMS_DEBUG_FILE_CLOSE    (1 << 14)
-#define RTEMS_RFS_RTEMS_DEBUG_FILE_READ     (1 << 15)
-#define RTEMS_RFS_RTEMS_DEBUG_FILE_WRITE    (1 << 16)
-#define RTEMS_RFS_RTEMS_DEBUG_FILE_LSEEK    (1 << 17)
-#define RTEMS_RFS_RTEMS_DEBUG_FILE_FTRUNC   (1 << 18)
+#define RTEMS_RFS_RTEMS_DEBUG_RENAME        (1 << 12)
+#define RTEMS_RFS_RTEMS_DEBUG_DIR_RMNOD     (1 << 13)
+#define RTEMS_RFS_RTEMS_DEBUG_FILE_OPEN     (1 << 14)
+#define RTEMS_RFS_RTEMS_DEBUG_FILE_CLOSE    (1 << 15)
+#define RTEMS_RFS_RTEMS_DEBUG_FILE_READ     (1 << 16)
+#define RTEMS_RFS_RTEMS_DEBUG_FILE_WRITE    (1 << 17)
+#define RTEMS_RFS_RTEMS_DEBUG_FILE_LSEEK    (1 << 18)
+#define RTEMS_RFS_RTEMS_DEBUG_FILE_FTRUNC   (1 << 19)
 
 /**
  * Call to check if this part is bring traced. If RTEMS_RFS_RTEMS_TRACE is

diff -u rtems/cpukit/libfs/src/rfs/rtems-rfs-trace.c:1.2.2.1 rtems/cpukit/libfs/src/rfs/rtems-rfs-trace.c:1.2.2.2
--- rtems/cpukit/libfs/src/rfs/rtems-rfs-trace.c:1.2.2.1	Mon Oct 11 16:12:48 2010
+++ rtems/cpukit/libfs/src/rfs/rtems-rfs-trace.c	Fri Dec  9 01:12:27 2011
@@ -92,7 +92,8 @@
     "symlink-read",
     "file-open",
     "file-close",
-    "file-io"
+    "file-io",
+    "file-set"
   };
 
   rtems_rfs_trace_mask set_value = 0;
@@ -140,9 +141,9 @@
           if (strcmp (argv[arg], table[t]) == 0)
           {
             if (set)
-              set_value = 1 << t;
+              set_value = 1ULL << t;
             else
-              clear_value = 1 << t;
+              clear_value = 1ULL << t;
             break;
           }
         }


 *ralf*:
2011-12-09	Ralf Corsépius <ralf.corsepius at rtems.org>

	* libchip/network/if_fxp.c: Add missing initializer.

M  1.582  c/src/ChangeLog
M   1.23  c/src/libchip/network/if_fxp.c

diff -u rtems/c/src/ChangeLog:1.581 rtems/c/src/ChangeLog:1.582
--- rtems/c/src/ChangeLog:1.581	Thu Dec  8 15:42:36 2011
+++ rtems/c/src/ChangeLog	Fri Dec  9 01:16:47 2011
@@ -1,3 +1,7 @@
+2011-12-09	Ralf Corsépius <ralf.corsepius at rtems.org>
+
+	* libchip/network/if_fxp.c: Add missing initializer.
+
 2011-12-08	Joel Sherrill <joel.sherrill at oarcorp.com>
 
 	PR 1589/build

diff -u rtems/c/src/libchip/network/if_fxp.c:1.22 rtems/c/src/libchip/network/if_fxp.c:1.23
--- rtems/c/src/libchip/network/if_fxp.c:1.22	Sat Sep  6 22:29:35 2008
+++ rtems/c/src/libchip/network/if_fxp.c	Fri Dec  9 01:16:48 2011
@@ -209,7 +209,7 @@
     { 0x1037,		"Intel Pro/100 Ethernet", UNTESTED },
     { 0x1038,		"Intel Pro/100 Ethernet", UNTESTED },
     { 0x103B,		"Intel Pro/100 Ethernet (82801BD PRO/100 VM (LOM))", 0 },
-    { 0,		NULL },
+    { 0,		NULL, 0 }
 };
 
 #if 0


 *ralf*:
2011-12-09	Ralf Corsépius <ralf.corsepius at rtems.org>

	* console/vgacons.c: Add VGACONS_STATIC.
	* console/vgacons.h: Remove VGACONS_STATIC.

M  1.282  c/src/lib/libbsp/i386/pc386/ChangeLog
M    1.2  c/src/lib/libbsp/i386/pc386/console/vgacons.h
M    1.2  c/src/lib/libbsp/i386/pc386/console/vgacons.c

diff -u rtems/c/src/lib/libbsp/i386/pc386/ChangeLog:1.281 rtems/c/src/lib/libbsp/i386/pc386/ChangeLog:1.282
--- rtems/c/src/lib/libbsp/i386/pc386/ChangeLog:1.281	Fri Nov 18 14:11:06 2011
+++ rtems/c/src/lib/libbsp/i386/pc386/ChangeLog	Fri Dec  9 01:20:27 2011
@@ -1,3 +1,8 @@
+2011-12-09	Ralf Corsépius <ralf.corsepius at rtems.org>
+
+	* console/vgacons.c: Add VGACONS_STATIC.
+	* console/vgacons.h: Remove VGACONS_STATIC.
+
 2011-11-18	Jennifer Averett <Jennifer.Averett at OARcorp.com>
 
 	PR 1925

diff -u rtems/c/src/lib/libbsp/i386/pc386/console/vgacons.h:1.1 rtems/c/src/lib/libbsp/i386/pc386/console/vgacons.h:1.2
--- rtems/c/src/lib/libbsp/i386/pc386/console/vgacons.h:1.1	Fri Nov 18 14:11:08 2011
+++ rtems/c/src/lib/libbsp/i386/pc386/console/vgacons.h	Fri Dec  9 01:20:28 2011
@@ -18,8 +18,6 @@
 extern "C" {
 #endif
 
-#define VGACONS_STATIC 
-
 /*
  *  This is the ASCII for "PC" in the upper word and 0386 
  *  in the lower which should be unique enough to

diff -u rtems/c/src/lib/libbsp/i386/pc386/console/vgacons.c:1.1 rtems/c/src/lib/libbsp/i386/pc386/console/vgacons.c:1.2
--- rtems/c/src/lib/libbsp/i386/pc386/console/vgacons.c:1.1	Fri Nov 18 14:11:07 2011
+++ rtems/c/src/lib/libbsp/i386/pc386/console/vgacons.c	Fri Dec  9 01:20:28 2011
@@ -23,6 +23,8 @@
 #include <bsp.h>
 #include <crt.h>
 
+#define VGACONS_STATIC static
+
 static int isr_is_on(const rtems_irq_connect_data *irq)
 {
   return BSP_irq_enabled_at_i8259s(irq->name);



--

Generated by Deluxe Loginfo [http://www.codewiz.org/projects/index.html#loginfo] 2.122 by Bernardo Innocenti <bernie at develer.com>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.rtems.org/pipermail/vc/attachments/20111209/bdd94b5f/attachment.html>


More information about the vc mailing list