class BusTransactionInitiatorDispatcher

Defined at line 20 of file ../../zircon/kernel/object/include/object/bus_transaction_initiator_dispatcher.h

Public Methods

zx_status_t Create (Iommu & iommu, uint64_t bti_id, KernelHandle<BusTransactionInitiatorDispatcher> * handle, zx_rights_t * rights)

Defined at line 29 of file ../../zircon/kernel/object/bus_transaction_initiator_dispatcher.cc

zx_obj_type_t get_type ()

Defined at line 31 of file ../../zircon/kernel/object/include/object/bus_transaction_initiator_dispatcher.h

void ReleaseQuarantine ()

Releases all quarantined PMTs. The memory pins are released and the VMO

references are dropped, so the underlying VMOs may be immediately destroyed, and the

underlying physical memory may be reallocated.

Defined at line 53 of file ../../zircon/kernel/object/include/object/bus_transaction_initiator_dispatcher.h

void ~BusTransactionInitiatorDispatcher ()

Defined at line 55 of file ../../zircon/kernel/object/bus_transaction_initiator_dispatcher.cc

zx_status_t set_name (const char * name, size_t len)

Defined at line 57 of file ../../zircon/kernel/object/include/object/bus_transaction_initiator_dispatcher.h

zx_status_t Pin (fbl::RefPtr<VmObject> vmo, uint64_t offset, uint64_t size, uint32_t perms, KernelHandle<PinnedMemoryTokenDispatcher> * handle, zx_rights_t * rights)

Pins the given VMO range and returns an PinnedMemoryTokenDispatcher

representing the pinned range.

|mapped_addrs_count| must be either

1) If |compress_results|, |size|/|minimum_contiguity()|, rounded up, in which

case each returned address represents a run of |minimum_contiguity()| bytes (with

the exception of the last which may be short)

2) Otherwise, |size|/|kPageSize|, in which case each returned address represents a

single page.

Returns ZX_ERR_INVALID_ARGS if |offset| or |size| are not kPageSize aligned.

Returns ZX_ERR_INVALID_ARGS if |perms| is not suitable to pass to the Iommu::Map() interface.

Returns ZX_ERR_INVALID_ARGS if |mapped_addrs_count| is not exactly the

value described above.

Defined at line 59 of file ../../zircon/kernel/object/bus_transaction_initiator_dispatcher.cc

zx_status_t get_name (char (&)[32] out_name)

Defined at line 61 of file ../../zircon/kernel/object/include/object/bus_transaction_initiator_dispatcher.h

Bti & bti ()

Defined at line 65 of file ../../zircon/kernel/object/include/object/bus_transaction_initiator_dispatcher.h

uint64_t minimum_contiguity ()

Pin will always be able to return addresses that are contiguous for at

least this many bytes. E.g. if this returns 1MB, then a call to Pin()

with a size of 2MB will return at most two physically-contiguous runs. If the size

were 2.5MB, it will return at most three physically-contiguous runs.

Defined at line 71 of file ../../zircon/kernel/object/include/object/bus_transaction_initiator_dispatcher.h

uint64_t aspace_size ()

The number of bytes in the address space (UINT64_MAX if 2^64).

Defined at line 74 of file ../../zircon/kernel/object/include/object/bus_transaction_initiator_dispatcher.h

uint64_t pmo_count ()

The count of the pinned memory object tokens.

Defined at line 77 of file ../../zircon/kernel/object/include/object/bus_transaction_initiator_dispatcher.h

uint64_t quarantine_count ()

The count of the quarantined pinned memory object tokens.

Defined at line 80 of file ../../zircon/kernel/object/include/object/bus_transaction_initiator_dispatcher.h

uint64_t bti_id ()

Defined at line 85 of file ../../zircon/kernel/object/include/object/bus_transaction_initiator_dispatcher.h

void on_zero_handles ()

Defined at line 91 of file ../../zircon/kernel/object/bus_transaction_initiator_dispatcher.cc

zx_info_bti_t GetInfo ()

Returns the information for zx_object_get_inf(ZX_INFO_BTI,..);

Defined at line 102 of file ../../zircon/kernel/object/bus_transaction_initiator_dispatcher.cc

Friends

class PinnedMemoryTokenDispatcher