home *** CD-ROM | disk | FTP | other *** search
- #ifndef REXX_RXSLIB_H
- #define REXX_RXSLIB_H
- /*
- ** $VER: rxslib.h 1.6 (8.11.91)
- ** Includes Release 40.15
- **
- ** The header file for the REXX Systems Library
- **
- ** (C) Copyright 1987,1988,1989,1990 William S. Hawes
- ** (C) Copyright 1990-1993 Commodore-Amiga, Inc.
- ** All Rights Reserved
- */
-
- #ifndef REXX_STORAGE_H
- #include "rexx/storage.h"
- #endif
-
- #define RXSNAME "rexxsyslib.library"
- #define RXSDIR "REXX"
- #define RXSTNAME "ARexx"
-
- /* The REXX systems library structure. This should be considered as */
- /* semi-private and read-only, except for documented exceptions. */
-
- struct RxsLib {
- struct Library rl_Node; /* EXEC library node */
- UBYTE rl_Flags; /* global flags */
- UBYTE rl_Shadow; /* shadow flags */
- APTR rl_SysBase; /* EXEC library base */
- APTR rl_DOSBase; /* DOS library base */
- APTR rl_IeeeDPBase; /* IEEE DP math library base */
- LONG rl_SegList; /* library seglist */
- LONG rl_NIL; /* global NIL: filehandle */
- LONG rl_Chunk; /* allocation quantum */
- LONG rl_MaxNest; /* maximum expression nesting */
- struct NexxStr *rl_NULL; /* static string: NULL */
- struct NexxStr *rl_FALSE; /* static string: FALSE */
- struct NexxStr *rl_TRUE; /* static string: TRUE */
- struct NexxStr *rl_REXX; /* static string: REXX */
- struct NexxStr *rl_COMMAND; /* static string: COMMAND */
- struct NexxStr *rl_STDIN; /* static string: STDIN */
- struct NexxStr *rl_STDOUT; /* static string: STDOUT */
- struct NexxStr *rl_STDERR; /* static string: STDERR */
- STRPTR rl_Version; /* version string */
-
- STRPTR rl_TaskName; /* name string for tasks */
- LONG rl_TaskPri; /* starting priority */
- LONG rl_TaskSeg; /* startup seglist */
- LONG rl_StackSize; /* stack size */
- STRPTR rl_RexxDir; /* REXX directory */
- STRPTR rl_CTABLE; /* character attribute table */
- STRPTR rl_Notice; /* copyright notice */
-
- struct MsgPort rl_RexxPort; /* REXX public port */
- UWORD rl_ReadLock; /* lock count */
- LONG rl_TraceFH; /* global trace console */
- struct List rl_TaskList; /* REXX task list */
- WORD rl_NumTask; /* task count */
- struct List rl_LibList; /* Library List header */
- WORD rl_NumLib; /* library count */
- struct List rl_ClipList; /* ClipList header */
- WORD rl_NumClip; /* clip node count */
- struct List rl_MsgList; /* pending messages */
- WORD rl_NumMsg; /* pending count */
- struct List rl_PgmList; /* cached programs */
- WORD rl_NumPgm; /* program count */
-
- UWORD rl_TraceCnt; /* usage count for trace console */
- WORD rl_avail;
- };
-
- /* Global flag bit definitions for RexxMaster */
- #define RLFB_TRACE RTFB_TRACE /* interactive tracing? */
- #define RLFB_HALT RTFB_HALT /* halt execution? */
- #define RLFB_SUSP RTFB_SUSP /* suspend execution? */
- #define RLFB_STOP 6 /* deny further invocations */
- #define RLFB_CLOSE 7 /* close the master */
-
- #define RLFMASK (1<<RLFB_TRACE) | (1<<RLFB_HALT) | (1<<RLFB_SUSP)
-
- /* Initialization constants */
- #define RXSCHUNK 1024 /* allocation quantum */
- #define RXSNEST 32 /* expression nesting limit */
- #define RXSTPRI 0 /* task priority */
- #define RXSSTACK 4096 /* stack size */
-
- /* Character attribute flag bits used in REXX. */
- #define CTB_SPACE 0 /* white space characters */
- #define CTB_DIGIT 1 /* decimal digits 0-9 */
- #define CTB_ALPHA 2 /* alphabetic characters */
- #define CTB_REXXSYM 3 /* REXX symbol characters */
- #define CTB_REXXOPR 4 /* REXX operator characters */
- #define CTB_REXXSPC 5 /* REXX special symbols */
- #define CTB_UPPER 6 /* UPPERCASE alphabetic */
- #define CTB_LOWER 7 /* lowercase alphabetic */
-
- /* Attribute flags */
- #define CTF_SPACE (1 << CTB_SPACE)
- #define CTF_DIGIT (1 << CTB_DIGIT)
- #define CTF_ALPHA (1 << CTB_ALPHA)
- #define CTF_REXXSYM (1 << CTB_REXXSYM)
- #define CTF_REXXOPR (1 << CTB_REXXOPR)
- #define CTF_REXXSPC (1 << CTB_REXXSPC)
- #define CTF_UPPER (1 << CTB_UPPER)
- #define CTF_LOWER (1 << CTB_LOWER)
-
- #endif
-