30 lines
607 B
C
30 lines
607 B
C
/* See LICENSE file for copyright and license details. */
|
|
#include <sys/param.h>
|
|
#include <sys/mount.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <string.h>
|
|
#include "../ubase.h"
|
|
#include "../util.h"
|
|
|
|
int
|
|
grabmntinfo(struct mntinfo **minfo)
|
|
{
|
|
int siz, i;
|
|
struct statfs *mntbuf;
|
|
struct mntinfo *mi;
|
|
|
|
siz = getmntinfo(&mntbuf, MNT_WAIT);
|
|
if (!siz)
|
|
eprintf("getmntinfo:");
|
|
mi = malloc(siz * sizeof(*mi));
|
|
if (!mi)
|
|
eprintf("malloc:");
|
|
for (i = 0; i < siz; i++) {
|
|
mi[i].fsname = strdup(mntbuf[i].f_mntfromname);
|
|
mi[i].mntdir = strdup(mntbuf[i].f_mntonname);
|
|
}
|
|
*minfo = mi;
|
|
return siz;
|
|
}
|