VMS Help
RTL Routines, LIB$, LIB$INSERT_TREE_64
*Conan The Librarian (sorry for the slow response - running on an old VAX)
|
|
(Alpha only.) The Insert Entry in a Balanced Binary Tree routine
inserts a node in a balanced binary tree.
Format
LIB$INSERT_TREE_64 treehead ,symbol ,flags
,user-compare-routine
,user-allocation-procedure ,new-node
[,user-data]
OpenVMS usage:cond_value
type: longword (signed)
access: write only
mechanism: by value
treehead
OpenVMS usage:address
type: address
access: modify
mechanism: by reference
Tree head for the binary tree. The treehead argument is the
address of a quadword that is this tree head. The initial value
of treehead is 0.
symbol
OpenVMS usage:user_arg
type: quadword (unsigned)
access: unspecified
mechanism: unspecified
Key to be inserted.
flags
OpenVMS usage:mask_quadword
type: quadword (unsigned)
access: read only
mechanism: by reference
Control flags. The flags argument is the address of the control
flags. Currently only bit 0 is used.
Bit Description
0 If clear, the address of the existing duplicate entry
is returned to the new-node argument. If set, duplicate
entries are inserted.
user-compare-routine
OpenVMS usage:procedure
type: procedure value
access: function call (before return)
mechanism: by value
User-supplied compare routine that LIB$INSERT_TREE_64 calls to
compare a symbol with a node. The user-compare-routine argument
is required; LIB$INSERT_TREE_64 calls the compare routine for
every node except the first node in the tree. The value returned
by the compare routine indicates the relationship between the
symbol key and the node.
user-allocation-procedure
OpenVMS usage:procedure
type: procedure value
access: function call (before return)
mechanism: by value
User-supplied allocate routine that LIB$INSERT_TREE_64 calls
to allocate virtual memory for a node. The user-allocation-
procedure argument is required; LIB$INSERT_TREE_64 always calls
the allocate routine.
new-node
OpenVMS usage:address
type: quadword (unsigned)
access: write only
mechanism: by reference
Location where the new key is inserted. The new-node argument is
the address of an unsigned quadword that is the address of the
new node.
user-data
OpenVMS usage:user_arg
type: unspecified
access: unspecified
mechanism: by value
User data that LIB$INSERT_TREE_64 passes to the compare and
allocate routines. The user-data argument is optional.
[legal]
[privacy]
[GNU]
[policy]
[netiquette]
[sponsors]
[FAQ]
Polarhome, production since 1999.
Member of Polarhome portal.