Skip to content

HandleQueryAt

Reads one property of a handle or the object behind it.

Number Selector Blocking Since
0x08 SVC_MANAGEHANDLE MNGHNDL_QUERY (3) no 2.0
SvcResult HandleQueryAt(Handle h, QueryWhat what, size_t index);

Registers: (h, what, index) -> r0 status, r1 value

what

r1

QUERY_TYPE

handle type

QUERY_PERMS

the handle's permissions

QUERY_MARKER

the handle's marker

QUERY_STATUS

task exit status, space's last exit status, or ZUZU_OK / ERR_DEAD for a port

QUERY_SIZE

size in bytes of a memory object

QUERY_DMA_COUNT

number of DMA mappings on a device

QUERY_DMA_ID

id of the index-th mapping, 0 = newest

QUERY_DMA_BUS / _LEN / _DIR

bus address, length, direction of mapping index (an id)

Parameters

Name Direction Description
h in Handle to inspect.
what in Property to read.
index in QUERY_DMA_ID: position; QUERY_DMA_BUS/_LEN/_DIR: mapping id; otherwise ignored.

Returns

r0 is the status; r1 the value on success.

Errors

Error Condition
ERR_BADHANDLE h is not a live handle.
ERR_BADARG what is not a known property.
ERR_BADTYPE The property does not apply to this kind of object.
ERR_NOPERM DMA queries need PERM_MAP on the device handle.
ERR_NOENT No DMA mapping at that position or with that id.