Scroll to navigation

FREEFARE(3) Library Functions Manual 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⟩
March 30, 2010 Linux 4.9.0-9-amd64