/* $Revision Header * Header built automatically - do not edit! ************* * * (C) Copyright 1990 by MXM * * Name .....: PreInclude.c * Created ..: Sunday 25-Mar-90 12:57 * Revision .: 3 * * Date Author Comment * ========= ======== ==================== * 24-May-90 Olsen Even more new functions * 19-May-90 Olsen New function GetRexxMsg * 25-Mar-90 Olsen Created this file! * * $Revision Header ********************************************************/ /* Main system includes. */ #include #include #include #include #include /* Rexx definitions. */ #include /* Amiga prototypes/pragmas. */ #define __NO_PRAGMAS 1 #include /* BCPL 'NULL'. */ #define ZERO 0L /* Our pointer to ExecBase. */ extern struct ExecBase *SysBase; /* The rexx host library base. */ struct RexxHostBase { struct Library LibNode; struct RxsLib *RexxSysBase; }; /* A rexx host, somewhat more than a simple MsgPort. */ struct RexxHost { struct MsgPort rh_Port; ULONG rh_SpecialID; ULONG rh_Reserved[4]; }; /* The protos. */ struct RexxMsg *CreateRexxMsg(struct MsgPort *,char *,char *); STRPTR CreateArgstring(char *,LONG); VOID DeleteRexxMsg(struct RexxMsg *); VOID DeleteArgstring(char *); struct Node * FindRsrcNode(struct List *,char *,LONG); /* Prototypes for all library functions. */ struct RexxHost * CreateRexxHost(STRPTR); VOID * DeleteRexxHost(struct RexxHost *); LONG SendRexxCommand(struct RexxHost *,STRPTR,STRPTR,STRPTR); VOID FreeRexxCommand(struct RexxMsg *); VOID ReplyRexxCommand(struct RexxMsg *,LONG,LONG,STRPTR); STRPTR GetRexxCommand(struct RexxMsg *); STRPTR GetRexxArg(struct RexxMsg *); LONG GetRexxResult1(struct RexxMsg *); LONG GetRexxResult2(struct RexxMsg *); STRPTR GetToken(STRPTR,LONG *,STRPTR,LONG); LONG GetStringValue(STRPTR); STRPTR BuildValueString(LONG,STRPTR); LONG RexxStrCmp(STRPTR,STRPTR); struct RexxMsg * GetRexxMsg(struct RexxHost *,LONG); ULONG SendRexxMsg(STRPTR,STRPTR *,STRPTR,LONG); VOID GetRexxString(STRPTR,STRPTR); LONG GetRexxClip(char *Name,LONG WhichArg); /* Library calls for rexx host lib. */ #pragma amicall(RexxHostBase, 0x1e, CreateRexxHost(a0)) #pragma amicall(RexxHostBase, 0x24, DeleteRexxHost(a0)) #pragma amicall(RexxHostBase, 0x2a, SendRexxCommand(a0,a1,a2,a3)) #pragma amicall(RexxHostBase, 0x30, FreeRexxCommand(a0)) #pragma amicall(RexxHostBase, 0x36, ReplyRexxCommand(a0,d0,d1,a1)) #pragma amicall(RexxHostBase, 0x3c, GetRexxCommand(a0)) #pragma amicall(RexxHostBase, 0x42, GetRexxArg(a0)) #pragma amicall(RexxHostBase, 0x48, GetRexxResult1(a0)) #pragma amicall(RexxHostBase, 0x4e, GetRexxResult2(a0)) #pragma amicall(RexxHostBase, 0x54, GetToken(a0,a1,a2,d0)) #pragma amicall(RexxHostBase, 0x5a, GetStringValue(a0)) #pragma amicall(RexxHostBase, 0x60, BuildValueString(d0,a0)) #pragma amicall(RexxHostBase, 0x66, RexxStrCmp(a0,a1)) #pragma amicall(RexxHostBase, 0x6c, GetRexxMsg(a0,d0)) #pragma amicall(RexxHostBase, 0x72, SendRexxMsg(a0,a1,a2,d0)) #pragma amicall(RexxHostBase, 0x78, GetRexxString(d0,d1)) #pragma amicall(RexxHostBase, 0x7e, GetRexxClip(a0,d0)) /* Protos for assembly language string routines. */ LONG StrLen(char *); VOID StrCpy(char *,char *); VOID StrNCpy(char *,char *,LONG); VOID InitList(struct List *); /* And some more pragmas. */ #pragma regcall(StrLen(a0)) #pragma regcall(StrCpy(a0,a1)) #pragma regcall(StrNCpy(a0,a1,d0)) #pragma regcall(InitList(a0))