class BusTransactionInitiatorDispatcher
Defined at line 21 of file ../../zircon/kernel/object/include/object/bus_transaction_initiator_dispatcher.h
Public Methods
zx_obj_type_t get_type ()
Defined at line 29 of file ../../zircon/kernel/object/include/object/bus_transaction_initiator_dispatcher.h
zx_status_t Create (fbl::RefPtr<IommuDispatcher> 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
void ~BusTransactionInitiatorDispatcher ()
Defined at line 55 of file ../../zircon/kernel/object/bus_transaction_initiator_dispatcher.cc
Iommu & iommu ()
Defined at line 57 of file ../../zircon/kernel/object/include/object/bus_transaction_initiator_dispatcher.h
uint64_t bti_id ()
Defined at line 58 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 60 of file ../../zircon/kernel/object/bus_transaction_initiator_dispatcher.cc
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 64 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 67 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 90 of file ../../zircon/kernel/object/bus_transaction_initiator_dispatcher.cc
void on_zero_handles ()
Defined at line 101 of file ../../zircon/kernel/object/bus_transaction_initiator_dispatcher.cc
zx_status_t set_name (const char * name, size_t len)
Defined at line 118 of file ../../zircon/kernel/object/bus_transaction_initiator_dispatcher.cc
zx_status_t get_name (char (&)[32] out_name)
Defined at line 124 of file ../../zircon/kernel/object/bus_transaction_initiator_dispatcher.cc
uint64_t pmo_count ()
The count of the pinned memory object tokens.
Defined at line 156 of file ../../zircon/kernel/object/bus_transaction_initiator_dispatcher.cc
uint64_t quarantine_count ()
The count of the quarantined pinned memory object tokens.
Defined at line 162 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 167 of file ../../zircon/kernel/object/bus_transaction_initiator_dispatcher.cc
Protected Methods
void AddPmoLocked (PinnedMemoryTokenDispatcher * pmt)
Used to register a PMT pointer during PMT construction
Defined at line 131 of file ../../zircon/kernel/object/bus_transaction_initiator_dispatcher.cc
void RemovePmo (PinnedMemoryTokenDispatcher * pmt)
Used to unregister a PMT pointer during PMT destruction
Defined at line 136 of file ../../zircon/kernel/object/bus_transaction_initiator_dispatcher.cc
void Quarantine (fbl::RefPtr<PinnedMemoryTokenDispatcher> pmt)
Append |pmt| to the quarantine_ list. |pmt| is not removed from pinned_memory_.
This will prevent its underlying VMO from being unpinned until the
quarantine is cleared.
Defined at line 142 of file ../../zircon/kernel/object/bus_transaction_initiator_dispatcher.cc
Friends
class PinnedMemoryTokenDispatcher