Index: rtems-rfs-block.c
===================================================================
RCS file: /usr1/CVS/rtems/cpukit/libfs/src/rfs/rtems-rfs-block.c,v
retrieving revision 1.5
diff -p -u -r1.5 rtems-rfs-block.c
--- rtems-rfs-block.c	15 Jun 2010 13:35:28 -0000	1.5
+++ rtems-rfs-block.c	17 Jun 2010 06:48:14 -0000
@@ -88,13 +88,15 @@ rtems_rfs_block_get_size (rtems_rfs_file
                           rtems_rfs_block_size*  size)
 {
   uint32_t offset;
+  uint64_t block_size;
   if (size->count == 0)
     return 0;
   if (size->offset == 0)
     offset = rtems_rfs_fs_block_size (fs);
   else
     offset = size->offset;
-  return (((uint64_t) (size->count - 1)) * rtems_rfs_fs_block_size (fs)) + offset;
+  block_size = rtems_rfs_fs_block_size (fs);
+  return (((uint64_t) (size->count - 1)) * block_size) + offset;
 }
 
 int
Index: rtems-rfs-file-system.c
===================================================================
RCS file: /usr1/CVS/rtems/cpukit/libfs/src/rfs/rtems-rfs-file-system.c,v
retrieving revision 1.5
diff -p -u -r1.5 rtems-rfs-file-system.c
--- rtems-rfs-file-system.c	17 Jun 2010 03:41:12 -0000	1.5
+++ rtems-rfs-file-system.c	17 Jun 2010 06:48:14 -0000
@@ -28,6 +28,22 @@
 #include <rtems/rfs/rtems-rfs-inode.h>
 #include <rtems/rfs/rtems-rfs-trace.h>
 
+uint64_t
+rtems_rfs_fs_size (rtems_rfs_file_system* fs)
+{
+  uint64_t blocks = rtems_rfs_fs_blocks (fs);
+  uint64_t block_size = rtems_rfs_fs_block_size (fs);
+  return blocks * block_size;
+}
+
+uint64_t
+rtems_rfs_fs_media_size (rtems_rfs_file_system* fs)
+{
+  uint64_t media_blocks = (uint64_t) rtems_rfs_fs_media_blocks (fs);
+  uint64_t media_block_size = (uint64_t) rtems_rfs_fs_media_block_size (fs);
+  return media_blocks * media_block_size;
+}
+
 static int
 rtems_rfs_fs_read_superblock (rtems_rfs_file_system* fs)
 {
Index: rtems-rfs-file-system.h
===================================================================
RCS file: /usr1/CVS/rtems/cpukit/libfs/src/rfs/rtems-rfs-file-system.h,v
retrieving revision 1.6
diff -p -u -r1.6 rtems-rfs-file-system.h
--- rtems-rfs-file-system.h	17 Jun 2010 03:57:11 -0000	1.6
+++ rtems-rfs-file-system.h	17 Jun 2010 06:48:14 -0000
@@ -304,14 +304,6 @@ struct _rtems_rfs_file_system
 #define rtems_rfs_fs_block_size(_fs) ((_fs)->block_size)
 
 /**
- * The size of the disk in bytes.
- *
- * @param _fs Pointer to the file system.
- */
-#define rtems_rfs_fs_size(_fs) (((uint64_t) rtems_rfs_fs_blocks (_fs)) * \
-                                rtems_rfs_fs_block_size (_fs))
-
-/**
  * The number of inodes.
  *
  * @param _fs Pointer to the file system.
@@ -354,14 +346,6 @@ struct _rtems_rfs_file_system
 #endif
 
 /**
- * The size of the disk in bytes.
- *
- * @param _fs Pointer to the file system.
- */
-#define rtems_rfs_fs_media_size(_fs) (((uint64_t) rtems_rfs_fs_media_blocks (_fs)) * \
-                                      rtems_rfs_fs_media_block_size (_fs))
-
-/**
  * The maximum length of a name supported by the file system.
  */
 #define rtems_rfs_fs_max_name(_fs) ((_fs)->max_name_length)
@@ -379,6 +363,22 @@ struct _rtems_rfs_file_system
 #define rtems_rfs_fs_user(_fs) ((_fs)->user)
 
 /**
+ * Return the size of the disk in bytes.
+ *
+ * @param fs Pointer to the file system.
+ * @return uint64_t The size of the disk in bytes.
+ */
+uint64_t rtems_rfs_fs_size(rtems_rfs_file_system* fs);
+
+/**
+ * The size of the disk in bytes calculated from the media parameters..
+ *
+ * @param fs Pointer to the file system.
+ * @return uint64_t The size of the disk in bytes.
+ */
+uint64_t rtems_rfs_fs_media_size (rtems_rfs_file_system* fs);
+
+/**
  * Open the file system given a file path.
  *
  * @param name The device to open.
