# fs.c File Reference

`#include "system.h"`
`#include <rpmlib.h>`
`#include <rpmmacro.h>`
`#include "debug.h"`

Go to the source code of this file.

## Functions

void | freeFilesystems (void)
| Release storage used by file system usage cache.
static int | getFilesystemList (void)
| Get information for mounted file systems.
int | rpmGetFilesystemList (const char ***listptr, int *num)
| Return (cached) file system mount points.
int | rpmGetFilesystemUsage (const char **fileList, int_32 *fssizes, int numFiles, uint_32 **usagesPtr, int flags)
| Determine per-file system usage for a list of files.

## Variables

static struct fsinfo * | filesystems = NULL
static const char ** | fsnames = NULL
static int | numFilesystems = 0

## Detailed Description

Definition in file fs.c.

## Function Documentation

void freeFilesystems | ( | void |  | ) |

| Release storage used by file system usage cache. Definition at line 26 of file fs.c. References _free(), filesystems, fsnames, fsinfo::mntPoint, and numFilesystems. Referenced by getFilesystemList(), and main().

static int getFilesystemList | ( | void |  | ) | `[static]`

Get information for mounted file systems.

Todo:
  determine rdonly for non-linux file systems.

Returns:
  0 on success, 1 on error

Definition at line 137 of file fs.c.

References _, _free(), fsinfo::dev, errno, filesystems, freeFilesystems(), fsnames, getmntent(), fsinfo::mntPoint, MOUNTED, numFilesystems, our_mntent::our_mntdir, fsinfo::rdonly, RPMERR_MTAB, RPMERR_STAT, rpmError, strerror(), xcalloc(), xrealloc(), and xstrdup().

Referenced by rpmGetFilesystemList(), and rpmGetFilesystemUsage().

int rpmGetFilesystemList | ( | const char *** | listptr,
|  | int * | num
| ) |

Return (cached) file system mount points.

Return values:

  | listptr | addess of file system names (or NULL)
  | num | address of number of file systems (or NULL)

Returns:
  0 on success, 1 on error

Definition at line 231 of file fs.c.

References fsnames, getFilesystemList(), and numFilesystems.

Referenced by fsnamesTag(), fssizesTag(), and rpmRunTransactions().

int rpmGetFilesystemUsage | ( | const char ** | fileList,
|  | int_32 * | fssizes,
|  | int | numFiles,
|  | uint_32 ** | usagesPtr,
|  | int | flags
| ) |

Determine per-file system usage for a list of files.

Parameters:

  | fileList | array of absolute file names
  | fssizes | array of file sizes
  | numFiles | number of files in list

Return values:

  | usagesPtr | address of per-file system usage array (or NULL)

Parameters:

  | flags | (unused)

Returns:
  0 on success, 1 on error

Definition at line 243 of file fs.c.

References _, _free(), alloca(), errno, filesystems, fsnames, getFilesystemList(), numFilesystems, RPMERR_BADDEV, RPMERR_STAT, rpmError, rpmGetPath(), strerror(), and xcalloc().

Referenced by fssizesTag().

## Variable Documentation

struct fsinfo* filesystems = NULL`[static]`

| Definition at line 20 of file fs.c. Referenced by freeFilesystems(), getFilesystemList(), and rpmGetFilesystemUsage().

const char** fsnames = NULL`[static]`

| Definition at line 22 of file fs.c. Referenced by freeFilesystems(), getFilesystemList(), rpmGetFilesystemList(), and rpmGetFilesystemUsage().

int numFilesystems = 0`[static]`

| Definition at line 24 of file fs.c. Referenced by freeFilesystems(), getFilesystemList(), rpmGetFilesystemList(), and rpmGetFilesystemUsage().