---
name: "dpm_getspacemd"
section: "3"
platform: "linux"
package: "libdpm-dev"
version: "1.10.0-2+b3"
release: "Debian 10 (Buster)"
platforms: ["linux"]
url: "https://new.carta.tech/dpm_getspacemd"
---

# dpm\_getspacemd(3)

get space metadata

## 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.
