1CAP_COPY_EXT(3)            Linux Programmer's Manual           CAP_COPY_EXT(3)
2
3
4

NAME

6       cap_copy_ext, cap_size, cap_copy_int - capability state external repre‐
7       sentation translation
8

SYNOPSIS

10       #include <sys/capability.h>
11
12       ssize_t cap_size(cap_t cap_p);
13
14       ssize_t cap_copy_ext(void *ext_p, cap_t cap_p, ssize_t size);
15
16       cap_t cap_copy_int(const void *ext_p);
17

USAGE

19       cc ... -lcap
20

DESCRIPTION

22       These functions translate a capability state from an internal represen‐
23       tation  into  an  external  one.   The  external  representation  is an
24       exportable, contiguous, persistent representation of a capability state
25       in  user-managed  space.  The internal representation is managed by the
26       capability functions in working storage.
27
28       cap_size returns the total length (in bytes) that the capability  state
29       in  working storage identified by cap_p would require when converted by
30       cap_copy_ext.  This function is used primarily to determine the  amount
31       of  buffer  space that must be provided to the cap_copy_ext function in
32       order to hold the capability data record created from cap_p.
33
34       cap_copy_ext copies a capability state in working  storage,  identified
35       by  cap_p,  from system managed space to user-managed space (pointed to
36       by ext_p) and returns the length of the  resulting  data  record.   The
37       size  parameter represents the maximum size, in bytes, of the resulting
38       data record.  The cap_copy_ext function will do any conversions  neces‐
39       sary to convert the capability state from the undefined internal format
40       to an exportable,  contiguous,  persistent  data  record.   It  is  the
41       responsibility  of  the  user to allocate a buffer large enough to hold
42       the copied data.  The buffer length required to hold  the  copied  data
43       may be obtained by a call to the cap_size function.
44
45       cap_copy_int copies a capability state from a capability data record in
46       user-managed space to a new capability state in working storage,  allo‐
47       cating  any memory necessary, and returning a pointer to the newly cre‐
48       ated capability state.  The function initializes the  capability  state
49       and  then  copies  the  capability  state from the record painted to by
50       ext_p into the capability state, converting,  if  necessary,  the  data
51       from  a contiguous, persistent format to an undefined, internal format.
52       Once copied into internal format, the object can be manipulated by  the
53       capability  state manipulation functions.  Note that the record pointed
54       to by ext_p must have been obtained from a previous, successful call to
55       cap_copy_ext for this function to work successfully.  The caller should
56       free any releasable memory, when the capability state in working  stor‐
57       age  is  no  longer  required, by calling cap_free with the cap_t as an
58       argument.
59

RETURN VALUE

61       cap_size returns the length required to hold a capability  data  record
62       on success, and -1 on failure.
63
64       cap_copy_ext  returns  the  number  of bytes placed in the user managed
65       space pointed to by ext_p on success, and -1 on failure.
66
67       cap_copy_int returns a pointer to the newly created capability state in
68       working storage on success, and NULL on failure.
69
70       On failure, errno(3) is set to EINVAL, ENOMEM, or ERANGE.
71

CONFORMING TO

73       These functions are specified by POSIX.1e.
74

SEE ALSO

76       cap_clear(3),   cap_from_text(3),   cap_get_file(3),   cap_get_proc(3),
77       cap_init(3)
78
79
80
81                                 26th May 1997                 CAP_COPY_EXT(3)
Impressum