Changeset View
Changeset View
Standalone View
Standalone View
sys/ufs/ffs/fs.h
Show First 20 Lines • Show All 569 Lines • ▼ Show 20 Lines | |||||
#define blkoff(fs, loc) /* calculates (loc % fs->fs_bsize) */ \ | #define blkoff(fs, loc) /* calculates (loc % fs->fs_bsize) */ \ | ||||
((loc) & (fs)->fs_qbmask) | ((loc) & (fs)->fs_qbmask) | ||||
#define fragoff(fs, loc) /* calculates (loc % fs->fs_fsize) */ \ | #define fragoff(fs, loc) /* calculates (loc % fs->fs_fsize) */ \ | ||||
((loc) & (fs)->fs_qfmask) | ((loc) & (fs)->fs_qfmask) | ||||
#define lfragtosize(fs, frag) /* calculates ((off_t)frag * fs->fs_fsize) */ \ | #define lfragtosize(fs, frag) /* calculates ((off_t)frag * fs->fs_fsize) */ \ | ||||
(((off_t)(frag)) << (fs)->fs_fshift) | (((off_t)(frag)) << (fs)->fs_fshift) | ||||
#define lblktosize(fs, blk) /* calculates ((off_t)blk * fs->fs_bsize) */ \ | #define lblktosize(fs, blk) /* calculates ((off_t)blk * fs->fs_bsize) */ \ | ||||
(((off_t)(blk)) << (fs)->fs_bshift) | (((off_t)(blk)) << (fs)->fs_bshift) | ||||
/* Use this only when `blk' is known to be small, e.g., < NDADDR. */ | /* Use this only when `blk' is known to be small, e.g., < UFS_NDADDR. */ | ||||
#define smalllblktosize(fs, blk) /* calculates (blk * fs->fs_bsize) */ \ | #define smalllblktosize(fs, blk) /* calculates (blk * fs->fs_bsize) */ \ | ||||
((blk) << (fs)->fs_bshift) | ((blk) << (fs)->fs_bshift) | ||||
#define lblkno(fs, loc) /* calculates (loc / fs->fs_bsize) */ \ | #define lblkno(fs, loc) /* calculates (loc / fs->fs_bsize) */ \ | ||||
((loc) >> (fs)->fs_bshift) | ((loc) >> (fs)->fs_bshift) | ||||
#define numfrags(fs, loc) /* calculates (loc / fs->fs_fsize) */ \ | #define numfrags(fs, loc) /* calculates (loc / fs->fs_fsize) */ \ | ||||
((loc) >> (fs)->fs_fshift) | ((loc) >> (fs)->fs_fshift) | ||||
#define blkroundup(fs, size) /* calculates roundup(size, fs->fs_bsize) */ \ | #define blkroundup(fs, size) /* calculates roundup(size, fs->fs_bsize) */ \ | ||||
(((size) + (fs)->fs_qbmask) & (fs)->fs_bmask) | (((size) + (fs)->fs_qbmask) & (fs)->fs_bmask) | ||||
Show All 16 Lines | #define freespace(fs, percentreserved) \ | ||||
(blkstofrags((fs), (fs)->fs_cstotal.cs_nbfree) + \ | (blkstofrags((fs), (fs)->fs_cstotal.cs_nbfree) + \ | ||||
(fs)->fs_cstotal.cs_nffree - \ | (fs)->fs_cstotal.cs_nffree - \ | ||||
(((off_t)((fs)->fs_dsize)) * (percentreserved) / 100)) | (((off_t)((fs)->fs_dsize)) * (percentreserved) / 100)) | ||||
/* | /* | ||||
* Determining the size of a file block in the filesystem. | * Determining the size of a file block in the filesystem. | ||||
*/ | */ | ||||
#define blksize(fs, ip, lbn) \ | #define blksize(fs, ip, lbn) \ | ||||
(((lbn) >= NDADDR || (ip)->i_size >= smalllblktosize(fs, (lbn) + 1)) \ | (((lbn) >= UFS_NDADDR || (ip)->i_size >= smalllblktosize(fs, (lbn) + 1)) \ | ||||
? (fs)->fs_bsize \ | ? (fs)->fs_bsize \ | ||||
: (fragroundup(fs, blkoff(fs, (ip)->i_size)))) | : (fragroundup(fs, blkoff(fs, (ip)->i_size)))) | ||||
#define sblksize(fs, size, lbn) \ | #define sblksize(fs, size, lbn) \ | ||||
(((lbn) >= NDADDR || (size) >= ((lbn) + 1) << (fs)->fs_bshift) \ | (((lbn) >= UFS_NDADDR || (size) >= ((lbn) + 1) << (fs)->fs_bshift) \ | ||||
? (fs)->fs_bsize \ | ? (fs)->fs_bsize \ | ||||
: (fragroundup(fs, blkoff(fs, (size))))) | : (fragroundup(fs, blkoff(fs, (size))))) | ||||
/* | /* | ||||
* Number of indirects in a filesystem block. | * Number of indirects in a filesystem block. | ||||
*/ | */ | ||||
#define NINDIR(fs) ((fs)->fs_nindir) | #define NINDIR(fs) ((fs)->fs_nindir) | ||||
/* | /* | ||||
* Indirect lbns are aligned on NDADDR addresses where single indirects | * Indirect lbns are aligned on UFS_NDADDR addresses where single indirects | ||||
* are the negated address of the lowest lbn reachable, double indirects | * are the negated address of the lowest lbn reachable, double indirects | ||||
* are this lbn - 1 and triple indirects are this lbn - 2. This yields | * are this lbn - 1 and triple indirects are this lbn - 2. This yields | ||||
* an unusual bit order to determine level. | * an unusual bit order to determine level. | ||||
*/ | */ | ||||
static inline int | static inline int | ||||
lbn_level(ufs_lbn_t lbn) | lbn_level(ufs_lbn_t lbn) | ||||
{ | { | ||||
if (lbn >= 0) | if (lbn >= 0) | ||||
▲ Show 20 Lines • Show All 145 Lines • Show Last 20 Lines |