Eric Betts 2 年 前
コミット
012b7cf052
8 ファイル変更122 行追加145 行削除
  1. 78 102
      assembly.h
  2. 27 32
      ccid.h
  3. 10 2
      scenes/seader_scene_card_menu.c
  4. 0 1
      seader.h
  5. 5 5
      seader_credential.h
  6. 2 1
      seader_worker.c
  7. 0 1
      sub.h
  8. 0 1
      uart.h

+ 78 - 102
assembly.h

@@ -21,7 +21,7 @@
 #endif
 #endif
 
 
 #if defined(__APPLE__) && defined(__aarch64__)
 #if defined(__APPLE__) && defined(__aarch64__)
-#define SEPARATOR %%
+#define SEPARATOR % %
 #else
 #else
 #define SEPARATOR ;
 #define SEPARATOR ;
 #endif
 #endif
@@ -42,15 +42,14 @@
 #define LOCAL_LABEL(name) .L_##name
 #define LOCAL_LABEL(name) .L_##name
 #define FILE_LEVEL_DIRECTIVE
 #define FILE_LEVEL_DIRECTIVE
 #if defined(__arm__) || defined(__aarch64__)
 #if defined(__arm__) || defined(__aarch64__)
-#define SYMBOL_IS_FUNC(name) .type name,%function
+#define SYMBOL_IS_FUNC(name) .type name, % function
 #else
 #else
-#define SYMBOL_IS_FUNC(name) .type name,@function
+#define SYMBOL_IS_FUNC(name) .type name, @function
 #endif
 #endif
-#define CONST_SECTION .section .rodata
+#define CONST_SECTION .section.rodata
 
 
-#if defined(__GNU__) || defined(__FreeBSD__) || defined(__Fuchsia__) ||        \
-    defined(__linux__)
-#define NO_EXEC_STACK_DIRECTIVE .section .note.GNU-stack,"",%progbits
+#if defined(__GNU__) || defined(__FreeBSD__) || defined(__Fuchsia__) || defined(__linux__)
+#define NO_EXEC_STACK_DIRECTIVE .section.note.GNU - stack, "", % progbits
 #else
 #else
 #define NO_EXEC_STACK_DIRECTIVE
 #define NO_EXEC_STACK_DIRECTIVE
 #endif
 #endif
@@ -58,23 +57,17 @@
 #else // !__APPLE__ && !__ELF__
 #else // !__APPLE__ && !__ELF__
 
 
 #define HIDDEN(name)
 #define HIDDEN(name)
-#define LOCAL_LABEL(name) .L ## name
+#define LOCAL_LABEL(name) .L##name
 #define FILE_LEVEL_DIRECTIVE
 #define FILE_LEVEL_DIRECTIVE
-#define SYMBOL_IS_FUNC(name)                                                   \
-  .def name SEPARATOR                                                          \
-    .scl 2 SEPARATOR                                                           \
-    .type 32 SEPARATOR                                                         \
-  .endef
-#define CONST_SECTION .section .rdata,"rd"
+#define SYMBOL_IS_FUNC(name) .def name SEPARATOR.scl 2 SEPARATOR.type 32 SEPARATOR.endef
+#define CONST_SECTION .section.rdata, "rd"
 
 
 #define NO_EXEC_STACK_DIRECTIVE
 #define NO_EXEC_STACK_DIRECTIVE
 
 
 #endif
 #endif
 
 
 #if defined(__arm__) || defined(__aarch64__)
 #if defined(__arm__) || defined(__aarch64__)
-#define FUNC_ALIGN                                                             \
-  .text SEPARATOR                                                              \
-  .balign 16 SEPARATOR
+#define FUNC_ALIGN .text SEPARATOR.balign 16 SEPARATOR
 #else
 #else
 #define FUNC_ALIGN
 #define FUNC_ALIGN
 #endif
 #endif
@@ -97,18 +90,11 @@
 #define PAC_FLAG 0
 #define PAC_FLAG 0
 #endif
 #endif
 
 
-#define GNU_PROPERTY(type, value)                                              \
-  .pushsection .note.gnu.property, "a" SEPARATOR                               \
-  .p2align 3 SEPARATOR                                                         \
-  .word 4 SEPARATOR                                                            \
-  .word 16 SEPARATOR                                                           \
-  .word NT_GNU_PROPERTY_TYPE_0 SEPARATOR                                       \
-  .asciz "GNU" SEPARATOR                                                       \
-  .word type SEPARATOR                                                         \
-  .word 4 SEPARATOR                                                            \
-  .word value SEPARATOR                                                        \
-  .word 0 SEPARATOR                                                            \
-  .popsection
+#define GNU_PROPERTY(type, value)                                                  \
+    .pushsection.note.gnu.property,                                                \
+        "a" SEPARATOR.p2align 3 SEPARATOR.word 4 SEPARATOR.word 16 SEPARATOR       \
+            .word NT_GNU_PROPERTY_TYPE_0 SEPARATOR.asciz "GNU" SEPARATOR.word type \
+                SEPARATOR.word 4 SEPARATOR.word value SEPARATOR.word 0 SEPARATOR.popsection
 
 
 #if BTI_FLAG != 0
 #if BTI_FLAG != 0
 #define BTI_C hint #34
 #define BTI_C hint #34
@@ -118,9 +104,8 @@
 #define BTI_J
 #define BTI_J
 #endif
 #endif
 
 
-#if (BTI_FLAG | PAC_FLAG) != 0
-#define GNU_PROPERTY_BTI_PAC                                                   \
-  GNU_PROPERTY(GNU_PROPERTY_AARCH64_FEATURE_1_AND, BTI_FLAG | PAC_FLAG)
+#if(BTI_FLAG | PAC_FLAG) != 0
+#define GNU_PROPERTY_BTI_PAC GNU_PROPERTY(GNU_PROPERTY_AARCH64_FEATURE_1_AND, BTI_FLAG | PAC_FLAG)
 #else
 #else
 #define GNU_PROPERTY_BTI_PAC
 #define GNU_PROPERTY_BTI_PAC
 #endif
 #endif
@@ -140,10 +125,10 @@
 // - for '-mthumb -march=armv7' compiler defines '__thumb__' and '__thumb2__'
 // - for '-mthumb -march=armv7' compiler defines '__thumb__' and '__thumb2__'
 #if defined(__thumb2__) || defined(__thumb__)
 #if defined(__thumb2__) || defined(__thumb__)
 #define DEFINE_CODE_STATE .thumb SEPARATOR
 #define DEFINE_CODE_STATE .thumb SEPARATOR
-#define DECLARE_FUNC_ENCODING    .thumb_func SEPARATOR
+#define DECLARE_FUNC_ENCODING .thumb_func SEPARATOR
 #if defined(__thumb2__)
 #if defined(__thumb2__)
 #define USE_THUMB_2
 #define USE_THUMB_2
-#define IT(cond)  it cond
+#define IT(cond) it cond
 #define ITT(cond) itt cond
 #define ITT(cond) itt cond
 #define ITE(cond) ite cond
 #define ITE(cond) ite cond
 #else
 #else
@@ -167,7 +152,7 @@
 #if defined(__ARM_ARCH_4T__) || __ARM_ARCH >= 5
 #if defined(__ARM_ARCH_4T__) || __ARM_ARCH >= 5
 #define ARM_HAS_BX
 #define ARM_HAS_BX
 #endif
 #endif
-#if !defined(__ARM_FEATURE_CLZ) && !defined(USE_THUMB_1) &&  \
+#if !defined(__ARM_FEATURE_CLZ) && !defined(USE_THUMB_1) && \
     (__ARM_ARCH >= 6 || (__ARM_ARCH == 5 && !defined(__ARM_ARCH_5__)))
     (__ARM_ARCH >= 6 || (__ARM_ARCH == 5 && !defined(__ARM_ARCH_5__)))
 #define __ARM_FEATURE_CLZ
 #define __ARM_FEATURE_CLZ
 #endif
 #endif
@@ -182,11 +167,14 @@
 
 
 // pop {pc} can't switch Thumb mode on ARMv4T
 // pop {pc} can't switch Thumb mode on ARMv4T
 #if __ARM_ARCH >= 5
 #if __ARM_ARCH >= 5
-#define POP_PC() pop {pc}
+#define POP_PC() \
+    pop {        \
+        pc       \
+    }
 #else
 #else
-#define POP_PC()                                                               \
-  pop {ip};                                                                    \
-  JMP(ip)
+#define POP_PC() \
+    pop{ip};     \
+    JMP(ip)
 #endif
 #endif
 
 
 #if defined(USE_THUMB_2)
 #if defined(USE_THUMB_2)
@@ -210,83 +198,71 @@
 #define SYMBOL_NAME(name) GLUE(__USER_LABEL_PREFIX__, name)
 #define SYMBOL_NAME(name) GLUE(__USER_LABEL_PREFIX__, name)
 
 
 #ifdef VISIBILITY_HIDDEN
 #ifdef VISIBILITY_HIDDEN
-#define DECLARE_SYMBOL_VISIBILITY(name)                                        \
-  HIDDEN(SYMBOL_NAME(name)) SEPARATOR
-#define DECLARE_SYMBOL_VISIBILITY_UNMANGLED(name) \
-  HIDDEN(name) SEPARATOR
+#define DECLARE_SYMBOL_VISIBILITY(name) HIDDEN(SYMBOL_NAME(name)) SEPARATOR
+#define DECLARE_SYMBOL_VISIBILITY_UNMANGLED(name) HIDDEN(name) SEPARATOR
 #else
 #else
 #define DECLARE_SYMBOL_VISIBILITY(name)
 #define DECLARE_SYMBOL_VISIBILITY(name)
 #define DECLARE_SYMBOL_VISIBILITY_UNMANGLED(name)
 #define DECLARE_SYMBOL_VISIBILITY_UNMANGLED(name)
 #endif
 #endif
 
 
-#define DEFINE_COMPILERRT_FUNCTION(name)                                       \
-  DEFINE_CODE_STATE                                                            \
-  FILE_LEVEL_DIRECTIVE SEPARATOR                                               \
-  .globl SYMBOL_NAME(name) SEPARATOR                                           \
-  SYMBOL_IS_FUNC(SYMBOL_NAME(name)) SEPARATOR                                  \
-  DECLARE_SYMBOL_VISIBILITY(name)                                              \
-  DECLARE_FUNC_ENCODING                                                        \
-  SYMBOL_NAME(name):
-
-#define DEFINE_COMPILERRT_THUMB_FUNCTION(name)                                 \
-  DEFINE_CODE_STATE                                                            \
-  FILE_LEVEL_DIRECTIVE SEPARATOR                                               \
-  .globl SYMBOL_NAME(name) SEPARATOR                                           \
-  SYMBOL_IS_FUNC(SYMBOL_NAME(name)) SEPARATOR                                  \
-  DECLARE_SYMBOL_VISIBILITY(name) SEPARATOR                                    \
-  .thumb_func SEPARATOR                                                        \
-  SYMBOL_NAME(name):
-
-#define DEFINE_COMPILERRT_PRIVATE_FUNCTION(name)                               \
-  DEFINE_CODE_STATE                                                            \
-  FILE_LEVEL_DIRECTIVE SEPARATOR                                               \
-  .globl SYMBOL_NAME(name) SEPARATOR                                           \
-  SYMBOL_IS_FUNC(SYMBOL_NAME(name)) SEPARATOR                                  \
-  HIDDEN(SYMBOL_NAME(name)) SEPARATOR                                          \
-  DECLARE_FUNC_ENCODING                                                        \
-  SYMBOL_NAME(name):
-
-#define DEFINE_COMPILERRT_PRIVATE_FUNCTION_UNMANGLED(name)                     \
-  DEFINE_CODE_STATE                                                            \
-  .globl name SEPARATOR                                                        \
-  SYMBOL_IS_FUNC(name) SEPARATOR                                               \
-  HIDDEN(name) SEPARATOR                                                       \
-  DECLARE_FUNC_ENCODING                                                        \
-  name:
-
-#define DEFINE_COMPILERRT_OUTLINE_FUNCTION_UNMANGLED(name)                     \
-  DEFINE_CODE_STATE                                                            \
-  FUNC_ALIGN                                                                   \
-  .globl name SEPARATOR                                                        \
-  SYMBOL_IS_FUNC(name) SEPARATOR                                               \
-  DECLARE_SYMBOL_VISIBILITY_UNMANGLED(name) SEPARATOR                          \
-  CFI_START SEPARATOR                                                          \
-  DECLARE_FUNC_ENCODING                                                        \
-  name: SEPARATOR BTI_C
-
-#define DEFINE_COMPILERRT_FUNCTION_ALIAS(name, target)                         \
-  .globl SYMBOL_NAME(name) SEPARATOR                                           \
-  SYMBOL_IS_FUNC(SYMBOL_NAME(name)) SEPARATOR                                  \
-  DECLARE_SYMBOL_VISIBILITY(SYMBOL_NAME(name)) SEPARATOR                       \
-  .set SYMBOL_NAME(name), SYMBOL_NAME(target) SEPARATOR
+#define DEFINE_COMPILERRT_FUNCTION(name)                                        \
+    DEFINE_CODE_STATE                                                           \
+    FILE_LEVEL_DIRECTIVE SEPARATOR.globl SYMBOL_NAME(name)                      \
+    SEPARATOR                                                                   \
+    SYMBOL_IS_FUNC(SYMBOL_NAME(name)) SEPARATOR DECLARE_SYMBOL_VISIBILITY(name) \
+    DECLARE_FUNC_ENCODING                                                       \
+    SYMBOL_NAME(name)                                                           \
+        :
+
+#define DEFINE_COMPILERRT_THUMB_FUNCTION(name)                                                 \
+    DEFINE_CODE_STATE                                                                          \
+    FILE_LEVEL_DIRECTIVE SEPARATOR.globl SYMBOL_NAME(name)                                     \
+    SEPARATOR                                                                                  \
+    SYMBOL_IS_FUNC(SYMBOL_NAME(name))                                                          \
+    SEPARATOR DECLARE_SYMBOL_VISIBILITY(name) SEPARATOR.thumb_func SEPARATOR SYMBOL_NAME(name) \
+        :
+
+#define DEFINE_COMPILERRT_PRIVATE_FUNCTION(name)                                          \
+    DEFINE_CODE_STATE                                                                     \
+    FILE_LEVEL_DIRECTIVE SEPARATOR.globl SYMBOL_NAME(name)                                \
+    SEPARATOR                                                                             \
+    SYMBOL_IS_FUNC(SYMBOL_NAME(name))                                                     \
+    SEPARATOR HIDDEN(SYMBOL_NAME(name)) SEPARATOR DECLARE_FUNC_ENCODING SYMBOL_NAME(name) \
+        :
+
+#define DEFINE_COMPILERRT_PRIVATE_FUNCTION_UNMANGLED(name)      \
+    DEFINE_CODE_STATE.globl name SEPARATOR SYMBOL_IS_FUNC(name) \
+    SEPARATOR                                                   \
+    HIDDEN(name) SEPARATOR DECLARE_FUNC_ENCODING name:
+
+#define DEFINE_COMPILERRT_OUTLINE_FUNCTION_UNMANGLED(name) \
+    DEFINE_CODE_STATE                                      \
+    FUNC_ALIGN.globl name SEPARATOR SYMBOL_IS_FUNC(name)   \
+    SEPARATOR                                              \
+    DECLARE_SYMBOL_VISIBILITY_UNMANGLED(name)              \
+    SEPARATOR CFI_START SEPARATOR DECLARE_FUNC_ENCODING name : SEPARATOR BTI_C
+
+#define DEFINE_COMPILERRT_FUNCTION_ALIAS(name, target)                                      \
+    .globl SYMBOL_NAME(name)                                                                \
+    SEPARATOR                                                                               \
+    SYMBOL_IS_FUNC(SYMBOL_NAME(name))                                                       \
+    SEPARATOR DECLARE_SYMBOL_VISIBILITY(SYMBOL_NAME(name)) SEPARATOR.set SYMBOL_NAME(name), \
+        SYMBOL_NAME(target) SEPARATOR
 
 
 #if defined(__ARM_EABI__)
 #if defined(__ARM_EABI__)
-#define DEFINE_AEABI_FUNCTION_ALIAS(aeabi_name, name)                          \
-  DEFINE_COMPILERRT_FUNCTION_ALIAS(aeabi_name, name)
+#define DEFINE_AEABI_FUNCTION_ALIAS(aeabi_name, name) \
+    DEFINE_COMPILERRT_FUNCTION_ALIAS(aeabi_name, name)
 #else
 #else
 #define DEFINE_AEABI_FUNCTION_ALIAS(aeabi_name, name)
 #define DEFINE_AEABI_FUNCTION_ALIAS(aeabi_name, name)
 #endif
 #endif
 
 
 #ifdef __ELF__
 #ifdef __ELF__
-#define END_COMPILERRT_FUNCTION(name)                                          \
-  .size SYMBOL_NAME(name), . - SYMBOL_NAME(name)
-#define END_COMPILERRT_OUTLINE_FUNCTION(name)                                  \
-  CFI_END SEPARATOR                                                            \
-  .size SYMBOL_NAME(name), . - SYMBOL_NAME(name)
+#define END_COMPILERRT_FUNCTION(name) .size SYMBOL_NAME(name), .- SYMBOL_NAME(name)
+#define END_COMPILERRT_OUTLINE_FUNCTION(name) \
+    CFI_END SEPARATOR.size SYMBOL_NAME(name), .- SYMBOL_NAME(name)
 #else
 #else
 #define END_COMPILERRT_FUNCTION(name)
 #define END_COMPILERRT_FUNCTION(name)
-#define END_COMPILERRT_OUTLINE_FUNCTION(name)                                  \
-  CFI_END
+#define END_COMPILERRT_OUTLINE_FUNCTION(name) CFI_END
 #endif
 #endif
 
 
 #endif // COMPILERRT_ASSEMBLY_H
 #endif // COMPILERRT_ASSEMBLY_H

+ 27 - 32
ccid.h

@@ -1,6 +1,5 @@
 #pragma once
 #pragma once
 
 
-
 #include <stdlib.h> // malloc
 #include <stdlib.h> // malloc
 #include <stdint.h> // uint32_t
 #include <stdint.h> // uint32_t
 #include <stdarg.h> // __VA_ARGS__
 #include <stdarg.h> // __VA_ARGS__
@@ -24,42 +23,38 @@
  *  * BULK_OUT messages from PC to Reader
  *  * BULK_OUT messages from PC to Reader
  *   * Defined in CCID Rev 1.1 6.1 (page 26)
  *   * Defined in CCID Rev 1.1 6.1 (page 26)
  *    */
  *    */
-#define CCID_MESSAGE_TYPE_PC_to_RDR_IccPowerOn              0x62
-#define CCID_MESSAGE_TYPE_PC_to_RDR_IccPowerOff             0x63
-#define CCID_MESSAGE_TYPE_PC_to_RDR_GetSlotStatus           0x65
-#define CCID_MESSAGE_TYPE_PC_to_RDR_XfrBlock                0x6f
-#define CCID_MESSAGE_TYPE_PC_to_RDR_GetParameters           0x6c
-#define CCID_MESSAGE_TYPE_PC_to_RDR_ResetParameters         0x6d
-#define CCID_MESSAGE_TYPE_PC_to_RDR_SetParameters           0x61
-#define CCID_MESSAGE_TYPE_PC_to_RDR_Escape                  0x6b
-#define CCID_MESSAGE_TYPE_PC_to_RDR_IccClock                0x6e
-#define CCID_MESSAGE_TYPE_PC_to_RDR_T0APDU                  0x6a
-#define CCID_MESSAGE_TYPE_PC_to_RDR_Secure                  0x69
-#define CCID_MESSAGE_TYPE_PC_to_RDR_Mechanical              0x71
-#define CCID_MESSAGE_TYPE_PC_to_RDR_Abort                   0x72
+#define CCID_MESSAGE_TYPE_PC_to_RDR_IccPowerOn 0x62
+#define CCID_MESSAGE_TYPE_PC_to_RDR_IccPowerOff 0x63
+#define CCID_MESSAGE_TYPE_PC_to_RDR_GetSlotStatus 0x65
+#define CCID_MESSAGE_TYPE_PC_to_RDR_XfrBlock 0x6f
+#define CCID_MESSAGE_TYPE_PC_to_RDR_GetParameters 0x6c
+#define CCID_MESSAGE_TYPE_PC_to_RDR_ResetParameters 0x6d
+#define CCID_MESSAGE_TYPE_PC_to_RDR_SetParameters 0x61
+#define CCID_MESSAGE_TYPE_PC_to_RDR_Escape 0x6b
+#define CCID_MESSAGE_TYPE_PC_to_RDR_IccClock 0x6e
+#define CCID_MESSAGE_TYPE_PC_to_RDR_T0APDU 0x6a
+#define CCID_MESSAGE_TYPE_PC_to_RDR_Secure 0x69
+#define CCID_MESSAGE_TYPE_PC_to_RDR_Mechanical 0x71
+#define CCID_MESSAGE_TYPE_PC_to_RDR_Abort 0x72
 #define CCID_MESSAGE_TYPE_PC_to_RDR_SetDataRateAndClockFrequency 0x73
 #define CCID_MESSAGE_TYPE_PC_to_RDR_SetDataRateAndClockFrequency 0x73
 /*
 /*
  *  * BULK_IN messages from Reader to PC
  *  * BULK_IN messages from Reader to PC
  *   * Defined in CCID Rev 1.1 6.2 (page 48)
  *   * Defined in CCID Rev 1.1 6.2 (page 48)
  *    */
  *    */
-#define CCID_MESSAGE_TYPE_RDR_to_PC_DataBlock               0x80
-#define CCID_MESSAGE_TYPE_RDR_to_PC_SlotStatus              0x81
-#define CCID_MESSAGE_TYPE_RDR_to_PC_Parameters              0x82
-#define CCID_MESSAGE_TYPE_RDR_to_PC_Escape                  0x83
+#define CCID_MESSAGE_TYPE_RDR_to_PC_DataBlock 0x80
+#define CCID_MESSAGE_TYPE_RDR_to_PC_SlotStatus 0x81
+#define CCID_MESSAGE_TYPE_RDR_to_PC_Parameters 0x82
+#define CCID_MESSAGE_TYPE_RDR_to_PC_Escape 0x83
 #define CCID_MESSAGE_TYPE_RDR_to_PC_DataRateAndClockFrequency 0x84
 #define CCID_MESSAGE_TYPE_RDR_to_PC_DataRateAndClockFrequency 0x84
 /*
 /*
  *  * INTERRUPT_IN messages from Reader to PC
  *  * INTERRUPT_IN messages from Reader to PC
  *   * Defined in CCID Rev 1.1 6.3 (page 56)
  *   * Defined in CCID Rev 1.1 6.3 (page 56)
  *    */
  *    */
-#define CCID_MESSAGE_TYPE_RDR_to_PC_NotifySlotChange        0x50
-#define CCID_MESSAGE_TYPE_RDR_to_PC_HardwareError           0x51
+#define CCID_MESSAGE_TYPE_RDR_to_PC_NotifySlotChange 0x50
+#define CCID_MESSAGE_TYPE_RDR_to_PC_HardwareError 0x51
 
 
 /* Status codes that go in bStatus (see 6.2.6) */
 /* Status codes that go in bStatus (see 6.2.6) */
-enum {
-    ICC_STATUS_PRESENT_ACTIVE = 0,
-    ICC_STATUS_PRESENT_INACTIVE,
-    ICC_STATUS_NOT_PRESENT
-};
+enum { ICC_STATUS_PRESENT_ACTIVE = 0, ICC_STATUS_PRESENT_INACTIVE, ICC_STATUS_NOT_PRESENT };
 enum {
 enum {
     COMMAND_STATUS_NO_ERROR = 0,
     COMMAND_STATUS_NO_ERROR = 0,
     COMMAND_STATUS_FAILED,
     COMMAND_STATUS_FAILED,
@@ -68,11 +63,11 @@ enum {
 /* Error codes that go in bError (see 6.2.6) */
 /* Error codes that go in bError (see 6.2.6) */
 enum {
 enum {
     ERROR_CMD_NOT_SUPPORTED = 0,
     ERROR_CMD_NOT_SUPPORTED = 0,
-    ERROR_CMD_ABORTED       = -1,
-    ERROR_ICC_MUTE          = -2,
-    ERROR_XFR_PARITY_ERROR  = -3,
-    ERROR_XFR_OVERRUN       = -4,
-    ERROR_HW_ERROR          = -5,
+    ERROR_CMD_ABORTED = -1,
+    ERROR_ICC_MUTE = -2,
+    ERROR_XFR_PARITY_ERROR = -3,
+    ERROR_XFR_OVERRUN = -4,
+    ERROR_HW_ERROR = -5,
 };
 };
 
 
 struct CCID_Message {
 struct CCID_Message {
@@ -83,7 +78,7 @@ struct CCID_Message {
     uint8_t bStatus;
     uint8_t bStatus;
     uint8_t bError;
     uint8_t bError;
 
 
-    uint8_t *payload;
+    uint8_t* payload;
     size_t consumed;
     size_t consumed;
 };
 };
 
 
@@ -91,5 +86,5 @@ void PC_to_RDR_IccPowerOn(SeaderUartBridge* seader_uart);
 void PC_to_RDR_GetSlotStatus(SeaderUartBridge* seader_uart);
 void PC_to_RDR_GetSlotStatus(SeaderUartBridge* seader_uart);
 void PC_to_RDR_SetParameters(SeaderUartBridge* seader_uart);
 void PC_to_RDR_SetParameters(SeaderUartBridge* seader_uart);
 void PC_to_RDR_GetParameters(SeaderUartBridge* seader_uart);
 void PC_to_RDR_GetParameters(SeaderUartBridge* seader_uart);
-void PC_to_RDR_XfrBlock(SeaderUartBridge* seader_uart, uint8_t *data, size_t len);
+void PC_to_RDR_XfrBlock(SeaderUartBridge* seader_uart, uint8_t* data, size_t len);
 size_t processCCID(SeaderWorker* seader_worker, uint8_t* cmd, size_t cmd_len);
 size_t processCCID(SeaderWorker* seader_worker, uint8_t* cmd, size_t cmd_len);

+ 10 - 2
scenes/seader_scene_card_menu.c

@@ -19,9 +19,17 @@ void seader_scene_card_menu_on_enter(void* context) {
     submenu_add_item(
     submenu_add_item(
         submenu, "Save", SubmenuIndexSave, seader_scene_card_menu_submenu_callback, seader);
         submenu, "Save", SubmenuIndexSave, seader_scene_card_menu_submenu_callback, seader);
     submenu_add_item(
     submenu_add_item(
-        submenu, "Save Picopass", SubmenuIndexSavePicopass, seader_scene_card_menu_submenu_callback, seader);
+        submenu,
+        "Save Picopass",
+        SubmenuIndexSavePicopass,
+        seader_scene_card_menu_submenu_callback,
+        seader);
     submenu_add_item(
     submenu_add_item(
-        submenu, "Save RFID", SubmenuIndexSaveRFID, seader_scene_card_menu_submenu_callback, seader);
+        submenu,
+        "Save RFID",
+        SubmenuIndexSaveRFID,
+        seader_scene_card_menu_submenu_callback,
+        seader);
 
 
     submenu_set_selected_item(
     submenu_set_selected_item(
         seader->submenu,
         seader->submenu,

+ 0 - 1
seader.h

@@ -1,4 +1,3 @@
 #pragma once
 #pragma once
 
 
 typedef struct Seader Seader;
 typedef struct Seader Seader;
-

+ 5 - 5
seader_credential.h

@@ -11,11 +11,11 @@
 typedef void (*SeaderLoadingCallback)(void* context, bool state);
 typedef void (*SeaderLoadingCallback)(void* context, bool state);
 
 
 typedef enum {
 typedef enum {
-  SeaderCredentialTypeNone,
-  SeaderCredentialTypePicopass,
-  SeaderCredentialType14A,
-  // Might need to make 14a into "javacard" and add Desfire
-  SeaderCredentialTypeMifareClassic,
+    SeaderCredentialTypeNone,
+    SeaderCredentialTypePicopass,
+    SeaderCredentialType14A,
+    // Might need to make 14a into "javacard" and add Desfire
+    SeaderCredentialTypeMifareClassic,
 } SeaderCredentialType;
 } SeaderCredentialType;
 
 
 typedef enum {
 typedef enum {

+ 2 - 1
seader_worker.c

@@ -201,7 +201,8 @@ bool read_nfc(SeaderUartBridge* seader_uart) {
                 cardDetails->atqa = &atqa;
                 cardDetails->atqa = &atqa;
                 sendCardDetected(seader_uart, cardDetails);
                 sendCardDetected(seader_uart, cardDetails);
                 rtn = true;
                 rtn = true;
-            } else if(mf_classic_check_card_type(nfc_data.atqa[0], nfc_data.atqa[1], nfc_data.sak)) {
+            } else if(mf_classic_check_card_type(
+                          nfc_data.atqa[0], nfc_data.atqa[1], nfc_data.sak)) {
                 FURI_LOG_D(TAG, "MFC");
                 FURI_LOG_D(TAG, "MFC");
                 OCTET_STRING_t atqa = {.buf = nfc_data.atqa, .size = sizeof(nfc_data.atqa)};
                 OCTET_STRING_t atqa = {.buf = nfc_data.atqa, .size = sizeof(nfc_data.atqa)};
                 cardDetails->atqa = &atqa;
                 cardDetails->atqa = &atqa;

+ 0 - 1
sub.h

@@ -42,5 +42,4 @@ struct SeaderUartBridge {
     size_t tx_len;
     size_t tx_len;
 };
 };
 
 
-
 typedef struct SeaderUartBridge SeaderUartBridge;
 typedef struct SeaderUartBridge SeaderUartBridge;

+ 0 - 1
uart.h

@@ -15,6 +15,5 @@ void seader_uart_set_config(SeaderUartBridge* seader_uart, SeaderUartConfig* cfg
 void seader_uart_get_config(SeaderUartBridge* seader_uart, SeaderUartConfig* cfg);
 void seader_uart_get_config(SeaderUartBridge* seader_uart, SeaderUartConfig* cfg);
 void seader_uart_get_state(SeaderUartBridge* seader_uart, SeaderUartState* st);
 void seader_uart_get_state(SeaderUartBridge* seader_uart, SeaderUartState* st);
 
 
-
 SeaderUartBridge* seader_uart_alloc();
 SeaderUartBridge* seader_uart_alloc();
 void seader_uart_free(SeaderUartBridge* seader_uart);
 void seader_uart_free(SeaderUartBridge* seader_uart);