Fix a shedload of warnings, some memory leaks and clean up WARNS
and lint. This is now WARNS=9, std=c99 clean on i386.
This commit is contained in:
parent
3dfc942fa1
commit
b7dbd3e95e
100
bin/df/df.c
100
bin/df/df.c
@ -57,6 +57,7 @@ __FBSDID("$FreeBSD$");
|
||||
#include <ufs/ufs/ufsmount.h>
|
||||
#include <err.h>
|
||||
#include <math.h>
|
||||
#include <inttypes.h>
|
||||
#include <stdio.h>
|
||||
#include <stdlib.h>
|
||||
#include <string.h>
|
||||
@ -88,37 +89,51 @@ __FBSDID("$FreeBSD$");
|
||||
|
||||
/* Maximum widths of various fields. */
|
||||
struct maxwidths {
|
||||
int mntfrom;
|
||||
int total;
|
||||
int used;
|
||||
int avail;
|
||||
int iused;
|
||||
int ifree;
|
||||
size_t mntfrom;
|
||||
size_t total;
|
||||
size_t used;
|
||||
size_t avail;
|
||||
size_t iused;
|
||||
size_t ifree;
|
||||
};
|
||||
|
||||
unsigned long long vals_si [] = {1, KILO_SI_SZ, MEGA_SI_SZ, GIGA_SI_SZ, TERA_SI_SZ, PETA_SI_SZ};
|
||||
unsigned long long vals_base2[] = {1, KILO_2_SZ, MEGA_2_SZ, GIGA_2_SZ, TERA_2_SZ, PETA_2_SZ};
|
||||
unsigned long long *valp;
|
||||
static uintmax_t vals_si [] = {
|
||||
1,
|
||||
KILO_SI_SZ,
|
||||
MEGA_SI_SZ,
|
||||
GIGA_SI_SZ,
|
||||
TERA_SI_SZ,
|
||||
PETA_SI_SZ
|
||||
};
|
||||
static uintmax_t vals_base2[] = {
|
||||
1,
|
||||
KILO_2_SZ,
|
||||
MEGA_2_SZ,
|
||||
GIGA_2_SZ,
|
||||
TERA_2_SZ,
|
||||
PETA_2_SZ
|
||||
};
|
||||
static uintmax_t *valp;
|
||||
|
||||
typedef enum { NONE, KILO, MEGA, GIGA, TERA, PETA, UNIT_MAX } unit_t;
|
||||
|
||||
unit_t unitp [] = { NONE, KILO, MEGA, GIGA, TERA, PETA };
|
||||
static unit_t unitp [] = { NONE, KILO, MEGA, GIGA, TERA, PETA };
|
||||
|
||||
static char *getmntpt(char *);
|
||||
static int longwidth(long);
|
||||
static char *getmntpt(const char *);
|
||||
static size_t longwidth(long);
|
||||
static char *makenetvfslist(void);
|
||||
static void prthuman(struct statfs *, long);
|
||||
static void prthuman(const struct statfs *, long);
|
||||
static void prthumanval(double);
|
||||
static void prtstat(struct statfs *, struct maxwidths *);
|
||||
static long regetmntinfo(struct statfs **, long, const char **);
|
||||
static unit_t unit_adjust(double *);
|
||||
static void update_maxwidths(struct maxwidths *, struct statfs *);
|
||||
static void update_maxwidths(struct maxwidths *, const struct statfs *);
|
||||
static void usage(void);
|
||||
|
||||
static __inline int
|
||||
imax(int a, int b)
|
||||
static __inline u_int
|
||||
max(u_int a, u_int b)
|
||||
{
|
||||
return (MAX(a, b));
|
||||
return (a > b ? a : b);
|
||||
}
|
||||
|
||||
static int aflag = 0, hflag, iflag, nflag;
|
||||
@ -275,7 +290,7 @@ main(int argc, char *argv[])
|
||||
}
|
||||
|
||||
static char *
|
||||
getmntpt(char *name)
|
||||
getmntpt(const char *name)
|
||||
{
|
||||
long mntsize, i;
|
||||
struct statfs *mntbuf;
|
||||
@ -326,13 +341,13 @@ unit_adjust(double *val)
|
||||
{
|
||||
double abval;
|
||||
unit_t unit;
|
||||
unsigned int unit_sz;
|
||||
int unit_sz;
|
||||
|
||||
abval = fabs(*val);
|
||||
|
||||
unit_sz = abval ? ilogb(abval) / 10 : 0;
|
||||
|
||||
if (unit_sz >= UNIT_MAX) {
|
||||
if (unit_sz >= (int)UNIT_MAX) {
|
||||
unit = NONE;
|
||||
} else {
|
||||
unit = unitp[unit_sz];
|
||||
@ -343,7 +358,7 @@ unit_adjust(double *val)
|
||||
}
|
||||
|
||||
static void
|
||||
prthuman(struct statfs *sfsp, long used)
|
||||
prthuman(const struct statfs *sfsp, long used)
|
||||
{
|
||||
|
||||
prthumanval((double)sfsp->f_blocks * (double)sfsp->f_bsize);
|
||||
@ -381,28 +396,28 @@ static void
|
||||
prtstat(struct statfs *sfsp, struct maxwidths *mwp)
|
||||
{
|
||||
static long blocksize;
|
||||
static int headerlen, timesthrough;
|
||||
static int headerlen, timesthrough = 0;
|
||||
static const char *header;
|
||||
long used, availblks, inodes;
|
||||
|
||||
if (++timesthrough == 1) {
|
||||
mwp->mntfrom = imax(mwp->mntfrom, strlen("Filesystem"));
|
||||
mwp->mntfrom = max(mwp->mntfrom, strlen("Filesystem"));
|
||||
if (hflag) {
|
||||
header = " Size";
|
||||
mwp->total = mwp->used = mwp->avail = strlen(header);
|
||||
} else {
|
||||
header = getbsize(&headerlen, &blocksize);
|
||||
mwp->total = imax(mwp->total, headerlen);
|
||||
mwp->total = max(mwp->total, (u_int)headerlen);
|
||||
}
|
||||
mwp->used = imax(mwp->used, strlen("Used"));
|
||||
mwp->avail = imax(mwp->avail, strlen("Avail"));
|
||||
mwp->used = max(mwp->used, strlen("Used"));
|
||||
mwp->avail = max(mwp->avail, strlen("Avail"));
|
||||
|
||||
(void)printf("%-*s %-*s %*s %*s Capacity", mwp->mntfrom,
|
||||
"Filesystem", mwp->total, header, mwp->used, "Used",
|
||||
mwp->avail, "Avail");
|
||||
if (iflag) {
|
||||
mwp->iused = imax(mwp->iused, strlen(" iused"));
|
||||
mwp->ifree = imax(mwp->ifree, strlen("ifree"));
|
||||
mwp->iused = max(mwp->iused, strlen(" iused"));
|
||||
mwp->ifree = max(mwp->ifree, strlen("ifree"));
|
||||
(void)printf(" %*s %*s %%iused", mwp->iused - 2,
|
||||
"iused", mwp->ifree, "ifree");
|
||||
}
|
||||
@ -438,31 +453,31 @@ prtstat(struct statfs *sfsp, struct maxwidths *mwp)
|
||||
* the file system specified by `sfsp'.
|
||||
*/
|
||||
static void
|
||||
update_maxwidths(struct maxwidths *mwp, struct statfs *sfsp)
|
||||
update_maxwidths(struct maxwidths *mwp, const struct statfs *sfsp)
|
||||
{
|
||||
static long blocksize;
|
||||
static long blocksize = 0;
|
||||
int dummy;
|
||||
|
||||
if (blocksize == 0)
|
||||
getbsize(&dummy, &blocksize);
|
||||
|
||||
mwp->mntfrom = imax(mwp->mntfrom, strlen(sfsp->f_mntfromname));
|
||||
mwp->total = imax(mwp->total, longwidth(fsbtoblk(sfsp->f_blocks,
|
||||
mwp->mntfrom = max(mwp->mntfrom, strlen(sfsp->f_mntfromname));
|
||||
mwp->total = max(mwp->total, longwidth(fsbtoblk(sfsp->f_blocks,
|
||||
sfsp->f_bsize, blocksize)));
|
||||
mwp->used = imax(mwp->used, longwidth(fsbtoblk(sfsp->f_blocks -
|
||||
mwp->used = max(mwp->used, longwidth(fsbtoblk(sfsp->f_blocks -
|
||||
sfsp->f_bfree, sfsp->f_bsize, blocksize)));
|
||||
mwp->avail = imax(mwp->avail, longwidth(fsbtoblk(sfsp->f_bavail,
|
||||
mwp->avail = max(mwp->avail, longwidth(fsbtoblk(sfsp->f_bavail,
|
||||
sfsp->f_bsize, blocksize)));
|
||||
mwp->iused = imax(mwp->iused, longwidth(sfsp->f_files -
|
||||
mwp->iused = max(mwp->iused, longwidth(sfsp->f_files -
|
||||
sfsp->f_ffree));
|
||||
mwp->ifree = imax(mwp->ifree, longwidth(sfsp->f_ffree));
|
||||
mwp->ifree = max(mwp->ifree, longwidth(sfsp->f_ffree));
|
||||
}
|
||||
|
||||
/* Return the width in characters of the specified long. */
|
||||
static int
|
||||
static size_t
|
||||
longwidth(long val)
|
||||
{
|
||||
int len;
|
||||
size_t len;
|
||||
|
||||
len = 0;
|
||||
/* Negative or zero values require one extra digit. */
|
||||
@ -491,7 +506,7 @@ static char *
|
||||
makenetvfslist(void)
|
||||
{
|
||||
char *str, *strptr, **listptr;
|
||||
struct xvfsconf *xvfsp;
|
||||
struct xvfsconf *xvfsp, *keep_xvfsp;
|
||||
size_t buflen;
|
||||
int cnt, i, maxvfsconf;
|
||||
|
||||
@ -504,14 +519,17 @@ makenetvfslist(void)
|
||||
warnx("malloc failed");
|
||||
return (NULL);
|
||||
}
|
||||
keep_xvfsp = xvfsp;
|
||||
if (sysctlbyname("vfs.conflist", xvfsp, &buflen, NULL, 0) < 0) {
|
||||
warn("sysctl(vfs.conflist)");
|
||||
free(keep_xvfsp);
|
||||
return (NULL);
|
||||
}
|
||||
maxvfsconf = buflen / sizeof(struct xvfsconf);
|
||||
|
||||
if ((listptr = malloc(sizeof(char*) * maxvfsconf)) == NULL) {
|
||||
warnx("malloc failed");
|
||||
free(keep_xvfsp);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
@ -520,6 +538,8 @@ makenetvfslist(void)
|
||||
listptr[cnt++] = strdup(xvfsp->vfc_name);
|
||||
if (listptr[cnt-1] == NULL) {
|
||||
warnx("malloc failed");
|
||||
free(listptr);
|
||||
free(keep_xvfsp);
|
||||
return (NULL);
|
||||
}
|
||||
}
|
||||
@ -531,6 +551,7 @@ makenetvfslist(void)
|
||||
if (cnt > 0)
|
||||
warnx("malloc failed");
|
||||
free(listptr);
|
||||
free(keep_xvfsp);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
@ -543,6 +564,7 @@ makenetvfslist(void)
|
||||
}
|
||||
*(--strptr) = NULL;
|
||||
|
||||
free(keep_xvfsp);
|
||||
free(listptr);
|
||||
return (str);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user