class DeleteSecureHeapPhysicalRange

Defined at line 1821 of file fidling/gen/sdk/fidl/fuchsia.sysmem/fuchsia.sysmem/cpp/fidl/fuchsia.sysmem/cpp/markers.h

This request from sysmem to the securemem driver conveys a physical

range to delete, for a heap whose physical range(s) are set up via

sysmem.

Only sysmem can call this because only sysmem is handed the client end

of a FIDL channel serving this protocol, via RegisterSecureMem(). The

securemem driver is the server end of this protocol.

The securemem driver must configure all the covered offsets as not

protected before responding to this message with success.

On failure, the securemem driver must ensure the protected range was not

deleted.

Sysmem must not call this if dynamic_protection_ranges false.

If dynamic_protection_ranges is true, sysmem can call this repeatedly,

on various ranges that exist at the time of the call.

If any portion of the range being deleted is not also covered by another

protected range, then any ongoing DMA to any part of the entire range

may be interrupted / may fail, potentially in a way that's disruptive to

the entire system (bus lockup or similar, depending on device details).

Therefore, the caller must ensure that no ongoing DMA is occurring to

any portion of the range being deleted, unless the caller has other

active ranges covering every block of the range being deleted. Ongoing

DMA to/from blocks outside the range being deleted is never impacted by

the deletion.

Errors:

* ZX_ERR_BAD_STATE - called when !dynamic_protection_ranges.

* ZX_ERR_INVALID_ARGS - unexpected heap, or range that doesn't conform

to protected_range_granularity.

* ZX_ERR_INTERNAL - generic internal error (such as in communication

with TEE which doesn't generate zx_status_t errors).

* ZX_ERR_NOT_FOUND - the specified range is not found.

* other errors are possible, such as from communication failures or

server propagation of zx_status_t failures.

Public Members

static const bool kHasClientToServer
static const bool kHasClientToServerBody
static const bool kHasServerToClient
static const bool kHasServerToClientBody
static const bool kHasNonEmptyUserFacingResponse
static const bool kHasDomainError
static const bool kHasFrameworkError
static const uint64_t kOrdinal