home *** CD-ROM | disk | FTP | other *** search
- #ifndef CLASSES_AREXX_H
- #define CLASSES_AREXX_H
- /*
- ** $VER: arexx.h 44.1 (19.10.1999)
- ** Includes Release 44.1
- **
- ** arexx.class definitions
- **
- ** (C) Copyright 1987-1999 Amiga, Inc.
- ** All Rights Reserved
- */
-
- #ifndef EXEC_MEMORY_H
- #include <exec/memory.h>
- #endif
-
- #ifndef DOS_DOS_H
- #include <dos/dos.h>
- #endif
-
- #ifndef DOS_RDARGS_H
- #include <dos/rdargs.h>
- #endif
-
- #ifndef REXX_STORAGE_H
- #include <rexx/storage.h>
- #endif
-
- #ifndef REXX_RXSLIB_H
- #include <rexx/rxslib.h>
- #endif
-
- #ifndef REXX_ERRORS_H
- #include <rexx/errors.h>
- #endif
-
- #ifndef INTUITION_CLASSES_H
- #include <intuition/classes.h>
- #endif
-
- #ifndef INTUITION_CLASSUSR_H
- #include <intuition/classusr.h>
- #endif
-
- #ifndef UTILITY_HOOKS_H
- #include <utility/hooks.h>
- #endif
-
- /*****************************************************************************/
-
- /* Tags supported by the arexx class
- */
- #define AREXX_Dummy (REACTION_Dummy+0x30000)
-
- #define AREXX_HostName (AREXX_Dummy+1)
- /* (STRPTR) */
- #define AREXX_DefExtension (AREXX_Dummy+2)
- /* (STRPTR) */
- #define AREXX_Commands (AREXX_Dummy+3)
- /* (struct ARexxCmd *) */
- #define AREXX_ErrorCode (AREXX_Dummy+4)
- /* (ULONG *) */
- #define AREXX_SigMask (AREXX_Dummy+5)
- /* (ULONG) */
- #define AREXX_NoSlot (AREXX_Dummy+6)
- /* (BOOL) */
- #define AREXX_ReplyHook (AREXX_Dummy+7)
- /* (struct Hook *) */
- #define AREXX_MsgPort (AREXX_Dummy+8)
- /* (struct MsgPort *) */
-
- /* Possible error result codes
- */
- #define RXERR_NO_COMMAND_LIST (1L)
- #define RXERR_NO_PORT_NAME (2L)
- #define RXERR_PORT_ALREADY_EXISTS (3L)
- #define RXERR_OUT_OF_MEMORY (4L)
-
- /* I can't spell, don't use this.
- */
- #define AREXX_DefExtention AREXX_DefExtension
-
- /*****************************************************************************/
-
- /* Methods Supported by the ARexx Class.
- */
- #define AM_HANDLEEVENT (0x590001)
- /* ARexx class event-handler. */
-
- #define AM_EXECUTE (0x590002)
- /* Execute a host command. */
-
- #define AM_FLUSH (0x590003)
- /* Flush rexx port. */
-
- /* AM_EXECUTE message.
- */
- struct apExecute
- {
- ULONG MethodID; /* AM_EXECUTE */
- STRPTR ape_CommandString; /* Command string to execute */
- STRPTR ape_PortName; /* Port to send to (usually RXSDIR) */
- LONG *ape_RC; /* RC pointer */
- LONG *ape_RC2; /* RC2 pointer */
- STRPTR *ape_Result; /* Result pointer */
- BPTR ape_IO; /* I/O handle */
- };
-
-
- /*****************************************************************************/
-
- /* An array of these structures must be passed at object-create time.
- */
- struct ARexxCmd
- {
- STRPTR ac_Name; /* Command name */
- UWORD ac_ID; /* Unique ID */
-
- /* NOTE: The function pointed to by ac_Func() will be called
- * with parameters in CPU registers. Register usage
- * is as follows:
- *
- * VOID ac_Func(struct ARexxCmd * cmd, struct RexxMsg * rm)
- * A0 A1
- */
- VOID (*ac_Func)();
-
- STRPTR ac_ArgTemplate; /* DOS-style argument template */
- ULONG ac_Flags; /* Unused, make NULL */
- ULONG *ac_ArgList; /* Result of ReadArgs() */
- LONG ac_RC; /* Primary result */
- LONG ac_RC2; /* Secondary result */
- STRPTR ac_Result; /* RESULT variable */
- };
-
- #endif /* CLASSES_AREXX_H */
-