Skip to content
GitLab
Menu
Projects
Groups
Snippets
Loading...
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
Menu
Open sidebar
Erik Strand
lufa
Commits
bc57f4ea
Commit
bc57f4ea
authored
Jun 24, 2018
by
Dean Camera
Browse files
Reformatting and add const qualifiers.
parent
8e590e6c
Changes
12
Hide whitespace changes
Inline
Side-by-side
Demos/Device/ClassDriver/CCID/CCID.c
View file @
bc57f4ea
...
...
@@ -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
)
{
...
...
Demos/Device/ClassDriver/CCID/CCID.h
View file @
bc57f4ea
...
...
@@ -75,16 +75,21 @@
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
Demos/Device/ClassDriver/CCID/Lib/Iso7816.c
View file @
bc57f4ea
...
...
@@ -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
...
...
Demos/Device/ClassDriver/CCID/Lib/Iso7816.h
View file @
bc57f4ea
...
...
@@ -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
Demos/Device/LowLevel/CCID/CCID.c
View file @
bc57f4ea
...
...
@@ -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
(
u
int
8_t
status
)
{
return
(
status
&
0xC0
)
==
0x0
;
}
...
...
Demos/Device/LowLevel/CCID/CCID.h
View file @
bc57f4ea
...
...
@@ -72,11 +72,18 @@
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
);
...
...
Demos/Device/LowLevel/CCID/Lib/Iso7816.c
View file @
bc57f4ea
...
...
@@ -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
...
...
Demos/Device/LowLevel/CCID/Lib/Iso7816.h
View file @
bc57f4ea
...
...
@@ -38,8 +38,10 @@
#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
LUFA/Drivers/USB/Class/CCIDClass.h
View file @
bc57f4ea
...
...
@@ -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 <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
mode
s
. 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
...
...
LUFA/Drivers/USB/Class/Common/CCIDClassCommon.h
View file @
bc57f4ea
...
...
@@ -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
;
...
...
LUFA/Drivers/USB/Class/Device/CCIDClassDevice.c
View file @
bc57f4ea
...
...
@@ -39,7 +39,7 @@
#include "CCIDClassDevice.h"
bool
CCID_CheckStatusNoError
(
int
status
)
bool
CCID_CheckStatusNoError
(
u
int
8_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
));
...
...
LUFA/Drivers/USB/Class/Device/CCIDClassDevice.h
View file @
bc57f4ea
...
...
@@ -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
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment