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

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

enum pOS_TimerDeviceUnitNum
{
  TIMERUNIT_MicroHz =0, /* */
  TIMERUNIT_VBlank      /* */
};



enum pOS_TimerIOReqCommands
{
 TRCMD_AddRequest= CMD_NONSTD,
 TRCMD_GetSysTime,
 TRCMD_SetSysTime
};


#define TIME_MICROS 1000000  /* Micros per Sec.  */


/*----------------------------------
-----------------------------------*/
struct pOS_TimeVal
{
  ULONG tv_Secs;
  ULONG tv_Micro;
};


/*----------------------------------
-----------------------------------*/
struct pOS_TimerIO
{
  struct pOS_Message      tio_Message;
  struct pOS_TimerDevice *tio_Device;   /* device node pointer  */
  struct pOS_TimerUnit   *tio_Unit;     /* unit (driver private) */
  UWORD                   tio_Command;  /* (enum pOS_IOReqCommands) */
  UBYTE                   tio_Flags;    /* (enum pOS_IOReqFlags)  */
  SBYTE                   tio_Error;    /* (enum pOS_IOReqErrors) */
  struct pOS_TimeVal      tio_Time;
};


 struct pOS_TimerDevice {struct pOS_Device Dev; };



#endif
