示例#1
0
/*
 * Update the maximum field-width information in `mwp' based on
 * the filesystem specified by `sfsp'.
 */
void
update_maxwidths(struct maxwidths *mwp, struct statfs *sfsp)
{
	static long blocksize;
	int dummy;

	if (blocksize == 0)
		getbsize(&dummy, &blocksize);

	mwp->mntfrom = imax(mwp->mntfrom, (int)strlen(sfsp->f_mntfromname));
	mwp->total = imax(mwp->total, int64width(fsbtoblk(sfsp->f_blocks,
							 sfsp->f_bsize, blocksize, sfsp->f_mntonname)));
	if (sfsp->f_blocks >= sfsp->f_bfree)
		mwp->used = imax(mwp->used, int64width(fsbtoblk(sfsp->f_blocks -
							       sfsp->f_bfree, sfsp->f_bsize, blocksize, sfsp->f_mntonname)));
	mwp->avail = imax(mwp->avail, int64width(fsbtoblk(sfsp->f_bavail,
							 sfsp->f_bsize, blocksize, sfsp->f_mntonname)));
	mwp->iused = imax(mwp->iused, int64width(sfsp->f_files - sfsp->f_ffree));
	mwp->ifree = imax(mwp->ifree, int64width(sfsp->f_ffree));
}
static void update_maxwidths(struct maxWidths *mwp, const struct statfs *sfsp)
{
	static u_long blocksize = 0;
	int dummy;
	
	if(blocksize == 0)
		getbsize(&dummy, &blocksize);
		
	mwp->MountFrom = imax(mwp->MountFrom, (int)strlen(sfsp->f_mntfromname));
	mwp->Total = imax(mwp->Total, int64width( \
		fsbtoblk((int64_t)sfsp->f_blocks, sfsp->f_bsize, blocksize)));
	
	mwp->Used = imax(mwp->Used,	\
	 int64width(fsbtoblk((int64_t)sfsp->f_blocks - 
	 (int64_t)sfsp->f_bfree, sfsp->f_bsize, blocksize)));
	 
	mwp->Available = imax(mwp->Available, int64width(fsbtoblk(sfsp->f_bavail,sfsp->f_bsize, blocksize)));
	
	mwp->I_Used = imax(mwp->I_Used, int64width((int64_t)sfsp->f_files -
	    sfsp->f_ffree));
	
	mwp->I_Free = imax(mwp->I_Free, int64width(sfsp->f_ffree));
}