Services are provided to decompose an object Id into its subordinate components. The following services are used to do this:
rtems_object_id_get_api
rtems_object_id_get_class
rtems_object_id_get_node
rtems_object_id_get_index
The following C language example illustrates the decomposition of an Id and printing the values.
void printObjectId(rtems_id id)
{
printf(
"API=%d Class=%d Node=%d Index=%d\n",
rtems_object_id_get_api(id),
rtems_object_id_get_class(id),
rtems_object_id_get_node(id),
rtems_object_id_get_index(id)
);
}
This prints the components of the Ids as integers.
It is also possible to construct an arbitrary Id using
the rtems_build_id service. The following
C language example illustrates how to construct the
"next Id."
rtems_id nextObjectId(rtems_id id)
{
return rtems_build_id(
rtems_object_id_get_api(id),
rtems_object_id_get_class(id),
rtems_object_id_get_node(id),
rtems_object_id_get_index(id) + 1
);
}
Note that this Id may not be valid in this system or associated with an allocated object.
Copyright © 1988-2008 OAR Corporation