5.20.2 Registering instances

The global function instanceRegistry_registerInstance() registers a new instance in the global instance registry and assigns an instance id, instId, to it.

A call to this function to register instance foo.bar, has the following effects:

  • The instance is registered under its path name foo.bar and a unique instId is assigned to it, which the function returns. The list of all registered instances can be queried using instanceRegistry_getList().
  • All framework instances can use the instId to route requests and responses to foo.bar.

instanceRegistry_registerInstance() must be called as a request, not as a notification. When it is called as a notification, the call is ignored and no instance is registered. Instances must call it before calling any other Iris function because their instance id must be included in all request ids. When calling it, instances do not yet have an instance id assigned, so they cannot set their instance id in bits[63:32] of the request id. Instead, they set bits[63:32] of the request id to zero. The caller can freely choose bits[31:0], as for normal requests.

Note:

The IrisSupportLib library normally takes care of constructing request objects for you, so unless you are implementing your own library, you do not need to create request ids yourself.

The following restrictions apply to registering instances:

  • The top-level in the hierarchical instance name must be one of the instance classes, for example component.
  • Instances must register themselves as early as possible, in other words as soon as they exist and an IrisInterface can send the instanceRegistry_registerInstance() call.

See 5.20.3 Unregistering instances for restrictions on unregistering instances.

The hierarchy does not indicate dependencies. Children do not depend on the presence of their parents. So, the following actions are valid:

  • Registering component.foo.bar without having registered component.foo beforehand.
  • Unregistering component.foo before unregistering component.foo.bar, assuming both have previously been registered.
Non-ConfidentialPDF file icon PDF version101196_0100_03_en
Copyright © 2018, 2019 Arm Limited or its affiliates. All rights reserved.