Reparse Point Library Functions reparse_add(3REPARSE)
NAME
reparse_add, reparse_create, reparse_delete, reparse_deref,
reparse_free, reparse_init, reparse_parse, reparse_remove,
reparse_unparse, reparse_validate, rp_plugin_init - reparse
point operationsSYNOPSIS
cc [ flag ... ] file... -lreparse [ library ... ]
#include
#include
int reparse_add(nvlist_t *list, const char *svc_type,
const char *string);int reparse_create(const char *path, const char *string);
int reparse_delete(const char *path);
int reparse_deref(const char *svc_type, const char *svc_data,
const char *svc_data);
void reparse_free(nvlist_t *list);
nvlist_t *reparse_init(void);
int reparse_parse(const char *string, nvlist *list);
int reparse_remove(nvlist_t *list, const char *svc_type);
int reparse_unparse(const nvlist_t *list, char **stringp);
int reparse_validate(const char *string);
int rp_plugin_init(void);
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 freememory as needed. It will fail with a non-zero value from
if it is unsuccessful.SunOS 5.11 Last change: 14 Oct 2009 1
Reparse Point Library Functions reparse_add(3REPARSE)
The reparse_create() function create a reparse point at a
given pathname; the string format is validated. This func-
tion will fail if path refers to an existing file system object or an object named string already exists at the givenpath. It will fail with a non-zero value from
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 sym-
link. It will fail with a non-zero value from
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 *buf-
size; 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. Itcan fail with other non-zero values from
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 rou-
tine will allocate memory, which must be freed byreparse_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 sym-
link body. Existing or duplicate svc_type entries in the
nvlist will be replaced. This routine will allocate memorythat must be freed by reparse_free(). It will fail with a
non-zero value from if it is
unsuccessful.The reparse_remove() function removes a service type entry
from the nvlist, if present. This routine will free memorythat is no longer needed. It will fail with a non-zero value
from if it is unsuccessful.The reparse_unparse() function converts an nvlist back to a
string format suitable to write to the reparse point symlinkSunOS 5.11 Last change: 14 Oct 2009 2
Reparse Point Library Functions reparse_add(3REPARSE)
body. The string returned is in allocated memory and must befreed by the caller. It will fail with a non-zero value from
if it is unsuccessful.The reparse_validate() function checks the syntax of a
reparse point as it would be read from or written to thesymlink body. It will fail with a non-zero value from
if it is unsuccessful.The rp_plugin_init() function loads reparse point "plugins"
from /usr/lib/reparse to permit reparse point manipulationto start. It will fail with a non-zero value from
if it is unsuccessful.EXAMPLES
Example 1 Set up a reparse point. A service would set up a reparse point this way:nvlist_t *nvp;
char *text; int rc;nvp = reparse_init();
rc = reparse_add(nvp, "smb-ad", smb_ad_data);
rc = reparse_add(nvp, "nfs-fedfs", nfs_fedfs_data);
rc = reparse_unparse(nvp, &text);
rc = reparse_create(path, text);
reparse_free(nvp);
free(text);ATTRIBUTES
See attributes(5) for descriptions of the following attri-
butes:SunOS 5.11 Last change: 14 Oct 2009 3
Reparse Point Library Functions reparse_add(3REPARSE)
____________________________________________________________
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
|_____________________________|_____________________________|
| Interface Stability | Committed ||_____________________________|_____________________________|
| MT-Level | Safe |
|_____________________________|_____________________________|
SEE ALSO
reparsed(1M), libreparse(3LIB), attributes(5)SunOS 5.11 Last change: 14 Oct 2009 4