Description

The reparse_add() function adds a service type entry to an nvlist with
a copy of string, replacing one of the same type if already
present. This routine will allocate and free memory as needed. It will
fail with a non-zero value from </usr/include/sys/errno.h> if it is unsuccessful.

The reparse_create() function create a reparse point at a given pathname; the
string format is validated. This function will fail if path refers to
an existing file system object or an object named string already exists
at the given path. It will fail with a non-zero value from </usr/include/sys/errno.h>
if it is unsuccessful.

The reparse_delete() function delete a reparse point at a given pathname. It
will fail if the pathname is not a symlink. It will fail
with a non-zero value from </usr/include/sys/errno.h> if it is unsuccessful.

The reparse_deref() function accepts and parses the symlink data, and returns a
type-specific piece of data in buf. The caller specifies the size of
the buffer provided via *bufsize; the routine will fail with EOVERFLOW if
the results will not fit in the buffer, in which case, *bufsize
will contain the number of bytes needed to hold the results. It
can fail with other non-zero values from </usr/include/sys/errno.h> if it is unsuccessful.

The reparse_free() function frees all of the resources in the nvlist.

The reparse_init() function allocates an empty nvlist_t suitable for libreparse.so routines to
manipulate. This routine will allocate memory, which must be freed by reparse_free().
It will return NULL on failure.

The reparse_parse() function parses the specified string and populates the nvlist with
the svc_types and data from the string. The string could be read
from the reparse point symlink body. Existing or duplicate svc_type entries in the
nvlist will be replaced. This routine will allocate memory that must be
freed by reparse_free(). It will fail with a non-zero value from </usr/include/sys/errno.h>
if it is unsuccessful.

The reparse_remove() function removes a service type entry from the nvlist, if
present. This routine will free memory that is no longer needed. It
will fail with a non-zero value from </usr/include/sys/errno.h> if it is unsuccessful.

The reparse_unparse() function converts an nvlist back to a string format suitable
to write to the reparse point symlink body. The string returned is
in allocated memory and must be freed by the caller. It will
fail with a non-zero value from </usr/include/sys/errno.h> if it is unsuccessful.

The reparse_validate() function checks the syntax of a reparse point as it
would be read from or written to the symlink body. It will
fail with a non-zero value from </usr/include/sys/errno.h> if it is unsuccessful.

The rp_plugin_init() function loads reparse point “plugins” from /usr/lib/reparse to permit reparse
point manipulation to start. It will fail with a non-zero value from
</usr/include/sys/errno.h> if it is unsuccessful.