⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 externs.h

📁 网络驱动开发
💻 H
字号:
/*
 ************************************************************************
 *
 *	EXTERNS.h
 *
 *
 * Portions Copyright (C) 1996-1998 National Semiconductor Corp.
 * All rights reserved.
 * Copyright (C) 1996-1998 Microsoft Corporation. All Rights Reserved.
 *
 *
 *
 *************************************************************************
 */



#ifndef EXTERNS_H
#define EXTERNS_H

#include "nscdemo.h"

/*
 *  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(PBOOLEAN AddressingReset,
				NDIS_HANDLE MiniportAdapterContext);
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();
UCHAR GetCOMPort(PUCHAR comBase, comPortRegOffset portOffset);
VOID SetCOMPort(PUCHAR comBase, comPortRegOffset portOffset, UCHAR val);
PNDIS_IRDA_PACKET_INFO GetPacketInfo(PNDIS_PACKET packet);

PVOID NscMemAlloc(UINT size);
VOID NscMemFree(PVOID memptr);

IrDevice *NewDevice();
VOID FreeDevice(IrDevice *dev);
USHORT ComputeFCS(UCHAR *data, UINT dataLen);
BOOLEAN NdisToIrPacket( PNDIS_PACKET Packet,
				UCHAR *irPacketBuf, UINT irPacketBufLen,
				UINT *irPacketLen);

BOOLEAN FIR_MegaSend(IrDevice *thisDev);
BOOLEAN FIR_NewMegaSend(IrDevice *thisDev);
void TurnaroundDelay(IrDevice *thisDev);
void FIR_NewMegaSendComplete(IrDevice *thisDev);
void FIR_MegaSendComplete(IrDevice *thisDev);

BOOLEAN NSC_Setup(IrDevice *thisDev);
void NSC_Shutdown(IrDevice *thisDev);
BOOLEAN NdisToFirPacket( PNDIS_PACKET Packet,
				UCHAR *irPacketBuf, UINT irPacketBufLen,
				UINT *irPacketLen);
void FIR_DeliverFrames(IrDevice *thisDev);
VOID NSC_FIR_ISR(IrDevice *thisDev, BOOLEAN *claimingInterrupt,
				BOOLEAN *requireDeferredCallback);
BOOLEAN FindLargestSpace(IN IrDevice *thisDev,
                         OUT PULONG_PTR pOffset,
                         OUT PULONG_PTR pLength);
void SetupRecv(IrDevice *thisDev);
/*
 *  Externs for global data objects
 */
struct IrDevice;
extern struct DebugCounters RegStats;


/*
 *  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 PermissionToTransmitComm(IrDevice *thisDev);
NDIS_STATUS 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, BOOLEAN IsFIR);

UINT DoRcvDirect(PUCHAR ioBase, UCHAR *data, UINT maxBytes);
VOID CloseCOM(IrDevice *thisDev);
BOOLEAN OpenCOM(IrDevice *thisDev);
VOID SetCOMInterrupts(IrDevice *thisDev, BOOLEAN enable);

VOID DelayedWrite(IN PVOID SystemSpecific1,
                  IN PVOID FunctionContext,
                  IN PVOID SystemSpecific2,
                  IN PVOID SystemSpecific3);



/*
 *  From SETTINGS.C
 */
void LogEvent(char *msg, UINT val);
void DumpLog();

extern const baudRateInfo supportedBaudRateTable[NUM_BAUDRATES];

/*
 *  From INIT.C
 */
UCHAR NSC_ReadBankReg(PUCHAR comBase, UINT bankNum, UINT regNum);
void NSC_WriteBankReg(PUCHAR comBase, UINT bankNum, UINT regNum,
				UCHAR val);

#endif EXTERNS_H

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -