?? irdahw.h
字號:
//**********************************************************************
//
// Filename: irdahw.h
//
// Description: contains the IRDA hardware class.
//
// THIS CODE AND INFORMATION IS PROVIDED "AS IS" WITHOUT WARRANTY OF
// ANY KIND, EITHER EXPRESSED OR IMPLIED, INCLUDING BUT NOT LIMITED TO
// THE IMPLIED WARRANTIES OF MERCHANTABILITY AND/OR FITNESS FOR A
// PARTICULAR PURPOSE.
// Copyright(c) Cirrus Logic Corporation 2001, All Rights Reserved
//
//**********************************************************************
#ifndef _H_IRDAHW
#define _H_IRDAHW
enum IRDA_MODE
{
MODE_SIR,
MODE_MIR,
MODE_FIR
};
//
// BAUDRATES - Enumeration of baud rates to index into array.
// NUM_BAUDRATES is the number of rates in the array.
//
typedef enum _BAUDRATES
{
BAUDRATE_2400 = 0,
BAUDRATE_9600,
BAUDRATE_19200,
BAUDRATE_38400,
BAUDRATE_57600,
BAUDRATE_115200,
// BAUDRATE_576K,
// BAUDRATE_1152K,
// BAUDRATE_4M,
NUM_BAUDRATES
} BAUDRATES;
typedef struct BAUDRATE_INFO * PBAUDRATE_INFO;
extern const BAUDRATE_INFO v_rgSupportedBaudRates[];
class IRMiniport;
void CompleteSentPacket
(
PNDIS_PACKET pNdisPacket,
NDIS_HANDLE hNdisAdapter,
NDIS_STATUS status
);
class IrdaHW
{
public:
IrdaHW();
~IrdaHW();
//
// Function to Initialize the IRDA Hardware.
//
NDIS_STATUS InitializeIrdaHW();
//
// Reset HW.
//
NDIS_STATUS ResetHW();
//
// Functions to Get and set the baud rate.
//
NDIS_STATUS SetHWBaudRate( ULONG ulBaudRate);
NDIS_STATUS BaudRateSupported(ULONG ulBaudRate);
ULONG GetCurrentBaudRate() { return m_ulBaudRate; }
//
// Set Iir to Recieve or transmit. Only used for MIR or FIR.
//
void IirTransmit( );
void IirRecieve( );
void IirSuspend();
//
// Get the current IRDA mode.
//
IRDA_MODE GetIRDAMode() { return (eIrdaMode);}
//
// Function to Return stats.
//
ULONG RxPackets() { return m_SirState.PacketsRecieved();}
ULONG RxPacketsDropped() { return m_SirState.PacketsDropped(); }
ULONG RxPacketsOverflowed() { return m_SirState.PacketsOverflowed(); }
ULONG TxPackets() { return m_ulPacketsTx; }
ULONG TxPacketsDropped() { return m_ulPacketsTxDropped;}
void ClearStatistics();
//
// Is a packet currently being sent
//
//BOOL MiddleOfSentPacket(){return(m_pCurrentSentNDisPacket?TRUE:FALSE) ;}
//
// Interrupt Handler.
//
friend DWORD WINAPI SIRInterruptHandler(LPVOID Handle);
protected:
//
// Information about the current NDIS packet being sent.
//
UCHAR * m_pSendBuf;
ULONG m_ulSendCurPos;
ULONG m_ulSendBufSize;
//
// Since all of the members are private, this is somewhat safe.
//
ReceivedSirState m_SirState;
//
// Current mode.
//
IRDA_MODE eIrdaMode;
//
// Sir interrupt thread and events.
//
HANDLE m_hSirEvent;
HANDLE m_hSirInterruptThread;
//
// Current Baud rate.
//
ULONG m_ulBaudRate;
//
// This class holds the SIR recieve state machine.
//
BOOL m_bSirExiting;
//
// This flags when set tells us to add bofs.
// A change from receiving to sending packets has occured.
//
BOOL m_fMinTATRequired;
//
// Packets Stats.
//
ULONG m_ulPacketsTxDropped;
ULONG m_ulPacketsTx;
};
#endif // _H_IRDAHW
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -