NAME
AllocNamedObjectA -- allocate a named object. (V39)
SYNOPSIS
object = AllocNamedObjectA(name, tagList);
D0 A0 A1
struct namedobject *allocnamedobjecta(strptr, struct tagitem *);
object = AllocNamedObject(name, Tag1, ...);
struct namedobject *allocnamedobject(strptr, ulong, ...);
FUNCTION
Allocates a namedobject and initializes it as needed to the
name given. This object can then be used as an object in the
namespaces. Tags can be given to make an object contain a
namespace such that nested namespaces can be built.
When the object is allocated, it automatically has one use.
If you later wish to release this object such that others may
remove it from the namespace you must do a releasenamedobject().
INPUTS
name - name for the object (must not be NULL)
tagList - tags with additional information for the allocation or NULL
TAGS
ANO_NameSpace - bool tag, default false. if this tag is
TRUE, the named object will also have a
name space attached to it.
ANO_UserSpace - ULONG tag, default 0. If this tag is non-NULL
it defines the size (in bytes) of the user
space to be allocated with the named object
and that will be pointed to by the no_Object
pointer. This memory is long-word aligned.
If no space is defined, no_Object will be NULL.
ANO_Priority - byte tag, default 0. this tag lets you pick
a priority for the named object for when it is
placed into a name space.
ANO_Flags - ULONG tag, default 0. This tag lets you set
the flags of the NameSpace (if you allocated
one) There currently are only TWO flags.
Do *NOT* set *any* other bits as they are for
future use!!! (You can't read them anyway)
The flags are:
NSF_NODUPS - Name space must be unique.
NSF_CASE - Name space is case sensitive
RESULT
object - the object allocated, or NULL for failure. The object
is defined as a pointer to a pointer. You can do what you
wish with the pointer. (It may be NULL or contain a pointer
to memory that you had asked for in the tags.)
SEE ALSO
freenamedobject(), <utility/name.h>