LIBHAMMER(3)

NAME
hammer - HAMMER file system interface

LIBRARY
libhammer

SYNOPSIS
#include <libhammer.h>

DESCRIPTION
The hammer library provides a set of functions which serve as an interface to applications that need to obtain information or perform maintenance operations in HAMMER(5) file systems.

INTRODUCTION
This library is an attempt to factor out most of the code in the initial hammer(8) program greatly reducing its complexity and taking advantage of all the functionality it contained helping other programs to reuse it.

There are several parts of the HAMMER(5) file system for which this library provides an API:

•   Information facilities: The following information is gathered and exposed by this library:

    -   File system specific information such as size, big block details, version, PFSes, snapshots, mount points.

    -   Statistical data like number of B-Tree operations, number of device operations, number of undo operations.

•   Pseudo-file systems: These are independent sub file systems within a HAMMER file system. After hammer library initialisation the list of pseudo-file systems will be available in the libhammer_fsinfo structure within a TAILQ.

    Creating and deleting pseudo-file systems is not yet supported by this library.

•   Snapshots: Per PFS point in time snapshots are kept in the file system meta-data since HAMMER version 3. A list of snapshots is collected and placed within a TAILQ for each PFS.

    Creating and deleting snapshots is not yet supported by this library.

INITIALISATION
Before any API call the library must be initialised with the libhammer_get_fsinfo() function. This will perform all the operations needed to initialise the data structures in which the API function rely for the specified HAMMER file system.

Once you are done, the special function libhammer_free_fsinfo() will release all the resources used by the library during its initialisation and usage.

SEE ALSO
libhammer_fsinfo(3), libhammer_snapshot(3), libhammer_stats(3), HAMMER(5), hammer(8)

AUTHORS
This man page was written by Antonio Huete Jimenez <tuxillo@quantumachine.net>.

BUGS
Please note that, at the moment of writing this man page, the hammer library is incomplete.