REXXSYSLIB Types Reference

Per-function autodoc pages link to these types via the type name (e.g., [List](types-rexxsyslib.md#list)).

Clickable inner types: inside each struct definition, field types that are themselves structs/unions/enums are clickable hyperlinks to their own definitions.

Contents

rxslib.h


storage.h


RxsLib

Source: rexx/rxslib.h


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;
   APTR      rl_UtilityBase;
};


NexxStr

Source: rexx/storage.h


struct NexxStr {
   LONG     ns_Ivalue;             /* integer value */
   UWORD    ns_Length;             /* length in bytes (excl null) */
   UBYTE    ns_Flags;              /* attribute flags */
   UBYTE    ns_Hash;               /* hash code */
   BYTE     ns_Buff[8];            /* buffer area for strings */
   };


RexxArg

Source: rexx/storage.h


struct RexxArg {
   LONG     ra_Size;               /* total allocated length */
   UWORD    ra_Length;             /* length of string */
   UBYTE    ra_Flags;              /* attribute flags */
   UBYTE    ra_Hash;               /* hash code */
   BYTE     ra_Buff[8];            /* buffer area */
   };


RexxMsg

Source: rexx/storage.h


struct RexxMsg {
   struct Message rm_Node;           /* EXEC message structure */
   APTR     rm_TaskBlock;          /* global structure (private) */
   APTR     rm_LibBase;            /* library base (private) */
   LONG     rm_Action;             /* command (action) code */
   LONG     rm_Result1;            /* primary result (return code) */
   LONG     rm_Result2;            /* secondary result */
   STRPTR   rm_Args[16];           /* argument block (ARG0-ARG15) */

   struct MsgPort *rm_PassPort;        /* forwarding port */
   STRPTR   rm_CommAddr;           /* host address (port name) */
   STRPTR   rm_FileExt;            /* file extension */
   LONG     rm_Stdin;              /* input stream (filehandle) */
   LONG     rm_Stdout;             /* output stream (filehandle) */
   LONG     rm_avail;              /* future expansion */
   };


RexxRsrc

Source: rexx/storage.h


struct RexxRsrc {
   struct Node rr_Node;
   WORD     rr_Func;               /* "auto-delete" offset */
   APTR     rr_Base;               /* "auto-delete" base */
   LONG     rr_Size;               /* total size of node */
   LONG     rr_Arg1;               /* available  */
   LONG     rr_Arg2;               /* available  */
   };


RexxTask

Source: rexx/storage.h


struct RexxTask {
   BYTE     rt_Global[GLOBALSZ];       /* global data structure */
   struct MsgPort rt_MsgPort;        /* global message port */
   UBYTE    rt_Flags;              /* task flag bits */
   BYTE     rt_SigBit;             /* signal bit */

   APTR     rt_ClientID;           /* the client's task ID */
   APTR     rt_MsgPkt;             /* the packet being processed */
   APTR     rt_TaskID;             /* our task ID */
   APTR     rt_RexxPort;           /* the REXX public port */

   APTR     rt_ErrTrap;            /* Error trap address */
   APTR     rt_StackPtr;           /* stack pointer for traps */

   struct List rt_Header1;          /* Environment list */
   struct List rt_Header2;          /* Memory freelist */
   struct List rt_Header3;          /* Memory allocation list */
   struct List rt_Header4;          /* Files list */
   struct List rt_Header5;          /* Message Ports List */
   };


SrcNode

Source: rexx/storage.h


struct SrcNode {
   struct SrcNode *sn_Succ;        /* next node */
   struct SrcNode *sn_Pred;        /* previous node */
   APTR     sn_Ptr;            /* pointer value */
   LONG     sn_Size;               /* size of object */
   };