---
name: "drm_vma_offset_add"
section: "9"
platform: "linux"
package: "linux-manual-3.16"
version: "3.16.56-1+deb8u1"
release: "Debian 8 (Jessie)"
platforms: ["linux"]
url: "https://new.carta.tech/drm_vma_offset_add"
---

# drm\_vma\_offset\_add(9)

Add offset node to manager

## NAME

drm\_vma\_offset\_add - Add offset node to manager

## SYNOPSIS

**int drm\_vma\_offset\_add(struct drm\_vma\_offset\_manager \*** *mgr***, struct drm\_vma\_offset\_node \*** *node***, unsigned long** *pages***);**

## ARGUMENTS

*mgr*

Manager object

*node*

Node to be added

*pages*

Allocation size visible to user-space (in number of pages)

## DESCRIPTION

Add a node to the offset-manager. If the node was already added, this does nothing and return 0. *pages* is the size of the object given in number of pages. After this call succeeds, you can access the offset of the node until it is removed again.

If this call fails, it is safe to retry the operation or call **drm\_vma\_offset\_remove**, anyway. However, no cleanup is required in that case.

*pages* is not required to be the same size as the underlying memory object that you want to map. It only limits the size that user-space can map into their address space.

## RETURNS

0 on success, negative error code on failure.

## AUTHORS

**Jesse Barnes** \<jesse.barnes@intel.com\>\
 Intel Corporation,

Initial version

**Laurent Pinchart** \<laurent.pinchart@ideasonboard.com\>\
 Ideas on board SPRL,

Driver internals

**Daniel Vetter** \<daniel.vetter@ffwll.ch\>\
 Intel Corporation,

Contributions all over the place

## COPYRIGHT
