*/
void CCID_Device_USBTask(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo) ATTR_NON_NULL_PTR_ARG(1);
- uint8_t CALLBACK_CCID_IccPowerOn(uint8_t slot, uint8_t* atr, uint8_t* atrSize, uint8_t* error);
-
- uint8_t CALLBACK_CCID_IccPowerOff(uint8_t slot, uint8_t* error);
-
- uint8_t CALLBACK_CCID_GetSlotStatus(uint8_t slot, uint8_t* error);
-
- uint8_t CALLBACK_CCID_XfrBlock(uint8_t slot, uint8_t* error, uint8_t* receivedBuffer, uint8_t receivedBufferSize, uint8_t* sendBuffer, uint8_t* sentBufferSize);
+ /** 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)
+ *
+ * \param[in,out] CCIDInterfaceInfo Pointer to a structure containing a CCID Class configuration and state.
+ * \param[in] slot The slot ID currently being powered on.
+ * \param[in,out] atr Pointer to an array containing the Power On ATR being sent to the device.
+ * \param[out] atrSize The size of the ATR being sent (up to 15 bytes maximum).
+ * \param[out] error The result of the operation, or error.
+ *
+ * \return The command result code.
+ */
+ uint8_t CALLBACK_CCID_IccPowerOn(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo,
+ uint8_t slot,
+ uint8_t* const atr,
+ uint8_t* const atrSize,
+ uint8_t* const error) ATTR_NON_NULL_PTR_ARG(1);
+
+ /** CCID class driver callback for PC_TO_RDR_IccPowerOff CCID message
+ * Turns off the ICC
+ *
+ * \param[in,out] CCIDInterfaceInfo Pointer to a structure containing a CCID Class configuration and state.
+ * \param[in] slot The slot ID currently being powered off.
+ * \param[out] error The result of the operation, or error.
+ *
+ * \return The command result code.
+ */
+ uint8_t CALLBACK_CCID_IccPowerOff(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo,
+ uint8_t slot,
+ uint8_t* const error) ATTR_NON_NULL_PTR_ARG(1);
- uint8_t CALLBACK_CCID_Abort(uint8_t slot, uint8_t seq, uint8_t* error);
+ /** CCID class driver callback for PC_TO_RDR_GetSlotStatus CCID message
+ * Retrieves the current status of a given slot
+ *
+ * \param[in,out] CCIDInterfaceInfo Pointer to a structure containing a CCID Class configuration and state.
+ * \param[in] slot The slot ID from which we want to retrieve the status.
+ * \param[out] error The result of the operation, or error.
+ *
+ * \return The command result code.
+ */
+ uint8_t CALLBACK_CCID_GetSlotStatus(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo,
+ uint8_t slot,
+ uint8_t* const error) ATTR_NON_NULL_PTR_ARG(1);
+
+ /** 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
+ *
+ * \param[in,out] CCIDInterfaceInfo Pointer to a structure containing a CCID Class configuration and state.
+ * \param[in] slot The slot ID from which we want to retrieve the status.
+ * \param[in] receivedBuffer Pointer to an array holding the received block of bytes
+ * \param[in] receivedBufferSize The size of the received block of bytes
+ * \param[out] sendBuffer Pointer to a buffer which will hold the bytes being sent back to the host
+ * \param[out] sentBufferSize The size of the block of bytes being sent back to the host
+ * \param[out] error The result of the operation, or error.
+ *
+ * \return The command result code.
+ */
+ uint8_t CALLBACK_CCID_XfrBlock(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo,
+ uint8_t slot,
+ uint8_t* const receivedBuffer,
+ uint8_t receivedBufferSize,
+ uint8_t* const sendBuffer,
+ uint8_t* const sentBufferSize,
+ 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
+ *
+ * \param[in,out] CCIDInterfaceInfo Pointer to a structure containing a CCID Class configuration and state.
+ * \param[in] slot The slot ID to where the message being aborted was sent to.
+ * \param[in] seq The current sequence number for this message. Must be checked against
+ * the current abort message being sent at the control pipe.
+ * \param[out] error The result of the operation, or error.
+ *
+ * \return The command result code.
+ */
+ uint8_t CALLBACK_CCID_Abort(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo,
+ uint8_t slot,
+ uint8_t seq,
+ uint8_t* const error) ATTR_NON_NULL_PTR_ARG(1);
#endif