smmu_init()

Updated: April 19, 2023

Initialize contact between the client process and smmuman

Synopsis:

#include <smmu.h>

int smmu_init(unsigned flags);

Arguments:

flags
Must be 0 (zero).

Library:

libsmmu.a

Description:

The smmu_init() function checks that the smmuman service is running, and connects the client to the service.

To use smmu_init() your smmuman client must have the SMMU_ABILITY_ATTACH_NAME ("smmu/attach") custom ability before calling the function.

If the client will use the SMF_TARGET flag when calling smmu_mapping_add() it must also have the SMMU_ABILITY_TARGET_NAME ("smmu/target") custom ability before calling smmu_init().

Use procmgr_ability_lookup() to obtain these custom abilities, and keep the returned ability identifiers in your list of allowed abilities. See procmgr_ability_lookup() and procmgr_ability() in the C Library Reference.

Returns:

-1
Failure: errno is set.
0
Success: a connection with the service has been established.