A Node structure is divided into three parts: linkage, information, and content. The linkage part contains memory pointers to the node's successor and predecessor nodes. The information part contains the node type, the priority, and a name pointer. The content part stores the actual data structure of interest. For nodes that require linkage only, a small MinNode structure is used. struct MinNode { struct MinNode *mln_Succ; struct MinNode *mln_Pred; }; ln_Succ points to the next node in the list (successor). ln_Pred points to the previous node in the list (predecessor). When a type, priority, or name is required, a full-featured Node structure is used. struct Node { struct Node *ln_Succ; struct Node *ln_Pred; UBYTE ln_Type; BYTE ln_Pri; char *ln_Name; }; ln_Type defines the type of the node (see <exec/nodes.h> for a list). ln_Pri specifies the priority of the node (+127 (highest) to -128 (lowest)). ln_Name points to a printable name for the node (a NULL-terminated string). The Node and MinNode structures are often incorporated into larger structures, so groups of the larger structures can easily be linked together. For example, the Exec Interrupt structure is defined as follows: struct Interrupt { struct Node is_Node; APTR is_Data; VOID (*is_Code)(); }; Here the is_Data and is_Code fields represent the useful content of the node. Because the Interrupt structure begins with a Node structure, it may be passed to any of the Exec List manipulation functions.