PERFORCE change 93013 for review

Kip Macy kmacy at FreeBSD.org
Wed Mar 8 21:38:18 PST 2006


http://perforce.freebsd.org/chv.cgi?CH=93013

Change 93013 by kmacy at kmacy_storage:sun4v_work on 2006/03/09 05:38:08

	changes to support running on solaris' UFS

Affected files ...

.. //depot/projects/kmacy_sun4v/src/sys/ufs/ffs/ffs_vfsops.c#3 edit
.. //depot/projects/kmacy_sun4v/src/sys/ufs/ffs/fs.h#3 edit

Differences ...

==== //depot/projects/kmacy_sun4v/src/sys/ufs/ffs/ffs_vfsops.c#3 (text+ko) ====

@@ -893,8 +893,10 @@
 	if (fs->fs_magic == FS_UFS1_MAGIC &&
 	    fs->fs_old_inodefmt < FS_44INODEFMT) {
 		fs->fs_maxfilesize = ((uint64_t)1 << 31) - 1;
+#ifndef SIMULATOR
 		fs->fs_qbmask = ~fs->fs_bmask;
 		fs->fs_qfmask = ~fs->fs_fmask;
+#endif
 	}
 	if (fs->fs_magic == FS_UFS1_MAGIC) {
 		ump->um_savedmaxfilesize = fs->fs_maxfilesize;

==== //depot/projects/kmacy_sun4v/src/sys/ufs/ffs/fs.h#3 (text+ko) ====

@@ -33,6 +33,8 @@
 #ifndef _UFS_FFS_FS_H_
 #define _UFS_FFS_FS_H_
 
+#include "opt_simulator.h"
+
 /*
  * Each disk drive contains some number of filesystems.
  * A filesystem consists of a number of cylinder groups.
@@ -246,6 +248,11 @@
 	int64_t	cs_spare[3];		/* future expansion */
 };
 
+#ifdef SIMULATOR
+typedef struct _quad { int val[2]; } squad_t;
+#endif
+
+
 /*
  * Super block for an FFS filesystem.
  */
@@ -342,11 +349,19 @@
 	int32_t	 fs_maxsymlinklen;	/* max length of an internal symlink */
 	int32_t	 fs_old_inodefmt;	/* format of on-disk inodes */
 	u_int64_t fs_maxfilesize;	/* maximum representable file size */
+#ifdef SIMULATOR
+	uint32_t junk;
+	squad_t	 fs_qbmask;		/* ~fs_bmask for use with 64-bit size */
+	squad_t	 fs_qfmask;		/* ~fs_fmask for use with 64-bit size */
+#else
 	int64_t	 fs_qbmask;		/* ~fs_bmask for use with 64-bit size */
 	int64_t	 fs_qfmask;		/* ~fs_fmask for use with 64-bit size */
+#endif
 	int32_t	 fs_state;		/* validate fs_clean field */
 	int32_t	 fs_old_postblformat;	/* format of positional layout tables */
+#ifndef SIMULATOR
 	int32_t	 fs_old_nrpos;		/* number of rotational positions */
+#endif
 	int32_t	 fs_spare5[2];		/* old fs_postbloff */
 					/* old fs_rotbloff */
 	int32_t	 fs_magic;		/* magic number */
@@ -546,10 +561,17 @@
  * quantities by using shifts and masks in place of divisions
  * modulos and multiplications.
  */
+#ifdef SIMULATOR
 #define blkoff(fs, loc)		/* calculates (loc % fs->fs_bsize) */ \
+	((loc) & ((fs)->fs_qbmask.val[0] | (fs)->fs_qbmask.val[1]))
+#define fragoff(fs, loc)	/* calculates (loc % fs->fs_fsize) */ \
+	((loc) & ((fs)->fs_qfmask.val[0] | (fs)->fs_qfmask.val[1]))
+#else
+#define blkoff(fs, loc)		/* calculates (loc % fs->fs_bsize) */ \
 	((loc) & (fs)->fs_qbmask)
 #define fragoff(fs, loc)	/* calculates (loc % fs->fs_fsize) */ \
 	((loc) & (fs)->fs_qfmask)
+#endif
 #define lfragtosize(fs, frag)	/* calculates ((off_t)frag * fs->fs_fsize) */ \
 	(((off_t)(frag)) << (fs)->fs_fshift)
 #define lblktosize(fs, blk)	/* calculates ((off_t)blk * fs->fs_bsize) */ \
@@ -561,10 +583,17 @@
 	((loc) >> (fs)->fs_bshift)
 #define numfrags(fs, loc)	/* calculates (loc / fs->fs_fsize) */ \
 	((loc) >> (fs)->fs_fshift)
+#ifdef SIMULATOR
 #define blkroundup(fs, size)	/* calculates roundup(size, fs->fs_bsize) */ \
+	(((size) + ((fs)->fs_qbmask.val[0] | (fs)->fs_qbmask.val[1])) & (fs)->fs_bmask)
+#define fragroundup(fs, size)	/* calculates roundup(size, fs->fs_fsize) */ \
+	(((size) + ((fs)->fs_qfmask.val[0] | (fs)->fs_qfmask.val[1])) & (fs)->fs_fmask)
+#else
+#define blkroundup(fs, size)	/* calculates roundup(size, fs->fs_bsize) */ \
 	(((size) + (fs)->fs_qbmask) & (fs)->fs_bmask)
 #define fragroundup(fs, size)	/* calculates roundup(size, fs->fs_fsize) */ \
 	(((size) + (fs)->fs_qfmask) & (fs)->fs_fmask)
+#endif
 #define fragstoblks(fs, frags)	/* calculates (frags / fs->fs_frag) */ \
 	((frags) >> (fs)->fs_fragshift)
 #define blkstofrags(fs, blks)	/* calculates (blks * fs->fs_frag) */ \


More information about the p4-projects mailing list