Adding pn71xx NXP's NFC Controllers through Linux Libnfc-nci
(note I have only tested this does not break build etc. as I do not have a reader with this chipset)
- only initiator mode is supported
- properties are choosen as they are available via PC/SC, the rest of
the defaults are chosen to be compatible with Mifare DESFire
- This commit allows reading Mifare DESFire via PC/SC with libfreefare
nfc.c:1244:19: warning: Dereference of undefined pointer value
for (int i = 0; nmt[i]; i++) {
^~~~~~
nfc.c:1256:23: warning: Dereference of undefined pointer value
for (int j = 0; nbr[j]; j++) {
^~~~~~
* master: (43 commits)
Windows: workaround as libusb is not automatically detected by CMake
Add usbbus to Makefile.am EXTRA_DIST
make style
Add log_posix to Makefile.am
Split logging internals so that platforms may choose additional or alternate spew mechanisms
More explicitely ignoring return value as suggested by Ludovic
Windows: Clean up all compiler warnings and link warnings
API change
make style
pn53x-sam: fix print_nfc_target
Convert by value passing of nfc_target to pointer for str_nfc_target and nfc_initiator_target_is_present
Windows: Fix bug when compiling without libusb: skip usbbus.c
Windows: Fix compilation due to new usbbus file
Fix bug when compiling without libusb: skip usbbus.c
Fix scan-build warning: cast increases required alignment from 1 to 4
Fix cppcheck warning "Obsolete function 'usleep' called"
Avoid warning about ignoring return value of 'read'
Fix cppcheck warning "Non reentrant function 'readdir' called"
conf.h: make it more standard
uart_posix.c: remove redundant include
...
This becomes more consistent with all other pass by pointer of most structures.
Additionally, this should lessen stack memory usage, as building strings with str_nfc_target would push the target (283 bytes) plus then a copy of the info objects (up to 275) onto the stack as it dives into the sprintf functions.
Lastly, this makes my attempt at a .NET wrapper easier, as I can make passing by pointer work, but passing by value seems to bomb on the interop right now.
Fix the following cppcheck warnings:
[libnfc/drivers/pn532_uart.c:492]: (style) The scope of the variable 'res' can be reduced
[libnfc/chips/pn53x.c:320]: (style) The scope of the variable 'res' can be reduced
[libnfc/chips/pn53x.c:616]: (style) The scope of the variable 'res' can be reduced
[libnfc/nfc.c:356]: (style) The scope of the variable '_device_found' can be reduced
[utils/nfc-mfclassic.c:178]: (style) The scope of the variable 'key_index' can be reduced
Not a good idea to call exit() from a library...
Problem is now moved to
void nfc_init() calling exit()
This requires a change in API to return error rather than exiting...
The driver seems to work well.
I tested it on Linux with i.mx233-based board using hardware SPI.
I tried to modify the build files as well, but it's probably a little messy.
I'm not sure whether it will work on other *nix OSes,
so it's probably better to limit the driver to Linux only using build system.