A chain is made up from nodes that orginate from a chain control
object. A node is of type rtems.chain_node
. The node
is designed to be part of a user data structure and a cast is used to
move from the node address to the user data structure address. For
example:
typedef struct foo { rtems.chain_node node; int bar; } foo;
creates a type foo
that can be placed on a chain. To get the
foo structure from the list you perform the following:
foo* get_foo(rtems.chain_control* control) { return (foo*) rtems.chain_get(control); }
The node is placed at the start of the user's structure to allow the node address on the chain to be easly cast to the user's structure address.
Copyright © 1988-2008 OAR Corporation