home *** CD-ROM | disk | FTP | other *** search
- IFND EXEC_IO_I
- EXEC_IO_I SET 1
- **
- ** $Filename: exec/io.i $
- ** $Release: 2.04 Includes, V37.4 $
- ** $Revision: 36.4 $
- ** $Date: 90/05/10 $
- **
- ** Message structures used for device communication
- **
- ** (C) Copyright 1985-1991 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
-