put MifareSectorNumber type in a new mifare_common.h header.

API changed: mifare_classic_format_sector() now takes a MifareSectorNumber in argument.
This commit is contained in:
Romuald Conty 2009-12-23 15:26:57 +00:00
parent 4bf33cc707
commit a5dd66f77d
6 changed files with 37 additions and 8 deletions

View file

@ -1,13 +1,13 @@
ACLOCAL_AMFLAGS = -I m4 ACLOCAL_AMFLAGS = -I m4
AM_CFLAGS = -I. -std=c99 @LIBNFC_CFLAGS@ AM_CFLAGS = -I. @LIBNFC_CFLAGS@
AM_LDFLAGS = @LIBNFC_LIBS@ AM_LDFLAGS = @LIBNFC_LIBS@
lib_LTLIBRARIES = libfreefare.la lib_LTLIBRARIES = libfreefare.la
libfreefare_la_SOURCES = mifare_classic.c mad.c mifare_application.c libfreefare_la_SOURCES = mifare_classic.c mad.c mifare_application.c
libfreefare_la_HEADERS = mifare_classic.h mad.h mifare_application.h libfreefare_la_HEADERS = mifare_common.h mifare_classic.h mad.h mifare_application.h
libfreefare_ladir = $(includedir) libfreefare_ladir = $(includedir)
pkgconfigdir = $(libdir)/pkgconfig pkgconfigdir = $(libdir)/pkgconfig

View file

@ -30,9 +30,11 @@ AC_CHECK_FUNCS([memset])
AC_CHECK_HEADERS([endian.h sys/endian.h]) AC_CHECK_HEADERS([endian.h sys/endian.h])
if test $ac_cv_header_endian_h = "no" -a $ac_cv_header_sys_endian_h = "no"; then if test $ac_cv_header_endian_h = "no" -a $ac_cv_header_sys_endian_h = "no"; then
AC_MSG_ERROR([Can't locate header endian.h.]); AC_MSG_ERROR(["Can't locate header endian.h."]);
fi fi
CFLAGS="$CFLAGS -std=c99"
# Checks for pkg-config modules. # Checks for pkg-config modules.
PKG_CHECK_MODULES([LIBNFC], [libnfc], [], [AC_MSG_ERROR([libnfc is mandatory.])]) PKG_CHECK_MODULES([LIBNFC], [libnfc], [], [AC_MSG_ERROR([libnfc is mandatory.])])

3
mad.h
View file

@ -19,10 +19,9 @@
#ifndef __MIFARE_APPLICATION_DIRECTORY_H__ #ifndef __MIFARE_APPLICATION_DIRECTORY_H__
#define __MIFARE_APPLICATION_DIRECTORY_H__ #define __MIFARE_APPLICATION_DIRECTORY_H__
#include <mifare_common.h>
#include <mifare_classic.h> #include <mifare_classic.h>
typedef uint8_t MifareSectorNumber;
struct mad_aid { struct mad_aid {
uint8_t function_cluster_code; uint8_t function_cluster_code;
uint8_t application_code; uint8_t application_code;

View file

@ -655,9 +655,9 @@ mifare_classic_get_data_block_permission (MifareClassicTag tag, const MifareClas
* Reset a MIFARE target sector to factory default. * Reset a MIFARE target sector to factory default.
*/ */
int int
mifare_classic_format_sector (MifareClassicTag tag, const MifareClassicBlockNumber block) mifare_classic_format_sector (MifareClassicTag tag, const MifareSectorNumber sector)
{ {
MifareClassicBlockNumber first_sector_block = (block / 4) * 4; MifareClassicBlockNumber first_sector_block = sector * 4;
/* /*
* Check that the current key allow us to rewrite data and trailer blocks. * Check that the current key allow us to rewrite data and trailer blocks.
*/ */

View file

@ -23,6 +23,8 @@
#include <nfc/nfc.h> #include <nfc/nfc.h>
#include <sys/types.h> #include <sys/types.h>
#include <mifare_common.h>
struct mifare_classic_tag; struct mifare_classic_tag;
typedef struct mifare_classic_tag *MifareClassicTag; typedef struct mifare_classic_tag *MifareClassicTag;
@ -52,7 +54,7 @@ int mifare_classic_transfer (MifareClassicTag tag, const MifareClassicBlockNumb
int mifare_classic_get_trailer_block_permission (MifareClassicTag tag, const MifareClassicBlockNumber block, const uint16_t permission, const MifareClassicKeyType key_type); int mifare_classic_get_trailer_block_permission (MifareClassicTag tag, const MifareClassicBlockNumber block, const uint16_t permission, const MifareClassicKeyType key_type);
int mifare_classic_get_data_block_permission (MifareClassicTag tag, const MifareClassicBlockNumber block, const unsigned char permission, const MifareClassicKeyType key_type); int mifare_classic_get_data_block_permission (MifareClassicTag tag, const MifareClassicBlockNumber block, const unsigned char permission, const MifareClassicKeyType key_type);
int mifare_classic_format_sector (MifareClassicTag tag, const MifareClassicBlockNumber block); int mifare_classic_format_sector (MifareClassicTag tag, const MifareSectorNumber sector);
void mifare_classic_trailer_block (MifareClassicBlock *block, const MifareClassicKey key_a, const uint8_t ab_0, const uint8_t ab_1, const uint8_t ab_2, const uint8_t ab_tb, const uint8_t gpb, const MifareClassicKey key_b); void mifare_classic_trailer_block (MifareClassicBlock *block, const MifareClassicKey key_a, const uint8_t ab_0, const uint8_t ab_1, const uint8_t ab_2, const uint8_t ab_tb, const uint8_t gpb, const MifareClassicKey key_b);
/* MIFARE Classic Access Bits */ /* MIFARE Classic Access Bits */

26
mifare_common.h Normal file
View file

@ -0,0 +1,26 @@
/*-
* Copyright (C) 2009, Romain Tartiere, Romuald Conty.
*
* This program is free software: you can redistribute it and/or modify it
* under the terms of the GNU Lesser General Public License as published by the
* Free Software Foundation, either version 3 of the License, or (at your
* option) any later version.
*
* This program is distributed in the hope that it will be useful, but WITHOUT
* ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
* FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for
* more details.
*
* You should have received a copy of the GNU Lesser General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>
*
* $Id$
*/
#ifndef __MIFARE_COMMON_H__
#define __MIFARE_COMMON_H__
#include <stdint.h>
typedef uint8_t MifareSectorNumber;
#endif /* !__MIFARE_COMMON_H__ */