FREEFARE(3)

NAME
freefare_get_tags, freefare_get_tag_type, freefare_get_tag_friendly_name, freefare_get_tag_uid, freefare_free_tag, freefare_free_tags - Generic target manipulation functions

LIBRARY
Mifare card manipulation library (libfreefare, -lfreefare)

SYNOPSIS
#include <freefare.h>
MifareTag *
freefare_get_tags(nfc_device_t *device);

    enum mifare_tag_type {
        ULTRALIGHT,
        CLASSIC_1K,
        CLASSIC_4K
    };

enum mifare_tag_type
freefare_get_tag_type(MifareTag tag);
const char *
freefare_get_tag_friendly_name(MifareTag tag);
char *
freefare_get_tag_uid(MifareTag tag);
void
freefare_free_tag(MifareTag tags);
void
freefare_free_tags(MifareTag *tags);

DESCRIPTION
The freefare_*() family of functions allow agnostic access to the MifareTag present on a given NFC device.

freefare_get_tags() returns a NULL-terminated list of MifareTag present on device. This list has to be freed after usage by either:

-   calling the freefare_free_tags() function. All tags in the list are automatically freed;

-   calling the freefare_free_tag() function to free each tag in the list individually, and freeing the list itself using the free() function.

Because of the nature of the target detection process, any previously detected target will be in an inconsistent state after a call to freefare_get_tags(). It is the programmer's responsibility to free these targets before calling the freefare_get_tags() function.

Information about a given MifareTag can be gathered using the freefare_get_tag_type(), freefare_get_tag_uid() and freefare_get_tag_friendly_name() functions.

RETURN VALUES
Unless stated otherwise, all functions return a value greater than or equal to 0 on success or -1 on failure.

SEE ALSO
free(3), mifare_classic(3), mifare_ultralight(3)

AUTHORS
Romain Tartiere <romain@blogreen.org> Romuald Conty <romuald@libnfc.org>