get_root_nodes returns a list of node IDs for the root nodes.
get_node returns a dictionary for a given node, containing all the node's properties; or nil if no such node exists.
get_current_nodes returns the current node path of the given processor. That is, a list of node IDs of all nodes that are currently running on the processor, the first node being the root node, and every subsequent node a child of the node before it. If the tracker is not tracking the given processor, the return value is nil.
get_current_processors returns a list of processors that are currently active on the given node, or one of it's descendants. The list will be empty if there is no active processor. Nil will be returned if the given node does not exist.
get_all_processors returns a list of all processors that are available for the OS Awareness framework.
get_parent returns the node ID of the specified node's parent; or nil if the node has no parent.
get_children returns a list of node IDs for the children of the specified node, this will be an empty list if the node does not have any children. The method will return nil if the node does not exist.
The get_formatted_properties function returns a dictionary
containing all properties for a node, formatted as strings or integers. It
will return nil upon a failure. For example, a tracker could format the
value of property pid
to show the value in hexadecimal form.
{'name': "Our OS", 'pid': "0x1234"}
SIM_INTERFACE(osa_node_tree_query) { attr_value_t (*get_root_nodes)(conf_object_t *NOTNULL obj); attr_value_t (*get_node)(conf_object_t *NOTNULL obj, node_id_t node_id); attr_value_t (*get_current_nodes)(conf_object_t *NOTNULL obj, node_id_t base_id, conf_object_t *cpu); attr_value_t (*get_current_processors)(conf_object_t *NOTNULL obj, node_id_t node_id); attr_value_t (*get_all_processors)(conf_object_t *NOTNULL obj); conf_object_t *(*get_mapper)(conf_object_t *NOTNULL obj, node_id_t node_id); attr_value_t (*get_parent)(conf_object_t *NOTNULL obj, node_id_t node_id); attr_value_t (*get_children)(conf_object_t *NOTNULL obj, node_id_t node_id); attr_value_t (*get_formatted_properties)(conf_object_t *NOTNULL obj, uint64 node_id); }; #define OSA_NODE_TREE_QUERY_INTERFACE "osa_node_tree_query"