[Contents] [Index] [Help] [Retrace] [Browse <] [Browse >]

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;

    points to the next node in the list (successor).

    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;

    defines the type of the node (see <exec/nodes.h> for a list).

    specifies the priority of the node  (+127 (highest) to -128

    points to a printable name for the node (a NULL-terminated

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

    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.

[Back to Amiga Developer Docs]