DPM_GETSPACEMD

Section: DPM Library Functions (3)
Updated: $Date: 2008/09/25 10:17:46 $
Index Return to Main Contents
 

NAME

dpm_getspacemd - get space metadata  

SYNOPSIS

#include <sys/types.h>
#include "dpm_api.h"

int dpm_getspacemd (int nbtokens, char **s_tokens, int *nbreplies, struct dpm_space_metadata **spacemd)  

DESCRIPTION

dpm_getspacemd gets space metadata.

The input arguments are:

nbtokens
specifies the number of tokens in the request.
s_tokens
specifies an array of tokens returned by previous reservespace requests.

The output arguments are:

nbreplies
will be set to the number of replies in the array of space metadata.
spacemd
will be set to the address of an array of dpm_space_metadata structures allocated by the API. The client application is responsible for freeing the array when not needed anymore.

struct dpm_space_metadata {
        char            s_type;
        char            s_token[CA_MAXDPMTOKENLEN+1];
        uid_t           s_uid;
        gid_t           s_gid;
        char            ret_policy;
        char            ac_latency;
        char            u_token[256];
        char            client_dn[256];
        u_signed64      t_space;        /* Total space */
        u_signed64      g_space;        /* Guaranteed space */
        signed64        u_space;        /* Unused space */
        char            poolname[CA_MAXPOOLNAMELEN+1];
        time_t          a_lifetime;     /* Lifetime assigned */
        time_t          r_lifetime;     /* Remaining lifetime */
        int             nbgids;
        gid_t           *gids;          /* restrict the space to given group(s) */
};
 

RETURN VALUE

This routine returns 0 if the operation was successful or -1 if the operation failed. In the latter case, serrno is set appropriately.  

ERRORS

EFAULT
s_tokens , nbreplies or spacemd is a NULL pointer.
ENOMEM
Memory could not be allocated for storing the reply.
EINVAL
nbtokens is not strictly positive or the specified tokens are invalid/unknown.
SENOSHOST
Host unknown.
SEINTERNAL
Database error.
SECOMERR
Communication error.