#ifndef __INC_POS_DEVICE_WALKER_H
#define __INC_POS_DEVICE_WALKER_H
/*******************************************************************
 Includes Release 24
 (C) Copyright 1995-1997 proDAD
     All Rights Reserved

 $AUT Holger Burkarth
 $DAT >>Walker.h<<   19 Nov 1996    11:25:35 - (C) ProDAD
*******************************************************************/
#ifndef __INC_POS_PEXEC_DEVICE_H
#include <pExec/Device.h>
#endif


/*----------------------------------
-----------------------------------*/
struct pOS_WalkerIO
{
/* struct pOS_IORequest */

  struct pOS_Message  wio_Message;
  struct pOS_Device  *wio_Device;    /* device node pointer  */
  struct pOS_Unit    *wio_Unit;      /* unit (driver private) */
  UWORD               wio_Command;   /* (enum pOS_IOReqCommands) */
  UBYTE               wio_Flags;     /* (enum pOS_WalkerReqFlags) */
  SBYTE               wio_Error;     /* (enum pOS_IOReqErrors) */

  UWORD        wio_StackSize;
  VOID       (*wio_Begin_func)(_R_A1 struct pOS_WalkerIO*);
  VOID       (*wio_Abort_func)(_R_A1 struct pOS_WalkerIO*);
  ULONG        wio_UserData[2];
};




enum pOS_WalkerReqFlags  /* wio_Flags    (enum pOS_IOReqFlags) */
{
/*  IOREQF_Quick   = 0x01, */
/*  IOREQF_Pending = 0x80, */
  WLKREQF_EnableSameTask = 0x10         /* Erlaubt den Start der Begin-Funktion
                                        ** aus dem aktuellen Task heraus.
                                        ** Z.B.
                                        ** ThisTask => Walker.process
                                        ** DoIO(WlkIO); => WlkIO gehört der selben Walker-Unit
                                        */
};


#endif
