home *** CD-ROM | disk | FTP | other *** search
- IFND EXEC_IO_I
- EXEC_IO_I SET 1
- **
- ** $Filename: exec/io.i $
- ** $Release: 1.3 $
- **
- **
- **
- ** (C) Copyright 1985,1986,1987,1988 Commodore-Amiga, Inc.
- ** All Rights Reserved
- **
-
- IFND EXEC_PORTS_I
- INCLUDE "exec/ports.i"
- ENDC ; EXEC_PORTS_I
-
- IFND EXEC_LIBRARIES_I
- INCLUDE "exec/libraries.i"
- ENDC ; EXEC_LIBRARIES_I
-
-
- *----------------------------------------------------------------
- *
- * IO Request Structures
- *
- *----------------------------------------------------------------
-
- *------ Required portion of IO request:
-
- STRUCTURE IO,MN_SIZE
- APTR IO_DEVICE * device node pointer
- APTR IO_UNIT * unit (driver private)
- UWORD IO_COMMAND * device command
- UBYTE IO_FLAGS * special flags
- BYTE IO_ERROR * error or warning code
- LABEL IO_SIZE
-
-
- *------ Standard IO request extension:
-
- ULONG IO_ACTUAL * actual # of bytes transfered
- ULONG IO_LENGTH * requested # of bytes transfered
- APTR IO_DATA * pointer to data area
- ULONG IO_OFFSET * offset for seeking devices
- LABEL IOSTD_SIZE
-
-
- *------ IO_FLAGS bit definitions:
-
- BITDEF IO,QUICK,0 * complete IO quickly
-
-
- *----------------------------------------------------------------
- *
- * Standard Device Library Functions
- *
- *----------------------------------------------------------------
-
- LIBINIT
-
- LIBDEF DEV_BEGINIO * process IO request
- LIBDEF DEV_ABORTIO * abort IO request
-
-
- *----------------------------------------------------------------
- *
- * IO Function Macros
- *
- *----------------------------------------------------------------
-
- BEGINIO MACRO
- LINKLIB DEV_BEGINIO,IO_DEVICE(A1)
- ENDM
-
- ABORTIO MACRO
- LINKLIB DEV_ABORTIO,IO_DEVICE(A1)
- ENDM
-
-
- *----------------------------------------------------------------
- *
- * Standard Device Command Definitions
- *
- *----------------------------------------------------------------
-
- *------ Command definition macro:
- DEVINIT MACRO * [baseOffset]
- IFC '\1',''
- CMD_COUNT SET CMD_NONSTD
- ENDC
- IFNC '\1',''
- CMD_COUNT SET \1
- ENDC
- ENDM
-
- DEVCMD MACRO * cmdname
- \1 EQU CMD_COUNT
- CMD_COUNT SET CMD_COUNT+1
- ENDM
-
-
- *------ Standard device commands:
-
- DEVINIT 0
-
- DEVCMD CMD_INVALID * invalid command
- DEVCMD CMD_RESET * reset as if just inited
- DEVCMD CMD_READ * standard read
- DEVCMD CMD_WRITE * standard write
- DEVCMD CMD_UPDATE * write out all buffers
- DEVCMD CMD_CLEAR * clear all buffers
- DEVCMD CMD_STOP * hold current and queued
- DEVCMD CMD_START * restart after stop
- DEVCMD CMD_FLUSH * abort entire queue
-
-
- *------ First non-standard device command value:
-
- DEVCMD CMD_NONSTD
-
- ENDC ; EXEC_IO_I
-