diff --git a/include/nfc/nfc-emulation.h b/include/nfc/nfc-emulation.h index bbbf1a8..e67537a 100644 --- a/include/nfc/nfc-emulation.h +++ b/include/nfc/nfc-emulation.h @@ -38,29 +38,29 @@ extern "C" { #endif /* __cplusplus */ - struct nfc_emulator; - struct nfc_emulation_state_machine; +struct nfc_emulator; +struct nfc_emulation_state_machine; - /** - * @struct nfc_emulator - * @brief NFC emulator structure - */ - struct nfc_emulator { - nfc_target *target; - struct nfc_emulation_state_machine *state_machine; - void *user_data; - }; +/** + * @struct nfc_emulator + * @brief NFC emulator structure + */ +struct nfc_emulator { + nfc_target *target; + struct nfc_emulation_state_machine *state_machine; + void *user_data; +}; - /** - * @struct nfc_emulation_state_machine - * @brief NFC emulation state machine structure - */ - struct nfc_emulation_state_machine { - int (*io)(struct nfc_emulator *emulator, const uint8_t *data_in, const size_t data_in_len, uint8_t *data_out, const size_t data_out_len); - void *data; - }; +/** + * @struct nfc_emulation_state_machine + * @brief NFC emulation state machine structure + */ +struct nfc_emulation_state_machine { + int (*io)(struct nfc_emulator *emulator, const uint8_t *data_in, const size_t data_in_len, uint8_t *data_out, const size_t data_out_len); + void *data; +}; - NFC_EXPORT int nfc_emulate_target(nfc_device *pnd, struct nfc_emulator *emulator, const int timeout); +NFC_EXPORT int nfc_emulate_target(nfc_device *pnd, struct nfc_emulator *emulator, const int timeout); #ifdef __cplusplus } diff --git a/include/nfc/nfc.h b/include/nfc/nfc.h index 6fa05d8..cdfffb3 100644 --- a/include/nfc/nfc.h +++ b/include/nfc/nfc.h @@ -81,140 +81,140 @@ extern "C" { # endif // __cplusplus - /* Library initialization/deinitialization */ - NFC_EXPORT void nfc_init(nfc_context **context) ATTRIBUTE_NONNULL(1); - NFC_EXPORT void nfc_exit(nfc_context *context) ATTRIBUTE_NONNULL(1); - NFC_EXPORT int nfc_register_driver(const nfc_driver *driver); +/* Library initialization/deinitialization */ +NFC_EXPORT void nfc_init(nfc_context **context) ATTRIBUTE_NONNULL(1); +NFC_EXPORT void nfc_exit(nfc_context *context) ATTRIBUTE_NONNULL(1); +NFC_EXPORT int nfc_register_driver(const nfc_driver *driver); - /* NFC Device/Hardware manipulation */ - NFC_EXPORT nfc_device *nfc_open(nfc_context *context, const nfc_connstring connstring) ATTRIBUTE_NONNULL(1); - NFC_EXPORT void nfc_close(nfc_device *pnd); - NFC_EXPORT int nfc_abort_command(nfc_device *pnd); - NFC_EXPORT size_t nfc_list_devices(nfc_context *context, nfc_connstring connstrings[], size_t connstrings_len) ATTRIBUTE_NONNULL(1); - NFC_EXPORT int nfc_idle(nfc_device *pnd); +/* NFC Device/Hardware manipulation */ +NFC_EXPORT nfc_device *nfc_open(nfc_context *context, const nfc_connstring connstring) ATTRIBUTE_NONNULL(1); +NFC_EXPORT void nfc_close(nfc_device *pnd); +NFC_EXPORT int nfc_abort_command(nfc_device *pnd); +NFC_EXPORT size_t nfc_list_devices(nfc_context *context, nfc_connstring connstrings[], size_t connstrings_len) ATTRIBUTE_NONNULL(1); +NFC_EXPORT int nfc_idle(nfc_device *pnd); - /* NFC initiator: act as "reader" */ - NFC_EXPORT int nfc_initiator_init(nfc_device *pnd); - NFC_EXPORT int nfc_initiator_init_secure_element(nfc_device *pnd); - NFC_EXPORT int nfc_initiator_select_passive_target(nfc_device *pnd, const nfc_modulation nm, const uint8_t *pbtInitData, const size_t szInitData, nfc_target *pnt); - NFC_EXPORT int nfc_initiator_list_passive_targets(nfc_device *pnd, const nfc_modulation nm, nfc_target ant[], const size_t szTargets); - NFC_EXPORT int nfc_initiator_poll_target(nfc_device *pnd, const nfc_modulation *pnmTargetTypes, const size_t szTargetTypes, const uint8_t uiPollNr, const uint8_t uiPeriod, nfc_target *pnt); - NFC_EXPORT int nfc_initiator_select_dep_target(nfc_device *pnd, const nfc_dep_mode ndm, const nfc_baud_rate nbr, const nfc_dep_info *pndiInitiator, nfc_target *pnt, const int timeout); - NFC_EXPORT int nfc_initiator_poll_dep_target(nfc_device *pnd, const nfc_dep_mode ndm, const nfc_baud_rate nbr, const nfc_dep_info *pndiInitiator, nfc_target *pnt, const int timeout); - NFC_EXPORT int nfc_initiator_deselect_target(nfc_device *pnd); - NFC_EXPORT int nfc_initiator_transceive_bytes(nfc_device *pnd, const uint8_t *pbtTx, const size_t szTx, uint8_t *pbtRx, const size_t szRx, int timeout); - NFC_EXPORT int nfc_initiator_transceive_bits(nfc_device *pnd, const uint8_t *pbtTx, const size_t szTxBits, const uint8_t *pbtTxPar, uint8_t *pbtRx, const size_t szRx, uint8_t *pbtRxPar); - NFC_EXPORT int nfc_initiator_transceive_bytes_timed(nfc_device *pnd, const uint8_t *pbtTx, const size_t szTx, uint8_t *pbtRx, const size_t szRx, uint32_t *cycles); - NFC_EXPORT int nfc_initiator_transceive_bits_timed(nfc_device *pnd, const uint8_t *pbtTx, const size_t szTxBits, const uint8_t *pbtTxPar, uint8_t *pbtRx, const size_t szRx, uint8_t *pbtRxPar, uint32_t *cycles); - NFC_EXPORT int nfc_initiator_target_is_present(nfc_device *pnd, const nfc_target *pnt); +/* NFC initiator: act as "reader" */ +NFC_EXPORT int nfc_initiator_init(nfc_device *pnd); +NFC_EXPORT int nfc_initiator_init_secure_element(nfc_device *pnd); +NFC_EXPORT int nfc_initiator_select_passive_target(nfc_device *pnd, const nfc_modulation nm, const uint8_t *pbtInitData, const size_t szInitData, nfc_target *pnt); +NFC_EXPORT int nfc_initiator_list_passive_targets(nfc_device *pnd, const nfc_modulation nm, nfc_target ant[], const size_t szTargets); +NFC_EXPORT int nfc_initiator_poll_target(nfc_device *pnd, const nfc_modulation *pnmTargetTypes, const size_t szTargetTypes, const uint8_t uiPollNr, const uint8_t uiPeriod, nfc_target *pnt); +NFC_EXPORT int nfc_initiator_select_dep_target(nfc_device *pnd, const nfc_dep_mode ndm, const nfc_baud_rate nbr, const nfc_dep_info *pndiInitiator, nfc_target *pnt, const int timeout); +NFC_EXPORT int nfc_initiator_poll_dep_target(nfc_device *pnd, const nfc_dep_mode ndm, const nfc_baud_rate nbr, const nfc_dep_info *pndiInitiator, nfc_target *pnt, const int timeout); +NFC_EXPORT int nfc_initiator_deselect_target(nfc_device *pnd); +NFC_EXPORT int nfc_initiator_transceive_bytes(nfc_device *pnd, const uint8_t *pbtTx, const size_t szTx, uint8_t *pbtRx, const size_t szRx, int timeout); +NFC_EXPORT int nfc_initiator_transceive_bits(nfc_device *pnd, const uint8_t *pbtTx, const size_t szTxBits, const uint8_t *pbtTxPar, uint8_t *pbtRx, const size_t szRx, uint8_t *pbtRxPar); +NFC_EXPORT int nfc_initiator_transceive_bytes_timed(nfc_device *pnd, const uint8_t *pbtTx, const size_t szTx, uint8_t *pbtRx, const size_t szRx, uint32_t *cycles); +NFC_EXPORT int nfc_initiator_transceive_bits_timed(nfc_device *pnd, const uint8_t *pbtTx, const size_t szTxBits, const uint8_t *pbtTxPar, uint8_t *pbtRx, const size_t szRx, uint8_t *pbtRxPar, uint32_t *cycles); +NFC_EXPORT int nfc_initiator_target_is_present(nfc_device *pnd, const nfc_target *pnt); - /* NFC target: act as tag (i.e. MIFARE Classic) or NFC target device. */ - NFC_EXPORT int nfc_target_init(nfc_device *pnd, nfc_target *pnt, uint8_t *pbtRx, const size_t szRx, int timeout); - NFC_EXPORT int nfc_target_send_bytes(nfc_device *pnd, const uint8_t *pbtTx, const size_t szTx, int timeout); - NFC_EXPORT int nfc_target_receive_bytes(nfc_device *pnd, uint8_t *pbtRx, const size_t szRx, int timeout); - NFC_EXPORT int nfc_target_send_bits(nfc_device *pnd, const uint8_t *pbtTx, const size_t szTxBits, const uint8_t *pbtTxPar); - NFC_EXPORT int nfc_target_receive_bits(nfc_device *pnd, uint8_t *pbtRx, const size_t szRx, uint8_t *pbtRxPar); +/* NFC target: act as tag (i.e. MIFARE Classic) or NFC target device. */ +NFC_EXPORT int nfc_target_init(nfc_device *pnd, nfc_target *pnt, uint8_t *pbtRx, const size_t szRx, int timeout); +NFC_EXPORT int nfc_target_send_bytes(nfc_device *pnd, const uint8_t *pbtTx, const size_t szTx, int timeout); +NFC_EXPORT int nfc_target_receive_bytes(nfc_device *pnd, uint8_t *pbtRx, const size_t szRx, int timeout); +NFC_EXPORT int nfc_target_send_bits(nfc_device *pnd, const uint8_t *pbtTx, const size_t szTxBits, const uint8_t *pbtTxPar); +NFC_EXPORT int nfc_target_receive_bits(nfc_device *pnd, uint8_t *pbtRx, const size_t szRx, uint8_t *pbtRxPar); - /* Error reporting */ - NFC_EXPORT const char *nfc_strerror(const nfc_device *pnd); - NFC_EXPORT int nfc_strerror_r(const nfc_device *pnd, char *buf, size_t buflen); - NFC_EXPORT void nfc_perror(const nfc_device *pnd, const char *s); - NFC_EXPORT int nfc_device_get_last_error(const nfc_device *pnd); +/* Error reporting */ +NFC_EXPORT const char *nfc_strerror(const nfc_device *pnd); +NFC_EXPORT int nfc_strerror_r(const nfc_device *pnd, char *buf, size_t buflen); +NFC_EXPORT void nfc_perror(const nfc_device *pnd, const char *s); +NFC_EXPORT int nfc_device_get_last_error(const nfc_device *pnd); - /* Special data accessors */ - NFC_EXPORT const char *nfc_device_get_name(nfc_device *pnd); - NFC_EXPORT const char *nfc_device_get_connstring(nfc_device *pnd); - NFC_EXPORT int nfc_device_get_supported_modulation(nfc_device *pnd, const nfc_mode mode, const nfc_modulation_type **const supported_mt); - NFC_EXPORT int nfc_device_get_supported_baud_rate(nfc_device *pnd, const nfc_modulation_type nmt, const nfc_baud_rate **const supported_br); +/* Special data accessors */ +NFC_EXPORT const char *nfc_device_get_name(nfc_device *pnd); +NFC_EXPORT const char *nfc_device_get_connstring(nfc_device *pnd); +NFC_EXPORT int nfc_device_get_supported_modulation(nfc_device *pnd, const nfc_mode mode, const nfc_modulation_type **const supported_mt); +NFC_EXPORT int nfc_device_get_supported_baud_rate(nfc_device *pnd, const nfc_modulation_type nmt, const nfc_baud_rate **const supported_br); - /* Properties accessors */ - NFC_EXPORT int nfc_device_set_property_int(nfc_device *pnd, const nfc_property property, const int value); - NFC_EXPORT int nfc_device_set_property_bool(nfc_device *pnd, const nfc_property property, const bool bEnable); +/* Properties accessors */ +NFC_EXPORT int nfc_device_set_property_int(nfc_device *pnd, const nfc_property property, const int value); +NFC_EXPORT int nfc_device_set_property_bool(nfc_device *pnd, const nfc_property property, const bool bEnable); - /* Misc. functions */ - NFC_EXPORT void iso14443a_crc(uint8_t *pbtData, size_t szLen, uint8_t *pbtCrc); - NFC_EXPORT void iso14443a_crc_append(uint8_t *pbtData, size_t szLen); - NFC_EXPORT uint8_t *iso14443a_locate_historical_bytes(uint8_t *pbtAts, size_t szAts, size_t *pszTk); +/* Misc. functions */ +NFC_EXPORT void iso14443a_crc(uint8_t *pbtData, size_t szLen, uint8_t *pbtCrc); +NFC_EXPORT void iso14443a_crc_append(uint8_t *pbtData, size_t szLen); +NFC_EXPORT uint8_t *iso14443a_locate_historical_bytes(uint8_t *pbtAts, size_t szAts, size_t *pszTk); - NFC_EXPORT void nfc_free(void *p); - NFC_EXPORT const char *nfc_version(void); - NFC_EXPORT int nfc_device_get_information_about(nfc_device *pnd, char **buf); +NFC_EXPORT void nfc_free(void *p); +NFC_EXPORT const char *nfc_version(void); +NFC_EXPORT int nfc_device_get_information_about(nfc_device *pnd, char **buf); - /* String converter functions */ - NFC_EXPORT const char *str_nfc_modulation_type(const nfc_modulation_type nmt); - NFC_EXPORT const char *str_nfc_baud_rate(const nfc_baud_rate nbr); - NFC_EXPORT int str_nfc_target(char **buf, const nfc_target *pnt, bool verbose); +/* String converter functions */ +NFC_EXPORT const char *str_nfc_modulation_type(const nfc_modulation_type nmt); +NFC_EXPORT const char *str_nfc_baud_rate(const nfc_baud_rate nbr); +NFC_EXPORT int str_nfc_target(char **buf, const nfc_target *pnt, bool verbose); - /* Error codes */ - /** @ingroup error - * @hideinitializer - * Success (no error) - */ +/* Error codes */ +/** @ingroup error + * @hideinitializer + * Success (no error) + */ #define NFC_SUCCESS 0 - /** @ingroup error - * @hideinitializer - * Input / output error, device may not be usable anymore without re-open it - */ +/** @ingroup error + * @hideinitializer + * Input / output error, device may not be usable anymore without re-open it + */ #define NFC_EIO -1 - /** @ingroup error - * @hideinitializer - * Invalid argument(s) - */ +/** @ingroup error + * @hideinitializer + * Invalid argument(s) + */ #define NFC_EINVARG -2 - /** @ingroup error - * @hideinitializer - * Operation not supported by device - */ +/** @ingroup error + * @hideinitializer + * Operation not supported by device + */ #define NFC_EDEVNOTSUPP -3 - /** @ingroup error - * @hideinitializer - * No such device - */ +/** @ingroup error + * @hideinitializer + * No such device + */ #define NFC_ENOTSUCHDEV -4 - /** @ingroup error - * @hideinitializer - * Buffer overflow - */ +/** @ingroup error + * @hideinitializer + * Buffer overflow + */ #define NFC_EOVFLOW -5 - /** @ingroup error - * @hideinitializer - * Operation timed out - */ +/** @ingroup error + * @hideinitializer + * Operation timed out + */ #define NFC_ETIMEOUT -6 - /** @ingroup error - * @hideinitializer - * Operation aborted (by user) - */ +/** @ingroup error + * @hideinitializer + * Operation aborted (by user) + */ #define NFC_EOPABORTED -7 - /** @ingroup error - * @hideinitializer - * Not (yet) implemented - */ +/** @ingroup error + * @hideinitializer + * Not (yet) implemented + */ #define NFC_ENOTIMPL -8 - /** @ingroup error - * @hideinitializer - * Target released - */ +/** @ingroup error + * @hideinitializer + * Target released + */ #define NFC_ETGRELEASED -10 - /** @ingroup error - * @hideinitializer - * Error while RF transmission - */ +/** @ingroup error + * @hideinitializer + * Error while RF transmission + */ #define NFC_ERFTRANS -20 - /** @ingroup error - * @hideinitializer - * MIFARE Classic: authentication failed - */ +/** @ingroup error + * @hideinitializer + * MIFARE Classic: authentication failed + */ #define NFC_EMFCAUTHFAIL -30 - /** @ingroup error - * @hideinitializer - * Software error (allocation, file/pipe creation, etc.) - */ +/** @ingroup error + * @hideinitializer + * Software error (allocation, file/pipe creation, etc.) + */ #define NFC_ESOFT -80 - /** @ingroup error - * @hideinitializer - * Device's internal chip error - */ +/** @ingroup error + * @hideinitializer + * Device's internal chip error + */ #define NFC_ECHIP -90 diff --git a/libnfc/chips/pn53x.c b/libnfc/chips/pn53x.c index 09e4dae..dbd0f09 100644 --- a/libnfc/chips/pn53x.c +++ b/libnfc/chips/pn53x.c @@ -1466,10 +1466,10 @@ static uint32_t __pn53x_get_timer(struct nfc_device *pnd, const uint8_t last_cmd u32cycles -= (5 * 128); } // Correction depending on last parity bit sent - parity = (last_cmd_byte >> 7) ^((last_cmd_byte >> 6) & 1) ^ - ((last_cmd_byte >> 5) & 1) ^((last_cmd_byte >> 4) & 1) ^ - ((last_cmd_byte >> 3) & 1) ^((last_cmd_byte >> 2) & 1) ^ - ((last_cmd_byte >> 1) & 1) ^(last_cmd_byte & 1); + parity = (last_cmd_byte >> 7) ^ ((last_cmd_byte >> 6) & 1) ^ + ((last_cmd_byte >> 5) & 1) ^ ((last_cmd_byte >> 4) & 1) ^ + ((last_cmd_byte >> 3) & 1) ^ ((last_cmd_byte >> 2) & 1) ^ + ((last_cmd_byte >> 1) & 1) ^ (last_cmd_byte & 1); parity = parity ? 0 : 1; // When sent ...YY (cmd ends with logical 1, so when last parity bit is 1): if (parity) { @@ -2917,7 +2917,7 @@ pn53x_nm_to_ptt(const nfc_modulation nm) } int -pn53x_get_supported_modulation(nfc_device *pnd, const nfc_mode mode, const nfc_modulation_type * *const supported_mt) +pn53x_get_supported_modulation(nfc_device *pnd, const nfc_mode mode, const nfc_modulation_type **const supported_mt) { switch (mode) { case N_TARGET: @@ -2933,7 +2933,7 @@ pn53x_get_supported_modulation(nfc_device *pnd, const nfc_mode mode, const nfc_m } int -pn53x_get_supported_baud_rate(nfc_device *pnd, const nfc_modulation_type nmt, const nfc_baud_rate * *const supported_br) +pn53x_get_supported_baud_rate(nfc_device *pnd, const nfc_modulation_type nmt, const nfc_baud_rate **const supported_br) { switch (nmt) { case NMT_FELICA: diff --git a/libnfc/iso14443-subr.c b/libnfc/iso14443-subr.c index a350ec8..fe134a0 100644 --- a/libnfc/iso14443-subr.c +++ b/libnfc/iso14443-subr.c @@ -51,9 +51,9 @@ iso14443a_crc(uint8_t *pbtData, size_t szLen, uint8_t *pbtCrc) do { bt = *pbtData++; - bt = (bt ^(uint8_t)(wCrc & 0x00FF)); - bt = (bt ^(bt << 4)); - wCrc = (wCrc >> 8) ^((uint32_t) bt << 8) ^((uint32_t) bt << 3) ^((uint32_t) bt >> 4); + bt = (bt ^ (uint8_t)(wCrc & 0x00FF)); + bt = (bt ^ (bt << 4)); + wCrc = (wCrc >> 8) ^ ((uint32_t) bt << 8) ^ ((uint32_t) bt << 3) ^ ((uint32_t) bt >> 4); } while (--szLen); *pbtCrc++ = (uint8_t)(wCrc & 0xFF); diff --git a/utils/nfc-utils.c b/utils/nfc-utils.c index 5c0a264..aa820be 100644 --- a/utils/nfc-utils.c +++ b/utils/nfc-utils.c @@ -45,7 +45,7 @@ uint8_t oddparity(const uint8_t bt) { // cf http://graphics.stanford.edu/~seander/bithacks.html#ParityParallel - return (0x9669 >> ((bt ^(bt >> 4)) & 0xF)) & 1; + return (0x9669 >> ((bt ^ (bt >> 4)) & 0xF)) & 1; } void