ReactOS 0.4.15-dev-7953-g1f49173
fbtHciLocal.h
Go to the documentation of this file.
1#ifndef _LOCAL_HCI_H_
2#define _LOCAL_HCI_H_
3
4#include "fbtHci.h"
5
6#define MAX_QUEUED_COMMANDS 100
7
8typedef struct _QueuedCommand
9{
14
16
17// Local HCI command abstraction
18// 1. Send Command
19// 2. Wait for Command status / Command complete
20class CHciLocal : public CHci
21{
22public:
23 CHciLocal(void);
24 virtual ~CHciLocal(void);
25
26 virtual int QueueCommand(USHORT nCommand, BYTE *pResultBuffer=NULL, DWORD dwBufferSize=0);
27 virtual int QueueCommandStatus(USHORT nCommand);
28 virtual void DeQueueCommand(int nSlot);
29 virtual DWORD ClearQueue(void);
30 virtual PQueuedCommand GetQueuedCommand(int nSlot);
31
32 virtual DWORD WaitForCommandComplete(int nSlot);
33 virtual DWORD WaitForCommandStatus(int nSlot, BYTE &nStatus);
34
35 virtual DWORD SendReset(void);
38 BYTE nFilterType,
39 BYTE nFilterConditionType,
41 BYTE nConditionBytes);
42
43 virtual DWORD SendInquiry(ULONG nLAP, BYTE nInquiryLength, BYTE nNumResponses);
44 virtual DWORD SendInquiryCancel(void);
46 USHORT nPacketType,
47 BYTE nPageScanRepetitionMode,
48 BYTE nPageScanMode,
49 USHORT nClockOffset,
50 BYTE nAllowRoleSwitch);
51
52 virtual DWORD SendDisconnect(USHORT nConnectionHandle, BYTE nReason);
54 virtual DWORD SendRemoteNameRequest(BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE], BYTE nPageScanRepetitionMode, BYTE nPageScanMode, USHORT nClockOffset);
56
58
59 virtual DWORD CommandCompleteHandler(USHORT nCommand, BYTE *pParameters, DWORD dwParameterLength);
60 virtual DWORD CommandStatusHandler(BYTE nStatus, USHORT nCommand);
61
62protected:
63 virtual int FindCommandSlot(USHORT nCommand);
64
67
68};
69
70
71#endif // _LOCAL_HCI_H_
virtual DWORD WaitForCommandComplete(int nSlot)
virtual DWORD SendInquiryCancel(void)
CRITICAL_SECTION m_QueueCriticalSection
Definition: fbtHciLocal.h:66
virtual ~CHciLocal(void)
virtual int QueueCommand(USHORT nCommand, BYTE *pResultBuffer=NULL, DWORD dwBufferSize=0)
virtual DWORD CommandStatusHandler(BYTE nStatus, USHORT nCommand)
virtual void DeQueueCommand(int nSlot)
CHciLocal(void)
virtual DWORD CommandCompleteHandler(USHORT nCommand, BYTE *pParameters, DWORD dwParameterLength)
virtual DWORD OnEvent(PFBT_HCI_EVENT_HEADER pEvent, DWORD dwLength)
virtual int QueueCommandStatus(USHORT nCommand)
virtual DWORD SendDisconnect(USHORT nConnectionHandle, BYTE nReason)
virtual DWORD SendReset(void)
virtual DWORD SendRemoteNameRequest(BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE], BYTE nPageScanRepetitionMode, BYTE nPageScanMode, USHORT nClockOffset)
virtual DWORD ClearQueue(void)
QueuedCommand m_QueuedCommands[MAX_QUEUED_COMMANDS]
Definition: fbtHciLocal.h:65
virtual DWORD SendSetEventFilter(BYTE nFilterType, BYTE nFilterConditionType, BYTE nCondition[FBT_HCI_MAX_CONDITION_SIZE], BYTE nConditionBytes)
virtual DWORD WaitForCommandStatus(int nSlot, BYTE &nStatus)
virtual DWORD SendSwitchRole(BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE], BYTE nRole)
virtual PQueuedCommand GetQueuedCommand(int nSlot)
virtual DWORD SendCreateConnection(BYTE BD_ADDR[FBT_HCI_BDADDR_SIZE], USHORT nPacketType, BYTE nPageScanRepetitionMode, BYTE nPageScanMode, USHORT nClockOffset, BYTE nAllowRoleSwitch)
virtual DWORD SendReadLocalVersionInformation(FBT_HCI_READ_LOCAL_VERSION_INFORMATION_COMPLETE &CommandComplete)
virtual DWORD SendInquiry(ULONG nLAP, BYTE nInquiryLength, BYTE nNumResponses)
virtual int FindCommandSlot(USHORT nCommand)
virtual DWORD SendWriteClassOfDevice(BYTE ClassOfDevice[FBT_HCI_DEVICE_CLASS_SIZE])
Definition: fbthci.h:23
#define NULL
Definition: types.h:112
static DWORD DWORD * dwLength
Definition: fusion.c:86
struct _QueuedCommand * PQueuedCommand
struct _QueuedCommand QueuedCommand
#define MAX_QUEUED_COMMANDS
Definition: fbtHciLocal.h:6
#define FBT_HCI_BDADDR_SIZE
Definition: fbtHciSizes.h:13
#define FBT_HCI_DEVICE_CLASS_SIZE
Definition: fbtHciSizes.h:16
#define FBT_HCI_MAX_CONDITION_SIZE
Definition: fbtHciSizes.h:19
unsigned long DWORD
Definition: ntddk_ex.h:95
unsigned short USHORT
Definition: pedump.c:61
USHORT nCommand
Definition: fbtHciLocal.h:10
DWORD dwBufferSize
Definition: fbtHciLocal.h:12
BYTE * pResultBuffer
Definition: fbtHciLocal.h:11
uint32_t ULONG
Definition: typedefs.h:59
unsigned char BYTE
Definition: xxhash.c:193