PRIV_ADDSET(3C) Standard C Library Functions PRIV_ADDSET(3C)
NAME
priv_addset, priv_allocset, priv_copyset, priv_delset, priv_emptyset,
priv_basicset, priv_fillset, priv_freeset, priv_intersect, priv_inverse,
priv_isemptyset, priv_isequalset, priv_isfullset, priv_ismember,
priv_issubset, priv_union - privilege set manipulation functions
SYNOPSIS
#include <priv.h>
int priv_addset(
priv_set_t *sp,
const char *priv);
priv_set_t *priv_allocset(
void);
void priv_copyset(
const priv_set_t *src,
priv_set_t *dst);
int priv_delset(
priv_set_t *sp,
const char *priv);
void priv_emptyset(
priv_set_t *sp);
void priv_basicset(
priv_set_t *sp);
void priv_fillset(
priv_set_t *sp);
void priv_freeset(
priv_set_t *sp);
void priv_intersect(
const priv_set_t *src,
priv_set_t *dst);
void priv_inverse(
priv_set_t *sp);
boolean_t priv_isemptyset(
const priv_set_t *sp);
boolean_t priv_isequalset(
const priv_set_t *src,
const priv_set_t *dst);
boolean_t priv_isfullset(
const priv_set_t *sp);
boolean_t priv_ismember(
const priv_set_t *sp,
const char *priv);
boolean_t priv_issubset(
const priv_set_t *src,
const priv_set_t *dst);
void priv_union(
const priv_set_t *src,
priv_set_t *dst);
DESCRIPTION
The
sp,
src, and
dst arguments point to privilege sets. The
priv argument
points to a named privilege.
The
priv_addset() function adds the named privilege
priv to
sp.
The
priv_allocset() function allocates sufficient memory to contain a
privilege set. The value of the returned privilege set is indeterminate.
The function returns
NULL and sets
errno when it fails to allocate
memory.
The
priv_copyset() function copies the set
src to
dst.
The
priv_delset() function removes the named privilege
priv from
sp.
The
priv_emptyset() function clears all privileges from
sp.
The
priv_basicset() function copies the basic privilege set to
sp.
The
priv_fillset() function asserts all privileges in
sp, including the
privileges not currently defined in the system.
The
priv_freeset() function frees the storage allocated by
priv_allocset().
The
priv_intersect() function intersects
src with
dst and places the
results in
dst.
The
priv_inverse() function inverts the privilege set given as argument
in place.
The
priv_isemptyset() function checks whether the argument is an empty
set.
The
priv_isequalset() function checks whether the privilege set
src is
equal to
dst.
The
priv_isfullset() function checks whether the argument is a full set.
A full set is a set with all bits set, regardless of whether the
privilege is currently defined in the system.
The
priv_ismember() function checks whether the named privilege
priv is a
member of
sp.
The
priv_issubset() function checks whether
src is a subset of
dst.
The
priv_union() function takes the union of
src and
dst and places the
result in
dst.
RETURN VALUES
Upon successful completion,
priv_allocset() returns a pointer to an
opaque data structure. It returns
NULL if memory allocation fails and
sets
errno to indicate the error.
Upon successful completion,
priv_isemptyset(),
priv_isfullset(),
priv_isequalset(),
priv_issubset(), and
priv_ismember() return
B_TRUE.
Otherwise, they return
B_FALSE.
Upon successful completion,
priv_delset() and
priv_addset() return 0.
Otherwise, they return -1 and set
errno to indicate the error.
ERRORS
The
priv_allocset() function will fail if:
ENOMEM The physical limits of the system are exceeded by the memory
allocation needed to hold a privilege set.
EAGAIN There is insufficient memory for allocation to hold a privilege
set. The application can try again later.
The
priv_delset() and
priv_addset() functions will fail if:
EINVAL The privilege argument is not a valid privilege name.
ATTRIBUTES
See
attributes(7) for descriptions of the following attributes:
+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Evolving |
+--------------------+-----------------+
|MT-Level | MT-Safe |
+--------------------+-----------------+
SEE ALSO
setppriv(2),
malloc(3C),
priv_str_to_set(3C),
attributes(7),
privileges(7)NOTES
The functions that compare sets operate on all bits of the set,
regardless of whether the specific privileges are currently defined in
the system.
September 8, 2015
PRIV_ADDSET(3C)