---
name: "dpm_getpools"
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_getpools"
---

# dpm\_getpools(3)

get list of pools

## NAME

dpm\_getpools - get list of pools

## SYNOPSIS

**#include \<sys/types.h\>**\
 **#include "dpm\_api.h"**

**int dpm\_getpools (int \****nbpools***,** **struct dpm\_pool \*\****dpm\_pools***)**

## DESCRIPTION

**dpm\_getpools** gets list of pools.

The output arguments are:

- *nbpools*

  will be set to the number of replies in the array of pools.

- *dpm\_pools*

  will be set to the address of an array of dpm\_pool structures allocated by the API. The client application is responsible for freeing the array when not needed anymore. This is also necessary for the gids entry of each dpm\_pool.

```
struct dpm_pool {
	char		poolname[CA_MAXPOOLNAMELEN+1];
	u_signed64	defsize;
	int		gc_start_thresh;
	int		gc_stop_thresh;
	int		def_lifetime;
	int		defpintime;
	int		max_lifetime;
	int		maxpintime;
	char		fss_policy[CA_MAXPOLICYLEN+1];
	char		gc_policy[CA_MAXPOLICYLEN+1];
	char		mig_policy[CA_MAXPOLICYLEN+1];
	char		rs_policy[CA_MAXPOLICYLEN+1];
	int		nbgids
	gid_t		*gids;		/* restrict the pool to given group(s) */
	char		ret_policy;	/* retention policy: 'R', 'O' or 'C' */
	char		s_type;		/* space type: 'V', 'D' or 'P' */
	u_signed64	capacity;
	u_signed64	free;
	struct dpm_fs	*elemp;
	int		nbelem;
	int		next_elem;	/* next pool element to be used */
};
```

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

  *nbpools* or *dpm\_pools* is a NULL pointer.

- **ENOMEM**

  Memory could not be allocated for storing the reply.

- **SENOSHOST**

  Host unknown.

- **SECOMERR**

  Communication error.
