LUFA Library  210130
CCID Class Device Mode Driver

Data Structures

struct  USB_ClassInfo_CCID_Device_t
 CCID Class Device Mode Configuration and State Structure. More...
 

Functions

uint8_t CALLBACK_CCID_Abort (USB_ClassInfo_CCID_Device_t *const CCIDInterfaceInfo, const uint8_t Slot, const uint8_t Seq, uint8_t *const Error) ATTR_NON_NULL_PTR_ARG(1)
 
uint8_t CALLBACK_CCID_GetParameters_T0 (USB_ClassInfo_CCID_Device_t *const CCIDInterfaceInfo, const uint8_t Slot, uint8_t *const Error, uint8_t *const ProtocolNum, USB_CCID_ProtocolData_T0_t *const T0) ATTR_NON_NULL_PTR_ARG(1)
 
uint8_t CALLBACK_CCID_GetSlotStatus (USB_ClassInfo_CCID_Device_t *const CCIDInterfaceInfo, const uint8_t Slot, uint8_t *const Error) ATTR_NON_NULL_PTR_ARG(1)
 
uint8_t CALLBACK_CCID_IccPowerOff (USB_ClassInfo_CCID_Device_t *const CCIDInterfaceInfo, const uint8_t Slot, uint8_t *const Error) ATTR_NON_NULL_PTR_ARG(1)
 
uint8_t CALLBACK_CCID_IccPowerOn (USB_ClassInfo_CCID_Device_t *const CCIDInterfaceInfo, const uint8_t Slot, uint8_t *const Atr, uint8_t *const AtrSize, uint8_t *const Error) ATTR_NON_NULL_PTR_ARG(1)
 
uint8_t CALLBACK_CCID_SetParameters_T0 (USB_ClassInfo_CCID_Device_t *const CCIDInterfaceInfo, const uint8_t Slot, uint8_t *const Error, USB_CCID_ProtocolData_T0_t *const T0) ATTR_NON_NULL_PTR_ARG(1)
 
uint8_t CALLBACK_CCID_XfrBlock (USB_ClassInfo_CCID_Device_t *const CCIDInterfaceInfo, const uint8_t Slot, const uint8_t *ReceivedBuffer, const uint8_t ReceivedBufferSize, uint8_t *const SendBuffer, uint8_t *const SentBufferSize, uint8_t *const Error) ATTR_NON_NULL_PTR_ARG(1)
 
bool CCID_Device_ConfigureEndpoints (USB_ClassInfo_CCID_Device_t *const CCIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
 
void CCID_Device_ProcessControlRequest (USB_ClassInfo_CCID_Device_t *const CCIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
 
void CCID_Device_USBTask (USB_ClassInfo_CCID_Device_t *const CCIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1)
 

Detailed Description

Module Source Dependencies

The following files must be built with any user project that uses this module:

Module Description

Device Mode USB Class driver framework interface, for the CCID USB Class driver.

Function Documentation

◆ CALLBACK_CCID_Abort()

uint8_t CALLBACK_CCID_Abort ( USB_ClassInfo_CCID_Device_t *const  CCIDInterfaceInfo,
const uint8_t  Slot,
const uint8_t  Seq,
uint8_t *const  Error 
)

CCID class driver callback for CCID_PC_to_RDR_Abort CCID message Aborts a BULK out message previously sent to a slot

Parameters
[in,out]CCIDInterfaceInfoPointer to a structure containing a CCID Class configuration and state.
[in]SlotThe slot ID to where the message being aborted was sent to.
[in]SeqThe current sequence number for this message. Must be checked against the current abort message being sent at the control pipe.
[out]ErrorThe result of the operation, or error.
Returns
The command result code.

◆ CALLBACK_CCID_GetParameters_T0()

uint8_t CALLBACK_CCID_GetParameters_T0 ( USB_ClassInfo_CCID_Device_t *const  CCIDInterfaceInfo,
const uint8_t  Slot,
uint8_t *const  Error,
uint8_t *const  ProtocolNum,
USB_CCID_ProtocolData_T0_t *const  T0 
)

CCID class driver callback for PC_TO_RDR_SetParameters CCID message for T=0 Retrieves the current parameters of a given slot

Parameters
[in,out]CCIDInterfaceInfoPointer to a structure containing a CCID Class configuration, state and protocol data.
[in]SlotThe slot ID from which we want to retrieve the status.
[out]ErrorThe result of the operation, or error.
[out]ProtocolNumThe CCID protocol ID of the parameter being retrieved.
[out]T0Pointer to a buffer where the parameters will be returned
Returns
The command result code.

◆ CALLBACK_CCID_GetSlotStatus()

uint8_t CALLBACK_CCID_GetSlotStatus ( USB_ClassInfo_CCID_Device_t *const  CCIDInterfaceInfo,
const uint8_t  Slot,
uint8_t *const  Error 
)

CCID class driver callback for PC_TO_RDR_GetSlotStatus CCID message Retrieves the current status of a given slot

Parameters
[in,out]CCIDInterfaceInfoPointer to a structure containing a CCID Class configuration and state.
[in]SlotThe slot ID from which we want to retrieve the status.
[out]ErrorThe result of the operation, or error.
Returns
The command result code.

◆ CALLBACK_CCID_IccPowerOff()

uint8_t CALLBACK_CCID_IccPowerOff ( USB_ClassInfo_CCID_Device_t *const  CCIDInterfaceInfo,
const uint8_t  Slot,
uint8_t *const  Error 
)

CCID class driver callback for PC_TO_RDR_IccPowerOff CCID message Turns off the ICC

Parameters
[in,out]CCIDInterfaceInfoPointer to a structure containing a CCID Class configuration and state.
[in]SlotThe slot ID currently being powered off.
[out]ErrorThe result of the operation, or error.
Returns
The command result code.

◆ CALLBACK_CCID_IccPowerOn()

uint8_t CALLBACK_CCID_IccPowerOn ( USB_ClassInfo_CCID_Device_t *const  CCIDInterfaceInfo,
const uint8_t  Slot,
uint8_t *const  Atr,
uint8_t *const  AtrSize,
uint8_t *const  Error 
)

CCID class driver callback for PC_TO_RDR_IccPowerOn CCID message When the ICC is inserted into a slot of a CCID, the CCID can activate the ICC, and the ICC will respond with an ATR (answer to reset)

Parameters
[in,out]CCIDInterfaceInfoPointer to a structure containing a CCID Class configuration and state.
[in]SlotThe slot ID currently being powered on.
[in,out]AtrPointer to an array containing the Power On ATR being sent to the device.
[out]AtrSizeThe size of the ATR being sent (up to 15 bytes maximum).
[out]ErrorThe result of the operation, or error.
Returns
The command result code.

◆ CALLBACK_CCID_SetParameters_T0()

uint8_t CALLBACK_CCID_SetParameters_T0 ( USB_ClassInfo_CCID_Device_t *const  CCIDInterfaceInfo,
const uint8_t  Slot,
uint8_t *const  Error,
USB_CCID_ProtocolData_T0_t *const  T0 
)

CCID class driver callback for PC_TO_RDR_SetParameters CCID message for T=0 Sets the current parameters of a given slot

Parameters
[in,out]CCIDInterfaceInfoPointer to a structure containing a CCID Class configuration, state and protocol data.
[in]SlotThe slot ID from which we want to retrieve the status.
[out]ErrorThe result of the operation, or error.
[out]T0Pointer to a buffer containing the new parameters
Returns
The command result code.

◆ CALLBACK_CCID_XfrBlock()

uint8_t CALLBACK_CCID_XfrBlock ( USB_ClassInfo_CCID_Device_t *const  CCIDInterfaceInfo,
const uint8_t  Slot,
const uint8_t *  ReceivedBuffer,
const uint8_t  ReceivedBufferSize,
uint8_t *const  SendBuffer,
uint8_t *const  SentBufferSize,
uint8_t *const  Error 
)

CCID class driver callback for PC_TO_RDR_XfrBlock CCID message Send a block of bytes from the host to a slot in the device and also received a block of bytes as a response

Parameters
[in,out]CCIDInterfaceInfoPointer to a structure containing a CCID Class configuration and state.
[in]SlotThe slot ID from which we want to retrieve the status.
[in]ReceivedBufferPointer to an array holding the received block of bytes
[in]ReceivedBufferSizeThe size of the received block of bytes
[out]SendBufferPointer to a buffer which will hold the bytes being sent back to the host
[out]SentBufferSizeThe size of the block of bytes being sent back to the host
[out]ErrorThe result of the operation, or error.
Returns
The command result code.

◆ CCID_Device_ConfigureEndpoints()

bool CCID_Device_ConfigureEndpoints ( USB_ClassInfo_CCID_Device_t *const  CCIDInterfaceInfo)

Configures the endpoints of a given CCID interface, ready for use. This should be linked to the library EVENT_USB_Device_ConfigurationChanged() event so that the endpoints are configured when the configuration containing the given CCID interface is selected.

Parameters
[in,out]CCIDInterfaceInfoPointer to a structure containing a CCID Class configuration.
Returns
Boolean true if the endpoints were successfully configured, false otherwise.

◆ CCID_Device_ProcessControlRequest()

void CCID_Device_ProcessControlRequest ( USB_ClassInfo_CCID_Device_t *const  CCIDInterfaceInfo)

Processes incoming control requests from the host, that are directed to the given CCID class interface. This should be linked to the library EVENT_USB_Device_ControlRequest() event.

Parameters
[in,out]CCIDInterfaceInfoPointer to a structure containing a CCID Class configuration and state.

◆ CCID_Device_USBTask()

void CCID_Device_USBTask ( USB_ClassInfo_CCID_Device_t *const  CCIDInterfaceInfo)

General management task for a given CCID class interface, required for the correct operation of the interface. This should be called frequently in the main program loop, before the master USB management task USB_USBTask().

Parameters
[in,out]CCIDInterfaceInfoPointer to a structure containing a CCID Class configuration and state.