home *** CD-ROM | disk | FTP | other *** search
/ Fresh Fish 4 / FreshFish_May-June1994.bin / bbs / cbm / os-include.lha / os-include / rexx / rexxio.h < prev    next >
C/C++ Source or Header  |  1993-10-15  |  3KB  |  83 lines

  1. #ifndef REXX_REXXIO_H
  2. #define REXX_REXXIO_H
  3. /*
  4. **    $VER: rexxio.h 1.4 (8.11.91)
  5. **    Includes Release 40.15
  6. **
  7. **    Header file for ARexx Input/Output related structures
  8. **
  9. **    (C) Copyright 1986,1987,1988,1989,1990 William S. Hawes
  10. **    (C) Copyright 1990-1993 Commodore-Amiga, Inc.
  11. **        All Rights Reserved
  12. */
  13.  
  14. #ifndef REXX_STORAGE_H
  15. #include "rexx/storage.h"
  16. #endif
  17.  
  18. #define RXBUFFSZ  204               /* buffer length        */
  19.  
  20. /*
  21.  * The IoBuff is a resource node used to maintain the File List.  Nodes
  22.  * are allocated and linked into the list whenever a file is opened.
  23.  */
  24. struct IoBuff {
  25.    struct RexxRsrc iobNode;           /* structure for files/strings    */
  26.    APTR     iobRpt;               /* read/write pointer        */
  27.    LONG     iobRct;               /* character count        */
  28.    LONG     iobDFH;               /* DOS filehandle        */
  29.    APTR     iobLock;               /* DOS lock            */
  30.    LONG     iobBct;               /* buffer length        */
  31.    BYTE     iobArea[RXBUFFSZ];           /* buffer area            */
  32.    };                       /* size: 256 bytes        */
  33.  
  34. /* Access mode definitions                        */
  35. #define RXIO_EXIST   -1           /* an external filehandle    */
  36. #define RXIO_STRF    0               /* a "string file"        */
  37. #define RXIO_READ    1               /* read-only access        */
  38. #define RXIO_WRITE   2               /* write mode            */
  39. #define RXIO_APPEND  3               /* append mode (existing file)    */
  40.  
  41. /*
  42.  * Offset anchors for SeekF()
  43.  */
  44. #define RXIO_BEGIN   -1L           /* relative to start        */
  45. #define RXIO_CURR    0L           /* relative to current position    */
  46. #define RXIO_END     1L           /* relative to end        */
  47.  
  48. /* The Library List contains just plain resource nodes.        */
  49.  
  50. #define LLOFFSET(rrp) (rrp->rr_Arg1)   /* "Query" offset        */
  51. #define LLVERS(rrp)   (rrp->rr_Arg2)   /* library version        */
  52.  
  53. /*
  54.  * The RexxClipNode structure is used to maintain the Clip List.  The value
  55.  * string is stored as an argstring in the rr_Arg1 field.
  56.  */
  57. #define CLVALUE(rrp) ((STRPTR) rrp->rr_Arg1)
  58.  
  59. /*
  60.  * A message port structure, maintained as a resource node.  The ReplyList
  61.  * holds packets that have been received but haven't been replied.
  62.  */
  63. struct RexxMsgPort {
  64.    struct RexxRsrc rmp_Node;           /* linkage node            */
  65.    struct MsgPort  rmp_Port;           /* the message port        */
  66.    struct List       rmp_ReplyList;      /* messages awaiting reply    */
  67.    };
  68.  
  69. /*
  70.  * DOS Device types
  71.  */
  72. #define DT_DEV      0L               /* a device            */
  73. #define DT_DIR      1L               /* an ASSIGNed directory    */
  74. #define DT_VOL      2L               /* a volume            */
  75.  
  76. /*
  77.  * Private DOS packet types
  78.  */
  79. #define ACTION_STACK 2002L           /* stack a line            */
  80. #define ACTION_QUEUE 2003L           /* queue a line            */
  81.  
  82. #endif
  83.