RHCIDirectAccess Class Reference

class RHCIDirectAccess

API used for licensee-specific direct HCI access

This class allows vendor-specific messages to be passed through to the HCI for customised (licensee-specific) HCI functionality.

Note: No use of this class should be required by default. It is provided to assist with hardware workarounds, or link policy not implemented by the Bluetooth stack.

Do not use unless entirely familar with this API and the specific HCI in use!!!!

Public Member Functions
RHCIDirectAccess()
IMPORT_C voidAsyncMessage(TUint, TRequestStatus &, TDes8 *)
IMPORT_C voidCancelAsyncMessage()
IMPORT_C voidCancelIoctl()
IMPORT_C voidClose()
IMPORT_C voidIoctl(TUint, TRequestStatus &, TDes8 *, TUint)
IMPORT_C TIntOpen()
IMPORT_C TIntOpen(RSocketServ &)
IMPORT_C TIntSubSessionHandle()
Private Attributes
RHCIServerSession *iHCIServerSession
TUint32 iReserved
RSocketBasedHciDirectAccess *iSocketAccess

Constructor & Destructor Documentation

RHCIDirectAccess()

IMPORT_CRHCIDirectAccess()

Constructor

Member Functions Documentation

AsyncMessage(TUint, TRequestStatus &, TDes8 *)

IMPORT_C voidAsyncMessage(TUintaCommand,
TRequestStatus &aStatus,
TDes8 *aDesc
)

Applies an asynchronous control operation on the HCI.

Data may be passed and received if a descriptor address is provided as an argument. Only one AsyncMessage operation may be outstanding for each RHCIDirectAccess.

Parameters

TUint aCommandMessage identifier.
TRequestStatus & aStatusStatus parameter for asynchronous request
TDes8 * aDescPointer to a descriptor in which data may be sent and received on completion.

CancelAsyncMessage()

IMPORT_C voidCancelAsyncMessage()

Cancels the Ioctl() asynchronous control operation. RSocket::CancelIoctl()

CancelIoctl()

IMPORT_C voidCancelIoctl()

Cancels the Ioctl() asynchronous control operation. RSocket::CancelIoctl()

Close()

IMPORT_C voidClose()

Close the HCIDirectAccess.

Ioctl(TUint, TRequestStatus &, TDes8 *, TUint)

IMPORT_C voidIoctl(TUintaCommand,
TRequestStatus &aStatus,
TDes8 *aDesc = NULL,
TUintaLevel =  KSolBtHCI
)

Applies an asynchronous control operation on the HCI.

Data may be passed and received if a descriptor address is provided as an argument. Only one Ioctl() operation may be outstanding for each RHCIDirectAccess.

RSocket::Ioctl(TUint aCommand,TRequestStatus &aStatus,TDes8* aDesc,TUint aLevel)

Parameters

TUint aCommandIoctl command.
TRequestStatus & aStatusStatus parameter for asynchronous request
TDes8 * aDesc = NULLPointer to a descriptor in which data may be sent and received on completion.
TUint aLevel =  KSolBtHCI Control operation level. Should be KSolBtHCI for this API

Open()

IMPORT_C TIntOpen()
Open a direct interface between the application layer and the HCI for custom messages.
capability
LocalServices

Open(RSocketServ &)

IMPORT_C TIntOpen(RSocketServ &aSocketServ)
Open a direct interface between the application layer and the HCI for custom messages. This method exists for backwards compatability. The ESock session is not used.
capability
LocalServices

Parameters

RSocketServ & aSocketServESock session

SubSessionHandle()

IMPORT_C TIntSubSessionHandle()

Originally a getter for the sub-session handle. This facility has now been removed.

Member Data Documentation

RHCIServerSession * iHCIServerSession

RHCIServerSession *iHCIServerSession[private]

TUint32 iReserved

TUint32 iReserved[private]

RSocketBasedHciDirectAccess * iSocketAccess

RSocketBasedHciDirectAccess *iSocketAccess[private]