[Contents] [Index] [Help] [Retrace] [browse <] [Browse >]

         IFND     REXX_REXXIO_I
REXX_REXXIO_I SET      1
**
**      $Filename: rexx/rexxio.i $
**      $Release: 2.04 Includes, V37.4 $
**      $Revision: 1.8 $
**      $Date: 91/11/08 $
**
**      Include file for Input/Output related structures
**
**      (C) Copyright 1986,1987,1988,1989,1990 William S. Hawes.
**      (C) Copyright 1990-1999 Amiga, Inc.
**              All Rights Reserved
**

         IFND     REXX_STORAGE_I
         INCLUDE  "rexx/storage.i"
         ENDC

RXBUFFSZ EQU      204                  ; buffer length

* The IoBuff is a resource node used to maintain the File List.  Nodes are
* allocated and linked into the list whenever a file is opened.

         STRUCTURE IoBuff,RRSIZEOF     ; structure for files/strings
         APTR     iobRpt               ; read/write pointer
         LONG     iobRct               ; character count
         LONG     iobDFH               ; DOS filehandle
         APTR     iobLock              ; DOS lock
         LONG     iobBct               ; buffer length
         STRUCT   iobArea,RXBUFFSZ     ; buffer area
         LABEL    iobSIZEOF            ; size: 256 bytes

IOBNAME  EQU      LN_NAME              ; logical name
IOBMODE  EQU      rr_Arg1              ; access mode
IOBEOF   EQU      rr_Arg1+1            ; EOF flag
IOBPOS   EQU      rr_Arg2              ; current position

* Access mode definitions
RXIO_EXIST  EQU      -1        ; an existing filehandle
RXIO_STRF   EQU      0                 ; a "string file"
RXIO_READ   EQU      1                 ; read-only access
RXIO_WRITE  EQU      2                 ; write mode
RXIO_APPEND EQU      3                 ; append mode (existing file)

* Offset anchors for SeekF()
RXIO_BEGIN  EQU      -1        ; relative to start
RXIO_CURR   EQU      0                 ; relative to current position
RXIO_END    EQU      1                 ; relative to end

* The Library List contains just plain resource nodes.
LLOFFSET EQU      rr_Arg1              ; "Query" offset
LLVERS   EQU      rr_Arg2              ; library version

* The RexxClipNode structure is used to maintain the Clip List.  The
* value string is stored as an argstring in the rr_Arg1 field.
CLVALUE  EQU      rr_Arg1              ; value string

* A message port structure, maintained as a resource node.
* The ReplyList holds packets that have been received but haven't been
* replied.

         STRUCTURE RexxMsgPort,RRSIZEOF
         STRUCT   rmp_Port,MP_SIZE           ; the message port
         STRUCT   rmp_ReplyList,LH_SIZE      ; messages awaiting reply
         LABEL    rmp_SIZEOF

* Device types
DT_DEV   EQU      0                    ; a device
DT_DIR   EQU      1                    ; an ASSIGNed directory
DT_VOL   EQU      2                    ; a volume

* Private packet types
ACTION_STACK   EQU   2002              ; stack a line
ACTION_QUEUE   EQU   2003              ; queue a line

         ENDC