Skip to content

Instantly share code, notes, and snippets.

@keynmol
Created February 7, 2025 08:29
Show Gist options
  • Save keynmol/e6e8cc37c7dc5084be74e508131a8944 to your computer and use it in GitHub Desktop.
Save keynmol/e6e8cc37c7dc5084be74e508131a8944 to your computer and use it in GitHub Desktop.
libnfc bindings
#include <string.h>
int __sn_wrap_libnfc_nfc_initiator_list_passive_targets(nfc_device * pnd, const nfc_modulation *nm, nfc_target[] ant, const size_t szTargets) {
return nfc_initiator_list_passive_targets(pnd, *nm, ant, szTargets);
};
int __sn_wrap_libnfc_nfc_initiator_select_passive_target(nfc_device * pnd, const nfc_modulation *nm, const uint8_t * pbtInitData, const size_t szInitData, nfc_target * pnt) {
return nfc_initiator_select_passive_target(pnd, *nm, pbtInitData, szInitData, pnt);
};
package libnfc
import _root_.scala.scalanative.unsafe.*
import _root_.scala.scalanative.unsigned.*
import _root_.scala.scalanative.libc.*
import _root_.scala.scalanative.*
object predef:
private[libnfc] trait _BindgenEnumCUnsignedInt[T](using eq: T =:= CUnsignedInt):
given Tag[T] = Tag.UInt.asInstanceOf[Tag[T]]
extension (inline t: T)
inline def value: CUnsignedInt = eq.apply(t)
inline def int: CInt = eq.apply(t).toInt
inline def uint: CUnsignedInt = eq.apply(t)
object enumerations:
import predef.*
/**
* NFC baud rate enumeration
*/
opaque type nfc_baud_rate = CUnsignedInt
object nfc_baud_rate extends _BindgenEnumCUnsignedInt[nfc_baud_rate]:
given _tag: Tag[nfc_baud_rate] = Tag.UInt
inline def define(inline a: Long): nfc_baud_rate = a.toUInt
val NBR_UNDEFINED = define(0)
val NBR_106 = define(1)
val NBR_212 = define(2)
val NBR_424 = define(3)
val NBR_847 = define(4)
inline def getName(inline value: nfc_baud_rate): Option[String] =
inline value match
case NBR_UNDEFINED => Some("NBR_UNDEFINED")
case NBR_106 => Some("NBR_106")
case NBR_212 => Some("NBR_212")
case NBR_424 => Some("NBR_424")
case NBR_847 => Some("NBR_847")
case _ => _root_.scala.None
extension (a: nfc_baud_rate)
inline def &(b: nfc_baud_rate): nfc_baud_rate = a & b
inline def |(b: nfc_baud_rate): nfc_baud_rate = a | b
inline def is(b: nfc_baud_rate): Boolean = (a & b) == b
/**
* NFC D.E.P. (Data Exchange Protocol) active/passive mode
*/
opaque type nfc_dep_mode = CUnsignedInt
object nfc_dep_mode extends _BindgenEnumCUnsignedInt[nfc_dep_mode]:
given _tag: Tag[nfc_dep_mode] = Tag.UInt
inline def define(inline a: Long): nfc_dep_mode = a.toUInt
val NDM_UNDEFINED = define(0)
val NDM_PASSIVE = define(1)
val NDM_ACTIVE = define(2)
inline def getName(inline value: nfc_dep_mode): Option[String] =
inline value match
case NDM_UNDEFINED => Some("NDM_UNDEFINED")
case NDM_PASSIVE => Some("NDM_PASSIVE")
case NDM_ACTIVE => Some("NDM_ACTIVE")
case _ => _root_.scala.None
extension (a: nfc_dep_mode)
inline def &(b: nfc_dep_mode): nfc_dep_mode = a & b
inline def |(b: nfc_dep_mode): nfc_dep_mode = a | b
inline def is(b: nfc_dep_mode): Boolean = (a & b) == b
/**
* NFC mode type enumeration
*/
opaque type nfc_mode = CUnsignedInt
object nfc_mode extends _BindgenEnumCUnsignedInt[nfc_mode]:
given _tag: Tag[nfc_mode] = Tag.UInt
inline def define(inline a: Long): nfc_mode = a.toUInt
val N_TARGET = define(0)
val N_INITIATOR = define(1)
inline def getName(inline value: nfc_mode): Option[String] =
inline value match
case N_TARGET => Some("N_TARGET")
case N_INITIATOR => Some("N_INITIATOR")
case _ => _root_.scala.None
extension (a: nfc_mode)
inline def &(b: nfc_mode): nfc_mode = a & b
inline def |(b: nfc_mode): nfc_mode = a | b
inline def is(b: nfc_mode): Boolean = (a & b) == b
/**
* NFC modulation type enumeration
*/
opaque type nfc_modulation_type = CUnsignedInt
object nfc_modulation_type extends _BindgenEnumCUnsignedInt[nfc_modulation_type]:
given _tag: Tag[nfc_modulation_type] = Tag.UInt
inline def define(inline a: Long): nfc_modulation_type = a.toUInt
val NMT_ISO14443A = define(1)
val NMT_JEWEL = define(2)
val NMT_ISO14443B = define(3)
val NMT_ISO14443BI = define(4)
val NMT_ISO14443B2SR = define(5)
val NMT_ISO14443B2CT = define(6)
val NMT_FELICA = define(7)
val NMT_DEP = define(8)
val NMT_BARCODE = define(9)
val NMT_ISO14443BICLASS = define(10)
val NMT_END_ENUM = define(10)
inline def getName(inline value: nfc_modulation_type): Option[String] =
inline value match
case NMT_ISO14443A => Some("NMT_ISO14443A")
case NMT_JEWEL => Some("NMT_JEWEL")
case NMT_ISO14443B => Some("NMT_ISO14443B")
case NMT_ISO14443BI => Some("NMT_ISO14443BI")
case NMT_ISO14443B2SR => Some("NMT_ISO14443B2SR")
case NMT_ISO14443B2CT => Some("NMT_ISO14443B2CT")
case NMT_FELICA => Some("NMT_FELICA")
case NMT_DEP => Some("NMT_DEP")
case NMT_BARCODE => Some("NMT_BARCODE")
case NMT_ISO14443BICLASS => Some("NMT_ISO14443BICLASS")
case NMT_END_ENUM => Some("NMT_END_ENUM")
case _ => _root_.scala.None
extension (a: nfc_modulation_type)
inline def &(b: nfc_modulation_type): nfc_modulation_type = a & b
inline def |(b: nfc_modulation_type): nfc_modulation_type = a | b
inline def is(b: nfc_modulation_type): Boolean = (a & b) == b
/**
* Properties
*/
opaque type nfc_property = CUnsignedInt
object nfc_property extends _BindgenEnumCUnsignedInt[nfc_property]:
given _tag: Tag[nfc_property] = Tag.UInt
inline def define(inline a: Long): nfc_property = a.toUInt
val NP_TIMEOUT_COMMAND = define(0)
val NP_TIMEOUT_ATR = define(1)
val NP_TIMEOUT_COM = define(2)
val NP_HANDLE_CRC = define(3)
val NP_HANDLE_PARITY = define(4)
val NP_ACTIVATE_FIELD = define(5)
val NP_ACTIVATE_CRYPTO1 = define(6)
val NP_INFINITE_SELECT = define(7)
val NP_ACCEPT_INVALID_FRAMES = define(8)
val NP_ACCEPT_MULTIPLE_FRAMES = define(9)
val NP_AUTO_ISO14443_4 = define(10)
val NP_EASY_FRAMING = define(11)
val NP_FORCE_ISO14443_A = define(12)
val NP_FORCE_ISO14443_B = define(13)
val NP_FORCE_SPEED_106 = define(14)
inline def getName(inline value: nfc_property): Option[String] =
inline value match
case NP_TIMEOUT_COMMAND => Some("NP_TIMEOUT_COMMAND")
case NP_TIMEOUT_ATR => Some("NP_TIMEOUT_ATR")
case NP_TIMEOUT_COM => Some("NP_TIMEOUT_COM")
case NP_HANDLE_CRC => Some("NP_HANDLE_CRC")
case NP_HANDLE_PARITY => Some("NP_HANDLE_PARITY")
case NP_ACTIVATE_FIELD => Some("NP_ACTIVATE_FIELD")
case NP_ACTIVATE_CRYPTO1 => Some("NP_ACTIVATE_CRYPTO1")
case NP_INFINITE_SELECT => Some("NP_INFINITE_SELECT")
case NP_ACCEPT_INVALID_FRAMES => Some("NP_ACCEPT_INVALID_FRAMES")
case NP_ACCEPT_MULTIPLE_FRAMES => Some("NP_ACCEPT_MULTIPLE_FRAMES")
case NP_AUTO_ISO14443_4 => Some("NP_AUTO_ISO14443_4")
case NP_EASY_FRAMING => Some("NP_EASY_FRAMING")
case NP_FORCE_ISO14443_A => Some("NP_FORCE_ISO14443_A")
case NP_FORCE_ISO14443_B => Some("NP_FORCE_ISO14443_B")
case NP_FORCE_SPEED_106 => Some("NP_FORCE_SPEED_106")
case _ => _root_.scala.None
extension (a: nfc_property)
inline def &(b: nfc_property): nfc_property = a & b
inline def |(b: nfc_property): nfc_property = a | b
inline def is(b: nfc_property): Boolean = (a & b) == b
object aliases:
import _root_.libnfc.enumerations.*
import _root_.libnfc.predef.*
import _root_.libnfc.aliases.*
import _root_.libnfc.structs.*
import _root_.libnfc.unions.*
/**
* Connection string
*/
opaque type nfc_connstring = CArray[CChar, Nat.Digit4[Nat._1, Nat._0, Nat._2, Nat._4]]
object nfc_connstring:
given _tag: Tag[nfc_connstring] = Tag.CArray[CChar, Nat.Digit4[Nat._1, Nat._0, Nat._2, Nat._4]](Tag.Byte, Tag.Digit4[Nat._1, Nat._0, Nat._2, Nat._4](Tag.Nat1, Tag.Nat0, Tag.Nat2, Tag.Nat4))
inline def apply(inline o: CArray[CChar, Nat.Digit4[Nat._1, Nat._0, Nat._2, Nat._4]]): nfc_connstring = o
extension (v: nfc_connstring)
inline def value: CArray[CChar, Nat.Digit4[Nat._1, Nat._0, Nat._2, Nat._4]] = v
type size_t = libc.stddef.size_t
object size_t:
val _tag: Tag[size_t] = summon[Tag[libc.stddef.size_t]]
inline def apply(inline o: libc.stddef.size_t): size_t = o
extension (v: size_t)
inline def value: libc.stddef.size_t = v
type uint32_t = scala.scalanative.unsigned.UInt
object uint32_t:
val _tag: Tag[uint32_t] = summon[Tag[scala.scalanative.unsigned.UInt]]
inline def apply(inline o: scala.scalanative.unsigned.UInt): uint32_t = o
extension (v: uint32_t)
inline def value: scala.scalanative.unsigned.UInt = v
type uint8_t = scala.scalanative.unsigned.UByte
object uint8_t:
val _tag: Tag[uint8_t] = summon[Tag[scala.scalanative.unsigned.UByte]]
inline def apply(inline o: scala.scalanative.unsigned.UByte): uint8_t = o
extension (v: uint8_t)
inline def value: scala.scalanative.unsigned.UByte = v
object structs:
import _root_.libnfc.enumerations.*
import _root_.libnfc.predef.*
import _root_.libnfc.aliases.*
import _root_.libnfc.structs.*
import _root_.libnfc.unions.*
/**
* Thinfilm NFC Barcode information
*/
opaque type nfc_barcode_info = CStruct2[size_t, CArray[uint8_t, Nat.Digit2[Nat._3, Nat._2]]]
object nfc_barcode_info:
given _tag: Tag[nfc_barcode_info] = Tag.materializeCStruct2Tag[size_t, CArray[uint8_t, Nat.Digit2[Nat._3, Nat._2]]]
def apply()(using Zone): Ptr[nfc_barcode_info] = scala.scalanative.unsafe.alloc[nfc_barcode_info](1)
def apply(szDataLen : size_t, abtData : CArray[uint8_t, Nat.Digit2[Nat._3, Nat._2]])(using Zone): Ptr[nfc_barcode_info] =
val ____ptr = apply()
(!____ptr).szDataLen = szDataLen
(!____ptr).abtData = abtData
____ptr
extension (struct: nfc_barcode_info)
def szDataLen : size_t = struct._1
def szDataLen_=(value: size_t): Unit = !struct.at1 = value
def abtData : CArray[uint8_t, Nat.Digit2[Nat._3, Nat._2]] = struct._2
def abtData_=(value: CArray[uint8_t, Nat.Digit2[Nat._3, Nat._2]]): Unit = !struct.at2 = value
opaque type nfc_context = CStruct0
object nfc_context:
given _tag: Tag[nfc_context] = Tag.materializeCStruct0Tag
/**
* NFC target information in D.E.P. (Data Exchange Protocol) see ISO/IEC 18092 (NFCIP-1)
*/
opaque type nfc_dep_info = CStruct9[CArray[uint8_t, Nat.Digit2[Nat._1, Nat._0]], uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, CArray[uint8_t, Nat.Digit2[Nat._4, Nat._8]], size_t, nfc_dep_mode]
object nfc_dep_info:
given _tag: Tag[nfc_dep_info] = Tag.materializeCStruct9Tag[CArray[uint8_t, Nat.Digit2[Nat._1, Nat._0]], uint8_t, uint8_t, uint8_t, uint8_t, uint8_t, CArray[uint8_t, Nat.Digit2[Nat._4, Nat._8]], size_t, nfc_dep_mode]
def apply()(using Zone): Ptr[nfc_dep_info] = scala.scalanative.unsafe.alloc[nfc_dep_info](1)
def apply(abtNFCID3 : CArray[uint8_t, Nat.Digit2[Nat._1, Nat._0]], btDID : uint8_t, btBS : uint8_t, btBR : uint8_t, btTO : uint8_t, btPP : uint8_t, abtGB : CArray[uint8_t, Nat.Digit2[Nat._4, Nat._8]], szGB : size_t, ndm : nfc_dep_mode)(using Zone): Ptr[nfc_dep_info] =
val ____ptr = apply()
(!____ptr).abtNFCID3 = abtNFCID3
(!____ptr).btDID = btDID
(!____ptr).btBS = btBS
(!____ptr).btBR = btBR
(!____ptr).btTO = btTO
(!____ptr).btPP = btPP
(!____ptr).abtGB = abtGB
(!____ptr).szGB = szGB
(!____ptr).ndm = ndm
____ptr
extension (struct: nfc_dep_info)
def abtNFCID3 : CArray[uint8_t, Nat.Digit2[Nat._1, Nat._0]] = struct._1
def abtNFCID3_=(value: CArray[uint8_t, Nat.Digit2[Nat._1, Nat._0]]): Unit = !struct.at1 = value
def btDID : uint8_t = struct._2
def btDID_=(value: uint8_t): Unit = !struct.at2 = value
def btBS : uint8_t = struct._3
def btBS_=(value: uint8_t): Unit = !struct.at3 = value
def btBR : uint8_t = struct._4
def btBR_=(value: uint8_t): Unit = !struct.at4 = value
def btTO : uint8_t = struct._5
def btTO_=(value: uint8_t): Unit = !struct.at5 = value
def btPP : uint8_t = struct._6
def btPP_=(value: uint8_t): Unit = !struct.at6 = value
def abtGB : CArray[uint8_t, Nat.Digit2[Nat._4, Nat._8]] = struct._7
def abtGB_=(value: CArray[uint8_t, Nat.Digit2[Nat._4, Nat._8]]): Unit = !struct.at7 = value
def szGB : size_t = struct._8
def szGB_=(value: size_t): Unit = !struct.at8 = value
def ndm : nfc_dep_mode = struct._9
def ndm_=(value: nfc_dep_mode): Unit = !struct.at9 = value
opaque type nfc_device = CStruct0
object nfc_device:
given _tag: Tag[nfc_device] = Tag.materializeCStruct0Tag
opaque type nfc_driver = CStruct0
object nfc_driver:
given _tag: Tag[nfc_driver] = Tag.materializeCStruct0Tag
/**
* NFC FeLiCa tag information
*/
opaque type nfc_felica_info = CStruct5[size_t, uint8_t, CArray[uint8_t, Nat._8], CArray[uint8_t, Nat._8], CArray[uint8_t, Nat._2]]
object nfc_felica_info:
given _tag: Tag[nfc_felica_info] = Tag.materializeCStruct5Tag[size_t, uint8_t, CArray[uint8_t, Nat._8], CArray[uint8_t, Nat._8], CArray[uint8_t, Nat._2]]
def apply()(using Zone): Ptr[nfc_felica_info] = scala.scalanative.unsafe.alloc[nfc_felica_info](1)
def apply(szLen : size_t, btResCode : uint8_t, abtId : CArray[uint8_t, Nat._8], abtPad : CArray[uint8_t, Nat._8], abtSysCode : CArray[uint8_t, Nat._2])(using Zone): Ptr[nfc_felica_info] =
val ____ptr = apply()
(!____ptr).szLen = szLen
(!____ptr).btResCode = btResCode
(!____ptr).abtId = abtId
(!____ptr).abtPad = abtPad
(!____ptr).abtSysCode = abtSysCode
____ptr
extension (struct: nfc_felica_info)
def szLen : size_t = struct._1
def szLen_=(value: size_t): Unit = !struct.at1 = value
def btResCode : uint8_t = struct._2
def btResCode_=(value: uint8_t): Unit = !struct.at2 = value
def abtId : CArray[uint8_t, Nat._8] = struct._3
def abtId_=(value: CArray[uint8_t, Nat._8]): Unit = !struct.at3 = value
def abtPad : CArray[uint8_t, Nat._8] = struct._4
def abtPad_=(value: CArray[uint8_t, Nat._8]): Unit = !struct.at4 = value
def abtSysCode : CArray[uint8_t, Nat._2] = struct._5
def abtSysCode_=(value: CArray[uint8_t, Nat._2]): Unit = !struct.at5 = value
/**
* NFC ISO14443A tag (MIFARE) information
*/
opaque type nfc_iso14443a_info = CStruct6[CArray[uint8_t, Nat._2], uint8_t, size_t, CArray[uint8_t, Nat.Digit2[Nat._1, Nat._0]], size_t, CArray[uint8_t, Nat.Digit3[Nat._2, Nat._5, Nat._4]]]
object nfc_iso14443a_info:
given _tag: Tag[nfc_iso14443a_info] = Tag.materializeCStruct6Tag[CArray[uint8_t, Nat._2], uint8_t, size_t, CArray[uint8_t, Nat.Digit2[Nat._1, Nat._0]], size_t, CArray[uint8_t, Nat.Digit3[Nat._2, Nat._5, Nat._4]]]
def apply()(using Zone): Ptr[nfc_iso14443a_info] = scala.scalanative.unsafe.alloc[nfc_iso14443a_info](1)
def apply(abtAtqa : CArray[uint8_t, Nat._2], btSak : uint8_t, szUidLen : size_t, abtUid : CArray[uint8_t, Nat.Digit2[Nat._1, Nat._0]], szAtsLen : size_t, abtAts : CArray[uint8_t, Nat.Digit3[Nat._2, Nat._5, Nat._4]])(using Zone): Ptr[nfc_iso14443a_info] =
val ____ptr = apply()
(!____ptr).abtAtqa = abtAtqa
(!____ptr).btSak = btSak
(!____ptr).szUidLen = szUidLen
(!____ptr).abtUid = abtUid
(!____ptr).szAtsLen = szAtsLen
(!____ptr).abtAts = abtAts
____ptr
extension (struct: nfc_iso14443a_info)
def abtAtqa : CArray[uint8_t, Nat._2] = struct._1
def abtAtqa_=(value: CArray[uint8_t, Nat._2]): Unit = !struct.at1 = value
def btSak : uint8_t = struct._2
def btSak_=(value: uint8_t): Unit = !struct.at2 = value
def szUidLen : size_t = struct._3
def szUidLen_=(value: size_t): Unit = !struct.at3 = value
def abtUid : CArray[uint8_t, Nat.Digit2[Nat._1, Nat._0]] = struct._4
def abtUid_=(value: CArray[uint8_t, Nat.Digit2[Nat._1, Nat._0]]): Unit = !struct.at4 = value
def szAtsLen : size_t = struct._5
def szAtsLen_=(value: size_t): Unit = !struct.at5 = value
def abtAts : CArray[uint8_t, Nat.Digit3[Nat._2, Nat._5, Nat._4]] = struct._6
def abtAts_=(value: CArray[uint8_t, Nat.Digit3[Nat._2, Nat._5, Nat._4]]): Unit = !struct.at6 = value
/**
* NFC ISO14443-2B ASK CTx tag information
*/
opaque type nfc_iso14443b2ct_info = CStruct3[CArray[uint8_t, Nat._4], uint8_t, uint8_t]
object nfc_iso14443b2ct_info:
given _tag: Tag[nfc_iso14443b2ct_info] = Tag.materializeCStruct3Tag[CArray[uint8_t, Nat._4], uint8_t, uint8_t]
def apply()(using Zone): Ptr[nfc_iso14443b2ct_info] = scala.scalanative.unsafe.alloc[nfc_iso14443b2ct_info](1)
def apply(abtUID : CArray[uint8_t, Nat._4], btProdCode : uint8_t, btFabCode : uint8_t)(using Zone): Ptr[nfc_iso14443b2ct_info] =
val ____ptr = apply()
(!____ptr).abtUID = abtUID
(!____ptr).btProdCode = btProdCode
(!____ptr).btFabCode = btFabCode
____ptr
extension (struct: nfc_iso14443b2ct_info)
def abtUID : CArray[uint8_t, Nat._4] = struct._1
def abtUID_=(value: CArray[uint8_t, Nat._4]): Unit = !struct.at1 = value
def btProdCode : uint8_t = struct._2
def btProdCode_=(value: uint8_t): Unit = !struct.at2 = value
def btFabCode : uint8_t = struct._3
def btFabCode_=(value: uint8_t): Unit = !struct.at3 = value
/**
* NFC ISO14443-2B ST SRx tag information
*/
opaque type nfc_iso14443b2sr_info = CStruct1[CArray[uint8_t, Nat._8]]
object nfc_iso14443b2sr_info:
given _tag: Tag[nfc_iso14443b2sr_info] = Tag.materializeCStruct1Tag[CArray[uint8_t, Nat._8]]
def apply()(using Zone): Ptr[nfc_iso14443b2sr_info] = scala.scalanative.unsafe.alloc[nfc_iso14443b2sr_info](1)
def apply(abtUID : CArray[uint8_t, Nat._8])(using Zone): Ptr[nfc_iso14443b2sr_info] =
val ____ptr = apply()
(!____ptr).abtUID = abtUID
____ptr
extension (struct: nfc_iso14443b2sr_info)
def abtUID : CArray[uint8_t, Nat._8] = struct._1
def abtUID_=(value: CArray[uint8_t, Nat._8]): Unit = !struct.at1 = value
/**
* NFC ISO14443B tag information
*/
opaque type nfc_iso14443b_info = CStruct4[CArray[uint8_t, Nat._4], CArray[uint8_t, Nat._4], CArray[uint8_t, Nat._3], uint8_t]
object nfc_iso14443b_info:
given _tag: Tag[nfc_iso14443b_info] = Tag.materializeCStruct4Tag[CArray[uint8_t, Nat._4], CArray[uint8_t, Nat._4], CArray[uint8_t, Nat._3], uint8_t]
def apply()(using Zone): Ptr[nfc_iso14443b_info] = scala.scalanative.unsafe.alloc[nfc_iso14443b_info](1)
def apply(abtPupi : CArray[uint8_t, Nat._4], abtApplicationData : CArray[uint8_t, Nat._4], abtProtocolInfo : CArray[uint8_t, Nat._3], ui8CardIdentifier : uint8_t)(using Zone): Ptr[nfc_iso14443b_info] =
val ____ptr = apply()
(!____ptr).abtPupi = abtPupi
(!____ptr).abtApplicationData = abtApplicationData
(!____ptr).abtProtocolInfo = abtProtocolInfo
(!____ptr).ui8CardIdentifier = ui8CardIdentifier
____ptr
extension (struct: nfc_iso14443b_info)
def abtPupi : CArray[uint8_t, Nat._4] = struct._1
def abtPupi_=(value: CArray[uint8_t, Nat._4]): Unit = !struct.at1 = value
def abtApplicationData : CArray[uint8_t, Nat._4] = struct._2
def abtApplicationData_=(value: CArray[uint8_t, Nat._4]): Unit = !struct.at2 = value
def abtProtocolInfo : CArray[uint8_t, Nat._3] = struct._3
def abtProtocolInfo_=(value: CArray[uint8_t, Nat._3]): Unit = !struct.at3 = value
def ui8CardIdentifier : uint8_t = struct._4
def ui8CardIdentifier_=(value: uint8_t): Unit = !struct.at4 = value
/**
* NFC ISO14443B' tag information
*/
opaque type nfc_iso14443bi_info = CStruct5[CArray[uint8_t, Nat._4], uint8_t, uint8_t, size_t, CArray[uint8_t, Nat.Digit2[Nat._3, Nat._3]]]
object nfc_iso14443bi_info:
given _tag: Tag[nfc_iso14443bi_info] = Tag.materializeCStruct5Tag[CArray[uint8_t, Nat._4], uint8_t, uint8_t, size_t, CArray[uint8_t, Nat.Digit2[Nat._3, Nat._3]]]
def apply()(using Zone): Ptr[nfc_iso14443bi_info] = scala.scalanative.unsafe.alloc[nfc_iso14443bi_info](1)
def apply(abtDIV : CArray[uint8_t, Nat._4], btVerLog : uint8_t, btConfig : uint8_t, szAtrLen : size_t, abtAtr : CArray[uint8_t, Nat.Digit2[Nat._3, Nat._3]])(using Zone): Ptr[nfc_iso14443bi_info] =
val ____ptr = apply()
(!____ptr).abtDIV = abtDIV
(!____ptr).btVerLog = btVerLog
(!____ptr).btConfig = btConfig
(!____ptr).szAtrLen = szAtrLen
(!____ptr).abtAtr = abtAtr
____ptr
extension (struct: nfc_iso14443bi_info)
def abtDIV : CArray[uint8_t, Nat._4] = struct._1
def abtDIV_=(value: CArray[uint8_t, Nat._4]): Unit = !struct.at1 = value
def btVerLog : uint8_t = struct._2
def btVerLog_=(value: uint8_t): Unit = !struct.at2 = value
def btConfig : uint8_t = struct._3
def btConfig_=(value: uint8_t): Unit = !struct.at3 = value
def szAtrLen : size_t = struct._4
def szAtrLen_=(value: size_t): Unit = !struct.at4 = value
def abtAtr : CArray[uint8_t, Nat.Digit2[Nat._3, Nat._3]] = struct._5
def abtAtr_=(value: CArray[uint8_t, Nat.Digit2[Nat._3, Nat._3]]): Unit = !struct.at5 = value
/**
* NFC ISO14443BiClass tag information
*/
opaque type nfc_iso14443biclass_info = CStruct1[CArray[uint8_t, Nat._8]]
object nfc_iso14443biclass_info:
given _tag: Tag[nfc_iso14443biclass_info] = Tag.materializeCStruct1Tag[CArray[uint8_t, Nat._8]]
def apply()(using Zone): Ptr[nfc_iso14443biclass_info] = scala.scalanative.unsafe.alloc[nfc_iso14443biclass_info](1)
def apply(abtUID : CArray[uint8_t, Nat._8])(using Zone): Ptr[nfc_iso14443biclass_info] =
val ____ptr = apply()
(!____ptr).abtUID = abtUID
____ptr
extension (struct: nfc_iso14443biclass_info)
def abtUID : CArray[uint8_t, Nat._8] = struct._1
def abtUID_=(value: CArray[uint8_t, Nat._8]): Unit = !struct.at1 = value
/**
* NFC Jewel tag information
*/
opaque type nfc_jewel_info = CStruct2[CArray[uint8_t, Nat._2], CArray[uint8_t, Nat._4]]
object nfc_jewel_info:
given _tag: Tag[nfc_jewel_info] = Tag.materializeCStruct2Tag[CArray[uint8_t, Nat._2], CArray[uint8_t, Nat._4]]
def apply()(using Zone): Ptr[nfc_jewel_info] = scala.scalanative.unsafe.alloc[nfc_jewel_info](1)
def apply(btSensRes : CArray[uint8_t, Nat._2], btId : CArray[uint8_t, Nat._4])(using Zone): Ptr[nfc_jewel_info] =
val ____ptr = apply()
(!____ptr).btSensRes = btSensRes
(!____ptr).btId = btId
____ptr
extension (struct: nfc_jewel_info)
def btSensRes : CArray[uint8_t, Nat._2] = struct._1
def btSensRes_=(value: CArray[uint8_t, Nat._2]): Unit = !struct.at1 = value
def btId : CArray[uint8_t, Nat._4] = struct._2
def btId_=(value: CArray[uint8_t, Nat._4]): Unit = !struct.at2 = value
/**
* NFC modulation structure
*/
opaque type nfc_modulation = CStruct2[nfc_modulation_type, nfc_baud_rate]
object nfc_modulation:
given _tag: Tag[nfc_modulation] = Tag.materializeCStruct2Tag[nfc_modulation_type, nfc_baud_rate]
def apply()(using Zone): Ptr[nfc_modulation] = scala.scalanative.unsafe.alloc[nfc_modulation](1)
def apply(nmt : nfc_modulation_type, nbr : nfc_baud_rate)(using Zone): Ptr[nfc_modulation] =
val ____ptr = apply()
(!____ptr).nmt = nmt
(!____ptr).nbr = nbr
____ptr
extension (struct: nfc_modulation)
def nmt : nfc_modulation_type = struct._1
def nmt_=(value: nfc_modulation_type): Unit = !struct.at1 = value
def nbr : nfc_baud_rate = struct._2
def nbr_=(value: nfc_baud_rate): Unit = !struct.at2 = value
/**
* NFC target structure
*/
opaque type nfc_target = CStruct2[nfc_target_info, nfc_modulation]
object nfc_target:
given _tag: Tag[nfc_target] = Tag.materializeCStruct2Tag[nfc_target_info, nfc_modulation]
def apply()(using Zone): Ptr[nfc_target] = scala.scalanative.unsafe.alloc[nfc_target](1)
def apply(nti : nfc_target_info, nm : nfc_modulation)(using Zone): Ptr[nfc_target] =
val ____ptr = apply()
(!____ptr).nti = nti
(!____ptr).nm = nm
____ptr
extension (struct: nfc_target)
def nti : nfc_target_info = struct._1
def nti_=(value: nfc_target_info): Unit = !struct.at1 = value
def nm : nfc_modulation = struct._2
def nm_=(value: nfc_modulation): Unit = !struct.at2 = value
object unions:
import _root_.libnfc.enumerations.*
import _root_.libnfc.predef.*
import _root_.libnfc.aliases.*
import _root_.libnfc.structs.*
import _root_.libnfc.unions.*
/**
* Union between all kind of tags information structures.
*/
opaque type nfc_target_info = CArray[Byte, Nat.Digit3[Nat._2, Nat._8, Nat._3]]
object nfc_target_info:
given _tag: Tag[nfc_target_info] = Tag.CArray[CChar, Nat.Digit3[Nat._2, Nat._8, Nat._3]](Tag.Byte, Tag.Digit3[Nat._2, Nat._8, Nat._3](Tag.Nat2, Tag.Nat8, Tag.Nat3))
def apply()(using Zone): Ptr[nfc_target_info] =
val ___ptr = alloc[nfc_target_info](1)
___ptr
@scala.annotation.targetName("apply_nai")
def apply(nai: nfc_iso14443a_info)(using Zone): Ptr[nfc_target_info] =
val ___ptr = alloc[nfc_target_info](1)
val un = !___ptr
un.at(0).asInstanceOf[Ptr[nfc_iso14443a_info]].update(0, nai)
___ptr
@scala.annotation.targetName("apply_nfi")
def apply(nfi: nfc_felica_info)(using Zone): Ptr[nfc_target_info] =
val ___ptr = alloc[nfc_target_info](1)
val un = !___ptr
un.at(0).asInstanceOf[Ptr[nfc_felica_info]].update(0, nfi)
___ptr
@scala.annotation.targetName("apply_nbi")
def apply(nbi: nfc_iso14443b_info)(using Zone): Ptr[nfc_target_info] =
val ___ptr = alloc[nfc_target_info](1)
val un = !___ptr
un.at(0).asInstanceOf[Ptr[nfc_iso14443b_info]].update(0, nbi)
___ptr
@scala.annotation.targetName("apply_nii")
def apply(nii: nfc_iso14443bi_info)(using Zone): Ptr[nfc_target_info] =
val ___ptr = alloc[nfc_target_info](1)
val un = !___ptr
un.at(0).asInstanceOf[Ptr[nfc_iso14443bi_info]].update(0, nii)
___ptr
@scala.annotation.targetName("apply_nsi")
def apply(nsi: nfc_iso14443b2sr_info)(using Zone): Ptr[nfc_target_info] =
val ___ptr = alloc[nfc_target_info](1)
val un = !___ptr
un.at(0).asInstanceOf[Ptr[nfc_iso14443b2sr_info]].update(0, nsi)
___ptr
@scala.annotation.targetName("apply_nci")
def apply(nci: nfc_iso14443b2ct_info)(using Zone): Ptr[nfc_target_info] =
val ___ptr = alloc[nfc_target_info](1)
val un = !___ptr
un.at(0).asInstanceOf[Ptr[nfc_iso14443b2ct_info]].update(0, nci)
___ptr
@scala.annotation.targetName("apply_nji")
def apply(nji: nfc_jewel_info)(using Zone): Ptr[nfc_target_info] =
val ___ptr = alloc[nfc_target_info](1)
val un = !___ptr
un.at(0).asInstanceOf[Ptr[nfc_jewel_info]].update(0, nji)
___ptr
@scala.annotation.targetName("apply_ndi")
def apply(ndi: nfc_dep_info)(using Zone): Ptr[nfc_target_info] =
val ___ptr = alloc[nfc_target_info](1)
val un = !___ptr
un.at(0).asInstanceOf[Ptr[nfc_dep_info]].update(0, ndi)
___ptr
@scala.annotation.targetName("apply_nti")
def apply(nti: nfc_barcode_info)(using Zone): Ptr[nfc_target_info] =
val ___ptr = alloc[nfc_target_info](1)
val un = !___ptr
un.at(0).asInstanceOf[Ptr[nfc_barcode_info]].update(0, nti)
___ptr
@scala.annotation.targetName("apply_nhi")
def apply(nhi: nfc_iso14443biclass_info)(using Zone): Ptr[nfc_target_info] =
val ___ptr = alloc[nfc_target_info](1)
val un = !___ptr
un.at(0).asInstanceOf[Ptr[nfc_iso14443biclass_info]].update(0, nhi)
___ptr
extension (struct: nfc_target_info)
def nai : nfc_iso14443a_info = !struct.at(0).asInstanceOf[Ptr[nfc_iso14443a_info]]
def nai_=(value: nfc_iso14443a_info): Unit = !struct.at(0).asInstanceOf[Ptr[nfc_iso14443a_info]] = value
def nfi : nfc_felica_info = !struct.at(0).asInstanceOf[Ptr[nfc_felica_info]]
def nfi_=(value: nfc_felica_info): Unit = !struct.at(0).asInstanceOf[Ptr[nfc_felica_info]] = value
def nbi : nfc_iso14443b_info = !struct.at(0).asInstanceOf[Ptr[nfc_iso14443b_info]]
def nbi_=(value: nfc_iso14443b_info): Unit = !struct.at(0).asInstanceOf[Ptr[nfc_iso14443b_info]] = value
def nii : nfc_iso14443bi_info = !struct.at(0).asInstanceOf[Ptr[nfc_iso14443bi_info]]
def nii_=(value: nfc_iso14443bi_info): Unit = !struct.at(0).asInstanceOf[Ptr[nfc_iso14443bi_info]] = value
def nsi : nfc_iso14443b2sr_info = !struct.at(0).asInstanceOf[Ptr[nfc_iso14443b2sr_info]]
def nsi_=(value: nfc_iso14443b2sr_info): Unit = !struct.at(0).asInstanceOf[Ptr[nfc_iso14443b2sr_info]] = value
def nci : nfc_iso14443b2ct_info = !struct.at(0).asInstanceOf[Ptr[nfc_iso14443b2ct_info]]
def nci_=(value: nfc_iso14443b2ct_info): Unit = !struct.at(0).asInstanceOf[Ptr[nfc_iso14443b2ct_info]] = value
def nji : nfc_jewel_info = !struct.at(0).asInstanceOf[Ptr[nfc_jewel_info]]
def nji_=(value: nfc_jewel_info): Unit = !struct.at(0).asInstanceOf[Ptr[nfc_jewel_info]] = value
def ndi : nfc_dep_info = !struct.at(0).asInstanceOf[Ptr[nfc_dep_info]]
def ndi_=(value: nfc_dep_info): Unit = !struct.at(0).asInstanceOf[Ptr[nfc_dep_info]] = value
def nti : nfc_barcode_info = !struct.at(0).asInstanceOf[Ptr[nfc_barcode_info]]
def nti_=(value: nfc_barcode_info): Unit = !struct.at(0).asInstanceOf[Ptr[nfc_barcode_info]] = value
def nhi : nfc_iso14443biclass_info = !struct.at(0).asInstanceOf[Ptr[nfc_iso14443biclass_info]]
def nhi_=(value: nfc_iso14443biclass_info): Unit = !struct.at(0).asInstanceOf[Ptr[nfc_iso14443biclass_info]] = value
@extern
private[libnfc] object extern_functions:
import _root_.libnfc.enumerations.*
import _root_.libnfc.predef.*
import _root_.libnfc.aliases.*
import _root_.libnfc.structs.*
import _root_.libnfc.unions.*
private[libnfc] def __sn_wrap_libnfc_nfc_initiator_list_passive_targets(pnd : Ptr[nfc_device], nm : Ptr[nfc_modulation], ant : Ptr[nfc_target], szTargets : size_t): CInt = extern
private[libnfc] def __sn_wrap_libnfc_nfc_initiator_select_passive_target(pnd : Ptr[nfc_device], nm : Ptr[nfc_modulation], pbtInitData : Ptr[uint8_t], szInitData : size_t, pnt : Ptr[nfc_target]): CInt = extern
def iso14443a_crc(pbtData : Ptr[uint8_t], szLen : size_t, pbtCrc : Ptr[uint8_t]): Unit = extern
def iso14443a_crc_append(pbtData : Ptr[uint8_t], szLen : size_t): Unit = extern
def iso14443a_locate_historical_bytes(pbtAts : Ptr[uint8_t], szAts : size_t, pszTk : Ptr[size_t]): Ptr[uint8_t] = extern
def iso14443b_crc(pbtData : Ptr[uint8_t], szLen : size_t, pbtCrc : Ptr[uint8_t]): Unit = extern
def iso14443b_crc_append(pbtData : Ptr[uint8_t], szLen : size_t): Unit = extern
def nfc_abort_command(pnd : Ptr[nfc_device]): CInt = extern
def nfc_close(pnd : Ptr[nfc_device]): Unit = extern
def nfc_device_get_connstring(pnd : Ptr[nfc_device]): CString = extern
def nfc_device_get_information_about(pnd : Ptr[nfc_device], buf : Ptr[CString]): CInt = extern
def nfc_device_get_last_error(pnd : Ptr[nfc_device]): CInt = extern
def nfc_device_get_name(pnd : Ptr[nfc_device]): CString = extern
def nfc_device_get_supported_baud_rate(pnd : Ptr[nfc_device], nmt : nfc_modulation_type, supported_br : Ptr[Ptr[nfc_baud_rate]]): CInt = extern
def nfc_device_get_supported_baud_rate_target_mode(pnd : Ptr[nfc_device], nmt : nfc_modulation_type, supported_br : Ptr[Ptr[nfc_baud_rate]]): CInt = extern
def nfc_device_get_supported_modulation(pnd : Ptr[nfc_device], mode : nfc_mode, supported_mt : Ptr[Ptr[nfc_modulation_type]]): CInt = extern
def nfc_device_set_property_bool(pnd : Ptr[nfc_device], property : nfc_property, bEnable : Boolean): CInt = extern
def nfc_device_set_property_int(pnd : Ptr[nfc_device], property : nfc_property, value : CInt): CInt = extern
def nfc_exit(context : Ptr[nfc_context]): Unit = extern
def nfc_free(p : Ptr[Byte]): Unit = extern
def nfc_idle(pnd : Ptr[nfc_device]): CInt = extern
def nfc_init(context : Ptr[Ptr[nfc_context]]): Unit = extern
def nfc_initiator_deselect_target(pnd : Ptr[nfc_device]): CInt = extern
def nfc_initiator_init(pnd : Ptr[nfc_device]): CInt = extern
def nfc_initiator_init_secure_element(pnd : Ptr[nfc_device]): CInt = extern
def nfc_initiator_poll_dep_target(pnd : Ptr[nfc_device], ndm : nfc_dep_mode, nbr : nfc_baud_rate, pndiInitiator : Ptr[nfc_dep_info], pnt : Ptr[nfc_target], timeout : CInt): CInt = extern
def nfc_initiator_poll_target(pnd : Ptr[nfc_device], pnmTargetTypes : Ptr[nfc_modulation], szTargetTypes : size_t, uiPollNr : uint8_t, uiPeriod : uint8_t, pnt : Ptr[nfc_target]): CInt = extern
def nfc_initiator_select_dep_target(pnd : Ptr[nfc_device], ndm : nfc_dep_mode, nbr : nfc_baud_rate, pndiInitiator : Ptr[nfc_dep_info], pnt : Ptr[nfc_target], timeout : CInt): CInt = extern
def nfc_initiator_target_is_present(pnd : Ptr[nfc_device], pnt : Ptr[nfc_target]): CInt = extern
def nfc_initiator_transceive_bits(pnd : Ptr[nfc_device], pbtTx : Ptr[uint8_t], szTxBits : size_t, pbtTxPar : Ptr[uint8_t], pbtRx : Ptr[uint8_t], szRx : size_t, pbtRxPar : Ptr[uint8_t]): CInt = extern
def nfc_initiator_transceive_bits_timed(pnd : Ptr[nfc_device], pbtTx : Ptr[uint8_t], szTxBits : size_t, pbtTxPar : Ptr[uint8_t], pbtRx : Ptr[uint8_t], szRx : size_t, pbtRxPar : Ptr[uint8_t], cycles : Ptr[uint32_t]): CInt = extern
def nfc_initiator_transceive_bytes(pnd : Ptr[nfc_device], pbtTx : Ptr[uint8_t], szTx : size_t, pbtRx : Ptr[uint8_t], szRx : size_t, timeout : CInt): CInt = extern
def nfc_initiator_transceive_bytes_timed(pnd : Ptr[nfc_device], pbtTx : Ptr[uint8_t], szTx : size_t, pbtRx : Ptr[uint8_t], szRx : size_t, cycles : Ptr[uint32_t]): CInt = extern
def nfc_list_devices(context : Ptr[nfc_context], connstrings : Ptr[nfc_connstring], connstrings_len : size_t): size_t = extern
def nfc_open(context : Ptr[nfc_context], connstring : nfc_connstring): Ptr[nfc_device] = extern
def nfc_perror(pnd : Ptr[nfc_device], s : CString): Unit = extern
def nfc_register_driver(driver : Ptr[nfc_driver]): CInt = extern
def nfc_strerror(pnd : Ptr[nfc_device]): CString = extern
def nfc_strerror_r(pnd : Ptr[nfc_device], buf : CString, buflen : size_t): CInt = extern
def nfc_target_init(pnd : Ptr[nfc_device], pnt : Ptr[nfc_target], pbtRx : Ptr[uint8_t], szRx : size_t, timeout : CInt): CInt = extern
def nfc_target_receive_bits(pnd : Ptr[nfc_device], pbtRx : Ptr[uint8_t], szRx : size_t, pbtRxPar : Ptr[uint8_t]): CInt = extern
def nfc_target_receive_bytes(pnd : Ptr[nfc_device], pbtRx : Ptr[uint8_t], szRx : size_t, timeout : CInt): CInt = extern
def nfc_target_send_bits(pnd : Ptr[nfc_device], pbtTx : Ptr[uint8_t], szTxBits : size_t, pbtTxPar : Ptr[uint8_t]): CInt = extern
def nfc_target_send_bytes(pnd : Ptr[nfc_device], pbtTx : Ptr[uint8_t], szTx : size_t, timeout : CInt): CInt = extern
def nfc_version(): CString = extern
def str_nfc_baud_rate(nbr : nfc_baud_rate): CString = extern
def str_nfc_modulation_type(nmt : nfc_modulation_type): CString = extern
def str_nfc_target(buf : Ptr[CString], pnt : Ptr[nfc_target], verbose : Boolean): CInt = extern
object functions:
import _root_.libnfc.enumerations.*
import _root_.libnfc.predef.*
import _root_.libnfc.aliases.*
import _root_.libnfc.structs.*
import _root_.libnfc.unions.*
import extern_functions.*
export extern_functions.*
def nfc_initiator_list_passive_targets(pnd : Ptr[nfc_device], nm : nfc_modulation, ant : Ptr[nfc_target], szTargets : size_t)(using Zone): CInt =
val __ptr_0: Ptr[nfc_modulation] = alloc[nfc_modulation](1)
!(__ptr_0 + 0) = nm
__sn_wrap_libnfc_nfc_initiator_list_passive_targets(pnd, (__ptr_0 + 0), ant, szTargets)
def nfc_initiator_list_passive_targets(pnd : Ptr[nfc_device], nm : Ptr[nfc_modulation], ant : Ptr[nfc_target], szTargets : size_t): CInt =
__sn_wrap_libnfc_nfc_initiator_list_passive_targets(pnd, nm, ant, szTargets)
def nfc_initiator_select_passive_target(pnd : Ptr[nfc_device], nm : nfc_modulation, pbtInitData : Ptr[uint8_t], szInitData : size_t, pnt : Ptr[nfc_target])(using Zone): CInt =
val __ptr_0: Ptr[nfc_modulation] = alloc[nfc_modulation](1)
!(__ptr_0 + 0) = nm
__sn_wrap_libnfc_nfc_initiator_select_passive_target(pnd, (__ptr_0 + 0), pbtInitData, szInitData, pnt)
def nfc_initiator_select_passive_target(pnd : Ptr[nfc_device], nm : Ptr[nfc_modulation], pbtInitData : Ptr[uint8_t], szInitData : size_t, pnt : Ptr[nfc_target]): CInt =
__sn_wrap_libnfc_nfc_initiator_select_passive_target(pnd, nm, pbtInitData, szInitData, pnt)
object types:
export _root_.libnfc.structs.*
export _root_.libnfc.aliases.*
export _root_.libnfc.unions.*
export _root_.libnfc.enumerations.*
object all:
export _root_.libnfc.enumerations.nfc_baud_rate
export _root_.libnfc.enumerations.nfc_dep_mode
export _root_.libnfc.enumerations.nfc_mode
export _root_.libnfc.enumerations.nfc_modulation_type
export _root_.libnfc.enumerations.nfc_property
export _root_.libnfc.aliases.nfc_connstring
export _root_.libnfc.aliases.size_t
export _root_.libnfc.aliases.uint32_t
export _root_.libnfc.aliases.uint8_t
export _root_.libnfc.structs.nfc_barcode_info
export _root_.libnfc.structs.nfc_context
export _root_.libnfc.structs.nfc_dep_info
export _root_.libnfc.structs.nfc_device
export _root_.libnfc.structs.nfc_driver
export _root_.libnfc.structs.nfc_felica_info
export _root_.libnfc.structs.nfc_iso14443a_info
export _root_.libnfc.structs.nfc_iso14443b2ct_info
export _root_.libnfc.structs.nfc_iso14443b2sr_info
export _root_.libnfc.structs.nfc_iso14443b_info
export _root_.libnfc.structs.nfc_iso14443bi_info
export _root_.libnfc.structs.nfc_iso14443biclass_info
export _root_.libnfc.structs.nfc_jewel_info
export _root_.libnfc.structs.nfc_modulation
export _root_.libnfc.structs.nfc_target
export _root_.libnfc.unions.nfc_target_info
export _root_.libnfc.functions.iso14443a_crc
export _root_.libnfc.functions.iso14443a_crc_append
export _root_.libnfc.functions.iso14443a_locate_historical_bytes
export _root_.libnfc.functions.iso14443b_crc
export _root_.libnfc.functions.iso14443b_crc_append
export _root_.libnfc.functions.nfc_abort_command
export _root_.libnfc.functions.nfc_close
export _root_.libnfc.functions.nfc_device_get_connstring
export _root_.libnfc.functions.nfc_device_get_information_about
export _root_.libnfc.functions.nfc_device_get_last_error
export _root_.libnfc.functions.nfc_device_get_name
export _root_.libnfc.functions.nfc_device_get_supported_baud_rate
export _root_.libnfc.functions.nfc_device_get_supported_baud_rate_target_mode
export _root_.libnfc.functions.nfc_device_get_supported_modulation
export _root_.libnfc.functions.nfc_device_set_property_bool
export _root_.libnfc.functions.nfc_device_set_property_int
export _root_.libnfc.functions.nfc_exit
export _root_.libnfc.functions.nfc_free
export _root_.libnfc.functions.nfc_idle
export _root_.libnfc.functions.nfc_init
export _root_.libnfc.functions.nfc_initiator_deselect_target
export _root_.libnfc.functions.nfc_initiator_init
export _root_.libnfc.functions.nfc_initiator_init_secure_element
export _root_.libnfc.functions.nfc_initiator_poll_dep_target
export _root_.libnfc.functions.nfc_initiator_poll_target
export _root_.libnfc.functions.nfc_initiator_select_dep_target
export _root_.libnfc.functions.nfc_initiator_target_is_present
export _root_.libnfc.functions.nfc_initiator_transceive_bits
export _root_.libnfc.functions.nfc_initiator_transceive_bits_timed
export _root_.libnfc.functions.nfc_initiator_transceive_bytes
export _root_.libnfc.functions.nfc_initiator_transceive_bytes_timed
export _root_.libnfc.functions.nfc_list_devices
export _root_.libnfc.functions.nfc_open
export _root_.libnfc.functions.nfc_perror
export _root_.libnfc.functions.nfc_register_driver
export _root_.libnfc.functions.nfc_strerror
export _root_.libnfc.functions.nfc_strerror_r
export _root_.libnfc.functions.nfc_target_init
export _root_.libnfc.functions.nfc_target_receive_bits
export _root_.libnfc.functions.nfc_target_receive_bytes
export _root_.libnfc.functions.nfc_target_send_bits
export _root_.libnfc.functions.nfc_target_send_bytes
export _root_.libnfc.functions.nfc_version
export _root_.libnfc.functions.str_nfc_baud_rate
export _root_.libnfc.functions.str_nfc_modulation_type
export _root_.libnfc.functions.str_nfc_target
export _root_.libnfc.functions.nfc_initiator_list_passive_targets
export _root_.libnfc.functions.nfc_initiator_select_passive_target
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment