home *** CD-ROM | disk | FTP | other *** search
/ Fish 'n' More 2 / fishmore-publicdomainlibraryvol.ii1991xetec.iso / dirs / rexxhostlib_403.lzh / RexxHostLib / PreInclude.c < prev    next >
C/C++ Source or Header  |  1990-11-17  |  4KB  |  122 lines

  1. /* $Revision Header * Header built automatically - do not edit! *************
  2.  *
  3.  *    (C) Copyright 1990 by MXM
  4.  *
  5.  *    Name .....: PreInclude.c
  6.  *    Created ..: Sunday 25-Mar-90 12:57
  7.  *    Revision .: 3
  8.  *
  9.  *    Date            Author          Comment
  10.  *    =========       ========        ====================
  11.  *    24-May-90       Olsen           Even more new functions
  12.  *    19-May-90       Olsen           New function GetRexxMsg
  13.  *    25-Mar-90       Olsen           Created this file!
  14.  *
  15.  * $Revision Header ********************************************************/
  16.  
  17.     /* Main system includes. */
  18.  
  19. #include <libraries/dosextens.h>
  20. #include <exec/execbase.h>
  21. #include <exec/resident.h>
  22. #include <exec/memory.h>
  23. #include <exec/alerts.h>
  24.  
  25.     /* Rexx definitions. */
  26.  
  27. #include <rexx/rxslib.h>
  28.  
  29.     /* Amiga prototypes/pragmas. */
  30.  
  31. #define __NO_PRAGMAS 1
  32.  
  33. #include <functions.h>
  34.  
  35.     /* BCPL 'NULL'. */
  36.  
  37. #define ZERO 0L
  38.  
  39.     /* Our pointer to ExecBase. */
  40.  
  41. extern struct ExecBase    *SysBase;
  42.  
  43.     /* The rexx host library base. */
  44.  
  45. struct RexxHostBase
  46. {
  47.     struct Library     LibNode;
  48.     struct RxsLib    *RexxSysBase;
  49. };
  50.  
  51.     /* A rexx host, somewhat more than a simple MsgPort. */
  52.  
  53. struct RexxHost
  54. {
  55.     struct MsgPort    rh_Port;
  56.  
  57.     ULONG        rh_SpecialID;
  58.     ULONG        rh_Reserved[4];
  59. };
  60.  
  61.     /* The protos. */
  62.  
  63. struct RexxMsg    *CreateRexxMsg(struct MsgPort *,char *,char *);
  64. STRPTR         CreateArgstring(char *,LONG);
  65. VOID         DeleteRexxMsg(struct RexxMsg *);
  66. VOID         DeleteArgstring(char *);
  67. struct Node *     FindRsrcNode(struct List *,char *,LONG);
  68.  
  69.     /* Prototypes for all library functions. */
  70.  
  71. struct RexxHost *    CreateRexxHost(STRPTR);
  72. VOID *            DeleteRexxHost(struct RexxHost *);
  73. LONG            SendRexxCommand(struct RexxHost *,STRPTR,STRPTR,STRPTR);
  74. VOID            FreeRexxCommand(struct RexxMsg *);
  75. VOID            ReplyRexxCommand(struct RexxMsg *,LONG,LONG,STRPTR);
  76. STRPTR            GetRexxCommand(struct RexxMsg *);
  77. STRPTR            GetRexxArg(struct RexxMsg *);
  78. LONG            GetRexxResult1(struct RexxMsg *);
  79. LONG            GetRexxResult2(struct RexxMsg *);
  80. STRPTR            GetToken(STRPTR,LONG *,STRPTR,LONG);
  81. LONG            GetStringValue(STRPTR);
  82. STRPTR            BuildValueString(LONG,STRPTR);
  83. LONG            RexxStrCmp(STRPTR,STRPTR);
  84. struct RexxMsg *    GetRexxMsg(struct RexxHost *,LONG);
  85. ULONG            SendRexxMsg(STRPTR,STRPTR *,STRPTR,LONG);
  86. VOID            GetRexxString(STRPTR,STRPTR);
  87. LONG            GetRexxClip(char *Name,LONG WhichArg);
  88.  
  89.     /* Library calls for rexx host lib. */
  90.  
  91. #pragma amicall(RexxHostBase, 0x1e, CreateRexxHost(a0))
  92. #pragma amicall(RexxHostBase, 0x24, DeleteRexxHost(a0))
  93. #pragma amicall(RexxHostBase, 0x2a, SendRexxCommand(a0,a1,a2,a3))
  94. #pragma amicall(RexxHostBase, 0x30, FreeRexxCommand(a0))
  95. #pragma amicall(RexxHostBase, 0x36, ReplyRexxCommand(a0,d0,d1,a1))
  96. #pragma amicall(RexxHostBase, 0x3c, GetRexxCommand(a0))
  97. #pragma amicall(RexxHostBase, 0x42, GetRexxArg(a0))
  98. #pragma amicall(RexxHostBase, 0x48, GetRexxResult1(a0))
  99. #pragma amicall(RexxHostBase, 0x4e, GetRexxResult2(a0))
  100. #pragma amicall(RexxHostBase, 0x54, GetToken(a0,a1,a2,d0))
  101. #pragma amicall(RexxHostBase, 0x5a, GetStringValue(a0))
  102. #pragma amicall(RexxHostBase, 0x60, BuildValueString(d0,a0))
  103. #pragma amicall(RexxHostBase, 0x66, RexxStrCmp(a0,a1))
  104. #pragma amicall(RexxHostBase, 0x6c, GetRexxMsg(a0,d0))
  105. #pragma amicall(RexxHostBase, 0x72, SendRexxMsg(a0,a1,a2,d0))
  106. #pragma amicall(RexxHostBase, 0x78, GetRexxString(d0,d1))
  107. #pragma amicall(RexxHostBase, 0x7e, GetRexxClip(a0,d0))
  108.  
  109.     /* Protos for assembly language string routines. */
  110.  
  111. LONG StrLen(char *);
  112. VOID StrCpy(char *,char *);
  113. VOID StrNCpy(char *,char *,LONG);
  114. VOID InitList(struct List *);
  115.  
  116.     /* And some more pragmas. */
  117.  
  118. #pragma regcall(StrLen(a0))
  119. #pragma regcall(StrCpy(a0,a1))
  120. #pragma regcall(StrNCpy(a0,a1,d0))
  121. #pragma regcall(InitList(a0))
  122.