home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD2.iso / Misc / DC-POS24.LZX / pOS / pOSxA.lzx / pOSxA / rexx / storage.h < prev   
Encoding:
C/C++ Source or Header  |  1997-03-12  |  3.7 KB  |  175 lines

  1. #ifndef REXX_STORAGE_H
  2. #define REXX_STORAGE_H
  3.  
  4. #ifndef EXEC_TYPES_H
  5. #include <exec/types.h>
  6. #endif
  7. #ifndef EXEC_NODES_H
  8. #include <exec/nodes.h>
  9. #endif
  10. #ifndef EXEC_LISTS_H
  11. #include <exec/lists.h>
  12. #endif
  13. #ifndef EXEC_PORTS_H
  14. #include <exec/ports.h>
  15. #endif
  16. #ifndef EXEC_LIBRARIES_H
  17. #include <exec/libraries.h>
  18. #endif
  19.  
  20.  
  21. struct NexxStr {
  22.    LONG     ns_Ivalue;
  23.    UWORD    ns_Length;
  24.    UBYTE    ns_Flags;
  25.    UBYTE    ns_Hash;
  26.    BYTE     ns_Buff[8];
  27.    };
  28.  
  29. #define NXADDLEN 9
  30. #define IVALUE(nsPtr) (nsPtr->ns_Ivalue)
  31.  
  32. #define NSB_KEEP     0
  33. #define NSB_STRING   1
  34. #define NSB_NOTNUM   2
  35. #define NSB_NUMBER   3
  36. #define NSB_BINARY   4
  37. #define NSB_FLOAT    5
  38. #define NSB_EXT      6
  39. #define NSB_SOURCE   7
  40.  
  41. #define NSF_KEEP     (1 << NSB_KEEP  )
  42. #define NSF_STRING   (1 << NSB_STRING)
  43. #define NSF_NOTNUM   (1 << NSB_NOTNUM)
  44. #define NSF_NUMBER   (1 << NSB_NUMBER)
  45. #define NSF_BINARY   (1 << NSB_BINARY)
  46. #define NSF_FLOAT    (1 << NSB_FLOAT )
  47. #define NSF_EXT      (1 << NSB_EXT   )
  48. #define NSF_SOURCE   (1 << NSB_SOURCE)
  49.  
  50. #define NSF_INTNUM   (NSF_NUMBER | NSF_BINARY | NSF_STRING)
  51. #define NSF_DPNUM    (NSF_NUMBER | NSF_FLOAT)
  52. #define NSF_ALPHA    (NSF_NOTNUM | NSF_STRING)
  53. #define NSF_OWNED    (NSF_SOURCE | NSF_EXT    | NSF_KEEP)
  54. #define KEEPSTR      (NSF_STRING | NSF_SOURCE | NSF_NOTNUM)
  55. #define KEEPNUM      (NSF_STRING | NSF_SOURCE | NSF_NUMBER | NSF_BINARY)
  56.  
  57. struct RexxArg {
  58.    LONG     ra_Size;
  59.    UWORD    ra_Length;
  60.    UBYTE    ra_Flags;
  61.    UBYTE    ra_Hash;
  62.    BYTE     ra_Buff[8];
  63.    };
  64.  
  65. struct RexxMsg {
  66.    struct Message rm_Node;
  67.    APTR     rm_TaskBlock;
  68.    APTR     rm_LibBase;
  69.    LONG     rm_Action;
  70.    LONG     rm_Result1;
  71.    LONG     rm_Result2;
  72.    STRPTR   rm_Args[16];
  73.  
  74.    struct MsgPort *rm_PassPort;
  75.    STRPTR   rm_CommAddr;
  76.    STRPTR   rm_FileExt;
  77.    LONG     rm_Stdin;
  78.    LONG     rm_Stdout;
  79.    LONG     rm_avail;
  80.    };
  81.  
  82. #define ARG0(rmp) (rmp->rm_Args[0])
  83. #define ARG1(rmp) (rmp->rm_Args[1])
  84. #define ARG2(rmp) (rmp->rm_Args[2])
  85.  
  86. #define MAXRMARG  15
  87.  
  88. #define RXCOMM      0x01000000
  89. #define RXFUNC      0x02000000
  90. #define RXCLOSE   0x03000000
  91. #define RXQUERY   0x04000000
  92. #define RXADDFH   0x07000000
  93. #define RXADDLIB  0x08000000
  94. #define RXREMLIB  0x09000000
  95. #define RXADDCON  0x0A000000
  96. #define RXREMCON  0x0B000000
  97. #define RXTCOPN   0x0C000000
  98. #define RXTCCLS   0x0D000000
  99.  
  100. #define RXFB_NOIO    16
  101. #define RXFB_RESULT  17
  102. #define RXFB_STRING  18
  103. #define RXFB_TOKEN   19
  104. #define RXFB_NONRET  20
  105.  
  106. #define RXFF_NOIO    (1L << RXFB_NOIO  )
  107. #define RXFF_RESULT  (1L << RXFB_RESULT)
  108. #define RXFF_STRING  (1L << RXFB_STRING)
  109. #define RXFF_TOKEN   (1L << RXFB_TOKEN )
  110. #define RXFF_NONRET  (1L << RXFB_NONRET)
  111.  
  112. #define RXCODEMASK   0xFF000000
  113. #define RXARGMASK    0x0000000F
  114.  
  115. struct RexxRsrc {
  116.    struct Node rr_Node;
  117.    WORD     rr_Func;
  118.    APTR     rr_Base;
  119.    LONG     rr_Size;
  120.    LONG     rr_Arg1;
  121.    LONG     rr_Arg2;
  122.    };
  123.  
  124. #define RRT_ANY      0
  125. #define RRT_LIB      1
  126. #define RRT_PORT     2
  127. #define RRT_FILE     3
  128. #define RRT_HOST     4
  129. #define RRT_CLIP     5
  130.  
  131. #define GLOBALSZ  200
  132.  
  133. struct RexxTask {
  134.    BYTE     rt_Global[GLOBALSZ];
  135.    struct MsgPort rt_MsgPort;
  136.    UBYTE    rt_Flags;
  137.    BYTE     rt_SigBit;
  138.  
  139.    APTR     rt_ClientID;
  140.    APTR     rt_MsgPkt;
  141.    APTR     rt_TaskID;
  142.    APTR     rt_RexxPort;
  143.  
  144.    APTR     rt_ErrTrap;
  145.    APTR     rt_StackPtr;
  146.  
  147.    struct List rt_Header1;
  148.    struct List rt_Header2;
  149.    struct List rt_Header3;
  150.    struct List rt_Header4;
  151.    struct List rt_Header5;
  152.    };
  153.  
  154. #define RTFB_TRACE   0
  155. #define RTFB_HALT    1
  156. #define RTFB_SUSP    2
  157. #define RTFB_TCUSE   3
  158. #define RTFB_WAIT    6
  159. #define RTFB_CLOSE   7
  160.  
  161. #define MEMQUANT  16L
  162. #define MEMMASK   0xFFFFFFF0
  163.  
  164. #define MEMQUICK  (1L << 0 )
  165. #define MEMCLEAR  (1L << 16)
  166.  
  167. struct SrcNode {
  168.    struct SrcNode *sn_Succ;
  169.    struct SrcNode *sn_Pred;
  170.    APTR     sn_Ptr;
  171.    LONG     sn_Size;
  172.    };
  173.  
  174. #endif
  175.