/*
** $Source: dh1:network/parnet/Sana2/device_protos.h,v $
** $State: Exp $
** $Revision: 37.1 $
** $Date: 93/08/24 20:41:03 $
** $Author: sap $
**
** Amiga SANA-II Example PARnet device driver.
**
** Based on the SANA-II Example SLIP device driver.
**
** Portions (C) Copyright 1992 Commodore-Amiga, Inc.
**
*/

/* Prototypes for functions defined in device_funcs.c */

LONG __asm DevOpen(register __a1 struct IOSana2Req * ios2,
                    register __d0 ULONG s2unit,
                    register __d1 ULONG s2flags);
BPTR __asm DevClose(register __a1 struct IOSana2Req * ios2);
BPTR __asm DevExpunge(VOID);
struct SPARDevUnit *InitSPARUnit(ULONG s2unit);
VOID ExpungeUnit(struct SPARDevUnit *sdu);
BOOL ReadConfig(struct SPARDevUnit *sdu);
VOID __asm DevBeginIO(register __a1 struct IOSana2Req * ios2);
VOID PerformIO(struct IOSana2Req *ios2);
VOID GetSpecialStats(struct SPARDevUnit *sdu,
                     struct IOSana2Req *ios2);
VOID GetGlobalStats(struct SPARDevUnit *sdu,
                    struct IOSana2Req *ios2);
VOID GetTypeStats(struct SPARDevUnit *sdu,
                  struct IOSana2Req *ios2);
VOID TrackType(struct SPARDevUnit *sdu,
               struct IOSana2Req *ios2);
VOID UnTrackType(struct SPARDevUnit *sdu,
                 struct IOSana2Req *ios2);
VOID PacketReceived(struct SPARDevUnit *sdu,
                    ULONG length);
VOID PacketSent(struct SPARDevUnit *sdu,
                ULONG length);
VOID PacketOverrun(struct SPARDevUnit *sdu);
VOID ReceivedGarbage(struct SPARDevUnit *sdu);
VOID PacketDropped(struct SPARDevUnit *sdu);
VOID TermIO(struct IOSana2Req *ios2);
LONG __asm DevAbortIO(register __a1 struct IOSana2Req * ios2,
                       register __a3 struct SPARDevUnit * sdu);
LONG AbortReq(struct MinList *minlist,
               struct IOSana2Req *ios2);
VOID ConfigInterface(struct SPARDevUnit *sdu,
                     struct IOSana2Req *ios2);
VOID GetStationAddress(struct SPARDevUnit *sdu,
                       struct IOSana2Req *ios2);
VOID DeviceQuery(struct SPARDevUnit *sdu,
                 struct IOSana2Req *ios2);
VOID WritePacket(struct SPARDevUnit *sdu,
                 struct IOSana2Req *ios2);
VOID SendPacket(struct SPARDevUnit *sdu,
                struct IOSana2Req *ios2);
VOID ReadPacket(struct SPARDevUnit *sdu,
                struct IOSana2Req *ios2);
VOID ReadOrphan(struct SPARDevUnit *sdu,
                struct IOSana2Req *ios2);
BOOL InitPARnet(struct SPARDevUnit *sdu);
VOID DeinitPARnet(struct SPARDevUnit *sdu);
VOID OnEvent(struct SPARDevUnit *sdu,
             struct IOSana2Req *ios2);
BOOL OpenPARnet(struct SPARDevUnit *sdu);
VOID MarkTimeOnline(struct SPARDevUnit *sdu);
VOID ClosePARnet(struct SPARDevUnit *sdu);
VOID Online(struct SPARDevUnit *sdu,
            struct IOSana2Req *ios2);
VOID Offline(struct SPARDevUnit *sdu,
             struct IOSana2Req *ios2);
VOID DoEvent(struct SPARDevUnit *sdu,
             ULONG event);
VOID DoOffline(struct SPARDevUnit *sdu);
VOID ServiceTxPort(struct SPARDevUnit *sdu,
             struct IOParReq *ioPar);
VOID DoPARnet(struct SPARDevUnit *sdu,
              struct IOParReq *ioPar);
VOID GotPacket(struct SPARDevUnit *sdu,
               ULONG length);
VOID QueueParRequest(struct SPARDevUnit *sdu);
VOID __asm DevProcCEntry(VOID);
VOID NewList(struct List *list);
