Reformatting and add const qualifiers.
authorDean Camera <dean@fourwalledcubicle.com>
Sun, 24 Jun 2018 06:41:58 +0000 (16:41 +1000)
committerDean Camera <dean@fourwalledcubicle.com>
Sun, 24 Jun 2018 06:41:58 +0000 (16:41 +1000)
12 files changed:
Demos/Device/ClassDriver/CCID/CCID.c
Demos/Device/ClassDriver/CCID/CCID.h
Demos/Device/ClassDriver/CCID/Lib/Iso7816.c
Demos/Device/ClassDriver/CCID/Lib/Iso7816.h
Demos/Device/LowLevel/CCID/CCID.c
Demos/Device/LowLevel/CCID/CCID.h
Demos/Device/LowLevel/CCID/Lib/Iso7816.c
Demos/Device/LowLevel/CCID/Lib/Iso7816.h
LUFA/Drivers/USB/Class/CCIDClass.h
LUFA/Drivers/USB/Class/Common/CCIDClassCommon.h
LUFA/Drivers/USB/Class/Device/CCIDClassDevice.c
LUFA/Drivers/USB/Class/Device/CCIDClassDevice.h

index 9163065..9059ad4 100644 (file)
@@ -157,10 +157,11 @@ void EVENT_USB_Device_ControlRequest(void)
  *  whenever an application at the host wants to send a power off signal to a slot.
  *  THe slot must reply back with a recognizable ATR (answer to reset)
  */
-uint8_t CALLBACK_CCID_IccPowerOn(uint8_t slot,
-                                                                uint8_t* atr,
-                                                                uint8_t* attrSize,
-                                                                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 attrSize,
+                                                                uint8_t* const error)
 {
        if (slot < CCID_Interface.Config.TotalSlots)
        {
@@ -176,7 +177,9 @@ uint8_t CALLBACK_CCID_IccPowerOn(uint8_t slot,
 /** Event handler for the CCID_PC_to_RDR_IccPowerOff message. This message is sent to the device
  *  whenever an application at the host wants to send a power off signal to a slot.
  */
-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)
 {
        if (slot < CCID_Interface.Config.TotalSlots)
        {
@@ -194,7 +197,9 @@ uint8_t CALLBACK_CCID_IccPowerOff(uint8_t slot, uint8_t* error)
  *  whenever an application at the host wants to the get the current slot status
  *
  */
-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)
 {
        if (slot < CCID_Interface.Config.TotalSlots)
        {
@@ -208,9 +213,10 @@ uint8_t CALLBACK_CCID_GetSlotStatus(uint8_t slot, uint8_t* error)
        }
 }
 
-uint8_t CALLBACK_CCID_Abort(uint8_t slot,
+uint8_t CALLBACK_CCID_Abort(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo,
+                            uint8_t slot,
                                                        uint8_t seq,
-                                                       uint8_t* error)
+                                                       uint8_t* const error)
 {
        if (CCID_Interface.State.Aborted && slot == 0 && CCID_Interface.State.AbortedSeq == seq)
        {
index 608fb78..f6dd4ad 100644 (file)
                void EVENT_USB_Device_ConfigurationChanged(void);
                void EVENT_USB_Device_ControlRequest(void);
 
-               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_Abort(uint8_t slot,
-                            uint8_t seq,
-                            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);
+               uint8_t CALLBACK_CCID_IccPowerOff(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo,
+                                                 uint8_t slot,
+                                                 uint8_t* const error);
+               uint8_t CALLBACK_CCID_GetSlotStatus(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo,
+                                                   uint8_t slot,
+                                                   uint8_t* const error);
+               uint8_t CALLBACK_CCID_Abort(USB_ClassInfo_CCID_Device_t* const CCIDInterfaceInfo,
+                                           uint8_t slot,
+                                           uint8_t seq,
+                                           uint8_t* const error);
 
 #endif
 
index 1f9391d..ec6e1f3 100644 (file)
@@ -31,7 +31,9 @@
 
 #include "Iso7816.h"
 
-void Iso7816_CreateSimpleAtr(uint8_t* attr, uint8_t* attrLength)
+
+void Iso7816_CreateSimpleAtr(uint8_t* const attr,
+                             uint8_t* const attrLength)
 {
        attr[0] = 0x3B; //TS: direct convention
 
index f5fc1d7..2a55706 100644 (file)
@@ -36,7 +36,9 @@
                #include <avr/power.h>
                #include <avr/interrupt.h>
                #include <stdlib.h>
+               #include <string.h>
 
        /* Function Prototypes: */
-               void Iso7816_CreateSimpleAtr(uint8_t* attr, uint8_t* attrLength);
+               void Iso7816_CreateSimpleAtr(uint8_t* const attr,
+                                            uint8_t* const attrLength);
 #endif
index 8b46e89..764392d 100644 (file)
@@ -197,9 +197,9 @@ void EVENT_USB_Device_ControlRequest(void)
  *  THe slot must reply back with a recognizable ATR (answer to reset)
  */
 uint8_t CCID_IccPowerOn(uint8_t slot,
-                                               uint8_t* atr,
-                                               uint8_t* atrLength,
-                        uint8_t* error)
+                                               uint8_t* const atr,
+                                               uint8_t* const atrLength,
+                        uint8_t* const error)
 {
        if (slot == 0)
        {
@@ -219,7 +219,7 @@ uint8_t CCID_IccPowerOn(uint8_t slot,
  *  whenever an application at the host wants to send a power off signal to a slot.
  */
 uint8_t CCID_IccPowerOff(uint8_t slot,
-                         uint8_t* error)
+                         uint8_t* const error)
 {
        if (slot == 0)
        {
@@ -238,7 +238,7 @@ uint8_t CCID_IccPowerOff(uint8_t slot,
  *  slot status.
  */
 uint8_t CCID_GetSlotStatus(uint8_t slot,
-                           uint8_t* error)
+                           uint8_t* const error)
 {
        if (slot == 0)
        {
@@ -258,7 +258,7 @@ uint8_t CCID_GetSlotStatus(uint8_t slot,
  */
 uint8_t CCID_Abort(uint8_t slot,
                    uint8_t seq,
-                   uint8_t* error)
+                   uint8_t* const error)
 {
        if (Aborted && slot == 0 && AbortedSeq == seq)
        {
@@ -283,7 +283,7 @@ uint8_t CCID_Abort(uint8_t slot,
 }
 
 /** Gets and status and verifies whether an error occurred. */
-bool CCID_CheckStatusNoError(int status)
+bool CCID_CheckStatusNoError(uint8_t status)
 {
        return (status & 0xC0) == 0x0;
 }
index 77bedcf..d450359 100644 (file)
                void    SetupHardware(void);
                void    CCID_Task(void);
 
-               uint8_t CCID_IccPowerOn(uint8_t slot, uint8_t* attr, uint8_t* attrLength, uint8_t* error);
-               uint8_t CCID_IccPowerOff(uint8_t slot, uint8_t* error);
-               uint8_t CCID_GetSlotStatus(uint8_t slot, uint8_t* error);
-               uint8_t CCID_Abort(uint8_t slot, uint8_t seq, uint8_t* error);
-               bool    CCID_CheckStatusNoError(int status);
+               uint8_t CCID_IccPowerOn(uint8_t slot,
+                                       uint8_t* const attr,
+                                       uint8_t* const attrLength,
+                                       uint8_t* const error);
+               uint8_t CCID_IccPowerOff(uint8_t slot,
+                                        uint8_t* const error);
+               uint8_t CCID_GetSlotStatus(uint8_t slot,
+                                          uint8_t* const error);
+               uint8_t CCID_Abort(uint8_t slot,
+                                  uint8_t seq,
+                                  uint8_t* const error);
+               bool    CCID_CheckStatusNoError(uint8_t status);
 
                void    EVENT_USB_Device_Connect(void);
                void    EVENT_USB_Device_Disconnect(void);
index 0c2e5e8..138c5b6 100644 (file)
@@ -31,7 +31,8 @@
 
 #include "Iso7816.h"
 
-void Iso7816_CreateSimpleAtr(uint8_t* atr, uint8_t* atrLength)
+void Iso7816_CreateSimpleAtr(uint8_t* const atr,
+                             uint8_t* const atrLength)
 {
        atr[0] = 0x3B; // TS: direct convention
 
index aa5f4ba..f73309d 100644 (file)
                #include <avr/power.h>
                #include <avr/interrupt.h>
                #include <stdlib.h>
+               #include <string.h>
 
        /* Function Prototypes: */
-               void Iso7816_CreateSimpleAtr(uint8_t* atr, uint8_t* atrLength);
+               void Iso7816_CreateSimpleAtr(uint8_t* const atr,
+                                            uint8_t* const atrLength);
 
 #endif
index 681326f..2e61571 100644 (file)
  *  \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 <i>(Makefile source module name: LUFA_SRC_USBCLASS)</i>
- *    - LUFA/Drivers/USB/Class/Host/CCIDClassHost.c <i>(Makefile source module name: LUFA_SRC_USBCLASS)</i>
  *
  *  \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
index 61239ec..6cedcad 100644 (file)
                        uint8_t Status;
                        uint8_t Error;
                        uint8_t ProtocolNum;
-                       union {
+                       union
+                       {
                                USB_CCID_ProtocolData_T0_t T0;
                                USB_CCID_ProtocolData_T1_t T1;
                        } ProtocolData;
index 11c20f0..0595e07 100644 (file)
@@ -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));
index 5acc33a..245e126 100644 (file)
                         *  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