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

TABLE OF CONTENTS

rexxsyslib.library/ClearRexxMsg
rexxsyslib.library/CreateArgstring
rexxsyslib.library/CreateRexxMsg
rexxsyslib.library/DeleteArgstring
rexxsyslib.library/DeleteRexxMsg
rexxsyslib.library/FillRexxMsg
rexxsyslib.library/IsRexxMsg
rexxsyslib.library/LengthArgstring
rexxsyslib.library/LockRexxBase
rexxsyslib.library/UnlockRexxBase
rexxsyslib.library/ClearRexxMsg               rexxsyslib.library/ClearRexxMsg

    NAME
        ClearRexxMsg - Releases and clears the argument array in a RexxMsg

    SYNOPSIS
        ClearRexxMsg(msgptr, count)
                     A0      D0

        VOID ClearRexxMsg(struct RexxMsg *,ULONG);

    FUNCTION
        This function will DeleteArgstring() one or more argstrings from
        the RexxMsg and clear the slot.  The count is used to select the
        number of slots to clear.

    INPUTS
        msgptr - A pointer to a RexxMsg
        count - The number of slots to be cleared.  The number can be from
                1 to 16.  (There are 16 slots)

    RESULTS
        All of the slots in the given count will be cleared and the argstring
        will have been released.

    SEE ALSO
        FillRexxMsg(), DeleteRexxMsg(), DeleteArgstring(), CreateArgstring()

    BUGS
rexxsyslib.library/CreateArgstring         rexxsyslib.library/CreateArgstring

    NAME
        CreateArgstring - Create an argument string structure

    SYNOPSIS
        argstr = CreateArgstring(string, length)
        D0,A0                    A0      D0

        UBYTE *CreateArgstring(UBYTE *, ULONG);

    FUNCTION
        Allocates a RexxArg structure and copies the supplied string into it.
        The returned pointer points at the string part of the structure
        and can be treated like an ordinary string pointer.  (However, care
        must be taken that you do not change the string)

    INPUTS
        string - A pointer at your input string
        length - The number of bytes of your input string you wish copied.
                 (NOTE:  You are limited to 65,535 byte strings)

    RESULTS
        argstr - A pointer to the argument string.  The results are returned
                 in both A0 and D0.  You should always check the result
                 as an allocation failure would cause an error.

    SEE ALSO
        DeleteArgstring(), LengthArgstring(), ClearRexxMsg(), FillRexxMsg()

    BUGS
rexxsyslib.library/CreateRexxMsg             rexxsyslib.library/CreateRexxMsg

    NAME
        CreateRexxMsg - Create an ARexx message structure

    SYNOPSIS
        rexxmsg = CreateRexxMsg(port, extension, host)
        D0,A0                   A0    A1         D0

        struct RexxMsg *CreateRexxMsg(struct MsgPort *, UBYTE *, UBYTE *);

    FUNCTION
        This functions allocates an ARexx message packet.  The RexxMsg
        consists of a standard EXEC message structure extended to include
        the ARexx specific information.

    INPUTS
        port - A pointer to a public or private message port.  This *MUST*
               be a valid port as this is where the message will be replied.

        extension - A pointer to a NULL terminated string that is to be used
                    as the default extension for the REXX scripts.  If this
                    is NULL, the default is "REXX"

        host - A pointer to a NULL terminated string that is to be used
               as the default host port.  The name must be the same as the
               name of the public message port that is to be the default host.
               If this field is NULL, the default is REXX.

    RESULTS
        rexxmsg - A RexxMsg structure

    NOTES
        The extension and host strings must remain valid for as long as the
        RexxMsg exists as only the pointer to those strings are stored.

    SEE ALSO
        DeleteRexxMsg(), ClearRexxMsg(), FillRexxMsg()

    BUGS
rexxsyslib.library/DeleteArgstring         rexxsyslib.library/DeleteArgstring

    NAME
        DeleteArgstring - Releases an Argstring created by CreateArgstring()

    SYNOPSIS
        DeleteArgstring(argstring)
                        A0

        VOID DeleteArgstring(UBYTE *);

    FUNCTION
        Releases an argstring.  The argstring must have been created by ARexx

    INPUTS
        argstring - A pointer to the string buffer of an argstring.

    RESULTS

    SEE ALSO
        CreateArgstring(), ClearRexxMsg(), FillRexxMsg()

    BUGS
rexxsyslib.library/DeleteRexxMsg             rexxsyslib.library/DeleteRexxMsg

    NAME
        DeleteRexxMsg - Releases a RexxMsg structure created by CreateRexxMsg()

    SYNOPSIS
        DeleteRexxMsg(packet)
                      A0

        VOID DeleteRexxMsg(struct RexxMsg *);

    FUNCTION
        The function releases an ARexx message packet that was allocated
        with CreateRexxMsg().  Any argument fields in the RexxMsg structure
        should be cleared before calling this function as it does
        not release them for you.

    INPUTS
        packet - A pointer to a RexxMsg structure allocated by CreateRexxMsg()

    EXAMPLE
        if (rmsg=CreateRexxMsg(myport,"myapp","MYAPP_PORT"))
        {
                /* Do my think with rmsg */
                ClearRexxMsg(rmsg,16);  /* We may not want to clear all 16 */
                DeleteRexxMsg(rmsg);
        }

    SEE ALSO
        CreateRexxMsg(), ClearRexxMsg()

    BUGS
rexxsyslib.library/FillRexxMsg                 rexxsyslib.library/FillRexxMsg

    NAME
        FillRexxMsg - Fill the argument strings as needed

    SYNOPSIS
        result = FillRexxMsg(msgptr, count, mask)
        D0                   A0      D0     D1 [0:15]

        BOOL FillRexxMsg(struct RexxMsg *,ULONG,ULONG);

    FUNCTION
        This function will convert and install up to 16 argument strings into
        a RexxMsg structure.  The message packet's argument fields must be
        set to either a pointer to a NULL terminated string or an integer value
        The mask, bits 0 to 15, correspond to the type of value is stored
        in the argument slot.  If the bit is cleared, the argument is a
        string pointer; if the bit is set, the argument is an integer.

    INPUTS
        msgptr - Pointer to a RexxMsg (allocated via CreateRexxMsg)
        count - The number of argument slots to fill in.  This number should
                be from 1 to 16.

        mask - A bit mask corresponding to the 16 fields that is used to
               determine the type of the field.

    RESULTS
        result - A boolean.  If it is TRUE, the call worked.  If it is false,
                 some allocation did not work.  All argstrings that were
                 created will be released.

    SEE ALSO
        ClearRexxMsg(), CreateArgstring(), DeleteArgstring(), CreateRexxMsg()

    BUGS
rexxsyslib.library/IsRexxMsg                     rexxsyslib.library/IsRexxMsg

    NAME
        IsRexxMsg - Function to determine if a message came from ARexx

    SYNOPSIS
        result = IsRexxMsg(msgptr)
        D0                 A0

        BOOL IsRexxMsg(struct RexxMsg *);

    FUNCTION
        This function can be used to determine if a message came from an
        ARexx program.

    INPUTS
        msgptr - A pointer to the suspected RexxMsg.

    RESULTS
        result - A boolean:  TRUE if it is an ARexx message, FALSE if not.

    SEE ALSO
        CreateRexxMsg()

    BUGS
rexxsyslib.library/LengthArgstring         rexxsyslib.library/LengthArgstring

    NAME
        LengthArgstring - Returns the length value stored in the argstring

    SYNOPSIS
        length = LengthArgstring(argstring)
        D0                       A0

        ULONG LengthArgstring(UBYTE *);

    FUNCTION
        This function returns the length value stored in the argstring.
        This is *NOT* the same as doing a strlen() type call on the
        argstring.  (Note that argstrings may contain NULLs)

    INPUTS
        argstring - A pointer to an argstring that was created by ARexx

    RESULTS
        length - The length of the argstring.

    EXAMPLE

    SEE ALSO
        CreateArgstring()

    BUGS
rexxsyslib.library/LockRexxBase               rexxsyslib.library/LockRexxBase

    NAME
        LockRexxBase - Obtain a semaphore lock on the RexxBase structure

    SYNOPSIS
        LockRexxBase(resource)
                     D0

        VOID LockRexxBase(ULONG);

    FUNCTION
        Secures the specified resource in the ARexx library base.

    INPUTS
        resource - A manifest constant defining which resource to lock.
                   ZERO locks all resources.

    NOTES
        Currently, only ZERO resource type is available.  You *MUST* make
        sure that you do not call this function with an undefined value
        as it may become defined at some future date and cause unwanted
        behavior.

    SEE ALSO
        UnlockRexxBase()

    BUGS
rexxsyslib.library/UnlockRexxBase           rexxsyslib.library/UnlockRexxBase

    NAME
        UnlockRexxBase - Release a semaphore lock on the RexxBase structure

    SYNOPSIS
        UnlockRexxBase(resource)
                       D0

        VOID UnlockRexxBase(ULONG);

    FUNCTION
        Releases the specified resource in the ARexx library base.

    INPUTS
        resource - A manifest constant defining which resource to unlock.
                   This value *MUST* match the value used in the matching
                   LockRexxBase() call.

    NOTES
        Currently, only ZERO resource type is available.  You *MUST* make
        sure that you do not call this function with an undefined value
        as it may become defined at some future date and cause unwanted
        behavior.  You *MUST* make sure that you only call this function
        after a matching call to LockRexxBase() was made.

    SEE ALSO
        LockRexxBase()

    BUGS