some cleanings
This commit is contained in:
parent
e21fab3685
commit
7ad18a2120
16 changed files with 135 additions and 342 deletions
4
.gitignore
vendored
4
.gitignore
vendored
|
@ -60,3 +60,7 @@ utils/nfc-mfultralight
|
|||
utils/nfc-read-forum-tag3
|
||||
utils/nfc-relay-picc
|
||||
utils/nfc-scan-device
|
||||
|
||||
.vs/
|
||||
|
||||
CMakeSettings.json
|
||||
|
|
72
.travis.yml
72
.travis.yml
|
@ -1,20 +1,72 @@
|
|||
language: c
|
||||
|
||||
compiler:
|
||||
matrix:
|
||||
include:
|
||||
- os: windows
|
||||
compiler:
|
||||
- clang
|
||||
- gcc
|
||||
before_install:
|
||||
- mkdir build && cd build && wget "https://sourceforge.net/projects/libusb-win32/files/libusb-win32-releases/1.2.6.0/libusb-win32-bin-1.2.6.0.zip" && 7z x libusb-win32-bin-1.2.6.0.zip -o"$PROGRAMFILES" && mv "$PROGRAMFILES/libusb-win32-bin-1.2.6.0" "$PROGRAMFILES/libusb-win32"
|
||||
install:
|
||||
choco install doxygen.install ninja
|
||||
script:
|
||||
cmake -GNinja .. && cmake --build .
|
||||
|
||||
env:
|
||||
- BLD=cmake
|
||||
- BLD=autoconf
|
||||
|
||||
addons:
|
||||
- os: linux
|
||||
dist: bionic
|
||||
compiler:
|
||||
- clang
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libusb-dev
|
||||
- doxygen
|
||||
- cmake
|
||||
script:
|
||||
- autoreconf -vfi && mkdir build && cd build && ../configure --prefix=$HOME/.local/ && make -j2 && make install
|
||||
|
||||
script:
|
||||
- if [ $BLD == autoconf ]; then autoreconf -vfi && mkdir build && cd build && ../configure --prefix=$HOME/.local/ && make -j2 && make install; fi
|
||||
- if [ $BLD == cmake ]; then mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=~/.local .. && make -j2 && make install; fi
|
||||
- os: linux
|
||||
dist: bionic
|
||||
compiler:
|
||||
- gcc
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libusb-dev
|
||||
- doxygen
|
||||
- cmake
|
||||
script:
|
||||
- mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=~/.local .. && make -j2 && make install
|
||||
|
||||
- os: linux
|
||||
dist: bionic
|
||||
compiler:
|
||||
- gcc
|
||||
addons:
|
||||
apt:
|
||||
packages:
|
||||
- libusb-dev
|
||||
- doxygen
|
||||
- cmake
|
||||
script:
|
||||
- autoreconf -vfi && mkdir build && cd build && ../configure --prefix=$HOME/.local/ && make -j2 && make install
|
||||
|
||||
- os: osx
|
||||
osx_image: xcode12
|
||||
compiler:
|
||||
- clang
|
||||
before_install:
|
||||
- brew update
|
||||
- brew install autoconf automake cmake doxygen gettext libusb libusb-compat m4 pcre2 pkg-config
|
||||
script:
|
||||
- mkdir build && cd build && cmake -DCMAKE_INSTALL_PREFIX=~/.local .. && make -j2 && make install
|
||||
|
||||
- os: osx
|
||||
osx_image: xcode12
|
||||
compiler:
|
||||
- clang
|
||||
before_install:
|
||||
- brew update
|
||||
- brew install autoconf automake doxygen gettext libusb libusb-compat m4 pcre2 pkg-config
|
||||
script:
|
||||
- autoreconf -vfi && mkdir build && cd build && ../configure --prefix=$HOME/.local/ && make -j2 && make install
|
||||
|
|
|
@ -18,9 +18,12 @@ SET(PACKAGE_STRING "${PACKAGE_NAME} ${PACKAGE_VERSION}")
|
|||
|
||||
# config.h
|
||||
IF(WIN32)
|
||||
SET(LIBNFC_SYSCONFDIR "./config" CACHE PATH "libnfc configuration directory")
|
||||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/cmake/config_windows.h.cmake ${CMAKE_CURRENT_BINARY_DIR}/config.h)
|
||||
SET(LIBNFC_SYSCONFDIR "${CMAKE_INSTALL_PREFIX}/config" CACHE PATH "libnfc configuration directory")
|
||||
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/contrib/win32)
|
||||
IF(NOT MINGW)
|
||||
SET(CMAKE_C_FLAGS "-D_CRT_SECURE_NO_WARNINGS -D_CRT_NONSTDC_NO_DEPRECATE ${CMAKE_C_FLAGS}")
|
||||
ENDIF(NOT MINGW)
|
||||
ELSE(WIN32)
|
||||
SET(_XOPEN_SOURCE 600)
|
||||
SET(SYSCONFDIR "/etc" CACHE PATH "System configuration directory")
|
||||
|
@ -138,9 +141,12 @@ IF(NOT WIN32)
|
|||
IF(LIBNFC_DRIVER_PN53X_USB)
|
||||
SET(PKG_REQ ${PKG_REQ} "libusb")
|
||||
ENDIF(LIBNFC_DRIVER_PN53X_USB)
|
||||
IF(LIBNFC_DRIVER_ACR122_USB)
|
||||
SET(PKG_REQ ${PKG_REQ} "libusb")
|
||||
ENDIF(LIBNFC_DRIVER_ACR122_USB)
|
||||
IF(LIBNFC_DRIVER_PCSC)
|
||||
SET(PKG_REQ ${PKG_REQ} "libpcsclite")
|
||||
ENDIF(LIBNFC_DRIVER_ACR122)
|
||||
ENDIF(LIBNFC_DRIVER_PCSC)
|
||||
IF(LIBNFC_DRIVER_ACR122_PCSC)
|
||||
SET(PKG_REQ ${PKG_REQ} "libpcsclite")
|
||||
ENDIF(LIBNFC_DRIVER_ACR122_PCSC)
|
||||
|
@ -201,7 +207,7 @@ IF(WIN32)
|
|||
SET(RC_COMMENT "${PACKAGE_NAME} library")
|
||||
SET(RC_INTERNAL_NAME "${PACKAGE_NAME} ${WIN32_MODE}")
|
||||
SET(RC_ORIGINAL_NAME ${PACKAGE_NAME}.dll)
|
||||
SET(RC_FILE_TYPE VFT_DLL)
|
||||
SET(RC_FILE_TYPE 0x00000002L)
|
||||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/contrib/win32/version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/windows/libnfc.rc @ONLY)
|
||||
ENDIF(WIN32)
|
||||
|
||||
|
|
|
@ -26,9 +26,15 @@ ENDIF(CMAKE_SYSTEM_NAME MATCHES FreeBSD)
|
|||
|
||||
IF(NOT LIBUSB_FOUND)
|
||||
IF(WIN32)
|
||||
FIND_PATH(LIBUSB_INCLUDE_DIRS lusb0_usb.h "$ENV{ProgramFiles}/LibUSB-Win32/include" NO_SYSTEM_ENVIRONMENT_PATH)
|
||||
FIND_LIBRARY(LIBUSB_LIBRARIES NAMES libusb PATHS "$ENV{ProgramFiles}/LibUSB-Win32/lib/gcc")
|
||||
SET(LIBUSB_LIBRARY_DIR "$ENV{ProgramFiles}/LibUSB-Win32/bin/x86/")
|
||||
IF(MINGW)
|
||||
FIND_PATH(LIBUSB_INCLUDE_DIRS lusb0_usb.h "${CMAKE_CURRENT_BINARY_DIR}/LibUSB-Win32/include" NO_SYSTEM_ENVIRONMENT_PATH)
|
||||
FIND_LIBRARY(LIBUSB_LIBRARIES NAMES libusb PATHS "${CMAKE_CURRENT_BINARY_DIR}/LibUSB-Win32/lib/gcc")
|
||||
SET(LIBUSB_LIBRARY_DIR "${CMAKE_CURRENT_BINARY_DIR}/LibUSB-Win32/bin/x86/")
|
||||
ELSE(MINGW)
|
||||
FIND_PATH(LIBUSB_INCLUDE_DIRS lusb0_usb.h "$ENV{ProgramW6432}/libusb-win32/include" NO_SYSTEM_ENVIRONMENT_PATH)
|
||||
FIND_LIBRARY(LIBUSB_LIBRARIES NAMES libusb PATHS "$ENV{ProgramW6432}/libusb-win32/lib/msvc_x64")
|
||||
SET(LIBUSB_LIBRARY_DIR "$ENV{ProgramW6432}/libusb-win32/bin/amd64/")
|
||||
ENDIF(MINGW)
|
||||
# Must fix up variable to avoid backslashes during packaging
|
||||
STRING(REGEX REPLACE "\\\\" "/" LIBUSB_LIBRARY_DIR ${LIBUSB_LIBRARY_DIR})
|
||||
ELSE(WIN32)
|
||||
|
|
|
@ -3,13 +3,13 @@ SET(LIBNFC_DRIVER_ACR122_PCSC OFF CACHE BOOL "Enable ACR122 support (Depends on
|
|||
SET(LIBNFC_DRIVER_ACR122_USB ON CACHE BOOL "Enable ACR122 support (Direct USB connection)")
|
||||
SET(LIBNFC_DRIVER_ACR122S ON CACHE BOOL "Enable ACR122S support (Use serial port)")
|
||||
SET(LIBNFC_DRIVER_ARYGON ON CACHE BOOL "Enable ARYGON support (Use serial port)")
|
||||
IF(WIN32)
|
||||
IF(NOT UNIX OR APPLE)
|
||||
SET(LIBNFC_DRIVER_PN532_I2C OFF CACHE BOOL "Enable PN532 I2C support (Use I2C bus)")
|
||||
SET(LIBNFC_DRIVER_PN532_SPI OFF CACHE BOOL "Enable PN532 SPI support (Use SPI bus)")
|
||||
ELSE(WIN32)
|
||||
ELSE(NOT UNIX OR APPLE)
|
||||
SET(LIBNFC_DRIVER_PN532_I2C ON CACHE BOOL "Enable PN532 I2C support (Use I2C bus)")
|
||||
SET(LIBNFC_DRIVER_PN532_SPI ON CACHE BOOL "Enable PN532 SPI support (Use SPI bus)")
|
||||
ENDIF(WIN32)
|
||||
ENDIF(NOT UNIX OR APPLE)
|
||||
SET(LIBNFC_DRIVER_PN532_UART ON CACHE BOOL "Enable PN532 UART support (Use serial port)")
|
||||
SET(LIBNFC_DRIVER_PN53X_USB ON CACHE BOOL "Enable PN531 and PN531 USB support (Depends on libusb)")
|
||||
|
||||
|
@ -68,4 +68,11 @@ IF(LIBNFC_DRIVER_PN53X_USB)
|
|||
SET(USB_REQUIRED TRUE)
|
||||
ENDIF(LIBNFC_DRIVER_PN53X_USB)
|
||||
|
||||
IF(LIBNFC_DRIVER_ACR122_USB)
|
||||
FIND_PACKAGE(LIBUSB REQUIRED)
|
||||
ADD_DEFINITIONS("-DDRIVER_ACR122_USB_ENABLED")
|
||||
SET(DRIVERS_SOURCES ${DRIVERS_SOURCES} "drivers/acr122_usb")
|
||||
SET(USB_REQUIRED TRUE)
|
||||
ENDIF(LIBNFC_DRIVER_ACR122_USB)
|
||||
|
||||
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/libnfc/drivers)
|
||||
|
|
|
@ -283,28 +283,13 @@ static DIR *opendir (const char *dirname);
|
|||
static _WDIR *_wopendir (const wchar_t *dirname);
|
||||
|
||||
static struct dirent *readdir (DIR *dirp);
|
||||
static struct _wdirent *_wreaddir (_WDIR *dirp);
|
||||
|
||||
static int readdir_r(
|
||||
DIR *dirp, struct dirent *entry, struct dirent **result);
|
||||
static int _wreaddir_r(
|
||||
_WDIR *dirp, struct _wdirent *entry, struct _wdirent **result);
|
||||
|
||||
static int closedir (DIR *dirp);
|
||||
static int _wclosedir (_WDIR *dirp);
|
||||
|
||||
static void rewinddir (DIR* dirp);
|
||||
static void _wrewinddir (_WDIR* dirp);
|
||||
|
||||
static int scandir (const char *dirname, struct dirent ***namelist,
|
||||
int (*filter)(const struct dirent*),
|
||||
int (*compare)(const void *, const void *));
|
||||
|
||||
static int alphasort (const struct dirent **a, const struct dirent **b);
|
||||
|
||||
static int versionsort (const struct dirent **a, const struct dirent **b);
|
||||
|
||||
|
||||
/* For compatibility with Symbian */
|
||||
#define wdirent _wdirent
|
||||
#define WDIR _WDIR
|
||||
|
@ -448,91 +433,6 @@ _wopendir(
|
|||
return dirp;
|
||||
}
|
||||
|
||||
/*
|
||||
* Read next directory entry.
|
||||
*
|
||||
* Returns pointer to static directory entry which may be overwritten by
|
||||
* subsequent calls to _wreaddir().
|
||||
*/
|
||||
static struct _wdirent*
|
||||
_wreaddir(
|
||||
_WDIR *dirp)
|
||||
{
|
||||
struct _wdirent *entry;
|
||||
|
||||
/*
|
||||
* Read directory entry to buffer. We can safely ignore the return value
|
||||
* as entry will be set to NULL in case of error.
|
||||
*/
|
||||
(void) _wreaddir_r (dirp, &dirp->ent, &entry);
|
||||
|
||||
/* Return pointer to statically allocated directory entry */
|
||||
return entry;
|
||||
}
|
||||
|
||||
/*
|
||||
* Read next directory entry.
|
||||
*
|
||||
* Returns zero on success. If end of directory stream is reached, then sets
|
||||
* result to NULL and returns zero.
|
||||
*/
|
||||
static int
|
||||
_wreaddir_r(
|
||||
_WDIR *dirp,
|
||||
struct _wdirent *entry,
|
||||
struct _wdirent **result)
|
||||
{
|
||||
WIN32_FIND_DATAW *datap;
|
||||
|
||||
/* Read next directory entry */
|
||||
datap = dirent_next (dirp);
|
||||
if (datap) {
|
||||
size_t n;
|
||||
DWORD attr;
|
||||
|
||||
/*
|
||||
* Copy file name as wide-character string. If the file name is too
|
||||
* long to fit in to the destination buffer, then truncate file name
|
||||
* to PATH_MAX characters and zero-terminate the buffer.
|
||||
*/
|
||||
n = 0;
|
||||
while (n < PATH_MAX && datap->cFileName[n] != 0) {
|
||||
entry->d_name[n] = datap->cFileName[n];
|
||||
n++;
|
||||
}
|
||||
entry->d_name[n] = 0;
|
||||
|
||||
/* Length of file name excluding zero terminator */
|
||||
entry->d_namlen = n;
|
||||
|
||||
/* File type */
|
||||
attr = datap->dwFileAttributes;
|
||||
if ((attr & FILE_ATTRIBUTE_DEVICE) != 0) {
|
||||
entry->d_type = DT_CHR;
|
||||
} else if ((attr & FILE_ATTRIBUTE_DIRECTORY) != 0) {
|
||||
entry->d_type = DT_DIR;
|
||||
} else {
|
||||
entry->d_type = DT_REG;
|
||||
}
|
||||
|
||||
/* Reset dummy fields */
|
||||
entry->d_ino = 0;
|
||||
entry->d_off = 0;
|
||||
entry->d_reclen = sizeof (struct _wdirent);
|
||||
|
||||
/* Set result address */
|
||||
*result = entry;
|
||||
|
||||
} else {
|
||||
|
||||
/* Return NULL to indicate end of directory */
|
||||
*result = NULL;
|
||||
|
||||
}
|
||||
|
||||
return /*OK*/0;
|
||||
}
|
||||
|
||||
/*
|
||||
* Close directory stream opened by opendir() function. This invalidates the
|
||||
* DIR structure as well as any directory entry read previously by
|
||||
|
@ -571,25 +471,6 @@ _wclosedir(
|
|||
return ok;
|
||||
}
|
||||
|
||||
/*
|
||||
* Rewind directory stream such that _wreaddir() returns the very first
|
||||
* file name again.
|
||||
*/
|
||||
static void
|
||||
_wrewinddir(
|
||||
_WDIR* dirp)
|
||||
{
|
||||
if (dirp) {
|
||||
/* Release existing search handle */
|
||||
if (dirp->handle != INVALID_HANDLE_VALUE) {
|
||||
FindClose (dirp->handle);
|
||||
}
|
||||
|
||||
/* Open new search handle */
|
||||
dirent_first (dirp);
|
||||
}
|
||||
}
|
||||
|
||||
/* Get first directory entry (internal) */
|
||||
static WIN32_FIND_DATAW*
|
||||
dirent_first(
|
||||
|
@ -857,175 +738,6 @@ closedir(
|
|||
return ok;
|
||||
}
|
||||
|
||||
/*
|
||||
* Rewind directory stream to beginning.
|
||||
*/
|
||||
static void
|
||||
rewinddir(
|
||||
DIR* dirp)
|
||||
{
|
||||
/* Rewind wide-character string directory stream */
|
||||
_wrewinddir (dirp->wdirp);
|
||||
}
|
||||
|
||||
/*
|
||||
* Scan directory for entries.
|
||||
*/
|
||||
static int
|
||||
scandir(
|
||||
const char *dirname,
|
||||
struct dirent ***namelist,
|
||||
int (*filter)(const struct dirent*),
|
||||
int (*compare)(const void*, const void*))
|
||||
{
|
||||
struct dirent **files = NULL;
|
||||
size_t size = 0;
|
||||
size_t allocated = 0;
|
||||
const size_t init_size = 1;
|
||||
DIR *dir = NULL;
|
||||
struct dirent *entry;
|
||||
struct dirent *tmp = NULL;
|
||||
size_t i;
|
||||
int result = 0;
|
||||
|
||||
/* Open directory stream */
|
||||
dir = opendir (dirname);
|
||||
if (dir) {
|
||||
|
||||
/* Read directory entries to memory */
|
||||
while (1) {
|
||||
|
||||
/* Enlarge pointer table to make room for another pointer */
|
||||
if (size >= allocated) {
|
||||
void *p;
|
||||
size_t num_entries;
|
||||
|
||||
/* Compute number of entries in the enlarged pointer table */
|
||||
if (size < init_size) {
|
||||
/* Allocate initial pointer table */
|
||||
num_entries = init_size;
|
||||
} else {
|
||||
/* Double the size */
|
||||
num_entries = size * 2;
|
||||
}
|
||||
|
||||
/* Allocate first pointer table or enlarge existing table */
|
||||
p = realloc (files, sizeof (void*) * num_entries);
|
||||
if (p != NULL) {
|
||||
/* Got the memory */
|
||||
files = (dirent**) p;
|
||||
allocated = num_entries;
|
||||
} else {
|
||||
/* Out of memory */
|
||||
result = -1;
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/* Allocate room for temporary directory entry */
|
||||
if (tmp == NULL) {
|
||||
tmp = (struct dirent*) malloc (sizeof (struct dirent));
|
||||
if (tmp == NULL) {
|
||||
/* Cannot allocate temporary directory entry */
|
||||
result = -1;
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
/* Read directory entry to temporary area */
|
||||
if (readdir_r (dir, tmp, &entry) == /*OK*/0) {
|
||||
|
||||
/* Did we get an entry? */
|
||||
if (entry != NULL) {
|
||||
int pass;
|
||||
|
||||
/* Determine whether to include the entry in result */
|
||||
if (filter) {
|
||||
/* Let the filter function decide */
|
||||
pass = filter (tmp);
|
||||
} else {
|
||||
/* No filter function, include everything */
|
||||
pass = 1;
|
||||
}
|
||||
|
||||
if (pass) {
|
||||
/* Store the temporary entry to pointer table */
|
||||
files[size++] = tmp;
|
||||
tmp = NULL;
|
||||
|
||||
/* Keep up with the number of files */
|
||||
result++;
|
||||
}
|
||||
|
||||
} else {
|
||||
|
||||
/*
|
||||
* End of directory stream reached => sort entries and
|
||||
* exit.
|
||||
*/
|
||||
qsort (files, size, sizeof (void*), compare);
|
||||
break;
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
/* Error reading directory entry */
|
||||
result = /*Error*/ -1;
|
||||
break;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
} else {
|
||||
/* Cannot open directory */
|
||||
result = /*Error*/ -1;
|
||||
}
|
||||
|
||||
/* Release temporary directory entry */
|
||||
if (tmp) {
|
||||
free (tmp);
|
||||
}
|
||||
|
||||
/* Release allocated memory on error */
|
||||
if (result < 0) {
|
||||
for (i = 0; i < size; i++) {
|
||||
free (files[i]);
|
||||
}
|
||||
free (files);
|
||||
files = NULL;
|
||||
}
|
||||
|
||||
/* Close directory stream */
|
||||
if (dir) {
|
||||
closedir (dir);
|
||||
}
|
||||
|
||||
/* Pass pointer table to caller */
|
||||
if (namelist) {
|
||||
*namelist = files;
|
||||
}
|
||||
return result;
|
||||
}
|
||||
|
||||
/* Alphabetical sorting */
|
||||
static int
|
||||
alphasort(
|
||||
const struct dirent **a, const struct dirent **b)
|
||||
{
|
||||
return strcoll ((*a)->d_name, (*b)->d_name);
|
||||
}
|
||||
|
||||
/* Sort versions */
|
||||
static int
|
||||
versionsort(
|
||||
const struct dirent **a, const struct dirent **b)
|
||||
{
|
||||
/* FIXME: implement strverscmp and use that */
|
||||
return alphasort (a, b);
|
||||
}
|
||||
|
||||
|
||||
/* Convert multi-byte string to wide character string */
|
||||
static int
|
||||
dirent_mbstowcs_s(
|
||||
|
|
|
@ -1,15 +1,9 @@
|
|||
#include "windows.h"
|
||||
|
||||
1 VERSIONINFO
|
||||
FILEVERSION @VERSION_MAJOR@,@VERSION_MINOR@,@VERSION_PATCH@,0
|
||||
PRODUCTVERSION @VERSION_MAJOR@,@VERSION_MINOR@,@VERSION_PATCH@,0
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS VS_FF_DEBUG|VS_FF_PRERELEASE
|
||||
#else
|
||||
FILEFLAGS 0L
|
||||
#endif
|
||||
FILEOS VOS_NT_WINDOWS32
|
||||
FILEFLAGS 0x0L
|
||||
FILEOS 0x00040004L
|
||||
FILETYPE @RC_FILE_TYPE@
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
|
|
|
@ -48,7 +48,7 @@
|
|||
# define ENOTSUP WSAEOPNOTSUPP
|
||||
# define ECONNABORTED WSAECONNABORTED
|
||||
# else
|
||||
#if !defined(_MSC_VER) || (_MSC_VER < 1910) // VS2017 don't like snprintf macro
|
||||
#ifndef _MSC_VER
|
||||
# define snprintf sprintf_s
|
||||
#endif
|
||||
# define strdup _strdup
|
||||
|
|
|
@ -23,7 +23,7 @@ FOREACH(source ${EXAMPLES-SOURCES})
|
|||
SET(RC_COMMENT "${PACKAGE_NAME} example")
|
||||
SET(RC_INTERNAL_NAME ${source})
|
||||
SET(RC_ORIGINAL_NAME ${source}.exe)
|
||||
SET(RC_FILE_TYPE VFT_APP)
|
||||
SET(RC_FILE_TYPE 0x00000001L)
|
||||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/../contrib/win32/version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/../windows/${source}.rc @ONLY)
|
||||
LIST(APPEND TARGETS ${CMAKE_CURRENT_BINARY_DIR}/../windows/${source}.rc)
|
||||
ENDIF(WIN32)
|
||||
|
|
|
@ -29,23 +29,23 @@ IF(UART_REQUIRED)
|
|||
ENDIF(UART_REQUIRED)
|
||||
|
||||
IF(I2C_REQUIRED)
|
||||
IF(WIN32)
|
||||
# Windows is not supported at the moment
|
||||
IF(NOT UNIX OR APPLE)
|
||||
# Only Linux is supported at the moment
|
||||
#LIST(APPEND BUSES_SOURCES ../contrib/win32/libnfc/buses/i2c)
|
||||
MESSAGE( FATAL_ERROR "I2C not (yet) supported under Windows!" )
|
||||
ELSE(WIN32)
|
||||
MESSAGE( FATAL_ERROR "I2C is only (yet) supported in Linux!" )
|
||||
ELSE(NOT UNIX OR APPLE)
|
||||
LIST(APPEND BUSES_SOURCES buses/i2c)
|
||||
ENDIF(WIN32)
|
||||
ENDIF(NOT UNIX OR APPLE)
|
||||
ENDIF(I2C_REQUIRED)
|
||||
|
||||
IF(SPI_REQUIRED)
|
||||
IF(WIN32)
|
||||
# Windows is not supported at the moment
|
||||
IF(NOT UNIX OR APPLE)
|
||||
# Only Linux is supported at the moment
|
||||
#LIST(APPEND BUSES_SOURCES ../contrib/win32/libnfc/buses/spi)
|
||||
MESSAGE( FATAL_ERROR "SPI not (yet) supported under Windows!" )
|
||||
ELSE(WIN32)
|
||||
MESSAGE( FATAL_ERROR "SPI is only (yet) supported in Linux!" )
|
||||
ELSE(NOT UNIX OR APPLE)
|
||||
LIST(APPEND BUSES_SOURCES buses/spi)
|
||||
ENDIF(WIN32)
|
||||
ENDIF(NOT UNIX OR APPLE)
|
||||
ENDIF(SPI_REQUIRED)
|
||||
|
||||
INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR}/buses)
|
||||
|
@ -66,7 +66,9 @@ INCLUDE_DIRECTORIES(${CMAKE_CURRENT_SOURCE_DIR})
|
|||
|
||||
IF(LIBNFC_LOG)
|
||||
IF(WIN32)
|
||||
IF(MINGW)
|
||||
SET(CMAKE_C_FLAGS "-fgnu89-inline ${CMAKE_C_FLAGS}")
|
||||
ENDIF(MINGW)
|
||||
LIST(APPEND LIBRARY_SOURCES log ../contrib/win32/libnfc/log-internal)
|
||||
ELSE(WIN32)
|
||||
LIST(APPEND LIBRARY_SOURCES log log-internal)
|
||||
|
|
|
@ -1208,7 +1208,7 @@ pn53x_initiator_select_passive_target_ext(struct nfc_device *pnd,
|
|||
// send ICLASS_ACTIVATE_ALL command - will get timeout as we don't expect response
|
||||
uint8_t abtReqt[] = { 0x0a }; // iClass ACTIVATE_ALL
|
||||
uint8_t abtAnticol[11];
|
||||
if ((res = pn53x_initiator_transceive_bytes(pnd, abtReqt, sizeof(abtReqt), NULL, 0, timeout)) < 0) {
|
||||
if (pn53x_initiator_transceive_bytes(pnd, abtReqt, sizeof(abtReqt), NULL, 0, timeout) < 0) {
|
||||
log_put(LOG_GROUP, LOG_CATEGORY, NFC_LOG_PRIORITY_DEBUG, "got expected timeout on iClass activate all");
|
||||
//if ((res == NFC_ERFTRANS) && (CHIP_DATA(pnd)->last_status_byte == 0x01)) { // Chip timeout
|
||||
// continue;
|
||||
|
@ -2064,7 +2064,7 @@ static int pn53x_ISO14443A_Barcode_is_present(struct nfc_device *pnd)
|
|||
}
|
||||
uint8_t abtRx[PN53x_EXTENDED_FRAME__DATA_MAX_LEN];
|
||||
uint8_t abtRxPar[PN53x_EXTENDED_FRAME__DATA_MAX_LEN];
|
||||
if ((ret = nfc_initiator_transceive_bits(pnd, NULL, 0, NULL, abtRx, sizeof(abtRx), abtRxPar)) < 1) {
|
||||
if (nfc_initiator_transceive_bits(pnd, NULL, 0, NULL, abtRx, sizeof(abtRx), abtRxPar) < 1) {
|
||||
failures++;
|
||||
} else {
|
||||
nfc_device_set_property_bool(pnd, NP_HANDLE_CRC, true);
|
||||
|
|
|
@ -195,6 +195,8 @@ conf_parse_file(const char *filename,
|
|||
free(key);
|
||||
free(value);
|
||||
} else {
|
||||
free(key);
|
||||
free(value);
|
||||
log_put(LOG_GROUP, LOG_CATEGORY, NFC_LOG_PRIORITY_DEBUG, "Parse error on line #%d: %s", lineno, line);
|
||||
}
|
||||
}
|
||||
|
|
|
@ -60,7 +60,9 @@ Thanks to d18c7db and Okko for example code
|
|||
#include <sys/select.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
#include <nfc/nfc.h>
|
||||
|
||||
#include "nfc-internal.h"
|
||||
|
|
|
@ -43,7 +43,9 @@ Thanks to d18c7db and Okko for example code
|
|||
#include <sys/select.h>
|
||||
#include <errno.h>
|
||||
#include <string.h>
|
||||
|
||||
#ifdef _MSC_VER
|
||||
#include <sys/types.h>
|
||||
#endif
|
||||
#include <nfc/nfc.h>
|
||||
|
||||
#include "nfc-internal.h"
|
||||
|
@ -817,7 +819,7 @@ pn53x_usb_set_property_bool(nfc_device *pnd, const nfc_property property, const
|
|||
if (NP_ACTIVATE_FIELD == property) {
|
||||
/* Switch on/off LED2 and Progressive Field GPIO according to ACTIVATE_FIELD option */
|
||||
log_put(LOG_GROUP, LOG_CATEGORY, NFC_LOG_PRIORITY_DEBUG, "Switch progressive field %s", bEnable ? "On" : "Off");
|
||||
if ((res = pn53x_write_register(pnd, PN53X_SFR_P3, _BV(P31) | _BV(P34), bEnable ? _BV(P34) : _BV(P31))) < 0)
|
||||
if (pn53x_write_register(pnd, PN53X_SFR_P3, _BV(P31) | _BV(P34), bEnable ? _BV(P34) : _BV(P31)) < 0)
|
||||
return NFC_ECHIP;
|
||||
}
|
||||
break;
|
||||
|
|
10
libnfc/nfc.c
10
libnfc/nfc.c
|
@ -565,23 +565,27 @@ nfc_initiator_select_passive_target(nfc_device *pnd,
|
|||
nfc_target *pnt)
|
||||
{
|
||||
uint8_t *abtInit = NULL;
|
||||
uint8_t *abtTmpInit = malloc(MAX(12, szInitData));
|
||||
uint8_t maxAbt = MAX(12, szInitData);
|
||||
uint8_t *abtTmpInit = malloc(sizeof(uint8_t) * maxAbt);
|
||||
size_t szInit = 0;
|
||||
int res;
|
||||
if ((res = nfc_device_validate_modulation(pnd, N_INITIATOR, &nm)) != NFC_SUCCESS)
|
||||
if ((res = nfc_device_validate_modulation(pnd, N_INITIATOR, &nm)) != NFC_SUCCESS) {
|
||||
free(abtTmpInit);
|
||||
return res;
|
||||
}
|
||||
if (szInitData == 0) {
|
||||
// Provide default values, if any
|
||||
prepare_initiator_data(nm, &abtInit, &szInit);
|
||||
free(abtTmpInit);
|
||||
} else if (nm.nmt == NMT_ISO14443A) {
|
||||
abtInit = abtTmpInit;
|
||||
iso14443_cascade_uid(pbtInitData, szInitData, abtInit, &szInit);
|
||||
} else {
|
||||
abtInit = abtTmpInit;
|
||||
memcpy(abtInit, pbtInitData, szInitData);
|
||||
free(abtTmpInit);
|
||||
szInit = szInitData;
|
||||
}
|
||||
|
||||
HAL(initiator_select_passive_target, pnd, nm, abtInit, szInit, pnt);
|
||||
|
||||
free(abtTmpInit);
|
||||
|
|
|
@ -23,7 +23,7 @@ FOREACH(source ${UTILS-SOURCES})
|
|||
SET(RC_COMMENT "${PACKAGE_NAME} utility")
|
||||
SET(RC_INTERNAL_NAME ${source})
|
||||
SET(RC_ORIGINAL_NAME ${source}.exe)
|
||||
SET(RC_FILE_TYPE VFT_APP)
|
||||
SET(RC_FILE_TYPE 0x00000001L)
|
||||
CONFIGURE_FILE(${CMAKE_CURRENT_SOURCE_DIR}/../contrib/win32/version.rc.in ${CMAKE_CURRENT_BINARY_DIR}/../windows/${source}.rc @ONLY)
|
||||
LIST(APPEND TARGETS ${CMAKE_CURRENT_BINARY_DIR}/../windows/${source}.rc)
|
||||
ENDIF(WIN32)
|
||||
|
|
Loading…
Reference in a new issue