home *** CD-ROM | disk | FTP | other *** search
/ Club Amiga de Montreal - CAM / CAM_CD_1.iso / files / 545b.lha / RexxHS / arexxsyslib.h < prev    next >
Encoding:
C/C++ Source or Header  |  1991-09-07  |  2.6 KB  |  77 lines

  1. /*
  2.  * arexxsyslib.h -- Header file to use when accessing the public
  3.  *                  functions in the ARexx system library (rexxsyslib).
  4.  */
  5.  
  6. #ifndef AREXXSYSLIB_H_INCLUDED
  7. #define AREXXSYSLIB_H_INCLUDED
  8.  
  9. #ifndef EXEC_TYPES_H
  10. #include <exec/types.h>
  11. #include <exec/nodes.h>
  12. #include <exec/lists.h>
  13. #include <exec/ports.h>
  14. #include <exec/memory.h>
  15. #endif
  16.  
  17. #ifndef REXX_STORAGE_H
  18. #include <rexx/storage.h>
  19. #include <rexx/rxslib.h>
  20. #include <rexx/errors.h>
  21. #endif
  22.  
  23. /*
  24.  * When you open the rexxsyslib library, store the library pointer in
  25.  * this variable.  If you use another variable, be sure to change the
  26.  * pragma statements below.  Don't forget to actually define the variable
  27.  * in one of your source files...
  28.  */
  29.  
  30. extern struct Library *RexxSysBase;
  31.  
  32. /*
  33.  * Prototypes for the public functions.
  34.  */
  35.  
  36. extern char           *CreateArgstring( char *str, ULONG length );
  37. extern void            DeleteArgstring( char *argstr );
  38. extern ULONG           LengthArgstring( char *argstr );
  39. extern struct RexxMsg *CreateRexxMsg( struct MsgPort *replyport,
  40.                                       char *extension, char *hostaddress );
  41. extern void            DeleteRexxMsg( struct RexxMsg *msg );
  42. extern void            ClearRexxMsg( struct RexxMsg *msg, ULONG numargs );
  43. extern long            FillRexxMsg( struct RexxMsg *msg, ULONG numargs,
  44.                                     ULONG mask );
  45. extern long            IsRexxMsg( struct RexxMsg *msg );
  46.  
  47. /*
  48.  * This section defines the pragmas required to access the functions
  49.  * in the shared library.  Note that Manx and SAS use different syntax.
  50.  */
  51.  
  52. #if defined( AZTEC_C )
  53.  
  54.     #pragma amicall( RexxSysBase, 0x9c, ClearRexxMsg(a0,d0) )
  55.     #pragma amicall( RexxSysBase, 0x7e, CreateArgstring(a0,d0) )
  56.     #pragma amicall( RexxSysBase, 0x90, CreateRexxMsg(a0,a1,d0) )
  57.     #pragma amicall( RexxSysBase, 0x84, DeleteArgstring(a0) )
  58.     #pragma amicall( RexxSysBase, 0x96, DeleteRexxMsg(a0) )
  59.     #pragma amicall( RexxSysBase, 0xa2, FillRexxMsg(a0,d0,d1) )
  60.     #pragma amicall( RexxSysBase, 0xa8, IsRexxMsg(a0) )
  61.     #pragma amicall( RexxSysBase, 0x8a, LengthArgstring(a0) )
  62.  
  63. #elif defined( LATTICE )
  64.  
  65.     #pragma libcall RexxSysBase ClearRexxMsg 9c 0802
  66.     #pragma libcall RexxSysBase CreateArgstring 7e 0802
  67.     #pragma libcall RexxSysBase CreateRexxMsg 90 09803
  68.     #pragma libcall RexxSysBase DeleteArgstring 84 801
  69.     #pragma libcall RexxSysBase DeleteRexxMsg 96 801
  70.     #pragma libcall RexxSysBase FillRexxMsg a2 10803
  71.     #pragma libcall RexxSysBase IsRexxMsg a8 801
  72.     #pragma libcall RexxSysBase LengthArgstring 8a 801
  73.  
  74. #endif
  75.  
  76. #endif /* AREXXSYSLIB_H_INCLUDED */
  77.