1# Pinned Memory Token 2 3## NAME 4 5pinned_memory_token - Representation of a device DMA grant 6 7## SYNOPSIS 8 9Pinned Memory Tokens (PMTs) represent an outstanding access grant to a device 10for performing DMA. 11 12## DESCRIPTION 13 14PMTs are obtained by [pinning memory with a BTI object](../syscalls/bti_pin.md). 15It is valid for the device associated with the BTI to access the memory represented 16by the PMT for as long as the PMT object is around. When the PMT object is 17destroyed, either via **zx_handle_close**(), **zx_pmt_unpin**(), or process 18termination, access to the represented memory becomes illegal (this is 19enforced by hardware on systems with the capability to do so, such as IOMMUs). 20 21If a PMT object is destroyed by means other than **zx_pmt_unpin**(), the 22underlying memory is *quarantined*. See 23[bus_transaction_initiator](bus_transaction_initiator.md) for more details. 24 25## SEE ALSO 26 27+ [bus_transaction_initiator](bus_transaction_initiator.md) - Bus Transaction Initiators 28 29## SYSCALLS 30 31+ [bti_pin](../syscalls/bti_pin.md) - pin memory and grant access to it to the BTI 32+ [pmt_unpin](../syscalls/pmt_unpin.md) - revoke access and unpin memory 33