/* ************************************************************************ * * EXTERNS.h * * IRMINI Infrared Serial NDIS Miniport driver. * * (C) Copyright 1996 Microsoft Corp. * * * (ep) * ************************************************************************* */ #ifndef EXTERNS_H #define EXTERNS_H #ifndef IRMINILIB /* * Include externs for dongle modules */ #include "actisys.h" #include "adaptec.h" #include "crystal.h" #include "esi.h" #include "parallax.h" #include "nscdemo.h" #endif /* * Externs for required miniport export functions */ BOOLEAN MiniportCheckForHang(IN NDIS_HANDLE MiniportAdapterContext); VOID MiniportDisableInterrupt(IN NDIS_HANDLE MiniportAdapterContext); VOID MiniportEnableInterrupt(IN NDIS_HANDLE MiniportAdapterContext); VOID MiniportHalt(IN NDIS_HANDLE MiniportAdapterContext); VOID MiniportHandleInterrupt(IN NDIS_HANDLE MiniportAdapterContext); NDIS_STATUS MiniportInitialize( OUT PNDIS_STATUS OpenErrorStatus, OUT PUINT SelectedMediumIndex, IN PNDIS_MEDIUM MediumArray, IN UINT MediumArraySize, IN NDIS_HANDLE MiniportAdapterHandle, IN NDIS_HANDLE WrapperConfigurationContext ); VOID MiniportISR( OUT PBOOLEAN InterruptRecognized, OUT PBOOLEAN QueueMiniportHandleInterrupt, IN NDIS_HANDLE MiniportAdapterContext ); NDIS_STATUS MiniportQueryInformation( IN NDIS_HANDLE MiniportAdapterContext, IN NDIS_OID Oid, IN PVOID InformationBuffer, IN ULONG InformationBufferLength, OUT PULONG BytesWritten, OUT PULONG BytesNeeded ); NDIS_STATUS MiniportReconfigure( OUT PNDIS_STATUS OpenErrorStatus, IN NDIS_HANDLE MiniportAdapterContext, IN NDIS_HANDLE WrapperConfigurationContext ); NDIS_STATUS MiniportReset( IN NDIS_HANDLE MiniportAdapterContext, OUT PBOOLEAN AddressingReset ); NDIS_STATUS MiniportSend( IN NDIS_HANDLE MiniportAdapterContext, IN PNDIS_PACKET Packet, IN UINT Flags ); NDIS_STATUS MiniportSetInformation( IN NDIS_HANDLE MiniportAdapterContext, IN NDIS_OID Oid, IN PVOID InformationBuffer, IN ULONG InformationBufferLength, OUT PULONG BytesRead, OUT PULONG BytesNeeded ); NDIS_STATUS MiniportTransferData ( OUT PNDIS_PACKET Packet, OUT PUINT BytesTransferred, IN NDIS_HANDLE MiniportAdapterContext, IN NDIS_HANDLE MiniportReceiveContext, IN UINT ByteOffset, IN UINT BytesToTransfer ); /* * Other function externs */ VOID InitDevice(IrDevice *thisDev); BOOLEAN OpenDevice(IrDevice *dev); VOID CloseDevice(IrDevice *dev); VOID FreeAll(); PVOID MyMemAlloc(UINT size); VOID MyMemFree(PVOID memptr, UINT size); IrDevice *NewDevice(); VOID FreeDevice(IrDevice *dev); USHORT ComputeFCS(UCHAR *data, UINT dataLen); BOOLEAN NdisToIrPacket( IrDevice *thisDev, PNDIS_PACKET Packet, UCHAR *irPacketBuf, UINT irPacketBufLen, UINT *irPacketLen); /* * Externs for global data objects */ struct IrDevice; extern struct IrDevice *firstIrDevice; /* * From COMM.C */ BOOLEAN DoOpen(struct IrDevice *thisDev); VOID DoClose(IrDevice *thisDev); BOOLEAN DoSend(IrDevice *thisDev, PNDIS_PACKET packetToSend); BOOLEAN SetSpeed(IrDevice *thisDev); BOOLEAN IsCommReadyForTransmit(IrDevice *thisDev); BOOLEAN PortReadyForWrite(struct IrDevice *thisDev, BOOLEAN firstBufIsPending); UINT Call_Get_System_Time(); VOID COM_ISR(struct IrDevice *thisDev, BOOLEAN *claimingInterrupt, BOOLEAN *requireDeferredCallback); VOID QueueReceivePacket(struct IrDevice *thisDev, PUCHAR *data, UINT dataLen); UINT DoRcvDirect(UINT ioBase, UCHAR *data, UINT maxBytes); VOID CloseCOM(IrDevice *thisDev); BOOLEAN OpenCOM(IrDevice *thisDev); VOID SetCOMInterrupts(IrDevice *thisDev, BOOLEAN enable); extern USHORT comPortIRQ[]; extern USHORT comPortIOBase[]; /* * From SETTINGS.C */ extern baudRateInfo supportedBaudRateTable[NUM_BAUDRATES]; #ifdef IRMINILIB /* * To be defined in OEM's dongle-specific module */ extern IRMINI_Dongle_Interface OEM_Interface; #endif #endif EXTERNS_H