From bc57f4ea5afd29f2e0f0175d14cf1540b4408de8 Mon Sep 17 00:00:00 2001 From: Dean Camera Date: Sun, 24 Jun 2018 16:41:58 +1000 Subject: Reformatting and add const qualifiers. --- LUFA/Drivers/USB/Class/CCIDClass.h | 9 ++-- LUFA/Drivers/USB/Class/Common/CCIDClassCommon.h | 3 +- LUFA/Drivers/USB/Class/Device/CCIDClassDevice.c | 13 +++-- LUFA/Drivers/USB/Class/Device/CCIDClassDevice.h | 67 +++++++++++++++---------- 4 files changed, 55 insertions(+), 37 deletions(-) (limited to 'LUFA') diff --git a/LUFA/Drivers/USB/Class/CCIDClass.h b/LUFA/Drivers/USB/Class/CCIDClass.h index 681326f65..2e61571bc 100644 --- a/LUFA/Drivers/USB/Class/CCIDClass.h +++ b/LUFA/Drivers/USB/Class/CCIDClass.h @@ -45,15 +45,14 @@ * \section Sec_USBClassCCID_Dependencies Module Source Dependencies * The following files must be built with any user project that uses this module: * - LUFA/Drivers/USB/Class/Device/CCIDClassDevice.c (Makefile source module name: LUFA_SRC_USBCLASS) - * - LUFA/Drivers/USB/Class/Host/CCIDClassHost.c (Makefile source module name: LUFA_SRC_USBCLASS) * * \section Sec_USBClassCCID_ModDescription Module Description - * CCID Class Driver module. This module contains an internal implementation of the USB CCID Class, for both Device - * and Host USB modes. User applications can use this class driver instead of implementing the CCID class manually - * via the low-level LUFA APIs. + * CCID Class Driver module. This module contains an internal implementation of the USB CCID Class, for Device USB + * mode. User applications can use this class driver instead of implementing the CCID class manually via the low-level + * LUFA APIs. * * This module is designed to simplify the user code by exposing only the required interface needed to interface with - * Hosts or Devices using the USB CCID Class. + * Devices using the USB CCID Class. * * \warning * LUFA is not a secure USB stack, and has not undergone, not is it expected to pass, any form of security audit. The diff --git a/LUFA/Drivers/USB/Class/Common/CCIDClassCommon.h b/LUFA/Drivers/USB/Class/Common/CCIDClassCommon.h index 61239ec8a..6cedcad36 100644 --- a/LUFA/Drivers/USB/Class/Common/CCIDClassCommon.h +++ b/LUFA/Drivers/USB/Class/Common/CCIDClassCommon.h @@ -233,7 +233,8 @@ uint8_t Status; uint8_t Error; uint8_t ProtocolNum; - union { + union + { USB_CCID_ProtocolData_T0_t T0; USB_CCID_ProtocolData_T1_t T1; } ProtocolData; diff --git a/LUFA/Drivers/USB/Class/Device/CCIDClassDevice.c b/LUFA/Drivers/USB/Class/Device/CCIDClassDevice.c index 11c20f0b3..0595e0715 100644 --- a/LUFA/Drivers/USB/Class/Device/CCIDClassDevice.c +++ b/LUFA/Drivers/USB/Class/Device/CCIDClassDevice.c @@ -39,7 +39,7 @@ #include "CCIDClassDevice.h" -bool CCID_CheckStatusNoError(int status) +bool CCID_CheckStatusNoError(uint8_t status) { return (status & 0xC0) == 0x0; } @@ -84,6 +84,7 @@ void CCID_Device_ProcessControlRequest(USB_ClassInfo_CCID_Device_t* const CCIDIn break; } + case CCID_GET_CLOCK_FREQUENCIES: { if (USB_ControlRequest.bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE)) @@ -95,6 +96,7 @@ void CCID_Device_ProcessControlRequest(USB_ClassInfo_CCID_Device_t* const CCIDIn } break; } + case CCID_GET_DATA_RATES: { if (USB_ControlRequest.bmRequestType == (REQDIR_DEVICETOHOST | REQTYPE_CLASS | REQREC_INTERFACE)) @@ -154,7 +156,7 @@ void CCID_Device_USBTask(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo) ResponseATR->CCIDHeader.Seq = CCIDHeader.Seq; ResponseATR->ChainParam = 0; - Status = CALLBACK_CCID_IccPowerOn(ResponseATR->CCIDHeader.Slot, (uint8_t*)ResponseATR->Data, &AtrLength, &Error); + Status = CALLBACK_CCID_IccPowerOn(CCIDInterfaceInfo, ResponseATR->CCIDHeader.Slot, (uint8_t*)ResponseATR->Data, &AtrLength, &Error); if (CCID_CheckStatusNoError(Status) && !CCIDInterfaceInfo->State.Aborted) { @@ -192,7 +194,7 @@ void CCID_Device_USBTask(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo) ResponsePowerOff->ClockStatus = 0; - Status = CALLBACK_CCID_IccPowerOff(CCIDHeader.Slot, &Error); + Status = CALLBACK_CCID_IccPowerOff(CCIDInterfaceInfo, CCIDHeader.Slot, &Error); ResponsePowerOff->Status = Status; ResponsePowerOff->Error = Error; @@ -215,7 +217,7 @@ void CCID_Device_USBTask(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo) ResponseSlotStatus->ClockStatus = 0; - Status = CALLBACK_CCID_GetSlotStatus(CCIDHeader.Slot, &Error); + Status = CALLBACK_CCID_GetSlotStatus(CCIDInterfaceInfo, CCIDHeader.Slot, &Error); ResponseSlotStatus->Status = Status; ResponseSlotStatus->Error = Error; @@ -238,7 +240,7 @@ void CCID_Device_USBTask(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo) ResponseAbort->ClockStatus = 0; - Status = CALLBACK_CCID_Abort(CCIDHeader.Slot, CCIDHeader.Seq, &Error); + Status = CALLBACK_CCID_Abort(CCIDInterfaceInfo, CCIDHeader.Slot, CCIDHeader.Seq, &Error); ResponseAbort->Status = Status; ResponseAbort->Error = Error; @@ -250,6 +252,7 @@ void CCID_Device_USBTask(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo) Endpoint_ClearIN(); break; } + default: { memset(BlockBuffer, 0x00, sizeof(BlockBuffer)); diff --git a/LUFA/Drivers/USB/Class/Device/CCIDClassDevice.h b/LUFA/Drivers/USB/Class/Device/CCIDClassDevice.h index 5acc33af5..245e12665 100644 --- a/LUFA/Drivers/USB/Class/Device/CCIDClassDevice.h +++ b/LUFA/Drivers/USB/Class/Device/CCIDClassDevice.h @@ -115,46 +115,61 @@ * 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] slot The slot currently being powered on - * \param[in, out] atr Pointer to an array where the ATR being sent to the device when the Icc is powered on is. - * \param[out] atrSize The size of the ATR being sent. Maximum size is 15 - * \param[out] error The result of the operation, or error + * \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 uint8_t The command result + * \return The command result code. */ - uint8_t CALLBACK_CCID_IccPowerOn(uint8_t slot, uint8_t* atr, uint8_t* atrSize, uint8_t* error); + 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] slot The slot currently being powered off - * \param[out] error The result of the operation, or error - * - * \return uint8_t The command result + * + * \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(uint8_t slot, uint8_t* error); + 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); /** CCID class driver callback for PC_TO_RDR_GetSlotStatus CCID message * Retrieves the current status of a given slot - * - * \param[in] slot The slot from which we want to retrieve the status - * \param[out] error The result of the operation, or error - * - * \return uint8_t The command result + * + * \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(uint8_t slot, uint8_t* error); + 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 CCID_PC_to_RDR_Abort CCID message * Aborts a BULK out message previously sent to a slot - * - * \param[in] slot The slot to where the message being aborted was sent to - * \param[in] seq The current sequence number for this message. Must be checked against to the current - * abort massage being sent at the control pipe - * \param[out] error The result of the operation, or error - * - * \return uint8_t The command result + * + * \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(uint8_t slot, uint8_t seq, uint8_t* error); + 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 -- cgit v1.2.3